From 03d572c63c626bb04989252317d20e5c5b86391f Mon Sep 17 00:00:00 2001 From: Adrian Riobo Lorenzo Date: Fri, 15 Sep 2023 16:31:22 +0200 Subject: [PATCH] feat: Add spot instances support for azure Signed-off-by: Adrian Riobo Lorenzo --- cmd/cmd/azure/windows/windows.go | 8 +- docs/azure.md | 12 +- go.mod | 30 +- go.sum | 57 +- .../azure/action/windows/constants.go | 2 + pkg/provider/azure/action/windows/windows.go | 133 +- .../azure/module/spot-price/spot-price.go | 178 + .../azure-sdk-for-go/sdk/azcore/CHANGELOG.md | 621 + .../azure-sdk-for-go/sdk/azcore/LICENSE.txt | 21 + .../azure-sdk-for-go/sdk/azcore/README.md | 39 + .../azure-sdk-for-go/sdk/azcore/arm/client.go | 78 + .../azure-sdk-for-go/sdk/azcore/arm/doc.go | 9 + .../internal/resource/resource_identifier.go | 224 + .../arm/internal/resource/resource_type.go | 114 + .../sdk/azcore/arm/policy/policy.go | 98 + .../sdk/azcore/arm/resource_identifier.go | 23 + .../sdk/azcore/arm/resource_type.go | 40 + .../sdk/azcore/arm/runtime/pipeline.go | 65 + .../azcore/arm/runtime/policy_bearer_token.go | 145 + .../azcore/arm/runtime/policy_register_rp.go | 345 + .../arm/runtime/policy_trace_namespace.go | 30 + .../sdk/azcore/arm/runtime/runtime.go | 24 + .../Azure/azure-sdk-for-go/sdk/azcore/ci.yml | 29 + .../sdk/azcore/cloud/cloud.go | 44 + .../azure-sdk-for-go/sdk/azcore/cloud/doc.go | 53 + .../Azure/azure-sdk-for-go/sdk/azcore/core.go | 140 + .../Azure/azure-sdk-for-go/sdk/azcore/doc.go | 257 + .../azure-sdk-for-go/sdk/azcore/errors.go | 14 + .../Azure/azure-sdk-for-go/sdk/azcore/etag.go | 48 + .../sdk/azcore/internal/exported/exported.go | 105 + .../sdk/azcore/internal/exported/pipeline.go | 97 + .../sdk/azcore/internal/exported/request.go | 213 + .../internal/exported/response_error.go | 145 + .../sdk/azcore/internal/log/log.go | 38 + .../azcore/internal/pollers/async/async.go | 159 + .../sdk/azcore/internal/pollers/body/body.go | 135 + .../sdk/azcore/internal/pollers/fake/fake.go | 118 + .../sdk/azcore/internal/pollers/loc/loc.go | 119 + .../sdk/azcore/internal/pollers/op/op.go | 145 + .../sdk/azcore/internal/pollers/poller.go | 24 + .../sdk/azcore/internal/pollers/util.go | 187 + .../sdk/azcore/internal/shared/constants.go | 40 + .../sdk/azcore/internal/shared/shared.go | 134 + .../azure-sdk-for-go/sdk/azcore/log/doc.go | 10 + .../azure-sdk-for-go/sdk/azcore/log/log.go | 50 + .../azure-sdk-for-go/sdk/azcore/policy/doc.go | 10 + .../sdk/azcore/policy/policy.go | 165 + .../sdk/azcore/runtime/doc.go | 10 + .../sdk/azcore/runtime/errors.go | 19 + .../sdk/azcore/runtime/pager.go | 90 + .../sdk/azcore/runtime/pipeline.go | 88 + .../sdk/azcore/runtime/policy_api_version.go | 75 + .../sdk/azcore/runtime/policy_bearer_token.go | 100 + .../azcore/runtime/policy_body_download.go | 72 + .../sdk/azcore/runtime/policy_http_header.go | 39 + .../sdk/azcore/runtime/policy_http_trace.go | 117 + .../azcore/runtime/policy_include_response.go | 34 + .../sdk/azcore/runtime/policy_logging.go | 263 + .../sdk/azcore/runtime/policy_request_id.go | 34 + .../sdk/azcore/runtime/policy_retry.go | 254 + .../sdk/azcore/runtime/policy_telemetry.go | 79 + .../sdk/azcore/runtime/poller.go | 384 + .../sdk/azcore/runtime/request.go | 247 + .../sdk/azcore/runtime/response.go | 109 + .../runtime/transport_default_http_client.go | 37 + .../sdk/azcore/streaming/doc.go | 9 + .../sdk/azcore/streaming/progress.go | 75 + .../azure-sdk-for-go/sdk/azcore/to/doc.go | 9 + .../azure-sdk-for-go/sdk/azcore/to/to.go | 21 + .../sdk/azcore/tracing/constants.go | 41 + .../sdk/azcore/tracing/tracing.go | 196 + .../sdk/azidentity/CHANGELOG.md | 378 + .../sdk/azidentity/LICENSE.txt | 21 + .../sdk/azidentity/MIGRATION.md | 307 + .../azure-sdk-for-go/sdk/azidentity/README.md | 241 + .../sdk/azidentity/TROUBLESHOOTING.md | 197 + .../sdk/azidentity/azidentity.go | 165 + .../sdk/azidentity/azure_cli_credential.go | 189 + .../azidentity/chained_token_credential.go | 133 + .../azure-sdk-for-go/sdk/azidentity/ci.yml | 47 + .../azidentity/client_assertion_credential.go | 74 + .../client_certificate_credential.go | 163 + .../azidentity/client_secret_credential.go | 65 + .../azidentity/default_azure_credential.go | 134 + .../sdk/azidentity/device_code_credential.go | 119 + .../sdk/azidentity/environment_credential.go | 128 + .../azure-sdk-for-go/sdk/azidentity/errors.go | 124 + .../interactive_browser_credential.go | 85 + .../sdk/azidentity/logging.go | 30 + .../sdk/azidentity/managed_identity_client.go | 401 + .../azidentity/managed_identity_credential.go | 126 + .../username_password_credential.go | 68 + .../sdk/azidentity/version.go | 15 + .../azure-sdk-for-go/sdk/internal/LICENSE.txt | 21 + .../sdk/internal/diag/diag.go | 51 + .../azure-sdk-for-go/sdk/internal/diag/doc.go | 7 + .../sdk/internal/errorinfo/doc.go | 7 + .../sdk/internal/errorinfo/errorinfo.go | 16 + .../sdk/internal/exported/exported.go | 124 + .../azure-sdk-for-go/sdk/internal/log/doc.go | 7 + .../azure-sdk-for-go/sdk/internal/log/log.go | 104 + .../sdk/internal/poller/util.go | 155 + .../sdk/internal/temporal/resource.go | 123 + .../azure-sdk-for-go/sdk/internal/uuid/doc.go | 7 + .../sdk/internal/uuid/uuid.go | 76 + .../armresourcegraph/CHANGELOG.md | 33 + .../armresourcegraph/LICENSE.txt | 21 + .../resourcegraph/armresourcegraph/README.md | 110 + .../armresourcegraph/autorest.md | 16 + .../resourcegraph/armresourcegraph/build.go | 7 + .../resourcegraph/armresourcegraph/ci.yml | 28 + .../resourcegraph/armresourcegraph/client.go | 146 + .../armresourcegraph/client_factory.go | 46 + .../armresourcegraph/constants.go | 107 + .../armresourcegraph/interfaces.go | 18 + .../resourcegraph/armresourcegraph/models.go | 287 + .../armresourcegraph/models_serde.go | 746 + .../armresourcegraph/operations_client.go | 89 + .../resourcegraph/armresourcegraph/options.go | 24 + .../armresourcegraph/polymorphic_helpers.go | 53 + .../armresourcegraph/response_types.go | 28 + .../armresourcegraph/time_rfc3339.go | 86 + .../LICENSE | 21 + .../apps/cache/cache.go | 54 + .../apps/confidential/confidential.go | 685 + .../apps/errors/error_design.md | 111 + .../apps/errors/errors.go | 89 + .../apps/internal/base/base.go | 519 + .../internal/base/internal/storage/items.go | 200 + .../internal/storage/partitioned_storage.go | 436 + .../internal/base/internal/storage/storage.go | 514 + .../storage/test_serialized_cache.json | 56 + .../apps/internal/exported/exported.go | 34 + .../apps/internal/json/design.md | 140 + .../apps/internal/json/json.go | 184 + .../apps/internal/json/mapslice.go | 333 + .../apps/internal/json/marshal.go | 346 + .../apps/internal/json/struct.go | 290 + .../apps/internal/json/types/time/time.go | 70 + .../apps/internal/local/server.go | 177 + .../apps/internal/oauth/oauth.go | 296 + .../oauth/ops/accesstokens/accesstokens.go | 451 + .../oauth/ops/accesstokens/apptype_string.go | 25 + .../internal/oauth/ops/accesstokens/tokens.go | 335 + .../internal/oauth/ops/authority/authority.go | 538 + .../ops/authority/authorizetype_string.go | 30 + .../internal/oauth/ops/internal/comm/comm.go | 320 + .../oauth/ops/internal/comm/compress.go | 33 + .../oauth/ops/internal/grant/grant.go | 17 + .../apps/internal/oauth/ops/ops.go | 56 + .../ops/wstrust/defs/endpointtype_string.go | 25 + .../wstrust/defs/mex_document_definitions.go | 394 + .../defs/saml_assertion_definitions.go | 230 + .../oauth/ops/wstrust/defs/version_string.go | 25 + .../ops/wstrust/defs/wstrust_endpoint.go | 199 + .../ops/wstrust/defs/wstrust_mex_document.go | 159 + .../internal/oauth/ops/wstrust/wstrust.go | 136 + .../apps/internal/oauth/resolvers.go | 149 + .../apps/internal/options/options.go | 52 + .../apps/internal/shared/shared.go | 71 + .../apps/internal/version/version.go | 8 + .../apps/public/public.go | 683 + .../github.com/golang-jwt/jwt/v4/.gitignore | 4 + vendor/github.com/golang-jwt/jwt/v4/LICENSE | 9 + .../golang-jwt/jwt/v4/MIGRATION_GUIDE.md | 22 + vendor/github.com/golang-jwt/jwt/v4/README.md | 138 + .../github.com/golang-jwt/jwt/v4/SECURITY.md | 19 + .../golang-jwt/jwt/v4/VERSION_HISTORY.md | 135 + vendor/github.com/golang-jwt/jwt/v4/claims.go | 269 + vendor/github.com/golang-jwt/jwt/v4/doc.go | 4 + vendor/github.com/golang-jwt/jwt/v4/ecdsa.go | 142 + .../golang-jwt/jwt/v4/ecdsa_utils.go | 69 + .../github.com/golang-jwt/jwt/v4/ed25519.go | 85 + .../golang-jwt/jwt/v4/ed25519_utils.go | 64 + vendor/github.com/golang-jwt/jwt/v4/errors.go | 112 + vendor/github.com/golang-jwt/jwt/v4/hmac.go | 95 + .../golang-jwt/jwt/v4/map_claims.go | 151 + vendor/github.com/golang-jwt/jwt/v4/none.go | 52 + vendor/github.com/golang-jwt/jwt/v4/parser.go | 177 + .../golang-jwt/jwt/v4/parser_option.go | 29 + vendor/github.com/golang-jwt/jwt/v4/rsa.go | 101 + .../github.com/golang-jwt/jwt/v4/rsa_pss.go | 143 + .../github.com/golang-jwt/jwt/v4/rsa_utils.go | 105 + .../golang-jwt/jwt/v4/signing_method.go | 46 + .../golang-jwt/jwt/v4/staticcheck.conf | 1 + vendor/github.com/golang-jwt/jwt/v4/token.go | 143 + vendor/github.com/golang-jwt/jwt/v4/types.go | 145 + vendor/github.com/google/uuid/.travis.yml | 9 + vendor/github.com/google/uuid/CONTRIBUTING.md | 10 + vendor/github.com/google/uuid/CONTRIBUTORS | 9 + vendor/github.com/google/uuid/LICENSE | 27 + vendor/github.com/google/uuid/README.md | 19 + vendor/github.com/google/uuid/dce.go | 80 + vendor/github.com/google/uuid/doc.go | 12 + vendor/github.com/google/uuid/hash.go | 53 + vendor/github.com/google/uuid/marshal.go | 38 + vendor/github.com/google/uuid/node.go | 90 + vendor/github.com/google/uuid/node_js.go | 12 + vendor/github.com/google/uuid/node_net.go | 33 + vendor/github.com/google/uuid/null.go | 118 + vendor/github.com/google/uuid/sql.go | 59 + vendor/github.com/google/uuid/time.go | 123 + vendor/github.com/google/uuid/util.go | 43 + vendor/github.com/google/uuid/uuid.go | 294 + vendor/github.com/google/uuid/version1.go | 44 + vendor/github.com/google/uuid/version4.go | 76 + vendor/github.com/kylelemons/godebug/LICENSE | 202 + .../kylelemons/godebug/diff/diff.go | 186 + .../kylelemons/godebug/pretty/.gitignore | 5 + .../kylelemons/godebug/pretty/doc.go | 25 + .../kylelemons/godebug/pretty/public.go | 188 + .../kylelemons/godebug/pretty/reflect.go | 241 + .../kylelemons/godebug/pretty/structure.go | 223 + vendor/github.com/pkg/browser/LICENSE | 23 + vendor/github.com/pkg/browser/README.md | 55 + vendor/github.com/pkg/browser/browser.go | 57 + .../github.com/pkg/browser/browser_darwin.go | 5 + .../github.com/pkg/browser/browser_freebsd.go | 14 + .../github.com/pkg/browser/browser_linux.go | 21 + .../github.com/pkg/browser/browser_netbsd.go | 14 + .../github.com/pkg/browser/browser_openbsd.go | 14 + .../pkg/browser/browser_unsupported.go | 12 + .../github.com/pkg/browser/browser_windows.go | 7 + .../pulumi/pulumi-azure-native-sdk/.gitignore | 318 - .../pulumi/pulumi-azure-native-sdk/README.md | 70 - .../compute/pulumiUtilities.go | 87 - .../{ => compute/v2}/LICENSE | 0 .../compute/{ => v2}/availabilitySet.go | 22 +- .../compute/{ => v2}/capacityReservation.go | 26 +- .../{ => v2}/capacityReservationGroup.go | 14 +- .../compute/{ => v2}/cloudService.go | 24 +- .../compute/{ => v2}/dedicatedHost.go | 31 +- .../compute/{ => v2}/dedicatedHostGroup.go | 35 +- .../compute/{ => v2}/disk.go | 86 +- .../compute/{ => v2}/diskAccess.go | 27 +- .../diskAccessAPrivateEndpointConnection.go | 20 +- .../compute/{ => v2}/diskEncryptionSet.go | 34 +- .../compute/{ => v2}/gallery.go | 24 +- .../compute/{ => v2}/galleryApplication.go | 17 +- .../{ => v2}/galleryApplicationVersion.go | 19 +- .../compute/{ => v2}/galleryImage.go | 17 +- .../compute/{ => v2}/galleryImageVersion.go | 17 +- .../compute/{ => v2}/getAvailabilitySet.go | 12 +- .../{ => v2}/getCapacityReservation.go | 18 +- .../{ => v2}/getCapacityReservationGroup.go | 8 +- .../compute/{ => v2}/getCloudService.go | 18 +- .../compute/{ => v2}/getDedicatedHost.go | 23 +- .../compute/{ => v2}/getDedicatedHostGroup.go | 25 +- .../compute/{ => v2}/getDisk.go | 54 +- .../compute/{ => v2}/getDiskAccess.go | 15 +- ...getDiskAccessAPrivateEndpointConnection.go | 12 +- .../compute/{ => v2}/getDiskEncryptionSet.go | 22 +- .../compute/{ => v2}/getGallery.go | 22 +- .../compute/{ => v2}/getGalleryApplication.go | 13 +- .../{ => v2}/getGalleryApplicationVersion.go | 13 +- .../compute/{ => v2}/getGalleryImage.go | 11 +- .../{ => v2}/getGalleryImageVersion.go | 13 +- .../compute/{ => v2}/getImage.go | 4 +- ...tLogAnalyticExportRequestRateByInterval.go | 4 +- .../getLogAnalyticExportThrottledRequests.go | 4 +- .../{ => v2}/getProximityPlacementGroup.go | 24 +- .../compute/{ => v2}/getRestorePoint.go | 38 +- .../{ => v2}/getRestorePointCollection.go | 4 +- .../compute/{ => v2}/getSnapshot.go | 57 +- .../compute/{ => v2}/getSshPublicKey.go | 4 +- .../compute/{ => v2}/getVirtualMachine.go | 73 +- .../{ => v2}/getVirtualMachineExtension.go | 33 +- ...irtualMachineRunCommandByVirtualMachine.go | 49 +- .../{ => v2}/getVirtualMachineScaleSet.go | 48 +- .../getVirtualMachineScaleSetExtension.go | 20 +- .../{ => v2}/getVirtualMachineScaleSetVM.go | 19 +- .../getVirtualMachineScaleSetVMExtension.go | 34 +- .../getVirtualMachineScaleSetVMRunCommand.go | 47 +- .../compute/{ => v2}/image.go | 12 +- .../compute/{ => v2}/init.go | 4 +- .../{ => v2}/proximityPlacementGroup.go | 44 +- .../compute/{ => v2}/pulumi-plugin.json | 0 .../compute/{ => v2}/pulumiEnums.go | 380 +- .../compute/{ => v2}/pulumiTypes.go | 12434 ++++++- .../compute/{ => v2}/restorePoint.go | 54 +- .../{ => v2}/restorePointCollection.go | 12 +- .../compute/{ => v2}/snapshot.go | 89 +- .../compute/{ => v2}/sshPublicKey.go | 12 +- .../compute/{ => v2}/virtualMachine.go | 137 +- .../{ => v2}/virtualMachineExtension.go | 53 +- ...irtualMachineRunCommandByVirtualMachine.go | 76 +- .../{ => v2}/virtualMachineScaleSet.go | 84 +- .../virtualMachineScaleSetExtension.go | 36 +- .../{ => v2}/virtualMachineScaleSetVM.go | 39 +- .../virtualMachineScaleSetVMExtension.go | 58 +- .../virtualMachineScaleSetVMRunCommand.go | 76 +- .../pulumi/pulumi-azure-native-sdk/doc.go | 2 - .../pulumi/pulumi-azure-native-sdk/init.go | 37 - .../network/adminRule.go | 208 - .../network/pulumiUtilities.go | 87 - .../{compute => network/v2}/LICENSE | 0 .../network/v2/adminRule.go | 350 + .../network/{ => v2}/adminRuleCollection.go | 53 +- .../network/{ => v2}/applicationGateway.go | 86 +- ...icationGatewayPrivateEndpointConnection.go | 18 +- .../{ => v2}/applicationSecurityGroup.go | 18 +- .../network/{ => v2}/azureFirewall.go | 18 +- .../network/{ => v2}/bastionHost.go | 124 +- .../{ => v2}/configurationPolicyGroup.go | 18 +- .../network/{ => v2}/connectionMonitor.go | 22 +- .../{ => v2}/connectivityConfiguration.go | 39 +- .../network/{ => v2}/customIPPrefix.go | 120 +- .../network/{ => v2}/ddosCustomPolicy.go | 38 +- .../network/{ => v2}/ddosProtectionPlan.go | 25 +- .../network/{ => v2}/defaultAdminRule.go | 36 +- .../network/{ => v2}/defaultUserRule.go | 17 +- .../network/{ => v2}/dnsForwardingRuleset.go | 9 +- .../network/{ => v2}/dnsResolver.go | 6 +- .../network/{ => v2}/dscpConfiguration.go | 31 +- .../network/{ => v2}/endpoint.go | 24 +- .../network/{ => v2}/experiment.go | 6 +- .../network/{ => v2}/expressRouteCircuit.go | 36 +- .../expressRouteCircuitAuthorization.go | 18 +- .../{ => v2}/expressRouteCircuitConnection.go | 18 +- .../{ => v2}/expressRouteCircuitPeering.go | 18 +- .../{ => v2}/expressRouteConnection.go | 29 +- .../expressRouteCrossConnectionPeering.go | 18 +- .../network/{ => v2}/expressRouteGateway.go | 33 +- .../network/{ => v2}/expressRoutePort.go | 29 +- .../{ => v2}/expressRoutePortAuthorization.go | 18 +- .../network/{ => v2}/firewallPolicy.go | 40 +- .../firewallPolicyRuleCollectionGroup.go | 18 +- .../{ => v2}/firewallPolicyRuleGroup.go | 6 +- .../network/{ => v2}/flowLog.go | 18 +- .../network/{ => v2}/forwardingRule.go | 6 +- .../network/{ => v2}/frontDoor.go | 13 +- .../network/{ => v2}/getActiveSessions.go | 4 +- .../network/{ => v2}/getAdminRule.go | 93 +- .../{ => v2}/getAdminRuleCollection.go | 30 +- .../network/{ => v2}/getApplicationGateway.go | 52 +- ...ApplicationGatewayBackendHealthOnDemand.go | 4 +- ...icationGatewayPrivateEndpointConnection.go | 4 +- .../{ => v2}/getApplicationSecurityGroup.go | 4 +- .../network/{ => v2}/getAzureFirewall.go | 4 +- .../network/{ => v2}/getBastionHost.go | 95 +- .../{ => v2}/getBastionShareableLink.go | 4 +- .../{ => v2}/getConfigurationPolicyGroup.go | 4 +- .../network/{ => v2}/getConnectionMonitor.go | 8 +- .../{ => v2}/getConnectivityConfiguration.go | 18 +- .../network/{ => v2}/getCustomIPPrefix.go | 74 +- .../network/{ => v2}/getDdosCustomPolicy.go | 20 +- .../network/{ => v2}/getDdosProtectionPlan.go | 11 +- .../network/{ => v2}/getDefaultAdminRule.go | 22 +- .../network/{ => v2}/getDefaultUserRule.go | 15 +- .../{ => v2}/getDnsForwardingRuleset.go | 4 +- .../network/{ => v2}/getDnsResolver.go | 4 +- .../getDnsResourceReferenceByTarResources.go | 4 +- .../network/{ => v2}/getDscpConfiguration.go | 15 +- .../network/{ => v2}/getEndpoint.go | 15 +- .../network/{ => v2}/getExperiment.go | 4 +- .../{ => v2}/getExpressRouteCircuit.go | 18 +- .../getExpressRouteCircuitAuthorization.go | 4 +- .../getExpressRouteCircuitConnection.go | 4 +- .../{ => v2}/getExpressRouteCircuitPeering.go | 4 +- .../{ => v2}/getExpressRouteConnection.go | 11 +- .../getExpressRouteCrossConnectionPeering.go | 4 +- .../{ => v2}/getExpressRouteGateway.go | 11 +- .../network/{ => v2}/getExpressRoutePort.go | 11 +- .../getExpressRoutePortAuthorization.go | 4 +- .../network/{ => v2}/getFirewallPolicy.go | 18 +- .../getFirewallPolicyRuleCollectionGroup.go | 4 +- .../{ => v2}/getFirewallPolicyRuleGroup.go | 4 +- .../network/{ => v2}/getFlowLog.go | 4 +- .../network/{ => v2}/getForwardingRule.go | 4 +- .../network/{ => v2}/getFrontDoor.go | 11 +- .../network/{ => v2}/getHubRouteTable.go | 4 +- .../getHubVirtualNetworkConnection.go | 4 +- .../network/{ => v2}/getInboundEndpoint.go | 4 +- .../network/{ => v2}/getInboundNatRule.go | 31 +- .../network/v2/getInterfaceEndpoint.go | 177 + .../network/{ => v2}/getIpAllocation.go | 6 +- .../network/{ => v2}/getIpGroup.go | 4 +- .../network/{ => v2}/getLoadBalancer.go | 8 +- .../getLoadBalancerBackendAddressPool.go | 41 +- .../{ => v2}/getLocalNetworkGateway.go | 4 +- ...ManagementGroupNetworkManagerConnection.go | 8 +- .../network/{ => v2}/getNatGateway.go | 4 +- .../network/{ => v2}/getNatRule.go | 4 +- .../{ => v2}/getNetworkExperimentProfile.go | 4 +- .../network/{ => v2}/getNetworkGroup.go | 43 +- .../network/{ => v2}/getNetworkInterface.go | 43 +- .../getNetworkInterfaceTapConfiguration.go | 4 +- .../network/{ => v2}/getNetworkManager.go | 30 +- .../network/{ => v2}/getNetworkProfile.go | 4 +- .../{ => v2}/getNetworkSecurityGroup.go | 11 +- .../{ => v2}/getNetworkSecurityPerimeter.go | 32 +- .../{ => v2}/getNetworkVirtualAppliance.go | 56 +- .../getNetworkVirtualApplianceConnection.go | 140 + .../network/{ => v2}/getNetworkWatcher.go | 4 +- .../network/{ => v2}/getNspAccessRule.go | 8 +- .../network/{ => v2}/getNspAssociation.go | 4 +- .../network/v2/getNspLink.go | 180 + .../network/{ => v2}/getNspProfile.go | 4 +- .../network/{ => v2}/getOutboundEndpoint.go | 10 +- .../network/{ => v2}/getP2sVpnGateway.go | 4 +- .../getP2sVpnGatewayP2sVpnConnectionHealth.go | 4 +- ...pnGatewayP2sVpnConnectionHealthDetailed.go | 4 +- .../{ => v2}/getP2sVpnServerConfiguration.go | 4 +- .../network/{ => v2}/getPacketCapture.go | 28 +- .../network/{ => v2}/getPolicy.go | 4 +- .../{ => v2}/getPrivateDnsZoneGroup.go | 4 +- .../network/{ => v2}/getPrivateEndpoint.go | 29 +- .../network/{ => v2}/getPrivateLinkService.go | 4 +- ...ateLinkServicePrivateEndpointConnection.go | 13 +- .../network/{ => v2}/getPrivateRecordSet.go | 4 +- .../getPrivateResolverVirtualNetworkLink.go | 138 + .../network/{ => v2}/getPrivateZone.go | 4 +- .../network/{ => v2}/getProfile.go | 8 +- .../network/{ => v2}/getPublicIPAddress.go | 11 +- .../network/{ => v2}/getPublicIPPrefix.go | 4 +- .../network/{ => v2}/getRecordSet.go | 4 +- .../network/{ => v2}/getRoute.go | 4 +- .../network/{ => v2}/getRouteFilter.go | 4 +- .../network/{ => v2}/getRouteFilterRule.go | 4 +- .../network/v2/getRouteMap.go | 138 + .../network/{ => v2}/getRouteTable.go | 4 +- .../network/{ => v2}/getRoutingIntent.go | 4 +- .../network/{ => v2}/getRulesEngine.go | 4 +- .../network/{ => v2}/getScopeConnection.go | 4 +- .../{ => v2}/getSecurityAdminConfiguration.go | 41 +- .../{ => v2}/getSecurityPartnerProvider.go | 4 +- .../network/{ => v2}/getSecurityRule.go | 10 +- .../{ => v2}/getSecurityUserConfiguration.go | 30 +- .../{ => v2}/getServiceEndpointPolicy.go | 18 +- .../getServiceEndpointPolicyDefinition.go | 11 +- .../network/{ => v2}/getStaticMember.go | 18 +- .../network/{ => v2}/getSubnet.go | 16 +- ...getSubscriptionNetworkManagerConnection.go | 8 +- .../getTrafficManagerUserMetricsKey.go | 4 +- .../network/{ => v2}/getUserRule.go | 72 +- .../network/{ => v2}/getUserRuleCollection.go | 23 +- .../{ => v2}/getVirtualApplianceSite.go | 4 +- .../network/{ => v2}/getVirtualHub.go | 41 +- .../{ => v2}/getVirtualHubBgpConnection.go | 11 +- .../{ => v2}/getVirtualHubIpConfiguration.go | 4 +- .../{ => v2}/getVirtualHubRouteTableV2.go | 4 +- .../network/{ => v2}/getVirtualNetwork.go | 29 +- .../{ => v2}/getVirtualNetworkGateway.go | 55 +- ...etVirtualNetworkGatewayAdvertisedRoutes.go | 4 +- .../getVirtualNetworkGatewayBgpPeerStatus.go | 4 +- .../getVirtualNetworkGatewayConnection.go | 34 +- .../getVirtualNetworkGatewayLearnedRoutes.go | 4 +- .../getVirtualNetworkGatewayNatRule.go | 4 +- ...NetworkGatewayVpnclientConnectionHealth.go | 4 +- ...lNetworkGatewayVpnclientIpsecParameters.go | 4 +- .../network/{ => v2}/getVirtualNetworkLink.go | 4 +- .../{ => v2}/getVirtualNetworkPeering.go | 33 +- .../network/{ => v2}/getVirtualNetworkTap.go | 4 +- .../network/{ => v2}/getVirtualRouter.go | 4 +- .../{ => v2}/getVirtualRouterPeering.go | 4 +- .../network/{ => v2}/getVirtualWan.go | 4 +- .../network/{ => v2}/getVpnConnection.go | 4 +- .../network/{ => v2}/getVpnGateway.go | 11 +- .../{ => v2}/getVpnServerConfiguration.go | 13 +- .../network/{ => v2}/getVpnSite.go | 4 +- .../getWebApplicationFirewallPolicy.go | 17 +- .../network/{ => v2}/getZone.go | 6 +- .../network/{ => v2}/hubRouteTable.go | 18 +- .../{ => v2}/hubVirtualNetworkConnection.go | 18 +- .../network/{ => v2}/inboundEndpoint.go | 9 +- .../network/{ => v2}/inboundNatRule.go | 55 +- .../network/{ => v2}/init.go | 14 +- .../network/v2/interfaceEndpoint.go | 318 + .../network/{ => v2}/ipAllocation.go | 20 +- .../network/{ => v2}/ipGroup.go | 18 +- .../listActiveConnectivityConfiguration.go | 4 +- .../listActiveConnectivityConfigurations.go | 106 + .../{ => v2}/listActiveSecurityAdminRule.go | 4 +- .../v2/listActiveSecurityAdminRules.go | 104 + .../{ => v2}/listActiveSecurityUserRule.go | 4 +- .../network/v2/listActiveSecurityUserRules.go | 100 + ...istDnsForwardingRulesetByVirtualNetwork.go | 4 +- .../listDnsResolverByVirtualNetwork.go | 4 +- .../listEffectiveConnectivityConfiguration.go | 4 +- ...stEffectiveVirtualNetworkByNetworkGroup.go | 4 +- ...EffectiveVirtualNetworkByNetworkManager.go | 4 +- .../listFirewallPolicyIdpsSignature.go | 4 +- ...FirewallPolicyIdpsSignaturesFilterValue.go | 4 +- ...stEffectiveVirtualNetworkByNetworkGroup.go | 102 + .../listNetworkManagerDeploymentStatus.go | 8 +- ...agerEffectiveConnectivityConfigurations.go | 102 + ...etworkManagerEffectiveSecurityAdminRule.go | 4 +- ...tworkManagerEffectiveSecurityAdminRules.go | 100 + .../network/{ => v2}/loadBalancer.go | 26 +- .../loadBalancerBackendAddressPool.go | 71 +- .../network/{ => v2}/localNetworkGateway.go | 18 +- ...managementGroupNetworkManagerConnection.go | 43 +- .../network/{ => v2}/natGateway.go | 18 +- .../network/{ => v2}/natRule.go | 18 +- .../{ => v2}/networkExperimentProfile.go | 6 +- .../network/{ => v2}/networkGroup.go | 73 +- .../network/{ => v2}/networkInterface.go | 77 +- .../networkInterfaceTapConfiguration.go | 18 +- .../network/{ => v2}/networkManager.go | 58 +- .../network/{ => v2}/networkProfile.go | 18 +- .../network/{ => v2}/networkSecurityGroup.go | 29 +- .../{ => v2}/networkSecurityPerimeter.go | 42 +- .../{ => v2}/networkVirtualAppliance.go | 84 +- .../v2/networkVirtualApplianceConnection.go | 219 + .../network/{ => v2}/networkWatcher.go | 18 +- .../network/{ => v2}/nspAccessRule.go | 14 +- .../network/{ => v2}/nspAssociation.go | 6 +- .../network/v2/nspLink.go | 238 + .../network/{ => v2}/nspProfile.go | 6 +- .../network/{ => v2}/outboundEndpoint.go | 19 +- .../network/{ => v2}/p2sVpnGateway.go | 18 +- .../{ => v2}/p2sVpnServerConfiguration.go | 6 +- .../network/{ => v2}/packetCapture.go | 54 +- .../network/{ => v2}/policy.go | 6 +- .../network/{ => v2}/privateDnsZoneGroup.go | 18 +- .../network/{ => v2}/privateEndpoint.go | 53 +- .../network/{ => v2}/privateLinkService.go | 18 +- ...ateLinkServicePrivateEndpointConnection.go | 27 +- .../network/{ => v2}/privateRecordSet.go | 6 +- .../v2/privateResolverVirtualNetworkLink.go | 194 + .../network/{ => v2}/privateZone.go | 6 +- .../network/{ => v2}/profile.go | 13 +- .../network/{ => v2}/publicIPAddress.go | 29 +- .../network/{ => v2}/publicIPPrefix.go | 18 +- .../network/{ => v2}/pulumi-plugin.json | 0 .../network/{ => v2}/pulumiEnums.go | 720 +- .../network/{ => v2}/pulumiTypes.go | 27117 ++++++++-------- .../network/{ => v2}/pulumiTypes1.go | 21113 +++++++++--- .../network/{ => v2}/recordSet.go | 9 +- .../network/{ => v2}/route.go | 18 +- .../network/{ => v2}/routeFilter.go | 18 +- .../network/{ => v2}/routeFilterRule.go | 18 +- .../network/v2/routeMap.go | 214 + .../network/{ => v2}/routeTable.go | 18 +- .../network/{ => v2}/routingIntent.go | 18 +- .../network/{ => v2}/rulesEngine.go | 6 +- .../network/{ => v2}/scopeConnection.go | 18 +- .../{ => v2}/securityAdminConfiguration.go | 69 +- .../{ => v2}/securityPartnerProvider.go | 18 +- .../network/{ => v2}/securityRule.go | 31 +- .../{ => v2}/securityUserConfiguration.go | 42 +- .../network/{ => v2}/serviceEndpointPolicy.go | 40 +- .../serviceEndpointPolicyDefinition.go | 29 +- .../network/{ => v2}/staticMember.go | 32 +- .../network/{ => v2}/subnet.go | 34 +- .../subscriptionNetworkManagerConnection.go | 24 +- .../{ => v2}/trafficManagerUserMetricsKey.go | 7 +- .../network/{ => v2}/userRule.go | 109 +- .../network/{ => v2}/userRuleCollection.go | 34 +- .../network/{ => v2}/virtualApplianceSite.go | 18 +- .../network/{ => v2}/virtualHub.go | 67 +- .../{ => v2}/virtualHubBgpConnection.go | 29 +- .../{ => v2}/virtualHubIpConfiguration.go | 18 +- .../{ => v2}/virtualHubRouteTableV2.go | 18 +- .../network/{ => v2}/virtualNetwork.go | 51 +- .../network/{ => v2}/virtualNetworkGateway.go | 97 +- .../virtualNetworkGatewayConnection.go | 64 +- .../{ => v2}/virtualNetworkGatewayNatRule.go | 18 +- .../network/{ => v2}/virtualNetworkLink.go | 6 +- .../network/{ => v2}/virtualNetworkPeering.go | 63 +- .../network/{ => v2}/virtualNetworkTap.go | 18 +- .../network/{ => v2}/virtualRouter.go | 18 +- .../network/{ => v2}/virtualRouterPeering.go | 18 +- .../network/{ => v2}/virtualWan.go | 18 +- .../network/{ => v2}/vpnConnection.go | 18 +- .../network/{ => v2}/vpnGateway.go | 29 +- .../{ => v2}/vpnServerConfiguration.go | 31 +- .../network/{ => v2}/vpnSite.go | 18 +- .../{ => v2}/webApplicationFirewallPolicy.go | 21 +- .../network/{ => v2}/zone.go | 11 +- .../pulumi-azure-native-sdk/provider.go | 142 - .../pulumiUtilities.go | 87 - .../resources/deploymentScript.go | 195 - .../resources/getDeploymentScript.go | 134 - .../{network => resources/v2}/LICENSE | 0 .../resources/{ => v2}/azureCliScript.go | 10 +- .../{ => v2}/azurePowerShellScript.go | 10 +- .../resources/{ => v2}/deployment.go | 9 +- .../deploymentAtManagementGroupScope.go | 9 +- .../resources/{ => v2}/deploymentAtScope.go | 9 +- .../{ => v2}/deploymentAtSubscriptionScope.go | 9 +- .../{ => v2}/deploymentAtTenantScope.go | 9 +- .../v2/deploymentStackAtManagementGroup.go | 335 + .../v2/deploymentStackAtResourceGroup.go | 335 + .../v2/deploymentStackAtSubscription.go | 324 + .../resources/{ => v2}/getAzureCliScript.go | 8 +- .../{ => v2}/getAzurePowerShellScript.go | 8 +- .../resources/{ => v2}/getDeployment.go | 4 +- .../getDeploymentAtManagementGroupScope.go | 4 +- .../{ => v2}/getDeploymentAtScope.go | 4 +- .../getDeploymentAtSubscriptionScope.go | 4 +- .../{ => v2}/getDeploymentAtTenantScope.go | 4 +- .../v2/getDeploymentStackAtManagementGroup.go | 246 + .../v2/getDeploymentStackAtResourceGroup.go | 246 + .../v2/getDeploymentStackAtSubscription.go | 242 + .../resources/{ => v2}/getResource.go | 11 +- .../resources/{ => v2}/getResourceGroup.go | 4 +- .../resources/{ => v2}/getTagAtScope.go | 4 +- .../resources/{ => v2}/getTemplateSpec.go | 4 +- .../{ => v2}/getTemplateSpecVersion.go | 4 +- .../resources/{ => v2}/init.go | 12 +- .../{ => resources/v2}/pulumi-plugin.json | 0 .../resources/{ => v2}/pulumiEnums.go | 27 + .../resources/{ => v2}/pulumiTypes.go | 2255 +- .../resources/{ => v2}/resource.go | 20 +- .../resources/{ => v2}/resourceGroup.go | 7 +- .../resources/{ => v2}/tagAtScope.go | 9 +- .../resources/{ => v2}/templateSpec.go | 6 +- .../resources/{ => v2}/templateSpecVersion.go | 6 +- .../storage/pulumi-plugin.json | 4 - .../storage/pulumiUtilities.go | 87 - .../{resources => storage/v2}/LICENSE | 0 .../storage/{ => v2}/blob.go | 6 +- .../storage/{ => v2}/blobContainer.go | 44 +- .../blobContainerImmutabilityPolicy.go | 28 +- .../storage/{ => v2}/blobInventoryPolicy.go | 9 +- .../storage/{ => v2}/blobServiceProperties.go | 9 +- .../storage/{ => v2}/encryptionScope.go | 9 +- .../storage/{ => v2}/fileServiceProperties.go | 9 +- .../storage/{ => v2}/fileShare.go | 45 +- .../storage/{ => v2}/getBlobContainer.go | 27 +- .../getBlobContainerImmutabilityPolicy.go | 15 +- .../{ => v2}/getBlobInventoryPolicy.go | 4 +- .../{ => v2}/getBlobServiceProperties.go | 4 +- .../storage/{ => v2}/getEncryptionScope.go | 4 +- .../{ => v2}/getFileServiceProperties.go | 4 +- .../storage/{ => v2}/getFileShare.go | 36 +- .../storage/{ => v2}/getLocalUser.go | 4 +- .../storage/{ => v2}/getManagementPolicy.go | 4 +- .../{ => v2}/getObjectReplicationPolicy.go | 16 +- .../{ => v2}/getPrivateEndpointConnection.go | 4 +- .../storage/{ => v2}/getQueue.go | 4 +- .../{ => v2}/getQueueServiceProperties.go | 4 +- .../storage/{ => v2}/getStorageAccount.go | 79 +- .../storage/{ => v2}/getTable.go | 11 +- .../{ => v2}/getTableServiceProperties.go | 4 +- .../storage/{ => v2}/init.go | 4 +- .../storage/{ => v2}/listLocalUserKeys.go | 4 +- .../{ => v2}/listStorageAccountKeys.go | 4 +- .../storage/{ => v2}/listStorageAccountSAS.go | 4 +- .../{ => v2}/listStorageAccountServiceSAS.go | 4 +- .../storage/{ => v2}/localUser.go | 9 +- .../storage/{ => v2}/managementPolicy.go | 9 +- .../{ => v2}/objectReplicationPolicy.go | 29 +- .../{ => v2}/privateEndpointConnection.go | 9 +- .../v2}/pulumi-plugin.json | 0 .../storage/{ => v2}/pulumiEnums.go | 114 +- .../storage/{ => v2}/pulumiTypes.go | 15620 +++++---- .../storage/{ => v2}/queue.go | 9 +- .../{ => v2}/queueServiceProperties.go | 9 +- .../storage/{ => v2}/storageAccount.go | 124 +- .../{ => v2}/storageAccountStaticWebsite.go | 4 +- .../storage/{ => v2}/table.go | 20 +- .../{ => v2}/tableServiceProperties.go | 9 +- .../{storage => v2}/LICENSE | 0 .../utilities}/pulumiUtilities.go | 44 +- .../v2/utilities/pulumiVersion.go | 11 + .../pulumi-azure-native-sdk/version.txt | 1 - .../curve25519/internal/field/fe_generic.go | 2 +- .../golang.org/x/crypto/pkcs12/bmp-string.go | 50 + vendor/golang.org/x/crypto/pkcs12/crypto.go | 131 + vendor/golang.org/x/crypto/pkcs12/errors.go | 23 + .../x/crypto/pkcs12/internal/rc2/rc2.go | 268 + vendor/golang.org/x/crypto/pkcs12/mac.go | 45 + vendor/golang.org/x/crypto/pkcs12/pbkdf.go | 170 + vendor/golang.org/x/crypto/pkcs12/pkcs12.go | 360 + vendor/golang.org/x/crypto/pkcs12/safebags.go | 57 + vendor/golang.org/x/crypto/ssh/handshake.go | 48 +- .../x/crypto/ssh/knownhosts/knownhosts.go | 2 +- vendor/golang.org/x/net/http2/flow.go | 2 +- vendor/golang.org/x/net/http2/frame.go | 11 +- vendor/golang.org/x/net/http2/hpack/hpack.go | 81 +- vendor/golang.org/x/net/http2/server.go | 20 +- vendor/golang.org/x/net/http2/transport.go | 2 +- vendor/golang.org/x/net/trace/histogram.go | 2 +- .../x/text/unicode/norm/forminfo.go | 2 +- vendor/modules.txt | 104 +- 677 files changed, 91857 insertions(+), 29491 deletions(-) create mode 100644 pkg/provider/azure/module/spot-price/spot-price.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/README.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/client.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_type.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy/policy.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_identifier.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_type.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_bearer_token.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_register_rp.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_trace_namespace.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/runtime.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/ci.yml create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/cloud.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/core.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/errors.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/etag.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/exported.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/pipeline.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/response_error.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log/log.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async/async.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body/body.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake/fake.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc/loc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op/op.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/poller.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/util.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/shared.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/log.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/policy.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/errors.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pager.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pipeline.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_api_version.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_bearer_token.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_body_download.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_header.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_trace.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_include_response.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_logging.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_request_id.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_retry.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_telemetry.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/response.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/transport_default_http_client.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/progress.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/to.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/constants.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/tracing.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/MIGRATION.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/README.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azidentity.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/chained_token_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_assertion_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_certificate_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_secret_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/device_code_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/environment_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/errors.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/interactive_browser_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/logging.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_client.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/username_password_credential.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/diag.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/errorinfo.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/exported/exported.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/log.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/poller/util.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/temporal/resource.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/doc.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/uuid.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/LICENSE.txt create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/README.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/build.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/ci.yml create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client_factory.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/interfaces.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/options.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache/cache.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential/confidential.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/error_design.md create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/errors.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/base.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/items.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/partitioned_storage.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/storage.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/test_serialized_cache.json create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported/exported.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/design.md create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/json.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/mapslice.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/marshal.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/struct.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time/time.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/oauth.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/accesstokens.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/apptype_string.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/tokens.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authorizetype_string.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/comm.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/compress.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant/grant.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/ops.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/endpointtype_string.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/mex_document_definitions.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/saml_assertion_definitions.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/version_string.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_endpoint.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_mex_document.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/wstrust.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options/options.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared/shared.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version/version.go create mode 100644 vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/public/public.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/.gitignore create mode 100644 vendor/github.com/golang-jwt/jwt/v4/LICENSE create mode 100644 vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md create mode 100644 vendor/github.com/golang-jwt/jwt/v4/README.md create mode 100644 vendor/github.com/golang-jwt/jwt/v4/SECURITY.md create mode 100644 vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md create mode 100644 vendor/github.com/golang-jwt/jwt/v4/claims.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/doc.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/ecdsa.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/ed25519.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/errors.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/hmac.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/map_claims.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/none.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/parser.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/parser_option.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/rsa.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/signing_method.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf create mode 100644 vendor/github.com/golang-jwt/jwt/v4/token.go create mode 100644 vendor/github.com/golang-jwt/jwt/v4/types.go create mode 100644 vendor/github.com/google/uuid/.travis.yml create mode 100644 vendor/github.com/google/uuid/CONTRIBUTING.md create mode 100644 vendor/github.com/google/uuid/CONTRIBUTORS create mode 100644 vendor/github.com/google/uuid/LICENSE create mode 100644 vendor/github.com/google/uuid/README.md create mode 100644 vendor/github.com/google/uuid/dce.go create mode 100644 vendor/github.com/google/uuid/doc.go create mode 100644 vendor/github.com/google/uuid/hash.go create mode 100644 vendor/github.com/google/uuid/marshal.go create mode 100644 vendor/github.com/google/uuid/node.go create mode 100644 vendor/github.com/google/uuid/node_js.go create mode 100644 vendor/github.com/google/uuid/node_net.go create mode 100644 vendor/github.com/google/uuid/null.go create mode 100644 vendor/github.com/google/uuid/sql.go create mode 100644 vendor/github.com/google/uuid/time.go create mode 100644 vendor/github.com/google/uuid/util.go create mode 100644 vendor/github.com/google/uuid/uuid.go create mode 100644 vendor/github.com/google/uuid/version1.go create mode 100644 vendor/github.com/google/uuid/version4.go create mode 100644 vendor/github.com/kylelemons/godebug/LICENSE create mode 100644 vendor/github.com/kylelemons/godebug/diff/diff.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/.gitignore create mode 100644 vendor/github.com/kylelemons/godebug/pretty/doc.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/public.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/reflect.go create mode 100644 vendor/github.com/kylelemons/godebug/pretty/structure.go create mode 100644 vendor/github.com/pkg/browser/LICENSE create mode 100644 vendor/github.com/pkg/browser/README.md create mode 100644 vendor/github.com/pkg/browser/browser.go create mode 100644 vendor/github.com/pkg/browser/browser_darwin.go create mode 100644 vendor/github.com/pkg/browser/browser_freebsd.go create mode 100644 vendor/github.com/pkg/browser/browser_linux.go create mode 100644 vendor/github.com/pkg/browser/browser_netbsd.go create mode 100644 vendor/github.com/pkg/browser/browser_openbsd.go create mode 100644 vendor/github.com/pkg/browser/browser_unsupported.go create mode 100644 vendor/github.com/pkg/browser/browser_windows.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/.gitignore delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/README.md delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiUtilities.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{ => compute/v2}/LICENSE (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/availabilitySet.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/capacityReservation.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/capacityReservationGroup.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/cloudService.go (78%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/dedicatedHost.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/dedicatedHostGroup.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/disk.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/diskAccess.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/diskAccessAPrivateEndpointConnection.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/diskEncryptionSet.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/gallery.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/galleryApplication.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/galleryApplicationVersion.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/galleryImage.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/galleryImageVersion.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getAvailabilitySet.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getCapacityReservation.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getCapacityReservationGroup.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getCloudService.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDedicatedHost.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDedicatedHostGroup.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDisk.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDiskAccess.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDiskAccessAPrivateEndpointConnection.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getDiskEncryptionSet.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getGallery.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getGalleryApplication.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getGalleryApplicationVersion.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getGalleryImage.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getGalleryImageVersion.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getImage.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getLogAnalyticExportRequestRateByInterval.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getLogAnalyticExportThrottledRequests.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getProximityPlacementGroup.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getRestorePoint.go (67%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getRestorePointCollection.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getSnapshot.go (75%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getSshPublicKey.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachine.go (76%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineExtension.go (80%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineRunCommandByVirtualMachine.go (62%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineScaleSet.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineScaleSetExtension.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineScaleSetVM.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineScaleSetVMExtension.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/getVirtualMachineScaleSetVMRunCommand.go (61%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/image.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/init.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/proximityPlacementGroup.go (76%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/pulumi-plugin.json (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/pulumiEnums.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/pulumiTypes.go (71%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/restorePoint.go (68%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/restorePointCollection.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/snapshot.go (76%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/sshPublicKey.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachine.go (73%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineExtension.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineRunCommandByVirtualMachine.go (58%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineScaleSet.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineScaleSetExtension.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineScaleSetVM.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineScaleSetVMExtension.go (78%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/{ => v2}/virtualMachineScaleSetVMRunCommand.go (57%) delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/doc.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/init.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRule.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiUtilities.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{compute => network/v2}/LICENSE (100%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRule.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/adminRuleCollection.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/applicationGateway.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/applicationGatewayPrivateEndpointConnection.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/applicationSecurityGroup.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/azureFirewall.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/bastionHost.go (60%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/configurationPolicyGroup.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/connectionMonitor.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/connectivityConfiguration.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/customIPPrefix.go (63%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/ddosCustomPolicy.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/ddosProtectionPlan.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/defaultAdminRule.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/defaultUserRule.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/dnsForwardingRuleset.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/dnsResolver.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/dscpConfiguration.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/endpoint.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/experiment.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteCircuit.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteCircuitAuthorization.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteCircuitConnection.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteCircuitPeering.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteConnection.go (88%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteCrossConnectionPeering.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRouteGateway.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRoutePort.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/expressRoutePortAuthorization.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/firewallPolicy.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/firewallPolicyRuleCollectionGroup.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/firewallPolicyRuleGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/flowLog.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/forwardingRule.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/frontDoor.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getActiveSessions.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getAdminRule.go (50%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getAdminRuleCollection.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getApplicationGateway.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getApplicationGatewayBackendHealthOnDemand.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getApplicationGatewayPrivateEndpointConnection.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getApplicationSecurityGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getAzureFirewall.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getBastionHost.go (56%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getBastionShareableLink.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getConfigurationPolicyGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getConnectionMonitor.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getConnectivityConfiguration.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getCustomIPPrefix.go (64%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDdosCustomPolicy.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDdosProtectionPlan.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDefaultAdminRule.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDefaultUserRule.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDnsForwardingRuleset.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDnsResolver.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDnsResourceReferenceByTarResources.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getDscpConfiguration.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getEndpoint.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExperiment.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteCircuit.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteCircuitAuthorization.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteCircuitConnection.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteCircuitPeering.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteConnection.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteCrossConnectionPeering.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRouteGateway.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRoutePort.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getExpressRoutePortAuthorization.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getFirewallPolicy.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getFirewallPolicyRuleCollectionGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getFirewallPolicyRuleGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getFlowLog.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getForwardingRule.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getFrontDoor.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getHubRouteTable.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getHubVirtualNetworkConnection.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getInboundEndpoint.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getInboundNatRule.go (79%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInterfaceEndpoint.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getIpAllocation.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getIpGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getLoadBalancer.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getLoadBalancerBackendAddressPool.go (75%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getLocalNetworkGateway.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getManagementGroupNetworkManagerConnection.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNatGateway.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNatRule.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkExperimentProfile.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkGroup.go (76%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkInterface.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkInterfaceTapConfiguration.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkManager.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkProfile.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkSecurityGroup.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkSecurityPerimeter.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkVirtualAppliance.go (76%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualApplianceConnection.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNetworkWatcher.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNspAccessRule.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNspAssociation.go (97%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspLink.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getNspProfile.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getOutboundEndpoint.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getP2sVpnGateway.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getP2sVpnGatewayP2sVpnConnectionHealth.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getP2sVpnServerConfiguration.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPacketCapture.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPolicy.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateDnsZoneGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateEndpoint.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateLinkService.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateLinkServicePrivateEndpointConnection.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateRecordSet.go (98%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateResolverVirtualNetworkLink.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPrivateZone.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getProfile.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPublicIPAddress.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getPublicIPPrefix.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRecordSet.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRoute.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRouteFilter.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRouteFilterRule.go (97%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteMap.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRouteTable.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRoutingIntent.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getRulesEngine.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getScopeConnection.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSecurityAdminConfiguration.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSecurityPartnerProvider.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSecurityRule.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSecurityUserConfiguration.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getServiceEndpointPolicy.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getServiceEndpointPolicyDefinition.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getStaticMember.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSubnet.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getSubscriptionNetworkManagerConnection.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getTrafficManagerUserMetricsKey.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getUserRule.go (57%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getUserRuleCollection.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualApplianceSite.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualHub.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualHubBgpConnection.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualHubIpConfiguration.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualHubRouteTableV2.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetwork.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGateway.go (77%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayAdvertisedRoutes.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayBgpPeerStatus.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayConnection.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayLearnedRoutes.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayNatRule.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayVpnclientConnectionHealth.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkGatewayVpnclientIpsecParameters.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkLink.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkPeering.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualNetworkTap.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualRouter.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualRouterPeering.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVirtualWan.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVpnConnection.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVpnGateway.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVpnServerConfiguration.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getVpnSite.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getWebApplicationFirewallPolicy.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/getZone.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/hubRouteTable.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/hubVirtualNetworkConnection.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/inboundEndpoint.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/inboundNatRule.go (78%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/init.go (95%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/interfaceEndpoint.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/ipAllocation.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/ipGroup.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listActiveConnectivityConfiguration.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfigurations.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listActiveSecurityAdminRule.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRules.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listActiveSecurityUserRule.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRules.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listDnsForwardingRulesetByVirtualNetwork.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listDnsResolverByVirtualNetwork.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listEffectiveConnectivityConfiguration.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listEffectiveVirtualNetworkByNetworkGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listEffectiveVirtualNetworkByNetworkManager.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listFirewallPolicyIdpsSignature.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listFirewallPolicyIdpsSignaturesFilterValue.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listListEffectiveVirtualNetworkByNetworkGroup.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listNetworkManagerDeploymentStatus.go (91%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveConnectivityConfigurations.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/listNetworkManagerEffectiveSecurityAdminRule.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRules.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/loadBalancer.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/loadBalancerBackendAddressPool.go (74%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/localNetworkGateway.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/managementGroupNetworkManagerConnection.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/natGateway.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/natRule.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkExperimentProfile.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkGroup.go (75%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkInterface.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkInterfaceTapConfiguration.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkManager.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkProfile.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkSecurityGroup.go (88%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkSecurityPerimeter.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkVirtualAppliance.go (76%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualApplianceConnection.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/networkWatcher.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/nspAccessRule.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/nspAssociation.go (97%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspLink.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/nspProfile.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/outboundEndpoint.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/p2sVpnGateway.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/p2sVpnServerConfiguration.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/packetCapture.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/policy.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateDnsZoneGroup.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateEndpoint.go (79%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateLinkService.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateLinkServicePrivateEndpointConnection.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateRecordSet.go (98%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateResolverVirtualNetworkLink.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/privateZone.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/profile.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/publicIPAddress.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/publicIPPrefix.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/pulumi-plugin.json (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/pulumiEnums.go (70%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/pulumiTypes.go (88%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/pulumiTypes1.go (55%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/recordSet.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/route.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/routeFilter.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/routeFilterRule.go (95%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeMap.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/routeTable.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/routingIntent.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/rulesEngine.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/scopeConnection.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/securityAdminConfiguration.go (81%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/securityPartnerProvider.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/securityRule.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/securityUserConfiguration.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/serviceEndpointPolicy.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/serviceEndpointPolicyDefinition.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/staticMember.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/subnet.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/subscriptionNetworkManagerConnection.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/trafficManagerUserMetricsKey.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/userRule.go (55%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/userRuleCollection.go (89%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualApplianceSite.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualHub.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualHubBgpConnection.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualHubIpConfiguration.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualHubRouteTableV2.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetwork.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkGateway.go (77%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkGatewayConnection.go (86%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkGatewayNatRule.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkLink.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkPeering.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualNetworkTap.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualRouter.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualRouterPeering.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/virtualWan.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/vpnConnection.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/vpnGateway.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/vpnServerConfiguration.go (92%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/vpnSite.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/webApplicationFirewallPolicy.go (93%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/network/{ => v2}/zone.go (96%) delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/provider.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumiUtilities.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentScript.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentScript.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{network => resources/v2}/LICENSE (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/azureCliScript.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/azurePowerShellScript.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/deployment.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/deploymentAtManagementGroupScope.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/deploymentAtScope.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/deploymentAtSubscriptionScope.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/deploymentAtTenantScope.go (95%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtManagementGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtResourceGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtSubscription.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getAzureCliScript.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getAzurePowerShellScript.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getDeployment.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getDeploymentAtManagementGroupScope.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getDeploymentAtScope.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getDeploymentAtSubscriptionScope.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getDeploymentAtTenantScope.go (96%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtManagementGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtResourceGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtSubscription.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getResource.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getResourceGroup.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getTagAtScope.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getTemplateSpec.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/getTemplateSpecVersion.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/init.go (80%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{ => resources/v2}/pulumi-plugin.json (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/pulumiEnums.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/pulumiTypes.go (68%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/resource.go (91%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/resourceGroup.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/tagAtScope.go (94%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/templateSpec.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/{ => v2}/templateSpecVersion.go (97%) delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumi-plugin.json delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiUtilities.go rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{resources => storage/v2}/LICENSE (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/blob.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/blobContainer.go (83%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/blobContainerImmutabilityPolicy.go (80%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/blobInventoryPolicy.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/blobServiceProperties.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/encryptionScope.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/fileServiceProperties.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/fileShare.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getBlobContainer.go (87%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getBlobContainerImmutabilityPolicy.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getBlobInventoryPolicy.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getBlobServiceProperties.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getEncryptionScope.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getFileServiceProperties.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getFileShare.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getLocalUser.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getManagementPolicy.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getObjectReplicationPolicy.go (84%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getPrivateEndpointConnection.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getQueue.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getQueueServiceProperties.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getStorageAccount.go (78%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getTable.go (88%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/getTableServiceProperties.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/init.go (95%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/listLocalUserKeys.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/listStorageAccountKeys.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/listStorageAccountSAS.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/listStorageAccountServiceSAS.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/localUser.go (97%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/managementPolicy.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/objectReplicationPolicy.go (82%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/privateEndpointConnection.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{resources => storage/v2}/pulumi-plugin.json (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/pulumiEnums.go (90%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/pulumiTypes.go (74%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/queue.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/queueServiceProperties.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/storageAccount.go (75%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/storageAccountStaticWebsite.go (98%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/table.go (85%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/{ => v2}/tableServiceProperties.go (96%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{storage => v2}/LICENSE (100%) rename vendor/github.com/pulumi/pulumi-azure-native-sdk/{resources => v2/utilities}/pulumiUtilities.go (56%) create mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiVersion.go delete mode 100644 vendor/github.com/pulumi/pulumi-azure-native-sdk/version.txt create mode 100644 vendor/golang.org/x/crypto/pkcs12/bmp-string.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/crypto.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/errors.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/mac.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/pbkdf.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/pkcs12.go create mode 100644 vendor/golang.org/x/crypto/pkcs12/safebags.go diff --git a/cmd/cmd/azure/windows/windows.go b/cmd/cmd/azure/windows/windows.go index 987f4722..aa051b4b 100644 --- a/cmd/cmd/azure/windows/windows.go +++ b/cmd/cmd/azure/windows/windows.go @@ -19,7 +19,7 @@ const ( defaultLocation = "West US" paramVMSize = "vmsize" paramVMSizeDesc = "size for the VM. Type requires to allow nested virtualization" - defaultVMSize = "Standard_D4_v5" + defaultVMSize = "Standard_D8a_v4" paramVersion = "windows-version" paramVersionDesc = "Major version for windows desktop 10 or 11" defaultVersion = "11" @@ -32,6 +32,8 @@ const ( paramAdminUsername = "admin-username" paramAdminUsernameDesc = "username for admin user. Only rdp accessible within generated password" defaultAdminUsername = "rhqpadmin" + paramSpot = "spot" + paramSpotDesc = "if spot is set the spot prices across all regions will be cheked and machine will be started on best spot option (price / eviction)" ) func GetCmd() *cobra.Command { @@ -72,7 +74,8 @@ func getCreate() *cobra.Command { Version: viper.GetString(paramVersion), Feature: viper.GetString(paramFeature), Username: viper.GetString(paramUsername), - AdminUsername: viper.GetString(paramAdminUsername)}); err != nil { + AdminUsername: viper.GetString(paramAdminUsername), + Spot: viper.IsSet(paramSpot)}); err != nil { logging.Error(err) } return nil @@ -87,6 +90,7 @@ func getCreate() *cobra.Command { flagSet.StringP(paramFeature, "", defaultFeature, paramFeatureDesc) flagSet.StringP(paramUsername, "", defaultUsername, paramUsernameDesc) flagSet.StringP(paramAdminUsername, "", defaultAdminUsername, paramAdminUsernameDesc) + flagSet.Bool(paramSpot, false, paramSpotDesc) c.PersistentFlags().AddFlagSet(flagSet) return c } diff --git a/docs/azure.md b/docs/azure.md index f9512190..e9fba77b 100644 --- a/docs/azure.md +++ b/docs/azure.md @@ -20,7 +20,7 @@ It creates / destroy a windows dekstop edition ready to be included within the C This will create a windows desktop accordig to params specificed: ```bash -podman run -it --rm quay.io/rhqp/qenvs:0.0.4 azure windows create -h +podman run -it --rm quay.io/rhqp/qenvs:v0.0.5-dev azure windows create -h create Usage: @@ -31,9 +31,10 @@ Flags: --conn-details-output string path to export host connection information (host, username and privateKey) -h, --help help for create --location string location for created resources within Windows desktop (default "West US") + --spot if spot is set the spot prices across all regions will be cheked and machine will be started on best spot option (price / eviction) --tags stringToString tags to add on each resource (--tags name1=value1,name2=value2) (default []) --username string username for general user. SSH accessible + rdp with generated password (default "rhqp") - --vmsize string size for the VM. Type requires to allow nested virtualization (default "Standard_D4_v5") + --vmsize string size for the VM. Type requires to allow nested virtualization (default "Standard_D8a_v4") --windows-featurepack string windows feature pack (default "22h2-pro") --windows-version string Major version for windows desktop 10 or 11 (default "11") @@ -63,11 +64,12 @@ podman run -d --rm \ -e ARM_SUBSCRIPTION_ID=${asi_value} \ -e ARM_CLIENT_ID=${aci_value} \ -e ARM_CLIENT_SECRET=${acs_lue} \ - quay.io/rhqp/qenvs:0.0.4 azure \ + quay.io/rhqp/qenvs:v0.0.5-dev azure \ windows create \ --project-name "win-desk-11" \ --backed-url "file:///workspace" \ - --conn-details-output "/workspace" + --conn-details-output "/workspace" \ + --spot ``` The following is a snipped on how to destroy the resources: @@ -79,7 +81,7 @@ podman run -d --rm \ -e ARM_SUBSCRIPTION_ID=${asi_value} \ -e ARM_CLIENT_ID=${aci_value} \ -e ARM_CLIENT_SECRET=${acs_lue} \ - quay.io/rhqp/qenvs:0.0.4 azure \ + quay.io/rhqp/qenvs:v0.0.5-dev azure \ windows destroy \ --project-name "win-desk-11" \ --backed-url "file:///workspace" diff --git a/go.mod b/go.mod index a5c830b5..79ddeb45 100644 --- a/go.mod +++ b/go.mod @@ -7,10 +7,6 @@ require ( github.com/coocood/freecache v1.2.2 // github.com/pulumi/pulumi-aws-native/sdk github.com/pulumi/pulumi-aws/sdk/v5 v5.30.0 - github.com/pulumi/pulumi-azure-native-sdk/compute v1.98.1 - github.com/pulumi/pulumi-azure-native-sdk/network v1.98.1 - github.com/pulumi/pulumi-azure-native-sdk/resources v1.98.1 - github.com/pulumi/pulumi-azure-native-sdk/storage v1.99.1 github.com/pulumi/pulumi-command/sdk v0.7.1 github.com/pulumi/pulumi-random/sdk/v4 v4.11.2 github.com/pulumi/pulumi-tls/sdk/v4 v4.10.0 @@ -21,16 +17,32 @@ require ( ) require ( + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0-beta.1 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.1 + github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.6.0 + github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.6.0 + github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.6.0 + github.com/pulumi/pulumi-azure-native-sdk/storage/v2 v2.6.0 +) + +require ( + github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cloudflare/circl v1.1.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.0.5 // indirect github.com/pjbgf/sha1cd v0.2.3 // indirect - github.com/pulumi/pulumi-azure-native-sdk v1.99.1 // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pulumi/pulumi-azure-native-sdk/v2 v2.6.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/skeema/knownhosts v1.1.0 // indirect github.com/spf13/afero v1.8.2 // indirect @@ -84,11 +96,11 @@ require ( github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect go.uber.org/atomic v1.9.0 // indirect - golang.org/x/crypto v0.3.0 // indirect - golang.org/x/net v0.5.0 // indirect + golang.org/x/crypto v0.6.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.4.0 // indirect - golang.org/x/text v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20220802133213-ce4fa296bf78 // indirect google.golang.org/grpc v1.51.0 // indirect google.golang.org/protobuf v1.28.1 // indirect diff --git a/go.sum b/go.sum index e10a62c3..4a9f6e09 100644 --- a/go.sum +++ b/go.sum @@ -36,6 +36,16 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0-beta.1 h1:8t6ZZtkOCl+rx7uBn40Nj62ABVGkXK69U/En44wJIlE= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0-beta.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 h1:uqM+VoHjVH6zdlkLF2b6O0ZANcHoj3rO0PoQ3jglUJA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2/go.mod h1:twTKAa1E6hLmSDjLhaCkbTMQKc7p/rNLU40rLxGEOCI= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.1 h1:nGiU2ovpbtkcC3x+g/wNHV4S9TOIYe2/yOVAj3wiGHI= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.1/go.mod h1:T3ZgvD1aRKu12mEA0fU3PPvI7V0Nh0wzIdK0QMBhf0Y= +github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 h1:UE9n9rkJF62ArLb1F3DEjRt8O3jLwMWdSoypKV4f3MU= +github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM= @@ -79,6 +89,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= +github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -111,6 +122,8 @@ github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRx github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= @@ -170,6 +183,8 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= @@ -212,6 +227,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= @@ -220,7 +237,7 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -242,6 +259,8 @@ github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwb github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/pjbgf/sha1cd v0.2.3 h1:uKQP/7QOzNtKYH7UTohZLcjF5/55EnTw0jO/Ru4jZwI= github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= @@ -252,16 +271,16 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/pulumi/pulumi-aws/sdk/v5 v5.30.0 h1:0v7djL5d7Uvb5TBfto3QuKyjEKVeracHZzlhtwGSePY= github.com/pulumi/pulumi-aws/sdk/v5 v5.30.0/go.mod h1:axXtUAYEclH+SVqr/QmWFzMfJchxrrPiyMrywCcMF9A= -github.com/pulumi/pulumi-azure-native-sdk v1.99.1 h1:PT3UahQILAA5VMJus4plqACSrKoAHKL046uEP/gslY8= -github.com/pulumi/pulumi-azure-native-sdk v1.99.1/go.mod h1:obUeVSrxzSLakRhsP2om6+QwgVT+E9Dd6VH40jC/AfM= -github.com/pulumi/pulumi-azure-native-sdk/compute v1.98.1 h1:AxJx8PmdFoDSFj9Q20Yq0tEmcX2P3FfTykoI7gZrd+k= -github.com/pulumi/pulumi-azure-native-sdk/compute v1.98.1/go.mod h1:yVed9PHjE3e2K8++Nzy14ruHFk1eG57NO0DL/0nElXQ= -github.com/pulumi/pulumi-azure-native-sdk/network v1.98.1 h1:onQdibSCAR+I5V27qr3WCAiAycCqTNod7Z6s5RGqbNk= -github.com/pulumi/pulumi-azure-native-sdk/network v1.98.1/go.mod h1:UgNqzxENZQi3Ba1YqwYBwj1fn8LI68lxS/fY4NF6vJE= -github.com/pulumi/pulumi-azure-native-sdk/resources v1.98.1 h1:J/eEp0FdYfQ7djNyZ6JsvRoR38U7VIIc6YpTvbUCduY= -github.com/pulumi/pulumi-azure-native-sdk/resources v1.98.1/go.mod h1:On0YSpSEJKakWIkPra5hApbmF+cEF1f0VRuTafoeDTk= -github.com/pulumi/pulumi-azure-native-sdk/storage v1.99.1 h1:/m+S7zF9INpR1EF4v+bRysyUFTPhKAao+FPXN1OIIyI= -github.com/pulumi/pulumi-azure-native-sdk/storage v1.99.1/go.mod h1:psoJVf6l9IJB9VJ81tgb12B6v+DixhftjjNSY4hJj4o= +github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.6.0 h1:xc3+rMUEcuAy4yrm4f3G3yJddYp0Gffyd31x50JgkIs= +github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.6.0/go.mod h1:DF4R0Rn6kXefhrzK398mneVLUoji/pZRdShJnwIXUxI= +github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.6.0 h1:+eLBPrE1a5Vi9/qdcILOXARFKlBEslf7BDBYWcmX1VI= +github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.6.0/go.mod h1:INT26NonCiKw+xyDOoai0tszPvlqwEGMY/GmbZQ4itA= +github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.6.0 h1:TyDRtmPZlEsaEMjkHpNggohZyLup8gyr8dMx2fId+4A= +github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.6.0/go.mod h1:n25zeuzMVh+zBxgp7ed1yNlOu/h054/Xv47J+/l6Ejk= +github.com/pulumi/pulumi-azure-native-sdk/storage/v2 v2.6.0 h1:VwJOP3VNejnpylsWJtuLUNHK7TwzRBlkBp3pxcgA1CE= +github.com/pulumi/pulumi-azure-native-sdk/storage/v2 v2.6.0/go.mod h1:3wUD5FQBn+vuDMbiF44KYh82Hctnt2Sr6eNm8XL+SAc= +github.com/pulumi/pulumi-azure-native-sdk/v2 v2.6.0 h1:owkaSHFQ+jdorX46+v8Mb//I1pukEv9Ss3Msn9tarug= +github.com/pulumi/pulumi-azure-native-sdk/v2 v2.6.0/go.mod h1:0M4mUmmpe41qj02HAGJnLYLpf8TBkrtdqD6H8J9XPo4= github.com/pulumi/pulumi-command/sdk v0.7.1 h1:vbrXobhnV+spJ/wXaxv5N6L8gMwM+0irK91n348WX/k= github.com/pulumi/pulumi-command/sdk v0.7.1/go.mod h1:niZxKP6w3PQdwOWnRwjop2LNd1TcdIQR+LuzIEGX4kU= github.com/pulumi/pulumi-random/sdk/v4 v4.11.2 h1:i336djUk9cLBIoxBSj0ufrI/Y4dXO3FNgsJhfPQArzQ= @@ -348,8 +367,9 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= +golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -423,8 +443,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -487,6 +507,7 @@ golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -503,8 +524,8 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -514,8 +535,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/pkg/provider/azure/action/windows/constants.go b/pkg/provider/azure/action/windows/constants.go index 79c0c4c0..2072af44 100644 --- a/pkg/provider/azure/action/windows/constants.go +++ b/pkg/provider/azure/action/windows/constants.go @@ -16,4 +16,6 @@ const ( outputUserPrivateKey = "awdUserPrivatekey" outputAdminUsername = "awdAdminUsername" outputAdminUserPassword = "awdAdminUserPassword" + + prioritySpot = "Spot" ) diff --git a/pkg/provider/azure/action/windows/windows.go b/pkg/provider/azure/action/windows/windows.go index 19db238b..5a675581 100644 --- a/pkg/provider/azure/action/windows/windows.go +++ b/pkg/provider/azure/action/windows/windows.go @@ -9,16 +9,17 @@ import ( "github.com/adrianriobo/qenvs/pkg/manager" qenvsContext "github.com/adrianriobo/qenvs/pkg/manager/context" "github.com/adrianriobo/qenvs/pkg/provider/azure" + spotprice "github.com/adrianriobo/qenvs/pkg/provider/azure/module/spot-price" azurePlugin "github.com/adrianriobo/qenvs/pkg/provider/azure/plugin" "github.com/adrianriobo/qenvs/pkg/provider/util/command" "github.com/adrianriobo/qenvs/pkg/provider/util/output" "github.com/adrianriobo/qenvs/pkg/provider/util/security" "github.com/adrianriobo/qenvs/pkg/util/logging" resourcesUtil "github.com/adrianriobo/qenvs/pkg/util/resources" - "github.com/pulumi/pulumi-azure-native-sdk/compute" - "github.com/pulumi/pulumi-azure-native-sdk/network" - "github.com/pulumi/pulumi-azure-native-sdk/resources" - "github.com/pulumi/pulumi-azure-native-sdk/storage" + "github.com/pulumi/pulumi-azure-native-sdk/compute/v2" + "github.com/pulumi/pulumi-azure-native-sdk/network/v2" + "github.com/pulumi/pulumi-azure-native-sdk/resources/v2" + "github.com/pulumi/pulumi-azure-native-sdk/storage/v2" "github.com/pulumi/pulumi-command/sdk/go/command/remote" "github.com/pulumi/pulumi-tls/sdk/v4/go/tls" "github.com/pulumi/pulumi/sdk/v3/go/auto" @@ -36,6 +37,7 @@ type WindowsRequest struct { Feature string Username string AdminUsername string + Spot bool } type syncRequest struct { @@ -99,25 +101,44 @@ func Destroy() error { // Main function to deploy all requried resources to azure func (r *WindowsRequest) deployer(ctx *pulumi.Context) error { + location, spotPrice, err := r.valuesWetherSpot() + if err != nil { + return err + } rg, err := resources.NewResourceGroup(ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "rg"), &resources.ResourceGroupArgs{ - Location: pulumi.String(r.Location), + Location: pulumi.String(*location), ResourceGroupName: pulumi.String(qenvsContext.GetID()), Tags: qenvsContext.GetTags(), }) if err != nil { return err } - ni, err := r.createNetworking(ctx, rg) + ni, err := r.createNetworking(ctx, rg, *location) if err != nil { return err } - vm, err := r.createVirtualMachine(ctx, rg, ni) + vm, err := r.createVirtualMachine(ctx, rg, ni, *location, spotPrice) if err != nil { return err } - return r.postInitSetup(ctx, rg, vm) + return r.postInitSetup(ctx, rg, vm, *location) +} + +func (r *WindowsRequest) valuesWetherSpot() (*string, *float64, error) { + if r.Spot { + bsc, err := + spotprice.GetBestSpotChoice(spotprice.BestSpotChoiceRequest{ + VMTypes: []string{r.VMSize}, + OSType: "windows", + }) + if err != nil { + return nil, nil, err + } + return &bsc.Location, &bsc.Price, nil + } + return &r.Location, nil, nil } // This function works as a syncer for the created VM @@ -175,7 +196,8 @@ func (r *WindowsRequest) manageResults(stackResult auto.UpResult, // Create virtual machine based on request + export to context // adminusername and adminuserpassword func (r *WindowsRequest) createVirtualMachine(ctx *pulumi.Context, - rg *resources.ResourceGroup, ni *network.NetworkInterface) (*compute.VirtualMachine, error) { + rg *resources.ResourceGroup, ni *network.NetworkInterface, + location string, spotPrice *float64) (*compute.VirtualMachine, error) { adminPasswd, err := security.CreatePassword( ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "pswd-adminuser")) @@ -185,50 +207,57 @@ func (r *WindowsRequest) createVirtualMachine(ctx *pulumi.Context, } ctx.Export(fmt.Sprintf("%s-%s", r.Prefix, outputAdminUsername), pulumi.String(r.AdminUsername)) ctx.Export(fmt.Sprintf("%s-%s", r.Prefix, outputAdminUserPassword), adminPasswd.Result) - return compute.NewVirtualMachine(ctx, - resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "vm"), - &compute.VirtualMachineArgs{ - VmName: pulumi.String(qenvsContext.GetID()), - Location: rg.Location, - ResourceGroupName: rg.Name, - NetworkProfile: compute.NetworkProfileArgs{ - NetworkInterfaces: compute.NetworkInterfaceReferenceArray{ - compute.NetworkInterfaceReferenceArgs{ - Id: ni.ID(), - }, + vmArgs := &compute.VirtualMachineArgs{ + VmName: pulumi.String(qenvsContext.GetID()), + Location: pulumi.String(location), + ResourceGroupName: rg.Name, + NetworkProfile: compute.NetworkProfileArgs{ + NetworkInterfaces: compute.NetworkInterfaceReferenceArray{ + compute.NetworkInterfaceReferenceArgs{ + Id: ni.ID(), }, }, - HardwareProfile: compute.HardwareProfileArgs{ - VmSize: pulumi.String(r.VMSize), + }, + HardwareProfile: compute.HardwareProfileArgs{ + VmSize: pulumi.String(r.VMSize), + }, + StorageProfile: compute.StorageProfileArgs{ + ImageReference: compute.ImageReferenceArgs{ + Publisher: pulumi.String("MicrosoftWindowsDesktop"), + Offer: pulumi.String(fmt.Sprintf("windows-%s", r.Version)), + Sku: pulumi.String(fmt.Sprintf("win%s-%s", r.Version, r.Feature)), + Version: pulumi.String("latest"), }, - StorageProfile: compute.StorageProfileArgs{ - ImageReference: compute.ImageReferenceArgs{ - Publisher: pulumi.String("MicrosoftWindowsDesktop"), - Offer: pulumi.String(fmt.Sprintf("windows-%s", r.Version)), - Sku: pulumi.String(fmt.Sprintf("win%s-%s", r.Version, r.Feature)), - Version: pulumi.String("latest"), + OsDisk: compute.OSDiskArgs{ + Name: pulumi.String(qenvsContext.GetID()), + CreateOption: pulumi.String("FromImage"), + Caching: compute.CachingTypesReadWrite, + ManagedDisk: compute.ManagedDiskParametersArgs{ + StorageAccountType: pulumi.String("Standard_LRS"), }, - OsDisk: compute.OSDiskArgs{ - Name: pulumi.String(qenvsContext.GetID()), - CreateOption: pulumi.String("FromImage"), - Caching: compute.CachingTypesReadWrite, - ManagedDisk: compute.ManagedDiskParametersArgs{ - StorageAccountType: pulumi.String("Standard_LRS"), - }, - }, - }, - OsProfile: compute.OSProfileArgs{ - AdminUsername: pulumi.String(r.AdminUsername), - AdminPassword: adminPasswd.Result, - ComputerName: pulumi.String(qenvsContext.GetID()), }, - Tags: qenvsContext.GetTags(), - }) + }, + OsProfile: compute.OSProfileArgs{ + AdminUsername: pulumi.String(r.AdminUsername), + AdminPassword: adminPasswd.Result, + ComputerName: pulumi.String(qenvsContext.GetID()), + }, + Tags: qenvsContext.GetTags(), + } + if spotPrice != nil { + vmArgs.Priority = pulumi.String(prioritySpot) + vmArgs.BillingProfile = compute.BillingProfileArgs{ + MaxPrice: pulumi.Float64(*spotPrice), + } + } + return compute.NewVirtualMachine(ctx, + resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "vm"), + vmArgs) } // Create networking resource required for spin the VM func (r *WindowsRequest) createNetworking(ctx *pulumi.Context, - rg *resources.ResourceGroup) (*network.NetworkInterface, error) { + rg *resources.ResourceGroup, location string) (*network.NetworkInterface, error) { vn, err := network.NewVirtualNetwork(ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "vn"), &network.VirtualNetworkArgs{ @@ -239,7 +268,7 @@ func (r *WindowsRequest) createNetworking(ctx *pulumi.Context, }, }, ResourceGroupName: rg.Name, - Location: rg.Location, + Location: pulumi.String(location), Tags: qenvsContext.GetTags(), }) if err != nil { @@ -261,7 +290,7 @@ func (r *WindowsRequest) createNetworking(ctx *pulumi.Context, publicIP, err := network.NewPublicIPAddress(ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "pip"), &network.PublicIPAddressArgs{ - Location: rg.Location, + Location: pulumi.String(location), PublicIpAddressName: pulumi.String(qenvsContext.GetID()), ResourceGroupName: rg.Name, Tags: qenvsContext.GetTags(), @@ -276,7 +305,7 @@ func (r *WindowsRequest) createNetworking(ctx *pulumi.Context, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "ni"), &network.NetworkInterfaceArgs{ NetworkInterfaceName: pulumi.String(qenvsContext.GetID()), - Location: rg.Location, + Location: pulumi.String(location), ResourceGroupName: rg.Name, IpConfigurations: network.NetworkInterfaceIPConfigurationArray{ &network.NetworkInterfaceIPConfigurationArgs{ @@ -297,7 +326,7 @@ func (r *WindowsRequest) createNetworking(ctx *pulumi.Context, // run a post script to setup the machine as expected according to rhqp-ci-setup.ps1 // it also exports to pulumi context user name, user password and user privatekey func (r *WindowsRequest) postInitSetup(ctx *pulumi.Context, rg *resources.ResourceGroup, - vm *compute.VirtualMachine) error { + vm *compute.VirtualMachine, location string) error { userPasswd, err := security.CreatePassword( ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "pswd-user")) @@ -319,7 +348,7 @@ func (r *WindowsRequest) postInitSetup(ctx *pulumi.Context, rg *resources.Resour } ctx.Export(fmt.Sprintf("%s-%s", r.Prefix, outputUserPrivateKey), privateKey.PrivateKeyPem) // upload the script to a ephemeral blob container - b, err := r.uploadScript(ctx, rg) + b, err := r.uploadScript(ctx, rg, location) if err != nil { return err } @@ -343,7 +372,7 @@ func (r *WindowsRequest) postInitSetup(ctx *pulumi.Context, rg *resources.Resour resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "ext"), &compute.VirtualMachineExtensionArgs{ ResourceGroupName: rg.Name, - Location: rg.Location, + Location: pulumi.String(location), VmName: vm.Name, Publisher: pulumi.String("Microsoft.Compute"), Type: pulumi.String("CustomScriptExtension"), @@ -361,14 +390,14 @@ func (r *WindowsRequest) postInitSetup(ctx *pulumi.Context, rg *resources.Resour // Upload scrip to blob container to be used within Microsoft Compute extension func (r *WindowsRequest) uploadScript(ctx *pulumi.Context, - rg *resources.ResourceGroup) (*storage.Blob, error) { + rg *resources.ResourceGroup, location string) (*storage.Blob, error) { sa, err := storage.NewStorageAccount(ctx, resourcesUtil.GetResourceName(r.Prefix, azureWindowsDesktopID, "sa"), &storage.StorageAccountArgs{ AccountName: pulumi.String(qenvsContext.GetID()), Kind: pulumi.String("BlockBlobStorage"), ResourceGroupName: rg.Name, - Location: rg.Location, + Location: pulumi.String(location), Sku: &storage.SkuArgs{ Name: pulumi.String("Premium_LRS"), }, diff --git a/pkg/provider/azure/module/spot-price/spot-price.go b/pkg/provider/azure/module/spot-price/spot-price.go new file mode 100644 index 00000000..5243d914 --- /dev/null +++ b/pkg/provider/azure/module/spot-price/spot-price.go @@ -0,0 +1,178 @@ +package spotprice + +import ( + "context" + "encoding/json" + "fmt" + "os" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph" +) + +const ( + querySpotPrice = "SpotResources | where type =~ 'microsoft.compute/skuspotpricehistory/ostype/location' " + + "and sku.name in~ (%s) and properties.osType =~ '%s'" + + "| project skuName=tostring(sku.name),osType=tostring(properties.osType)," + + "location,latestSpotPriceUSD=todouble(properties.spotPrices[0].priceUSD)" + + "| order by latestSpotPriceUSD asc" + + queryEvictionRate = "SpotResources | where type =~ 'microsoft.compute/skuspotevictionrate/location' " + + "and sku.name in~ (%s)" + + "| project skuName=tostring(sku.name),location,spotEvictionRate=tostring(properties.evictionRate) " + + // lowest eviction rate possible + minEvictionRate = "0-5" +) + +type BestSpotChoiceRequest struct { + VMTypes []string + OSType string +} + +type BestSpotChoiceResponse struct { + VMType string `json:"skuName"` + Location string `json:"location"` + Price float64 `json:"latestSpotPriceUSD"` +} + +type priceHistory struct { + VMType string `json:"skuName"` + OSType string `json:"osType"` + Location string `json:"location"` + Price float64 `json:"latestSpotPriceUSD"` +} + +type evictionRate struct { + VMType string `json:"skuName"` + Location string `json:"location"` + EvictionRate string `json:"spotEvictionRate"` +} + +var ( + azIdentityEnvs = []string{ + "AZURE_TENANT_ID", + "AZURE_SUBSCRIPTION_ID", + "AZURE_CLIENT_ID", + "AZURE_CLIENT_SECRET", + } +) + +// This function will return the best spot option +func GetBestSpotChoice(r BestSpotChoiceRequest) (*BestSpotChoiceResponse, error) { + client, err := getGraphClient() + if err != nil { + return nil, fmt.Errorf("error getting the best spot price choice: %v", err) + } + // Context for requests + ctx := context.Background() + // Run spot price history request + phr, err := getPriceHistory(ctx, client, r) + if err != nil { + return nil, fmt.Errorf("error getting the best spot price choice: %v", err) + } + // Run eviction rate request + evrr, err := getEvictionRate(ctx, client, r) + if err != nil { + return nil, fmt.Errorf("error getting the best spot price choice: %v", err) + } + // Compare prices and evictions + return getBestSpotChoice(phr, evrr) +} + +func getGraphClient() (*armresourcegraph.Client, error) { + // Auth identity + setAZIdentityEnvs() + cred, err := azidentity.NewDefaultAzureCredential(nil) + if err != nil { + return nil, fmt.Errorf("error getting the best spot price choice: %v", err) + } + // ResourceGraph client + return armresourcegraph.NewClient(cred, nil) +} + +// Envs required for auth with go sdk +// https://learn.microsoft.com/es-es/azure/developer/go/azure-sdk-authentication?tabs=bash#service-principal-with-a-secret +// do not match standard envs for pulumi envs for auth with native sdk +// https://www.pulumi.com/registry/packages/azure-native/installation-configuration/#set-configuration-using-environment-variables +func setAZIdentityEnvs() { + for _, e := range azIdentityEnvs { + os.Setenv(e, + os.Getenv(strings.ReplaceAll(e, "AZURE", "ARM"))) + } +} + +func getPriceHistory(ctx context.Context, client *armresourcegraph.Client, + r BestSpotChoiceRequest) ([]priceHistory, error) { + spr := fmt.Sprintf(querySpotPrice, + fmt.Sprintf("'%s'", strings.Join(r.VMTypes, ",")), + r.OSType) + qr, err := client.Resources(ctx, + armresourcegraph.QueryRequest{ + Query: to.Ptr(spr), + }, + nil) + if err != nil { + return nil, fmt.Errorf("error getting spot price history: %v", err) + } + var results []priceHistory + for _, r := range qr.Data.([]interface{}) { + rJSON, err := json.Marshal(r) + if err != nil { + return nil, fmt.Errorf("error getting spot price history: %v", err) + } + rStruct := priceHistory{} + if err := json.Unmarshal(rJSON, &rStruct); err != nil { + return nil, fmt.Errorf("error getting spot price history: %v", err) + } + results = append(results, rStruct) + } + return results, nil +} + +func getEvictionRate(ctx context.Context, client *armresourcegraph.Client, + r BestSpotChoiceRequest) ([]evictionRate, error) { + evrr := fmt.Sprintf(queryEvictionRate, + fmt.Sprintf("'%s'", strings.Join(r.VMTypes, ","))) + qr, err := client.Resources(ctx, + armresourcegraph.QueryRequest{ + Query: to.Ptr(evrr), + }, + nil) + if err != nil { + return nil, fmt.Errorf("error getting eviction rate: %v", err) + } + var results []evictionRate + for _, r := range qr.Data.([]interface{}) { + rJSON, err := json.Marshal(r) + if err != nil { + return nil, fmt.Errorf("error getting eviction rate: %v", err) + } + rStruct := evictionRate{} + if err := json.Unmarshal(rJSON, &rStruct); err != nil { + return nil, fmt.Errorf("error getting eviction rate: %v", err) + } + results = append(results, rStruct) + } + return results, nil +} + +func getBestSpotChoice(s []priceHistory, e []evictionRate) (*BestSpotChoiceResponse, error) { + var evm map[string]string = make(map[string]string) + for _, ev := range e { + evm[fmt.Sprintf("%s%s", ev.Location, ev.VMType)] = ev.EvictionRate + } + for _, sv := range s { + er, ok := evm[fmt.Sprintf("%s%s", sv.Location, sv.VMType)] + if ok && er == minEvictionRate { + return &BestSpotChoiceResponse{ + VMType: sv.VMType, + Location: sv.Location, + Price: sv.Price, + }, nil + } + } + return nil, fmt.Errorf("could not find any spot with minimum eviction rate") +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md new file mode 100644 index 00000000..28e35a83 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md @@ -0,0 +1,621 @@ +# Release History + +## 1.8.0-beta.1 (2023-07-12) + +### Features Added + +- `messaging/CloudEvent` allows you to serialize/deserialize CloudEvents, as described in the CloudEvents 1.0 specification: [link](https://github.com/cloudevents/spec) + +### Other Changes + +* The beta features for CAE, tracing, and fakes have been reinstated. + +## 1.7.0 (2023-07-12) + +### Features Added +* Added method `WithClientName()` to type `azcore.Client` to support shallow cloning of a client with a new name used for tracing. + +### Breaking Changes +> These changes affect only code written against beta versions v1.7.0-beta.1 or v1.7.0-beta.2 +* The beta features for CAE, tracing, and fakes have been omitted for this release. + +## 1.7.0-beta.2 (2023-06-06) + +### Breaking Changes +> These changes affect only code written against beta version v1.7.0-beta.1 +* Method `SpanFromContext()` on type `tracing.Tracer` had the `bool` return value removed. + * This includes the field `SpanFromContext` in supporting type `tracing.TracerOptions`. +* Method `AddError()` has been removed from type `tracing.Span`. +* Method `Span.End()` now requires an argument of type `*tracing.SpanEndOptions`. + +## 1.6.1 (2023-06-06) + +### Bugs Fixed +* Fixed an issue in `azcore.NewClient()` and `arm.NewClient()` that could cause an incorrect module name to be used in telemetry. + +### Other Changes +* This version contains all bug fixes from `v1.7.0-beta.1` + +## 1.7.0-beta.1 (2023-05-24) + +### Features Added +* Restored CAE support for ARM clients. +* Added supporting features to enable distributed tracing. + * Added func `runtime.StartSpan()` for use by SDKs to start spans. + * Added method `WithContext()` to `runtime.Request` to support shallow cloning with a new context. + * Added field `TracingNamespace` to `runtime.PipelineOptions`. + * Added field `Tracer` to `runtime.NewPollerOptions` and `runtime.NewPollerFromResumeTokenOptions` types. + * Added field `SpanFromContext` to `tracing.TracerOptions`. + * Added methods `Enabled()`, `SetAttributes()`, and `SpanFromContext()` to `tracing.Tracer`. + * Added supporting pipeline policies to include HTTP spans when creating clients. +* Added package `fake` to support generated fakes packages in SDKs. + * The package contains public surface area exposed by fake servers and supporting APIs intended only for use by the fake server implementations. + * Added an internal fake poller implementation. + +### Bugs Fixed +* Retry policy always clones the underlying `*http.Request` before invoking the next policy. +* Added some non-standard error codes to the list of error codes for unregistered resource providers. + +## 1.6.0 (2023-05-04) + +### Features Added +* Added support for ARM cross-tenant authentication. Set the `AuxiliaryTenants` field of `arm.ClientOptions` to enable. +* Added `TenantID` field to `policy.TokenRequestOptions`. + +## 1.5.0 (2023-04-06) + +### Features Added +* Added `ShouldRetry` to `policy.RetryOptions` for finer-grained control over when to retry. + +### Breaking Changes +> These changes affect only code written against a beta version such as v1.5.0-beta.1 +> These features will return in v1.6.0-beta.1. +* Removed `TokenRequestOptions.Claims` and `.TenantID` +* Removed ARM client support for CAE and cross-tenant auth. + +### Bugs Fixed +* Added non-conformant LRO terminal states `Cancelled` and `Completed`. + +### Other Changes +* Updated to latest `internal` module. + +## 1.5.0-beta.1 (2023-03-02) + +### Features Added +* This release includes the features added in v1.4.0-beta.1 + +## 1.4.0 (2023-03-02) +> This release doesn't include features added in v1.4.0-beta.1. They will return in v1.5.0-beta.1. + +### Features Added +* Add `Clone()` method for `arm/policy.ClientOptions`. + +### Bugs Fixed +* ARM's RP registration policy will no longer swallow unrecognized errors. +* Fixed an issue in `runtime.NewPollerFromResumeToken()` when resuming a `Poller` with a custom `PollingHandler`. +* Fixed wrong policy copy in `arm/runtime.NewPipeline()`. + +## 1.4.0-beta.1 (2023-02-02) + +### Features Added +* Added support for ARM cross-tenant authentication. Set the `AuxiliaryTenants` field of `arm.ClientOptions` to enable. +* Added `Claims` and `TenantID` fields to `policy.TokenRequestOptions`. +* ARM bearer token policy handles CAE challenges. + +## 1.3.1 (2023-02-02) + +### Other Changes +* Update dependencies to latest versions. + +## 1.3.0 (2023-01-06) + +### Features Added +* Added `BearerTokenOptions.AuthorizationHandler` to enable extending `runtime.BearerTokenPolicy` + with custom authorization logic +* Added `Client` types and matching constructors to the `azcore` and `arm` packages. These represent a basic client for HTTP and ARM respectively. + +### Other Changes +* Updated `internal` module to latest version. +* `policy/Request.SetBody()` allows replacing a request's body with an empty one + +## 1.2.0 (2022-11-04) + +### Features Added +* Added `ClientOptions.APIVersion` field, which overrides the default version a client + requests of the service, if the client supports this (all ARM clients do). +* Added package `tracing` that contains the building blocks for distributed tracing. +* Added field `TracingProvider` to type `policy.ClientOptions` that will be used to set the per-client tracing implementation. + +### Bugs Fixed +* Fixed an issue in `runtime.SetMultipartFormData` to properly handle slices of `io.ReadSeekCloser`. +* Fixed the MaxRetryDelay default to be 60s. +* Failure to poll the state of an LRO will now return an `*azcore.ResponseError` for poller types that require this behavior. +* Fixed a bug in `runtime.NewPipeline` that would cause pipeline-specified allowed headers and query parameters to be lost. + +### Other Changes +* Retain contents of read-only fields when sending requests. + +## 1.1.4 (2022-10-06) + +### Bugs Fixed +* Don't retry a request if the `Retry-After` delay is greater than the configured `RetryOptions.MaxRetryDelay`. +* `runtime.JoinPaths`: do not unconditionally add a forward slash before the query string + +### Other Changes +* Removed logging URL from retry policy as it's redundant. +* Retry policy logs when it exits due to a non-retriable status code. + +## 1.1.3 (2022-09-01) + +### Bugs Fixed +* Adjusted the initial retry delay to 800ms per the Azure SDK guidelines. + +## 1.1.2 (2022-08-09) + +### Other Changes +* Fixed various doc bugs. + +## 1.1.1 (2022-06-30) + +### Bugs Fixed +* Avoid polling when a RELO LRO synchronously terminates. + +## 1.1.0 (2022-06-03) + +### Other Changes +* The one-second floor for `Frequency` when calling `PollUntilDone()` has been removed when running tests. + +## 1.0.0 (2022-05-12) + +### Features Added +* Added interface `runtime.PollingHandler` to support custom poller implementations. + * Added field `PollingHandler` of this type to `runtime.NewPollerOptions[T]` and `runtime.NewPollerFromResumeTokenOptions[T]`. + +### Breaking Changes +* Renamed `cloud.Configuration.LoginEndpoint` to `.ActiveDirectoryAuthorityHost` +* Renamed `cloud.AzurePublicCloud` to `cloud.AzurePublic` +* Removed `AuxiliaryTenants` field from `arm/ClientOptions` and `arm/policy/BearerTokenOptions` +* Removed `TokenRequestOptions.TenantID` +* `Poller[T].PollUntilDone()` now takes an `options *PollUntilDoneOptions` param instead of `freq time.Duration` +* Removed `arm/runtime.Poller[T]`, `arm/runtime.NewPoller[T]()` and `arm/runtime.NewPollerFromResumeToken[T]()` +* Removed `arm/runtime.FinalStateVia` and related `const` values +* Renamed `runtime.PageProcessor` to `runtime.PagingHandler` +* The `arm/runtime.ProviderRepsonse` and `arm/runtime.Provider` types are no longer exported. +* Renamed `NewRequestIdPolicy()` to `NewRequestIDPolicy()` +* `TokenCredential.GetToken` now returns `AccessToken` by value. + +### Bugs Fixed +* When per-try timeouts are enabled, only cancel the context after the body has been read and closed. +* The `Operation-Location` poller now properly handles `final-state-via` values. +* Improvements in `runtime.Poller[T]` + * `Poll()` shouldn't cache errors, allowing for additional retries when in a non-terminal state. + * `Result()` will cache the terminal result or error but not transient errors, allowing for additional retries. + +### Other Changes +* Updated to latest `internal` module and absorbed breaking changes. + * Use `temporal.Resource` and deleted copy. +* The internal poller implementation has been refactored. + * The implementation in `internal/pollers/poller.go` has been merged into `runtime/poller.go` with some slight modification. + * The internal poller types had their methods updated to conform to the `runtime.PollingHandler` interface. + * The creation of resume tokens has been refactored so that implementers of `runtime.PollingHandler` don't need to know about it. +* `NewPipeline()` places policies from `ClientOptions` after policies from `PipelineOptions` +* Default User-Agent headers no longer include `azcore` version information + +## 0.23.1 (2022-04-14) + +### Bugs Fixed +* Include XML header when marshalling XML content. +* Handle XML namespaces when searching for error code. +* Handle `odata.error` when searching for error code. + +## 0.23.0 (2022-04-04) + +### Features Added +* Added `runtime.Pager[T any]` and `runtime.Poller[T any]` supporting types for central, generic, implementations. +* Added `cloud` package with a new API for cloud configuration +* Added `FinalStateVia` field to `runtime.NewPollerOptions[T any]` type. + +### Breaking Changes +* Removed the `Poller` type-alias to the internal poller implementation. +* Added `Ptr[T any]` and `SliceOfPtrs[T any]` in the `to` package and removed all non-generic implementations. +* `NullValue` and `IsNullValue` now take a generic type parameter instead of an interface func parameter. +* Replaced `arm.Endpoint` with `cloud` API + * Removed the `endpoint` parameter from `NewRPRegistrationPolicy()` + * `arm/runtime.NewPipeline()` and `.NewRPRegistrationPolicy()` now return an `error` +* Refactored `NewPoller` and `NewPollerFromResumeToken` funcs in `arm/runtime` and `runtime` packages. + * Removed the `pollerID` parameter as it's no longer required. + * Created optional parameter structs and moved optional parameters into them. +* Changed `FinalStateVia` field to a `const` type. + +### Other Changes +* Converted expiring resource and dependent types to use generics. + +## 0.22.0 (2022-03-03) + +### Features Added +* Added header `WWW-Authenticate` to the default allow-list of headers for logging. +* Added a pipeline policy that enables the retrieval of HTTP responses from API calls. + * Added `runtime.WithCaptureResponse` to enable the policy at the API level (off by default). + +### Breaking Changes +* Moved `WithHTTPHeader` and `WithRetryOptions` from the `policy` package to the `runtime` package. + +## 0.21.1 (2022-02-04) + +### Bugs Fixed +* Restore response body after reading in `Poller.FinalResponse()`. (#16911) +* Fixed bug in `NullValue` that could lead to incorrect comparisons for empty maps/slices (#16969) + +### Other Changes +* `BearerTokenPolicy` is more resilient to transient authentication failures. (#16789) + +## 0.21.0 (2022-01-11) + +### Features Added +* Added `AllowedHeaders` and `AllowedQueryParams` to `policy.LogOptions` to control which headers and query parameters are written to the logger. +* Added `azcore.ResponseError` type which is returned from APIs when a non-success HTTP status code is received. + +### Breaking Changes +* Moved `[]policy.Policy` parameters of `arm/runtime.NewPipeline` and `runtime.NewPipeline` into a new struct, `runtime.PipelineOptions` +* Renamed `arm/ClientOptions.Host` to `.Endpoint` +* Moved `Request.SkipBodyDownload` method to function `runtime.SkipBodyDownload` +* Removed `azcore.HTTPResponse` interface type +* `arm.NewPoller()` and `runtime.NewPoller()` no longer require an `eu` parameter +* `runtime.NewResponseError()` no longer requires an `error` parameter + +## 0.20.0 (2021-10-22) + +### Breaking Changes +* Removed `arm.Connection` +* Removed `azcore.Credential` and `.NewAnonymousCredential()` + * `NewRPRegistrationPolicy` now requires an `azcore.TokenCredential` +* `runtime.NewPipeline` has a new signature that simplifies implementing custom authentication +* `arm/runtime.RegistrationOptions` embeds `policy.ClientOptions` +* Contents in the `log` package have been slightly renamed. +* Removed `AuthenticationOptions` in favor of `policy.BearerTokenOptions` +* Changed parameters for `NewBearerTokenPolicy()` +* Moved policy config options out of `arm/runtime` and into `arm/policy` + +### Features Added +* Updating Documentation +* Added string typdef `arm.Endpoint` to provide a hint toward expected ARM client endpoints +* `azcore.ClientOptions` contains common pipeline configuration settings +* Added support for multi-tenant authorization in `arm/runtime` +* Require one second minimum when calling `PollUntilDone()` + +### Bug Fixes +* Fixed a potential panic when creating the default Transporter. +* Close LRO initial response body when creating a poller. +* Fixed a panic when recursively cloning structs that contain time.Time. + +## 0.19.0 (2021-08-25) + +### Breaking Changes +* Split content out of `azcore` into various packages. The intent is to separate content based on its usage (common, uncommon, SDK authors). + * `azcore` has all core functionality. + * `log` contains facilities for configuring in-box logging. + * `policy` is used for configuring pipeline options and creating custom pipeline policies. + * `runtime` contains various helpers used by SDK authors and generated content. + * `streaming` has helpers for streaming IO operations. +* `NewTelemetryPolicy()` now requires module and version parameters and the `Value` option has been removed. + * As a result, the `Request.Telemetry()` method has been removed. +* The telemetry policy now includes the SDK prefix `azsdk-go-` so callers no longer need to provide it. +* The `*http.Request` in `runtime.Request` is no longer anonymously embedded. Use the `Raw()` method to access it. +* The `UserAgent` and `Version` constants have been made internal, `Module` and `Version` respectively. + +### Bug Fixes +* Fixed an issue in the retry policy where the request body could be overwritten after a rewind. + +### Other Changes +* Moved modules `armcore` and `to` content into `arm` and `to` packages respectively. + * The `Pipeline()` method on `armcore.Connection` has been replaced by `NewPipeline()` in `arm.Connection`. It takes module and version parameters used by the telemetry policy. +* Poller logic has been consolidated across ARM and core implementations. + * This required some changes to the internal interfaces for core pollers. +* The core poller types have been improved, including more logging and test coverage. + +## 0.18.1 (2021-08-20) + +### Features Added +* Adds an `ETag` type for comparing etags and handling etags on requests +* Simplifies the `requestBodyProgess` and `responseBodyProgress` into a single `progress` object + +### Bugs Fixed +* `JoinPaths` will preserve query parameters encoded in the `root` url. + +### Other Changes +* Bumps dependency on `internal` module to the latest version (v0.7.0) + +## 0.18.0 (2021-07-29) +### Features Added +* Replaces methods from Logger type with two package methods for interacting with the logging functionality. +* `azcore.SetClassifications` replaces `azcore.Logger().SetClassifications` +* `azcore.SetListener` replaces `azcore.Logger().SetListener` + +### Breaking Changes +* Removes `Logger` type from `azcore` + + +## 0.17.0 (2021-07-27) +### Features Added +* Adding TenantID to TokenRequestOptions (https://github.com/Azure/azure-sdk-for-go/pull/14879) +* Adding AuxiliaryTenants to AuthenticationOptions (https://github.com/Azure/azure-sdk-for-go/pull/15123) + +### Breaking Changes +* Rename `AnonymousCredential` to `NewAnonymousCredential` (https://github.com/Azure/azure-sdk-for-go/pull/15104) +* rename `AuthenticationPolicyOptions` to `AuthenticationOptions` (https://github.com/Azure/azure-sdk-for-go/pull/15103) +* Make Header constants private (https://github.com/Azure/azure-sdk-for-go/pull/15038) + + +## 0.16.2 (2021-05-26) +### Features Added +* Improved support for byte arrays [#14715](https://github.com/Azure/azure-sdk-for-go/pull/14715) + + +## 0.16.1 (2021-05-19) +### Features Added +* Add license.txt to azcore module [#14682](https://github.com/Azure/azure-sdk-for-go/pull/14682) + + +## 0.16.0 (2021-05-07) +### Features Added +* Remove extra `*` in UnmarshalAsByteArray() [#14642](https://github.com/Azure/azure-sdk-for-go/pull/14642) + + +## 0.15.1 (2021-05-06) +### Features Added +* Cache the original request body on Request [#14634](https://github.com/Azure/azure-sdk-for-go/pull/14634) + + +## 0.15.0 (2021-05-05) +### Features Added +* Add support for null map and slice +* Export `Response.Payload` method + +### Breaking Changes +* remove `Response.UnmarshalError` as it's no longer required + + +## 0.14.5 (2021-04-23) +### Features Added +* Add `UnmarshalError()` on `azcore.Response` + + +## 0.14.4 (2021-04-22) +### Features Added +* Support for basic LRO polling +* Added type `LROPoller` and supporting types for basic polling on long running operations. +* rename poller param and added doc comment + +### Bugs Fixed +* Fixed content type detection bug in logging. + + +## 0.14.3 (2021-03-29) +### Features Added +* Add support for multi-part form data +* Added method `WriteMultipartFormData()` to Request. + + +## 0.14.2 (2021-03-17) +### Features Added +* Add support for encoding JSON null values +* Adds `NullValue()` and `IsNullValue()` functions for setting and detecting sentinel values used for encoding a JSON null. +* Documentation fixes + +### Bugs Fixed +* Fixed improper error wrapping + + +## 0.14.1 (2021-02-08) +### Features Added +* Add `Pager` and `Poller` interfaces to azcore + + +## 0.14.0 (2021-01-12) +### Features Added +* Accept zero-value options for default values +* Specify zero-value options structs to accept default values. +* Remove `DefaultXxxOptions()` methods. +* Do not silently change TryTimeout on negative values +* make per-try timeout opt-in + + +## 0.13.4 (2020-11-20) +### Features Added +* Include telemetry string in User Agent + + +## 0.13.3 (2020-11-20) +### Features Added +* Updating response body handling on `azcore.Response` + + +## 0.13.2 (2020-11-13) +### Features Added +* Remove implementation of stateless policies as first-class functions. + + +## 0.13.1 (2020-11-05) +### Features Added +* Add `Telemetry()` method to `azcore.Request()` + + +## 0.13.0 (2020-10-14) +### Features Added +* Rename `log` to `logger` to avoid name collision with the log package. +* Documentation improvements +* Simplified `DefaultHTTPClientTransport()` implementation + + +## 0.12.1 (2020-10-13) +### Features Added +* Update `internal` module dependence to `v0.5.0` + + +## 0.12.0 (2020-10-08) +### Features Added +* Removed storage specific content +* Removed internal content to prevent API clutter +* Refactored various policy options to conform with our options pattern + + +## 0.11.0 (2020-09-22) +### Features Added + +* Removed `LogError` and `LogSlowResponse`. +* Renamed `options` in `RequestLogOptions`. +* Updated `NewRequestLogPolicy()` to follow standard pattern for options. +* Refactored `requestLogPolicy.Do()` per above changes. +* Cleaned up/added logging in retry policy. +* Export `NewResponseError()` +* Fix `RequestLogOptions` comment + + +## 0.10.1 (2020-09-17) +### Features Added +* Add default console logger +* Default console logger writes to stderr. To enable it, set env var `AZURE_SDK_GO_LOGGING` to the value 'all'. +* Added `Logger.Writef()` to reduce the need for `ShouldLog()` checks. +* Add `LogLongRunningOperation` + + +## 0.10.0 (2020-09-10) +### Features Added +* The `request` and `transport` interfaces have been refactored to align with the patterns in the standard library. +* `NewRequest()` now uses `http.NewRequestWithContext()` and performs additional validation, it also requires a context parameter. +* The `Policy` and `Transport` interfaces have had their context parameter removed as the context is associated with the underlying `http.Request`. +* `Pipeline.Do()` will validate the HTTP request before sending it through the pipeline, avoiding retries on a malformed request. +* The `Retrier` interface has been replaced with the `NonRetriableError` interface, and the retry policy updated to test for this. +* `Request.SetBody()` now requires a content type parameter for setting the request's MIME type. +* moved path concatenation into `JoinPaths()` func + + +## 0.9.6 (2020-08-18) +### Features Added +* Improvements to body download policy +* Always download the response body for error responses, i.e. HTTP status codes >= 400. +* Simplify variable declarations + + +## 0.9.5 (2020-08-11) +### Features Added +* Set the Content-Length header in `Request.SetBody` + + +## 0.9.4 (2020-08-03) +### Features Added +* Fix cancellation of per try timeout +* Per try timeout is used to ensure that an HTTP operation doesn't take too long, e.g. that a GET on some URL doesn't take an inordinant amount of time. +* Once the HTTP request returns, the per try timeout should be cancelled, not when the response has been read to completion. +* Do not drain response body if there are no more retries +* Do not retry non-idempotent operations when body download fails + + +## 0.9.3 (2020-07-28) +### Features Added +* Add support for custom HTTP request headers +* Inserts an internal policy into the pipeline that can extract HTTP header values from the caller's context, adding them to the request. +* Use `azcore.WithHTTPHeader` to add HTTP headers to a context. +* Remove method specific to Go 1.14 + + +## 0.9.2 (2020-07-28) +### Features Added +* Omit read-only content from request payloads +* If any field in a payload's object graph contains `azure:"ro"`, make a clone of the object graph, omitting all fields with this annotation. +* Verify no fields were dropped +* Handle embedded struct types +* Added test for cloning by value +* Add messages to failures + + +## 0.9.1 (2020-07-22) +### Features Added +* Updated dependency on internal module to fix race condition. + + +## 0.9.0 (2020-07-09) +### Features Added +* Add `HTTPResponse` interface to be used by callers to access the raw HTTP response from an error in the event of an API call failure. +* Updated `sdk/internal` dependency to latest version. +* Rename package alias + + +## 0.8.2 (2020-06-29) +### Features Added +* Added missing documentation comments + +### Bugs Fixed +* Fixed a bug in body download policy. + + +## 0.8.1 (2020-06-26) +### Features Added +* Miscellaneous clean-up reported by linters + + +## 0.8.0 (2020-06-01) +### Features Added +* Differentiate between standard and URL encoding. + + +## 0.7.1 (2020-05-27) +### Features Added +* Add support for for base64 encoding and decoding of payloads. + + +## 0.7.0 (2020-05-12) +### Features Added +* Change `RetryAfter()` to a function. + + +## 0.6.0 (2020-04-29) +### Features Added +* Updating `RetryAfter` to only return the detaion in the RetryAfter header + + +## 0.5.0 (2020-03-23) +### Features Added +* Export `TransportFunc` + +### Breaking Changes +* Removed `IterationDone` + + +## 0.4.1 (2020-02-25) +### Features Added +* Ensure per-try timeout is properly cancelled +* Explicitly call cancel the per-try timeout when the response body has been read/closed by the body download policy. +* When the response body is returned to the caller for reading/closing, wrap it in a `responseBodyReader` that will cancel the timeout when the body is closed. +* `Logger.Should()` will return false if no listener is set. + + +## 0.4.0 (2020-02-18) +### Features Added +* Enable custom `RetryOptions` to be specified per API call +* Added `WithRetryOptions()` that adds a custom `RetryOptions` to the provided context, allowing custom settings per API call. +* Remove 429 from the list of default HTTP status codes for retry. +* Change StatusCodesForRetry to a slice so consumers can append to it. +* Added support for retry-after in HTTP-date format. +* Cleaned up some comments specific to storage. +* Remove `Request.SetQueryParam()` +* Renamed `MaxTries` to `MaxRetries` + +## 0.3.0 (2020-01-16) +### Features Added +* Added `DefaultRetryOptions` to create initialized default options. + +### Breaking Changes +* Removed `Response.CheckStatusCode()` + + +## 0.2.0 (2020-01-15) +### Features Added +* Add support for marshalling and unmarshalling JSON +* Removed `Response.Payload` field +* Exit early when unmarsahlling if there is no payload + + +## 0.1.0 (2020-01-10) +### Features Added +* Initial release diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt new file mode 100644 index 00000000..48ea6616 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/README.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/README.md new file mode 100644 index 00000000..35a74e18 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/README.md @@ -0,0 +1,39 @@ +# Azure Core Client Module for Go + +[![PkgGoDev](https://pkg.go.dev/badge/github.com/Azure/azure-sdk-for-go/sdk/azcore)](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azcore) +[![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/go/go%20-%20azcore%20-%20ci?branchName=main)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=1843&branchName=main) +[![Code Coverage](https://img.shields.io/azure-devops/coverage/azure-sdk/public/1843/main)](https://img.shields.io/azure-devops/coverage/azure-sdk/public/1843/main) + +The `azcore` module provides a set of common interfaces and types for Go SDK client modules. +These modules follow the [Azure SDK Design Guidelines for Go](https://azure.github.io/azure-sdk/golang_introduction.html). + +## Getting started + +This project uses [Go modules](https://github.com/golang/go/wiki/Modules) for versioning and dependency management. + +Typically, you will not need to explicitly install `azcore` as it will be installed as a client module dependency. +To add the latest version to your `go.mod` file, execute the following command. + +```bash +go get github.com/Azure/azure-sdk-for-go/sdk/azcore +``` + +General documentation and examples can be found on [pkg.go.dev](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azcore). + +## Contributing +This project welcomes contributions and suggestions. Most contributions require +you to agree to a Contributor License Agreement (CLA) declaring that you have +the right to, and actually do, grant us the rights to use your contribution. +For details, visit [https://cla.microsoft.com](https://cla.microsoft.com). + +When you submit a pull request, a CLA-bot will automatically determine whether +you need to provide a CLA and decorate the PR appropriately (e.g., label, +comment). Simply follow the instructions provided by the bot. You will only +need to do this once across all repos using our CLA. + +This project has adopted the +[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the +[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any +additional questions or comments. diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/client.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/client.go new file mode 100644 index 00000000..aa34575f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/client.go @@ -0,0 +1,78 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package arm + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + armruntime "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +// ClientOptions contains configuration settings for a client's pipeline. +type ClientOptions = armpolicy.ClientOptions + +// Client is a HTTP client for use with ARM endpoints. It consists of an endpoint, pipeline, and tracing provider. +type Client struct { + ep string + pl runtime.Pipeline + tr tracing.Tracer +} + +// NewClient creates a new Client instance with the provided values. +// This client is intended to be used with Azure Resource Manager endpoints. +// - clientName - the fully qualified name of the client ("module/package.Client"); this is used by the telemetry policy and tracing provider. +// if module and package are the same value, the "module/" prefix can be omitted. +// - moduleVersion - the version of the containing module; used by the telemetry policy +// - cred - the TokenCredential used to authenticate the request +// - options - optional client configurations; pass nil to accept the default values +func NewClient(clientName, moduleVersion string, cred azcore.TokenCredential, options *ClientOptions) (*Client, error) { + mod, client, err := shared.ExtractModuleName(clientName) + if err != nil { + return nil, err + } + + if options == nil { + options = &ClientOptions{} + } + + if !options.Telemetry.Disabled { + if err := shared.ValidateModVer(moduleVersion); err != nil { + return nil, err + } + } + + ep := cloud.AzurePublic.Services[cloud.ResourceManager].Endpoint + if c, ok := options.Cloud.Services[cloud.ResourceManager]; ok { + ep = c.Endpoint + } + pl, err := armruntime.NewPipeline(mod, moduleVersion, cred, runtime.PipelineOptions{}, options) + if err != nil { + return nil, err + } + + tr := options.TracingProvider.NewTracer(client, moduleVersion) + return &Client{ep: ep, pl: pl, tr: tr}, nil +} + +// Endpoint returns the service's base URL for this client. +func (c *Client) Endpoint() string { + return c.ep +} + +// Pipeline returns the pipeline for this client. +func (c *Client) Pipeline() runtime.Pipeline { + return c.pl +} + +// Tracer returns the tracer for this client. +func (c *Client) Tracer() tracing.Tracer { + return c.tr +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/doc.go new file mode 100644 index 00000000..1bdd16a3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/doc.go @@ -0,0 +1,9 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package arm contains functionality specific to Azure Resource Manager clients. +package arm diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go new file mode 100644 index 00000000..187fe82b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_identifier.go @@ -0,0 +1,224 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package resource + +import ( + "fmt" + "strings" +) + +const ( + providersKey = "providers" + subscriptionsKey = "subscriptions" + resourceGroupsLowerKey = "resourcegroups" + locationsKey = "locations" + builtInResourceNamespace = "Microsoft.Resources" +) + +// RootResourceID defines the tenant as the root parent of all other ResourceID. +var RootResourceID = &ResourceID{ + Parent: nil, + ResourceType: TenantResourceType, + Name: "", +} + +// ResourceID represents a resource ID such as `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg`. +// Don't create this type directly, use ParseResourceID instead. +type ResourceID struct { + // Parent is the parent ResourceID of this instance. + // Can be nil if there is no parent. + Parent *ResourceID + + // SubscriptionID is the subscription ID in this resource ID. + // The value can be empty if the resource ID does not contain a subscription ID. + SubscriptionID string + + // ResourceGroupName is the resource group name in this resource ID. + // The value can be empty if the resource ID does not contain a resource group name. + ResourceGroupName string + + // Provider represents the provider name in this resource ID. + // This is only valid when the resource ID represents a resource provider. + // Example: `/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights` + Provider string + + // Location is the location in this resource ID. + // The value can be empty if the resource ID does not contain a location name. + Location string + + // ResourceType represents the type of this resource ID. + ResourceType ResourceType + + // Name is the resource name of this resource ID. + Name string + + isChild bool + stringValue string +} + +// ParseResourceID parses a string to an instance of ResourceID +func ParseResourceID(id string) (*ResourceID, error) { + if len(id) == 0 { + return nil, fmt.Errorf("invalid resource ID: id cannot be empty") + } + + if !strings.HasPrefix(id, "/") { + return nil, fmt.Errorf("invalid resource ID: resource id '%s' must start with '/'", id) + } + + parts := splitStringAndOmitEmpty(id, "/") + + if len(parts) < 2 { + return nil, fmt.Errorf("invalid resource ID: %s", id) + } + + if !strings.EqualFold(parts[0], subscriptionsKey) && !strings.EqualFold(parts[0], providersKey) { + return nil, fmt.Errorf("invalid resource ID: %s", id) + } + + return appendNext(RootResourceID, parts, id) +} + +// String returns the string of the ResourceID +func (id *ResourceID) String() string { + if len(id.stringValue) > 0 { + return id.stringValue + } + + if id.Parent == nil { + return "" + } + + builder := strings.Builder{} + builder.WriteString(id.Parent.String()) + + if id.isChild { + builder.WriteString(fmt.Sprintf("/%s", id.ResourceType.lastType())) + if len(id.Name) > 0 { + builder.WriteString(fmt.Sprintf("/%s", id.Name)) + } + } else { + builder.WriteString(fmt.Sprintf("/providers/%s/%s/%s", id.ResourceType.Namespace, id.ResourceType.Type, id.Name)) + } + + id.stringValue = builder.String() + + return id.stringValue +} + +func newResourceID(parent *ResourceID, resourceTypeName string, resourceName string) *ResourceID { + id := &ResourceID{} + id.init(parent, chooseResourceType(resourceTypeName, parent), resourceName, true) + return id +} + +func newResourceIDWithResourceType(parent *ResourceID, resourceType ResourceType, resourceName string) *ResourceID { + id := &ResourceID{} + id.init(parent, resourceType, resourceName, true) + return id +} + +func newResourceIDWithProvider(parent *ResourceID, providerNamespace, resourceTypeName, resourceName string) *ResourceID { + id := &ResourceID{} + id.init(parent, NewResourceType(providerNamespace, resourceTypeName), resourceName, false) + return id +} + +func chooseResourceType(resourceTypeName string, parent *ResourceID) ResourceType { + if strings.EqualFold(resourceTypeName, resourceGroupsLowerKey) { + return ResourceGroupResourceType + } else if strings.EqualFold(resourceTypeName, subscriptionsKey) && parent != nil && parent.ResourceType.String() == TenantResourceType.String() { + return SubscriptionResourceType + } + + return parent.ResourceType.AppendChild(resourceTypeName) +} + +func (id *ResourceID) init(parent *ResourceID, resourceType ResourceType, name string, isChild bool) { + if parent != nil { + id.Provider = parent.Provider + id.SubscriptionID = parent.SubscriptionID + id.ResourceGroupName = parent.ResourceGroupName + id.Location = parent.Location + } + + if resourceType.String() == SubscriptionResourceType.String() { + id.SubscriptionID = name + } + + if resourceType.lastType() == locationsKey { + id.Location = name + } + + if resourceType.String() == ResourceGroupResourceType.String() { + id.ResourceGroupName = name + } + + if resourceType.String() == ProviderResourceType.String() { + id.Provider = name + } + + if parent == nil { + id.Parent = RootResourceID + } else { + id.Parent = parent + } + id.isChild = isChild + id.ResourceType = resourceType + id.Name = name +} + +func appendNext(parent *ResourceID, parts []string, id string) (*ResourceID, error) { + if len(parts) == 0 { + return parent, nil + } + + if len(parts) == 1 { + // subscriptions and resourceGroups are not valid ids without their names + if strings.EqualFold(parts[0], subscriptionsKey) || strings.EqualFold(parts[0], resourceGroupsLowerKey) { + return nil, fmt.Errorf("invalid resource ID: %s", id) + } + + // resourceGroup must contain either child or provider resource type + if parent.ResourceType.String() == ResourceGroupResourceType.String() { + return nil, fmt.Errorf("invalid resource ID: %s", id) + } + + return newResourceID(parent, parts[0], ""), nil + } + + if strings.EqualFold(parts[0], providersKey) && (len(parts) == 2 || strings.EqualFold(parts[2], providersKey)) { + //provider resource can only be on a tenant or a subscription parent + if parent.ResourceType.String() != SubscriptionResourceType.String() && parent.ResourceType.String() != TenantResourceType.String() { + return nil, fmt.Errorf("invalid resource ID: %s", id) + } + + return appendNext(newResourceIDWithResourceType(parent, ProviderResourceType, parts[1]), parts[2:], id) + } + + if len(parts) > 3 && strings.EqualFold(parts[0], providersKey) { + return appendNext(newResourceIDWithProvider(parent, parts[1], parts[2], parts[3]), parts[4:], id) + } + + if len(parts) > 1 && !strings.EqualFold(parts[0], providersKey) { + return appendNext(newResourceID(parent, parts[0], parts[1]), parts[2:], id) + } + + return nil, fmt.Errorf("invalid resource ID: %s", id) +} + +func splitStringAndOmitEmpty(v, sep string) []string { + r := make([]string, 0) + for _, s := range strings.Split(v, sep) { + if len(s) == 0 { + continue + } + r = append(r, s) + } + + return r +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_type.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_type.go new file mode 100644 index 00000000..ca03ac97 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource/resource_type.go @@ -0,0 +1,114 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package resource + +import ( + "fmt" + "strings" +) + +// SubscriptionResourceType is the ResourceType of a subscription +var SubscriptionResourceType = NewResourceType(builtInResourceNamespace, "subscriptions") + +// ResourceGroupResourceType is the ResourceType of a resource group +var ResourceGroupResourceType = NewResourceType(builtInResourceNamespace, "resourceGroups") + +// TenantResourceType is the ResourceType of a tenant +var TenantResourceType = NewResourceType(builtInResourceNamespace, "tenants") + +// ProviderResourceType is the ResourceType of a provider +var ProviderResourceType = NewResourceType(builtInResourceNamespace, "providers") + +// ResourceType represents an Azure resource type, e.g. "Microsoft.Network/virtualNetworks/subnets". +// Don't create this type directly, use ParseResourceType or NewResourceType instead. +type ResourceType struct { + // Namespace is the namespace of the resource type. + // e.g. "Microsoft.Network" in resource type "Microsoft.Network/virtualNetworks/subnets" + Namespace string + + // Type is the full type name of the resource type. + // e.g. "virtualNetworks/subnets" in resource type "Microsoft.Network/virtualNetworks/subnets" + Type string + + // Types is the slice of all the sub-types of this resource type. + // e.g. ["virtualNetworks", "subnets"] in resource type "Microsoft.Network/virtualNetworks/subnets" + Types []string + + stringValue string +} + +// String returns the string of the ResourceType +func (t ResourceType) String() string { + return t.stringValue +} + +// IsParentOf returns true when the receiver is the parent resource type of the child. +func (t ResourceType) IsParentOf(child ResourceType) bool { + if !strings.EqualFold(t.Namespace, child.Namespace) { + return false + } + if len(t.Types) >= len(child.Types) { + return false + } + for i := range t.Types { + if !strings.EqualFold(t.Types[i], child.Types[i]) { + return false + } + } + + return true +} + +// AppendChild creates an instance of ResourceType using the receiver as the parent with childType appended to it. +func (t ResourceType) AppendChild(childType string) ResourceType { + return NewResourceType(t.Namespace, fmt.Sprintf("%s/%s", t.Type, childType)) +} + +// NewResourceType creates an instance of ResourceType using a provider namespace +// such as "Microsoft.Network" and type such as "virtualNetworks/subnets". +func NewResourceType(providerNamespace, typeName string) ResourceType { + return ResourceType{ + Namespace: providerNamespace, + Type: typeName, + Types: splitStringAndOmitEmpty(typeName, "/"), + stringValue: fmt.Sprintf("%s/%s", providerNamespace, typeName), + } +} + +// ParseResourceType parses the ResourceType from a resource type string (e.g. Microsoft.Network/virtualNetworks/subsets) +// or a resource identifier string. +// e.g. /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft.Network/virtualNetworks/vnet/subnets/mySubnet) +func ParseResourceType(resourceIDOrType string) (ResourceType, error) { + // split the path into segments + parts := splitStringAndOmitEmpty(resourceIDOrType, "/") + + // There must be at least a namespace and type name + if len(parts) < 1 { + return ResourceType{}, fmt.Errorf("invalid resource ID or type: %s", resourceIDOrType) + } + + // if the type is just subscriptions, it is a built-in type in the Microsoft.Resources namespace + if len(parts) == 1 { + // Simple resource type + return NewResourceType(builtInResourceNamespace, parts[0]), nil + } else if strings.Contains(parts[0], ".") { + // Handle resource types (Microsoft.Compute/virtualMachines, Microsoft.Network/virtualNetworks/subnets) + // it is a full type name + return NewResourceType(parts[0], strings.Join(parts[1:], "/")), nil + } else { + // Check if ResourceID + id, err := ParseResourceID(resourceIDOrType) + if err != nil { + return ResourceType{}, err + } + return NewResourceType(id.ResourceType.Namespace, id.ResourceType.Type), nil + } +} + +func (t ResourceType) lastType() string { + return t.Types[len(t.Types)-1] +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy/policy.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy/policy.go new file mode 100644 index 00000000..83cf91e3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy/policy.go @@ -0,0 +1,98 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package policy + +import ( + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// BearerTokenOptions configures the bearer token policy's behavior. +type BearerTokenOptions struct { + // AuxiliaryTenants are additional tenant IDs for authenticating cross-tenant requests. + // The policy will add a token from each of these tenants to every request. The + // authenticating user or service principal must be a guest in these tenants, and the + // policy's credential must support multitenant authentication. + AuxiliaryTenants []string + + // Scopes contains the list of permission scopes required for the token. + Scopes []string +} + +// RegistrationOptions configures the registration policy's behavior. +// All zero-value fields will be initialized with their default values. +type RegistrationOptions struct { + policy.ClientOptions + + // MaxAttempts is the total number of times to attempt automatic registration + // in the event that an attempt fails. + // The default value is 3. + // Set to a value less than zero to disable the policy. + MaxAttempts int + + // PollingDelay is the amount of time to sleep between polling intervals. + // The default value is 15 seconds. + // A value less than zero means no delay between polling intervals (not recommended). + PollingDelay time.Duration + + // PollingDuration is the amount of time to wait before abandoning polling. + // The default valule is 5 minutes. + // NOTE: Setting this to a small value might cause the policy to prematurely fail. + PollingDuration time.Duration +} + +// ClientOptions contains configuration settings for a client's pipeline. +type ClientOptions struct { + policy.ClientOptions + + // AuxiliaryTenants are additional tenant IDs for authenticating cross-tenant requests. + // The client will add a token from each of these tenants to every request. The + // authenticating user or service principal must be a guest in these tenants, and the + // client's credential must support multitenant authentication. + AuxiliaryTenants []string + + // DisableRPRegistration disables the auto-RP registration policy. Defaults to false. + DisableRPRegistration bool +} + +// Clone return a deep copy of the current options. +func (o *ClientOptions) Clone() *ClientOptions { + if o == nil { + return nil + } + copiedOptions := *o + copiedOptions.Cloud.Services = copyMap(copiedOptions.Cloud.Services) + copiedOptions.Logging.AllowedHeaders = copyArray(copiedOptions.Logging.AllowedHeaders) + copiedOptions.Logging.AllowedQueryParams = copyArray(copiedOptions.Logging.AllowedQueryParams) + copiedOptions.Retry.StatusCodes = copyArray(copiedOptions.Retry.StatusCodes) + copiedOptions.PerRetryPolicies = copyArray(copiedOptions.PerRetryPolicies) + copiedOptions.PerCallPolicies = copyArray(copiedOptions.PerCallPolicies) + return &copiedOptions +} + +// copyMap return a new map with all the key value pair in the src map +func copyMap[K comparable, V any](src map[K]V) map[K]V { + if src == nil { + return nil + } + copiedMap := make(map[K]V) + for k, v := range src { + copiedMap[k] = v + } + return copiedMap +} + +// copyMap return a new array with all the elements in the src array +func copyArray[T any](src []T) []T { + if src == nil { + return nil + } + copiedArray := make([]T, len(src)) + copy(copiedArray, src) + return copiedArray +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_identifier.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_identifier.go new file mode 100644 index 00000000..d35d6374 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_identifier.go @@ -0,0 +1,23 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package arm + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource" +) + +// RootResourceID defines the tenant as the root parent of all other ResourceID. +var RootResourceID = resource.RootResourceID + +// ResourceID represents a resource ID such as `/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg`. +// Don't create this type directly, use ParseResourceID instead. +type ResourceID = resource.ResourceID + +// ParseResourceID parses a string to an instance of ResourceID +func ParseResourceID(id string) (*ResourceID, error) { + return resource.ParseResourceID(id) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_type.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_type.go new file mode 100644 index 00000000..fc7fbffd --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/resource_type.go @@ -0,0 +1,40 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package arm + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource" +) + +// SubscriptionResourceType is the ResourceType of a subscription +var SubscriptionResourceType = resource.SubscriptionResourceType + +// ResourceGroupResourceType is the ResourceType of a resource group +var ResourceGroupResourceType = resource.ResourceGroupResourceType + +// TenantResourceType is the ResourceType of a tenant +var TenantResourceType = resource.TenantResourceType + +// ProviderResourceType is the ResourceType of a provider +var ProviderResourceType = resource.ProviderResourceType + +// ResourceType represents an Azure resource type, e.g. "Microsoft.Network/virtualNetworks/subnets". +// Don't create this type directly, use ParseResourceType or NewResourceType instead. +type ResourceType = resource.ResourceType + +// NewResourceType creates an instance of ResourceType using a provider namespace +// such as "Microsoft.Network" and type such as "virtualNetworks/subnets". +func NewResourceType(providerNamespace, typeName string) ResourceType { + return resource.NewResourceType(providerNamespace, typeName) +} + +// ParseResourceType parses the ResourceType from a resource type string (e.g. Microsoft.Network/virtualNetworks/subsets) +// or a resource identifier string. +// e.g. /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft.Network/virtualNetworks/vnet/subnets/mySubnet) +func ParseResourceType(resourceIDOrType string) (ResourceType, error) { + return resource.ParseResourceType(resourceIDOrType) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go new file mode 100644 index 00000000..302c19cd --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go @@ -0,0 +1,65 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "errors" + "reflect" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + azruntime "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" +) + +// NewPipeline creates a pipeline from connection options. Policies from ClientOptions are +// placed after policies from PipelineOptions. The telemetry policy, when enabled, will +// use the specified module and version info. +func NewPipeline(module, version string, cred azcore.TokenCredential, plOpts azruntime.PipelineOptions, options *armpolicy.ClientOptions) (azruntime.Pipeline, error) { + if options == nil { + options = &armpolicy.ClientOptions{} + } + conf, err := getConfiguration(&options.ClientOptions) + if err != nil { + return azruntime.Pipeline{}, err + } + authPolicy := NewBearerTokenPolicy(cred, &armpolicy.BearerTokenOptions{ + AuxiliaryTenants: options.AuxiliaryTenants, + Scopes: []string{conf.Audience + "/.default"}, + }) + perRetry := make([]azpolicy.Policy, len(plOpts.PerRetry), len(plOpts.PerRetry)+1) + copy(perRetry, plOpts.PerRetry) + plOpts.PerRetry = append(perRetry, authPolicy, exported.PolicyFunc(httpTraceNamespacePolicy)) + if !options.DisableRPRegistration { + regRPOpts := armpolicy.RegistrationOptions{ClientOptions: options.ClientOptions} + regPolicy, err := NewRPRegistrationPolicy(cred, ®RPOpts) + if err != nil { + return azruntime.Pipeline{}, err + } + perCall := make([]azpolicy.Policy, len(plOpts.PerCall), len(plOpts.PerCall)+1) + copy(perCall, plOpts.PerCall) + plOpts.PerCall = append(perCall, regPolicy) + } + if plOpts.APIVersion.Name == "" { + plOpts.APIVersion.Name = "api-version" + } + return azruntime.NewPipeline(module, version, plOpts, &options.ClientOptions), nil +} + +func getConfiguration(o *azpolicy.ClientOptions) (cloud.ServiceConfiguration, error) { + c := cloud.AzurePublic + if !reflect.ValueOf(o.Cloud).IsZero() { + c = o.Cloud + } + if conf, ok := c.Services[cloud.ResourceManager]; ok && conf.Endpoint != "" && conf.Audience != "" { + return conf, nil + } else { + return conf, errors.New("provided Cloud field is missing Azure Resource Manager configuration") + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_bearer_token.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_bearer_token.go new file mode 100644 index 00000000..83f1bf86 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_bearer_token.go @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "encoding/base64" + "fmt" + "net/http" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + azruntime "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/internal/temporal" +) + +const headerAuxiliaryAuthorization = "x-ms-authorization-auxiliary" + +// acquiringResourceState holds data for an auxiliary token request +type acquiringResourceState struct { + ctx context.Context + p *BearerTokenPolicy + tenant string +} + +// acquire acquires or updates the resource; only one +// thread/goroutine at a time ever calls this function +func acquire(state acquiringResourceState) (newResource azcore.AccessToken, newExpiration time.Time, err error) { + tk, err := state.p.cred.GetToken(state.ctx, azpolicy.TokenRequestOptions{ + Scopes: state.p.scopes, + TenantID: state.tenant, + }) + if err != nil { + return azcore.AccessToken{}, time.Time{}, err + } + return tk, tk.ExpiresOn, nil +} + +// BearerTokenPolicy authorizes requests with bearer tokens acquired from a TokenCredential. +type BearerTokenPolicy struct { + auxResources map[string]*temporal.Resource[azcore.AccessToken, acquiringResourceState] + btp *azruntime.BearerTokenPolicy + cred azcore.TokenCredential + scopes []string +} + +// NewBearerTokenPolicy creates a policy object that authorizes requests with bearer tokens. +// cred: an azcore.TokenCredential implementation such as a credential object from azidentity +// opts: optional settings. Pass nil to accept default values; this is the same as passing a zero-value options. +func NewBearerTokenPolicy(cred azcore.TokenCredential, opts *armpolicy.BearerTokenOptions) *BearerTokenPolicy { + if opts == nil { + opts = &armpolicy.BearerTokenOptions{} + } + p := &BearerTokenPolicy{cred: cred} + p.auxResources = make(map[string]*temporal.Resource[azcore.AccessToken, acquiringResourceState], len(opts.AuxiliaryTenants)) + for _, t := range opts.AuxiliaryTenants { + p.auxResources[t] = temporal.NewResource(acquire) + } + p.scopes = make([]string, len(opts.Scopes)) + copy(p.scopes, opts.Scopes) + p.btp = azruntime.NewBearerTokenPolicy(cred, opts.Scopes, &azpolicy.BearerTokenOptions{ + AuthorizationHandler: azpolicy.AuthorizationHandler{ + OnChallenge: p.onChallenge, + OnRequest: p.onRequest, + }, + }) + return p +} + +func (b *BearerTokenPolicy) onChallenge(req *azpolicy.Request, res *http.Response, authNZ func(azpolicy.TokenRequestOptions) error) error { + challenge := res.Header.Get(shared.HeaderWWWAuthenticate) + claims, err := parseChallenge(challenge) + if err != nil { + // the challenge contains claims we can't parse + return err + } else if claims != "" { + // request a new token having the specified claims, send the request again + return authNZ(azpolicy.TokenRequestOptions{Claims: claims, Scopes: b.scopes}) + } + // auth challenge didn't include claims, so this is a simple authorization failure + return azruntime.NewResponseError(res) +} + +// onRequest authorizes requests with one or more bearer tokens +func (b *BearerTokenPolicy) onRequest(req *azpolicy.Request, authNZ func(azpolicy.TokenRequestOptions) error) error { + // authorize the request with a token for the primary tenant + err := authNZ(azpolicy.TokenRequestOptions{Scopes: b.scopes}) + if err != nil || len(b.auxResources) == 0 { + return err + } + // add tokens for auxiliary tenants + as := acquiringResourceState{ + ctx: req.Raw().Context(), + p: b, + } + auxTokens := make([]string, 0, len(b.auxResources)) + for tenant, er := range b.auxResources { + as.tenant = tenant + auxTk, err := er.Get(as) + if err != nil { + return err + } + auxTokens = append(auxTokens, fmt.Sprintf("%s%s", shared.BearerTokenPrefix, auxTk.Token)) + } + req.Raw().Header.Set(headerAuxiliaryAuthorization, strings.Join(auxTokens, ", ")) + return nil +} + +// Do authorizes a request with a bearer token +func (b *BearerTokenPolicy) Do(req *azpolicy.Request) (*http.Response, error) { + return b.btp.Do(req) +} + +// parseChallenge parses claims from an authentication challenge issued by ARM so a client can request a token +// that will satisfy conditional access policies. It returns a non-nil error when the given value contains +// claims it can't parse. If the value contains no claims, it returns an empty string and a nil error. +func parseChallenge(wwwAuthenticate string) (string, error) { + claims := "" + var err error + for _, param := range strings.Split(wwwAuthenticate, ",") { + if _, after, found := strings.Cut(param, "claims="); found { + if claims != "" { + // The header contains multiple challenges, at least two of which specify claims. The specs allow this + // but it's unclear what a client should do in this case and there's as yet no concrete example of it. + err = fmt.Errorf("found multiple claims challenges in %q", wwwAuthenticate) + break + } + // trim stuff that would get an error from RawURLEncoding; claims may or may not be padded + claims = strings.Trim(after, `\"=`) + // we don't return this error because it's something unhelpful like "illegal base64 data at input byte 42" + if b, decErr := base64.RawURLEncoding.DecodeString(claims); decErr == nil { + claims = string(b) + } else { + err = fmt.Errorf("failed to parse claims from %q", wwwAuthenticate) + break + } + } + } + return claims, err +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_register_rp.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_register_rp.go new file mode 100644 index 00000000..c3f5eeaf --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_register_rp.go @@ -0,0 +1,345 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + armpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + azpolicy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +const ( + // LogRPRegistration entries contain information specific to the automatic registration of an RP. + // Entries of this classification are written IFF the policy needs to take any action. + LogRPRegistration log.Event = "RPRegistration" +) + +// init sets any default values +func setDefaults(r *armpolicy.RegistrationOptions) { + if r.MaxAttempts == 0 { + r.MaxAttempts = 3 + } else if r.MaxAttempts < 0 { + r.MaxAttempts = 0 + } + if r.PollingDelay == 0 { + r.PollingDelay = 15 * time.Second + } else if r.PollingDelay < 0 { + r.PollingDelay = 0 + } + if r.PollingDuration == 0 { + r.PollingDuration = 5 * time.Minute + } +} + +// NewRPRegistrationPolicy creates a policy object configured using the specified options. +// The policy controls whether an unregistered resource provider should automatically be +// registered. See https://aka.ms/rps-not-found for more information. +func NewRPRegistrationPolicy(cred azcore.TokenCredential, o *armpolicy.RegistrationOptions) (azpolicy.Policy, error) { + if o == nil { + o = &armpolicy.RegistrationOptions{} + } + conf, err := getConfiguration(&o.ClientOptions) + if err != nil { + return nil, err + } + authPolicy := NewBearerTokenPolicy(cred, &armpolicy.BearerTokenOptions{Scopes: []string{conf.Audience + "/.default"}}) + p := &rpRegistrationPolicy{ + endpoint: conf.Endpoint, + pipeline: runtime.NewPipeline(shared.Module, shared.Version, runtime.PipelineOptions{PerRetry: []azpolicy.Policy{authPolicy}}, &o.ClientOptions), + options: *o, + } + // init the copy + setDefaults(&p.options) + return p, nil +} + +type rpRegistrationPolicy struct { + endpoint string + pipeline runtime.Pipeline + options armpolicy.RegistrationOptions +} + +func (r *rpRegistrationPolicy) Do(req *azpolicy.Request) (*http.Response, error) { + if r.options.MaxAttempts == 0 { + // policy is disabled + return req.Next() + } + const registeredState = "Registered" + var rp string + var resp *http.Response + for attempts := 0; attempts < r.options.MaxAttempts; attempts++ { + var err error + // make the original request + resp, err = req.Next() + // getting a 409 is the first indication that the RP might need to be registered, check error response + if err != nil || resp.StatusCode != http.StatusConflict { + return resp, err + } + var reqErr requestError + if err = runtime.UnmarshalAsJSON(resp, &reqErr); err != nil { + return resp, err + } + if reqErr.ServiceError == nil { + // missing service error info. just return the response + // to the caller so its error unmarshalling will kick in + return resp, err + } + if !isUnregisteredRPCode(reqErr.ServiceError.Code) { + // not a 409 due to unregistered RP. just return the response + // to the caller so its error unmarshalling will kick in + return resp, err + } + // RP needs to be registered. start by getting the subscription ID from the original request + subID, err := getSubscription(req.Raw().URL.Path) + if err != nil { + return resp, err + } + // now get the RP from the error + rp, err = getProvider(reqErr) + if err != nil { + return resp, err + } + logRegistrationExit := func(v interface{}) { + log.Writef(LogRPRegistration, "END registration for %s: %v", rp, v) + } + log.Writef(LogRPRegistration, "BEGIN registration for %s", rp) + // create client and make the registration request + // we use the scheme and host from the original request + rpOps := &providersOperations{ + p: r.pipeline, + u: r.endpoint, + subID: subID, + } + if _, err = rpOps.Register(req.Raw().Context(), rp); err != nil { + logRegistrationExit(err) + return resp, err + } + // RP was registered, however we need to wait for the registration to complete + pollCtx, pollCancel := context.WithTimeout(req.Raw().Context(), r.options.PollingDuration) + var lastRegState string + for { + // get the current registration state + getResp, err := rpOps.Get(pollCtx, rp) + if err != nil { + pollCancel() + logRegistrationExit(err) + return resp, err + } + if getResp.Provider.RegistrationState != nil && !strings.EqualFold(*getResp.Provider.RegistrationState, lastRegState) { + // registration state has changed, or was updated for the first time + lastRegState = *getResp.Provider.RegistrationState + log.Writef(LogRPRegistration, "registration state is %s", lastRegState) + } + if strings.EqualFold(lastRegState, registeredState) { + // registration complete + pollCancel() + logRegistrationExit(lastRegState) + break + } + // wait before trying again + select { + case <-time.After(r.options.PollingDelay): + // continue polling + case <-pollCtx.Done(): + pollCancel() + logRegistrationExit(pollCtx.Err()) + return resp, pollCtx.Err() + } + } + // RP was successfully registered, retry the original request + err = req.RewindBody() + if err != nil { + return resp, err + } + } + // if we get here it means we exceeded the number of attempts + return resp, fmt.Errorf("exceeded attempts to register %s", rp) +} + +var unregisteredRPCodes = []string{ + "MissingSubscriptionRegistration", + "MissingRegistrationForResourceProvider", + "Subscription Not Registered", +} + +func isUnregisteredRPCode(errorCode string) bool { + for _, code := range unregisteredRPCodes { + if strings.EqualFold(errorCode, code) { + return true + } + } + return false +} + +func getSubscription(path string) (string, error) { + parts := strings.Split(path, "/") + for i, v := range parts { + if v == "subscriptions" && (i+1) < len(parts) { + return parts[i+1], nil + } + } + return "", fmt.Errorf("failed to obtain subscription ID from %s", path) +} + +func getProvider(re requestError) (string, error) { + if len(re.ServiceError.Details) > 0 { + return re.ServiceError.Details[0].Target, nil + } + return "", errors.New("unexpected empty Details") +} + +// minimal error definitions to simplify detection +type requestError struct { + ServiceError *serviceError `json:"error"` +} + +type serviceError struct { + Code string `json:"code"` + Details []serviceErrorDetails `json:"details"` +} + +type serviceErrorDetails struct { + Code string `json:"code"` + Target string `json:"target"` +} + +/////////////////////////////////////////////////////////////////////////////////////////////// +// the following code was copied from module armresources, providers.go and models.go +// only the minimum amount of code was copied to get this working and some edits were made. +/////////////////////////////////////////////////////////////////////////////////////////////// + +type providersOperations struct { + p runtime.Pipeline + u string + subID string +} + +// Get - Gets the specified resource provider. +func (client *providersOperations) Get(ctx context.Context, resourceProviderNamespace string) (providerResponse, error) { + req, err := client.getCreateRequest(ctx, resourceProviderNamespace) + if err != nil { + return providerResponse{}, err + } + resp, err := client.p.Do(req) + if err != nil { + return providerResponse{}, err + } + result, err := client.getHandleResponse(resp) + if err != nil { + return providerResponse{}, err + } + return result, nil +} + +// getCreateRequest creates the Get request. +func (client *providersOperations) getCreateRequest(ctx context.Context, resourceProviderNamespace string) (*azpolicy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}" + urlPath = strings.ReplaceAll(urlPath, "{resourceProviderNamespace}", url.PathEscape(resourceProviderNamespace)) + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subID)) + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.u, urlPath)) + if err != nil { + return nil, err + } + query := req.Raw().URL.Query() + query.Set("api-version", "2019-05-01") + req.Raw().URL.RawQuery = query.Encode() + return req, nil +} + +// getHandleResponse handles the Get response. +func (client *providersOperations) getHandleResponse(resp *http.Response) (providerResponse, error) { + if !runtime.HasStatusCode(resp, http.StatusOK) { + return providerResponse{}, exported.NewResponseError(resp) + } + result := providerResponse{RawResponse: resp} + err := runtime.UnmarshalAsJSON(resp, &result.Provider) + if err != nil { + return providerResponse{}, err + } + return result, err +} + +// Register - Registers a subscription with a resource provider. +func (client *providersOperations) Register(ctx context.Context, resourceProviderNamespace string) (providerResponse, error) { + req, err := client.registerCreateRequest(ctx, resourceProviderNamespace) + if err != nil { + return providerResponse{}, err + } + resp, err := client.p.Do(req) + if err != nil { + return providerResponse{}, err + } + result, err := client.registerHandleResponse(resp) + if err != nil { + return providerResponse{}, err + } + return result, nil +} + +// registerCreateRequest creates the Register request. +func (client *providersOperations) registerCreateRequest(ctx context.Context, resourceProviderNamespace string) (*azpolicy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/register" + urlPath = strings.ReplaceAll(urlPath, "{resourceProviderNamespace}", url.PathEscape(resourceProviderNamespace)) + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subID)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.u, urlPath)) + if err != nil { + return nil, err + } + query := req.Raw().URL.Query() + query.Set("api-version", "2019-05-01") + req.Raw().URL.RawQuery = query.Encode() + return req, nil +} + +// registerHandleResponse handles the Register response. +func (client *providersOperations) registerHandleResponse(resp *http.Response) (providerResponse, error) { + if !runtime.HasStatusCode(resp, http.StatusOK) { + return providerResponse{}, exported.NewResponseError(resp) + } + result := providerResponse{RawResponse: resp} + err := runtime.UnmarshalAsJSON(resp, &result.Provider) + if err != nil { + return providerResponse{}, err + } + return result, err +} + +// ProviderResponse is the response envelope for operations that return a Provider type. +type providerResponse struct { + // Resource provider information. + Provider *provider + + // RawResponse contains the underlying HTTP response. + RawResponse *http.Response +} + +// Provider - Resource provider information. +type provider struct { + // The provider ID. + ID *string `json:"id,omitempty"` + + // The namespace of the resource provider. + Namespace *string `json:"namespace,omitempty"` + + // The registration policy of the resource provider. + RegistrationPolicy *string `json:"registrationPolicy,omitempty"` + + // The registration state of the resource provider. + RegistrationState *string `json:"registrationState,omitempty"` +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_trace_namespace.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_trace_namespace.go new file mode 100644 index 00000000..b46a0107 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/policy_trace_namespace.go @@ -0,0 +1,30 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +// httpTraceNamespacePolicy is a policy that adds the az.namespace attribute to the current Span +func httpTraceNamespacePolicy(req *policy.Request) (resp *http.Response, err error) { + rawTracer := req.Raw().Context().Value(shared.CtxWithTracingTracer{}) + if tracer, ok := rawTracer.(tracing.Tracer); ok { + rt, err := resource.ParseResourceType(req.Raw().URL.Path) + if err == nil { + // add the namespace attribute to the current span + span := tracer.SpanFromContext(req.Raw().Context()) + span.SetAttributes(tracing.Attribute{Key: "az.namespace", Value: rt.Namespace}) + } + } + return req.Next() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/runtime.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/runtime.go new file mode 100644 index 00000000..1400d437 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/runtime.go @@ -0,0 +1,24 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + +func init() { + cloud.AzureChina.Services[cloud.ResourceManager] = cloud.ServiceConfiguration{ + Audience: "https://management.core.chinacloudapi.cn", + Endpoint: "https://management.chinacloudapi.cn", + } + cloud.AzureGovernment.Services[cloud.ResourceManager] = cloud.ServiceConfiguration{ + Audience: "https://management.core.usgovcloudapi.net", + Endpoint: "https://management.usgovcloudapi.net", + } + cloud.AzurePublic.Services[cloud.ResourceManager] = cloud.ServiceConfiguration{ + Audience: "https://management.core.windows.net/", + Endpoint: "https://management.azure.com", + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/ci.yml b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/ci.yml new file mode 100644 index 00000000..aab92185 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/ci.yml @@ -0,0 +1,29 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. +trigger: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/azcore/ + - eng/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/azcore/ + - eng/ + +stages: +- template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml + parameters: + ServiceDirectory: azcore diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/cloud.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/cloud.go new file mode 100644 index 00000000..9d077a3e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/cloud.go @@ -0,0 +1,44 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package cloud + +var ( + // AzureChina contains configuration for Azure China. + AzureChina = Configuration{ + ActiveDirectoryAuthorityHost: "https://login.chinacloudapi.cn/", Services: map[ServiceName]ServiceConfiguration{}, + } + // AzureGovernment contains configuration for Azure Government. + AzureGovernment = Configuration{ + ActiveDirectoryAuthorityHost: "https://login.microsoftonline.us/", Services: map[ServiceName]ServiceConfiguration{}, + } + // AzurePublic contains configuration for Azure Public Cloud. + AzurePublic = Configuration{ + ActiveDirectoryAuthorityHost: "https://login.microsoftonline.com/", Services: map[ServiceName]ServiceConfiguration{}, + } +) + +// ServiceName identifies a cloud service. +type ServiceName string + +// ResourceManager is a global constant identifying Azure Resource Manager. +const ResourceManager ServiceName = "resourceManager" + +// ServiceConfiguration configures a specific cloud service such as Azure Resource Manager. +type ServiceConfiguration struct { + // Audience is the audience the client will request for its access tokens. + Audience string + // Endpoint is the service's base URL. + Endpoint string +} + +// Configuration configures a cloud. +type Configuration struct { + // ActiveDirectoryAuthorityHost is the base URL of the cloud's Azure Active Directory. + ActiveDirectoryAuthorityHost string + // Services contains configuration for the cloud's services. + Services map[ServiceName]ServiceConfiguration +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/doc.go new file mode 100644 index 00000000..985b1bde --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud/doc.go @@ -0,0 +1,53 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +/* +Package cloud implements a configuration API for applications deployed to sovereign or private Azure clouds. + +Azure SDK client configuration defaults are appropriate for Azure Public Cloud (sometimes referred to as +"Azure Commercial" or simply "Microsoft Azure"). This package enables applications deployed to other +Azure Clouds to configure clients appropriately. + +This package contains predefined configuration for well-known sovereign clouds such as Azure Government and +Azure China. Azure SDK clients accept this configuration via the Cloud field of azcore.ClientOptions. For +example, configuring a credential and ARM client for Azure Government: + + opts := azcore.ClientOptions{Cloud: cloud.AzureGovernment} + cred, err := azidentity.NewDefaultAzureCredential( + &azidentity.DefaultAzureCredentialOptions{ClientOptions: opts}, + ) + handle(err) + + client, err := armsubscription.NewClient( + cred, &arm.ClientOptions{ClientOptions: opts}, + ) + handle(err) + +Applications deployed to a private cloud such as Azure Stack create a Configuration object with +appropriate values: + + c := cloud.Configuration{ + ActiveDirectoryAuthorityHost: "https://...", + Services: map[cloud.ServiceName]cloud.ServiceConfiguration{ + cloud.ResourceManager: { + Audience: "...", + Endpoint: "https://...", + }, + }, + } + opts := azcore.ClientOptions{Cloud: c} + + cred, err := azidentity.NewDefaultAzureCredential( + &azidentity.DefaultAzureCredentialOptions{ClientOptions: opts}, + ) + handle(err) + + client, err := armsubscription.NewClient( + cred, &arm.ClientOptions{ClientOptions: opts}, + ) + handle(err) +*/ +package cloud diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/core.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/core.go new file mode 100644 index 00000000..e10b1ea0 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/core.go @@ -0,0 +1,140 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azcore + +import ( + "reflect" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +// AccessToken represents an Azure service bearer access token with expiry information. +type AccessToken = exported.AccessToken + +// TokenCredential represents a credential capable of providing an OAuth token. +type TokenCredential = exported.TokenCredential + +// holds sentinel values used to send nulls +var nullables map[reflect.Type]interface{} = map[reflect.Type]interface{}{} + +// NullValue is used to send an explicit 'null' within a request. +// This is typically used in JSON-MERGE-PATCH operations to delete a value. +func NullValue[T any]() T { + t := shared.TypeOfT[T]() + v, found := nullables[t] + if !found { + var o reflect.Value + if k := t.Kind(); k == reflect.Map { + o = reflect.MakeMap(t) + } else if k == reflect.Slice { + // empty slices appear to all point to the same data block + // which causes comparisons to become ambiguous. so we create + // a slice with len/cap of one which ensures a unique address. + o = reflect.MakeSlice(t, 1, 1) + } else { + o = reflect.New(t.Elem()) + } + v = o.Interface() + nullables[t] = v + } + // return the sentinel object + return v.(T) +} + +// IsNullValue returns true if the field contains a null sentinel value. +// This is used by custom marshallers to properly encode a null value. +func IsNullValue[T any](v T) bool { + // see if our map has a sentinel object for this *T + t := reflect.TypeOf(v) + if o, found := nullables[t]; found { + o1 := reflect.ValueOf(o) + v1 := reflect.ValueOf(v) + // we found it; return true if v points to the sentinel object. + // NOTE: maps and slices can only be compared to nil, else you get + // a runtime panic. so we compare addresses instead. + return o1.Pointer() == v1.Pointer() + } + // no sentinel object for this *t + return false +} + +// ClientOptions contains configuration settings for a client's pipeline. +type ClientOptions = policy.ClientOptions + +// Client is a basic HTTP client. It consists of a pipeline and tracing provider. +type Client struct { + pl runtime.Pipeline + tr tracing.Tracer + + // cached on the client to support shallow copying with new values + tp tracing.Provider + modVer string + namespace string +} + +// NewClient creates a new Client instance with the provided values. +// - clientName - the fully qualified name of the client ("module/package.Client"); this is used by the telemetry policy and tracing provider. +// if module and package are the same value, the "module/" prefix can be omitted. +// - moduleVersion - the semantic version of the containing module; used by the telemetry policy +// - plOpts - pipeline configuration options; can be the zero-value +// - options - optional client configurations; pass nil to accept the default values +func NewClient(clientName, moduleVersion string, plOpts runtime.PipelineOptions, options *ClientOptions) (*Client, error) { + mod, client, err := shared.ExtractModuleName(clientName) + if err != nil { + return nil, err + } + + if options == nil { + options = &ClientOptions{} + } + + if !options.Telemetry.Disabled { + if err := shared.ValidateModVer(moduleVersion); err != nil { + return nil, err + } + } + + pl := runtime.NewPipeline(mod, moduleVersion, plOpts, options) + + tr := options.TracingProvider.NewTracer(client, moduleVersion) + if tr.Enabled() && plOpts.TracingNamespace != "" { + tr.SetAttributes(tracing.Attribute{Key: "az.namespace", Value: plOpts.TracingNamespace}) + } + + return &Client{ + pl: pl, + tr: tr, + tp: options.TracingProvider, + modVer: moduleVersion, + namespace: plOpts.TracingNamespace, + }, nil +} + +// Pipeline returns the pipeline for this client. +func (c *Client) Pipeline() runtime.Pipeline { + return c.pl +} + +// Tracer returns the tracer for this client. +func (c *Client) Tracer() tracing.Tracer { + return c.tr +} + +// WithClientName returns a shallow copy of the Client with its tracing client name changed to clientName. +// Note that the values for module name and version will be preserved from the source Client. +// - clientName - the fully qualified name of the client ("package.Client"); this is used by the tracing provider when creating spans +func (c *Client) WithClientName(clientName string) *Client { + tr := c.tp.NewTracer(clientName, c.modVer) + if tr.Enabled() && c.namespace != "" { + tr.SetAttributes(tracing.Attribute{Key: "az.namespace", Value: c.namespace}) + } + return &Client{pl: c.pl, tr: tr, tp: c.tp, modVer: c.modVer, namespace: c.namespace} +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/doc.go new file mode 100644 index 00000000..28c64678 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/doc.go @@ -0,0 +1,257 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +/* +Package azcore implements an HTTP request/response middleware pipeline used by Azure SDK clients. + +The middleware consists of three components. + + - One or more Policy instances. + - A Transporter instance. + - A Pipeline instance that combines the Policy and Transporter instances. + +# Implementing the Policy Interface + +A Policy can be implemented in two ways; as a first-class function for a stateless Policy, or as +a method on a type for a stateful Policy. Note that HTTP requests made via the same pipeline share +the same Policy instances, so if a Policy mutates its state it MUST be properly synchronized to +avoid race conditions. + +A Policy's Do method is called when an HTTP request wants to be sent over the network. The Do method can +perform any operation(s) it desires. For example, it can log the outgoing request, mutate the URL, headers, +and/or query parameters, inject a failure, etc. Once the Policy has successfully completed its request +work, it must call the Next() method on the *policy.Request instance in order to pass the request to the +next Policy in the chain. + +When an HTTP response comes back, the Policy then gets a chance to process the response/error. The Policy instance +can log the response, retry the operation if it failed due to a transient error or timeout, unmarshal the response +body, etc. Once the Policy has successfully completed its response work, it must return the *http.Response +and error instances to its caller. + +Template for implementing a stateless Policy: + + type policyFunc func(*policy.Request) (*http.Response, error) + + // Do implements the Policy interface on policyFunc. + func (pf policyFunc) Do(req *policy.Request) (*http.Response, error) { + return pf(req) + } + + func NewMyStatelessPolicy() policy.Policy { + return policyFunc(func(req *policy.Request) (*http.Response, error) { + // TODO: mutate/process Request here + + // forward Request to next Policy & get Response/error + resp, err := req.Next() + + // TODO: mutate/process Response/error here + + // return Response/error to previous Policy + return resp, err + }) + } + +Template for implementing a stateful Policy: + + type MyStatefulPolicy struct { + // TODO: add configuration/setting fields here + } + + // TODO: add initialization args to NewMyStatefulPolicy() + func NewMyStatefulPolicy() policy.Policy { + return &MyStatefulPolicy{ + // TODO: initialize configuration/setting fields here + } + } + + func (p *MyStatefulPolicy) Do(req *policy.Request) (resp *http.Response, err error) { + // TODO: mutate/process Request here + + // forward Request to next Policy & get Response/error + resp, err := req.Next() + + // TODO: mutate/process Response/error here + + // return Response/error to previous Policy + return resp, err + } + +# Implementing the Transporter Interface + +The Transporter interface is responsible for sending the HTTP request and returning the corresponding +HTTP response or error. The Transporter is invoked by the last Policy in the chain. The default Transporter +implementation uses a shared http.Client from the standard library. + +The same stateful/stateless rules for Policy implementations apply to Transporter implementations. + +# Using Policy and Transporter Instances Via a Pipeline + +To use the Policy and Transporter instances, an application passes them to the runtime.NewPipeline function. + + func NewPipeline(transport Transporter, policies ...Policy) Pipeline + +The specified Policy instances form a chain and are invoked in the order provided to NewPipeline +followed by the Transporter. + +Once the Pipeline has been created, create a runtime.Request instance and pass it to Pipeline's Do method. + + func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*Request, error) + + func (p Pipeline) Do(req *Request) (*http.Request, error) + +The Pipeline.Do method sends the specified Request through the chain of Policy and Transporter +instances. The response/error is then sent through the same chain of Policy instances in reverse +order. For example, assuming there are Policy types PolicyA, PolicyB, and PolicyC along with +TransportA. + + pipeline := NewPipeline(TransportA, PolicyA, PolicyB, PolicyC) + +The flow of Request and Response looks like the following: + + policy.Request -> PolicyA -> PolicyB -> PolicyC -> TransportA -----+ + | + HTTP(S) endpoint + | + caller <--------- PolicyA <- PolicyB <- PolicyC <- http.Response-+ + +# Creating a Request Instance + +The Request instance passed to Pipeline's Do method is a wrapper around an *http.Request. It also +contains some internal state and provides various convenience methods. You create a Request instance +by calling the runtime.NewRequest function: + + func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*Request, error) + +If the Request should contain a body, call the SetBody method. + + func (req *Request) SetBody(body ReadSeekCloser, contentType string) error + +A seekable stream is required so that upon retry, the retry Policy instance can seek the stream +back to the beginning before retrying the network request and re-uploading the body. + +# Sending an Explicit Null + +Operations like JSON-MERGE-PATCH send a JSON null to indicate a value should be deleted. + + { + "delete-me": null + } + +This requirement conflicts with the SDK's default marshalling that specifies "omitempty" as +a means to resolve the ambiguity between a field to be excluded and its zero-value. + + type Widget struct { + Name *string `json:",omitempty"` + Count *int `json:",omitempty"` + } + +In the above example, Name and Count are defined as pointer-to-type to disambiguate between +a missing value (nil) and a zero-value (0) which might have semantic differences. + +In a PATCH operation, any fields left as nil are to have their values preserved. When updating +a Widget's count, one simply specifies the new value for Count, leaving Name nil. + +To fulfill the requirement for sending a JSON null, the NullValue() function can be used. + + w := Widget{ + Count: azcore.NullValue[*int](), + } + +This sends an explict "null" for Count, indicating that any current value for Count should be deleted. + +# Processing the Response + +When the HTTP response is received, the *http.Response is returned directly. Each Policy instance +can inspect/mutate the *http.Response. + +# Built-in Logging + +To enable logging, set environment variable AZURE_SDK_GO_LOGGING to "all" before executing your program. + +By default the logger writes to stderr. This can be customized by calling log.SetListener, providing +a callback that writes to the desired location. Any custom logging implementation MUST provide its +own synchronization to handle concurrent invocations. + +See the docs for the log package for further details. + +# Pageable Operations + +Pageable operations return potentially large data sets spread over multiple GET requests. The result of +each GET is a "page" of data consisting of a slice of items. + +Pageable operations can be identified by their New*Pager naming convention and return type of *runtime.Pager[T]. + + func (c *WidgetClient) NewListWidgetsPager(o *Options) *runtime.Pager[PageResponse] + +The call to WidgetClient.NewListWidgetsPager() returns an instance of *runtime.Pager[T] for fetching pages +and determining if there are more pages to fetch. No IO calls are made until the NextPage() method is invoked. + + pager := widgetClient.NewListWidgetsPager(nil) + for pager.More() { + page, err := pager.NextPage(context.TODO()) + // handle err + for _, widget := range page.Values { + // process widget + } + } + +# Long-Running Operations + +Long-running operations (LROs) are operations consisting of an initial request to start the operation followed +by polling to determine when the operation has reached a terminal state. An LRO's terminal state is one +of the following values. + + - Succeeded - the LRO completed successfully + - Failed - the LRO failed to complete + - Canceled - the LRO was canceled + +LROs can be identified by their Begin* prefix and their return type of *runtime.Poller[T]. + + func (c *WidgetClient) BeginCreateOrUpdate(ctx context.Context, w Widget, o *Options) (*runtime.Poller[Response], error) + +When a call to WidgetClient.BeginCreateOrUpdate() returns a nil error, it means that the LRO has started. +It does _not_ mean that the widget has been created or updated (or failed to be created/updated). + +The *runtime.Poller[T] provides APIs for determining the state of the LRO. To wait for the LRO to complete, +call the PollUntilDone() method. + + poller, err := widgetClient.BeginCreateOrUpdate(context.TODO(), Widget{}, nil) + // handle err + result, err := poller.PollUntilDone(context.TODO(), nil) + // handle err + // use result + +The call to PollUntilDone() will block the current goroutine until the LRO has reached a terminal state or the +context is canceled/timed out. + +Note that LROs can take anywhere from several seconds to several minutes. The duration is operation-dependent. Due to +this variant behavior, pollers do _not_ have a preconfigured time-out. Use a context with the appropriate cancellation +mechanism as required. + +# Resume Tokens + +Pollers provide the ability to serialize their state into a "resume token" which can be used by another process to +recreate the poller. This is achieved via the runtime.Poller[T].ResumeToken() method. + + token, err := poller.ResumeToken() + // handle error + +Note that a token can only be obtained for a poller that's in a non-terminal state. Also note that any subsequent calls +to poller.Poll() might change the poller's state. In this case, a new token should be created. + +After the token has been obtained, it can be used to recreate an instance of the originating poller. + + poller, err := widgetClient.BeginCreateOrUpdate(nil, Widget{}, &Options{ + ResumeToken: token, + }) + +When resuming a poller, no IO is performed, and zero-value arguments can be used for everything but the Options.ResumeToken. + +Resume tokens are unique per service client and operation. Attempting to resume a poller for LRO BeginB() with a token from LRO +BeginA() will result in an error. +*/ +package azcore diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/errors.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/errors.go new file mode 100644 index 00000000..17bd50c6 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/errors.go @@ -0,0 +1,14 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azcore + +import "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + +// ResponseError is returned when a request is made to a service and +// the service returns a non-success HTTP status code. +// Use errors.As() to access this type in the error chain. +type ResponseError = exported.ResponseError diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/etag.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/etag.go new file mode 100644 index 00000000..23ea7e7c --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/etag.go @@ -0,0 +1,48 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azcore + +import ( + "strings" +) + +// ETag is a property used for optimistic concurrency during updates +// ETag is a validator based on https://tools.ietf.org/html/rfc7232#section-2.3.2 +// An ETag can be empty (""). +type ETag string + +// ETagAny is an ETag that represents everything, the value is "*" +const ETagAny ETag = "*" + +// Equals does a strong comparison of two ETags. Equals returns true when both +// ETags are not weak and the values of the underlying strings are equal. +func (e ETag) Equals(other ETag) bool { + return !e.IsWeak() && !other.IsWeak() && e == other +} + +// WeakEquals does a weak comparison of two ETags. Two ETags are equivalent if their opaque-tags match +// character-by-character, regardless of either or both being tagged as "weak". +func (e ETag) WeakEquals(other ETag) bool { + getStart := func(e1 ETag) int { + if e1.IsWeak() { + return 2 + } + return 0 + } + aStart := getStart(e) + bStart := getStart(other) + + aVal := e[aStart:] + bVal := other[bStart:] + + return aVal == bVal +} + +// IsWeak specifies whether the ETag is strong or weak. +func (e ETag) IsWeak() bool { + return len(e) >= 4 && strings.HasPrefix(string(e), "W/\"") && strings.HasSuffix(string(e), "\"") +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/exported.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/exported.go new file mode 100644 index 00000000..2afb21f6 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/exported.go @@ -0,0 +1,105 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package exported + +import ( + "context" + "encoding/base64" + "fmt" + "io" + "net/http" + "time" +) + +type nopCloser struct { + io.ReadSeeker +} + +func (n nopCloser) Close() error { + return nil +} + +// NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker. +// Exported as streaming.NopCloser(). +func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser { + return nopCloser{rs} +} + +// HasStatusCode returns true if the Response's status code is one of the specified values. +// Exported as runtime.HasStatusCode(). +func HasStatusCode(resp *http.Response, statusCodes ...int) bool { + if resp == nil { + return false + } + for _, sc := range statusCodes { + if resp.StatusCode == sc { + return true + } + } + return false +} + +// AccessToken represents an Azure service bearer access token with expiry information. +// Exported as azcore.AccessToken. +type AccessToken struct { + Token string + ExpiresOn time.Time +} + +// TokenRequestOptions contain specific parameter that may be used by credentials types when attempting to get a token. +// Exported as policy.TokenRequestOptions. +type TokenRequestOptions struct { + // Claims are any additional claims required for the token to satisfy a conditional access policy, such as a + // service may return in a claims challenge following an authorization failure. If a service returned the + // claims value base64 encoded, it must be decoded before setting this field. + Claims string + // Scopes contains the list of permission scopes required for the token. + Scopes []string + + // TenantID identifies the tenant from which to request the token. azidentity credentials authenticate in + // their configured default tenants when this field isn't set. + TenantID string +} + +// TokenCredential represents a credential capable of providing an OAuth token. +// Exported as azcore.TokenCredential. +type TokenCredential interface { + // GetToken requests an access token for the specified set of scopes. + GetToken(ctx context.Context, options TokenRequestOptions) (AccessToken, error) +} + +// DecodeByteArray will base-64 decode the provided string into v. +// Exported as runtime.DecodeByteArray() +func DecodeByteArray(s string, v *[]byte, format Base64Encoding) error { + if len(s) == 0 { + return nil + } + payload := string(s) + if payload[0] == '"' { + // remove surrounding quotes + payload = payload[1 : len(payload)-1] + } + switch format { + case Base64StdFormat: + decoded, err := base64.StdEncoding.DecodeString(payload) + if err == nil { + *v = decoded + return nil + } + return err + case Base64URLFormat: + // use raw encoding as URL format should not contain any '=' characters + decoded, err := base64.RawURLEncoding.DecodeString(payload) + if err == nil { + *v = decoded + return nil + } + return err + default: + return fmt.Errorf("unrecognized byte array format: %d", format) + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/pipeline.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/pipeline.go new file mode 100644 index 00000000..c44efd6e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/pipeline.go @@ -0,0 +1,97 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package exported + +import ( + "errors" + "fmt" + "net/http" + + "golang.org/x/net/http/httpguts" +) + +// Policy represents an extensibility point for the Pipeline that can mutate the specified +// Request and react to the received Response. +// Exported as policy.Policy. +type Policy interface { + // Do applies the policy to the specified Request. When implementing a Policy, mutate the + // request before calling req.Next() to move on to the next policy, and respond to the result + // before returning to the caller. + Do(req *Request) (*http.Response, error) +} + +// Pipeline represents a primitive for sending HTTP requests and receiving responses. +// Its behavior can be extended by specifying policies during construction. +// Exported as runtime.Pipeline. +type Pipeline struct { + policies []Policy +} + +// Transporter represents an HTTP pipeline transport used to send HTTP requests and receive responses. +// Exported as policy.Transporter. +type Transporter interface { + // Do sends the HTTP request and returns the HTTP response or error. + Do(req *http.Request) (*http.Response, error) +} + +// used to adapt a TransportPolicy to a Policy +type transportPolicy struct { + trans Transporter +} + +func (tp transportPolicy) Do(req *Request) (*http.Response, error) { + if tp.trans == nil { + return nil, errors.New("missing transporter") + } + resp, err := tp.trans.Do(req.Raw()) + if err != nil { + return nil, err + } else if resp == nil { + // there was no response and no error (rare but can happen) + // this ensures the retry policy will retry the request + return nil, errors.New("received nil response") + } + return resp, nil +} + +// NewPipeline creates a new Pipeline object from the specified Policies. +// Not directly exported, but used as part of runtime.NewPipeline(). +func NewPipeline(transport Transporter, policies ...Policy) Pipeline { + // transport policy must always be the last in the slice + policies = append(policies, transportPolicy{trans: transport}) + return Pipeline{ + policies: policies, + } +} + +// Do is called for each and every HTTP request. It passes the request through all +// the Policy objects (which can transform the Request's URL/query parameters/headers) +// and ultimately sends the transformed HTTP request over the network. +func (p Pipeline) Do(req *Request) (*http.Response, error) { + if req == nil { + return nil, errors.New("request cannot be nil") + } + // check copied from Transport.roundTrip() + for k, vv := range req.Raw().Header { + if !httpguts.ValidHeaderFieldName(k) { + if req.Raw().Body != nil { + req.Raw().Body.Close() + } + return nil, fmt.Errorf("invalid header field name %q", k) + } + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + if req.Raw().Body != nil { + req.Raw().Body.Close() + } + return nil, fmt.Errorf("invalid header field value %q for key %v", v, k) + } + } + } + req.policies = p.policies + return req.Next() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go new file mode 100644 index 00000000..659f2a7d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go @@ -0,0 +1,213 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package exported + +import ( + "context" + "encoding/base64" + "errors" + "fmt" + "io" + "net/http" + "reflect" + "strconv" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" +) + +// Base64Encoding is usesd to specify which base-64 encoder/decoder to use when +// encoding/decoding a slice of bytes to/from a string. +// Exported as runtime.Base64Encoding +type Base64Encoding int + +const ( + // Base64StdFormat uses base64.StdEncoding for encoding and decoding payloads. + Base64StdFormat Base64Encoding = 0 + + // Base64URLFormat uses base64.RawURLEncoding for encoding and decoding payloads. + Base64URLFormat Base64Encoding = 1 +) + +// EncodeByteArray will base-64 encode the byte slice v. +// Exported as runtime.EncodeByteArray() +func EncodeByteArray(v []byte, format Base64Encoding) string { + if format == Base64URLFormat { + return base64.RawURLEncoding.EncodeToString(v) + } + return base64.StdEncoding.EncodeToString(v) +} + +// Request is an abstraction over the creation of an HTTP request as it passes through the pipeline. +// Don't use this type directly, use NewRequest() instead. +// Exported as policy.Request. +type Request struct { + req *http.Request + body io.ReadSeekCloser + policies []Policy + values opValues +} + +type opValues map[reflect.Type]interface{} + +// Set adds/changes a value +func (ov opValues) set(value interface{}) { + ov[reflect.TypeOf(value)] = value +} + +// Get looks for a value set by SetValue first +func (ov opValues) get(value interface{}) bool { + v, ok := ov[reflect.ValueOf(value).Elem().Type()] + if ok { + reflect.ValueOf(value).Elem().Set(reflect.ValueOf(v)) + } + return ok +} + +// NewRequest creates a new Request with the specified input. +// Exported as runtime.NewRequest(). +func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*Request, error) { + req, err := http.NewRequestWithContext(ctx, httpMethod, endpoint, nil) + if err != nil { + return nil, err + } + if req.URL.Host == "" { + return nil, errors.New("no Host in request URL") + } + if !(req.URL.Scheme == "http" || req.URL.Scheme == "https") { + return nil, fmt.Errorf("unsupported protocol scheme %s", req.URL.Scheme) + } + return &Request{req: req}, nil +} + +// Body returns the original body specified when the Request was created. +func (req *Request) Body() io.ReadSeekCloser { + return req.body +} + +// Raw returns the underlying HTTP request. +func (req *Request) Raw() *http.Request { + return req.req +} + +// Next calls the next policy in the pipeline. +// If there are no more policies, nil and an error are returned. +// This method is intended to be called from pipeline policies. +// To send a request through a pipeline call Pipeline.Do(). +func (req *Request) Next() (*http.Response, error) { + if len(req.policies) == 0 { + return nil, errors.New("no more policies") + } + nextPolicy := req.policies[0] + nextReq := *req + nextReq.policies = nextReq.policies[1:] + return nextPolicy.Do(&nextReq) +} + +// SetOperationValue adds/changes a mutable key/value associated with a single operation. +func (req *Request) SetOperationValue(value interface{}) { + if req.values == nil { + req.values = opValues{} + } + req.values.set(value) +} + +// OperationValue looks for a value set by SetOperationValue(). +func (req *Request) OperationValue(value interface{}) bool { + if req.values == nil { + return false + } + return req.values.get(value) +} + +// SetBody sets the specified ReadSeekCloser as the HTTP request body, and sets Content-Type and Content-Length +// accordingly. If the ReadSeekCloser is nil or empty, Content-Length won't be set. If contentType is "", +// Content-Type won't be set. +// Use streaming.NopCloser to turn an io.ReadSeeker into an io.ReadSeekCloser. +func (req *Request) SetBody(body io.ReadSeekCloser, contentType string) error { + var err error + var size int64 + if body != nil { + size, err = body.Seek(0, io.SeekEnd) // Seek to the end to get the stream's size + if err != nil { + return err + } + } + if size == 0 { + // treat an empty stream the same as a nil one: assign req a nil body + body = nil + // RFC 9110 specifies a client shouldn't set Content-Length on a request containing no content + // (Del is a no-op when the header has no value) + req.req.Header.Del(shared.HeaderContentLength) + } else { + _, err = body.Seek(0, io.SeekStart) + if err != nil { + return err + } + req.req.Header.Set(shared.HeaderContentLength, strconv.FormatInt(size, 10)) + req.Raw().GetBody = func() (io.ReadCloser, error) { + _, err := body.Seek(0, io.SeekStart) // Seek back to the beginning of the stream + return body, err + } + } + // keep a copy of the body argument. this is to handle cases + // where req.Body is replaced, e.g. httputil.DumpRequest and friends. + req.body = body + req.req.Body = body + req.req.ContentLength = size + if contentType == "" { + // Del is a no-op when the header has no value + req.req.Header.Del(shared.HeaderContentType) + } else { + req.req.Header.Set(shared.HeaderContentType, contentType) + } + return nil +} + +// RewindBody seeks the request's Body stream back to the beginning so it can be resent when retrying an operation. +func (req *Request) RewindBody() error { + if req.body != nil { + // Reset the stream back to the beginning and restore the body + _, err := req.body.Seek(0, io.SeekStart) + req.req.Body = req.body + return err + } + return nil +} + +// Close closes the request body. +func (req *Request) Close() error { + if req.body == nil { + return nil + } + return req.body.Close() +} + +// Clone returns a deep copy of the request with its context changed to ctx. +func (req *Request) Clone(ctx context.Context) *Request { + r2 := *req + r2.req = req.req.Clone(ctx) + return &r2 +} + +// WithContext returns a shallow copy of the request with its context changed to ctx. +func (req *Request) WithContext(ctx context.Context) *Request { + r2 := new(Request) + *r2 = *req + r2.req = r2.req.WithContext(ctx) + return r2 +} + +// not exported but dependent on Request + +// PolicyFunc is a type that implements the Policy interface. +// Use this type when implementing a stateless policy as a first-class function. +type PolicyFunc func(*Request) (*http.Response, error) + +// Do implements the Policy interface on policyFunc. +func (pf PolicyFunc) Do(req *Request) (*http.Response, error) { + return pf(req) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/response_error.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/response_error.go new file mode 100644 index 00000000..76a8c068 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/response_error.go @@ -0,0 +1,145 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package exported + +import ( + "bytes" + "encoding/json" + "fmt" + "net/http" + "regexp" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/exported" +) + +// NewResponseError creates a new *ResponseError from the provided HTTP response. +// Exported as runtime.NewResponseError(). +func NewResponseError(resp *http.Response) error { + respErr := &ResponseError{ + StatusCode: resp.StatusCode, + RawResponse: resp, + } + + // prefer the error code in the response header + if ec := resp.Header.Get(shared.HeaderXMSErrorCode); ec != "" { + respErr.ErrorCode = ec + return respErr + } + + // if we didn't get x-ms-error-code, check in the response body + body, err := exported.Payload(resp, nil) + if err != nil { + return err + } + + if len(body) > 0 { + if code := extractErrorCodeJSON(body); code != "" { + respErr.ErrorCode = code + } else if code := extractErrorCodeXML(body); code != "" { + respErr.ErrorCode = code + } + } + + return respErr +} + +func extractErrorCodeJSON(body []byte) string { + var rawObj map[string]interface{} + if err := json.Unmarshal(body, &rawObj); err != nil { + // not a JSON object + return "" + } + + // check if this is a wrapped error, i.e. { "error": { ... } } + // if so then unwrap it + if wrapped, ok := rawObj["error"]; ok { + unwrapped, ok := wrapped.(map[string]interface{}) + if !ok { + return "" + } + rawObj = unwrapped + } else if wrapped, ok := rawObj["odata.error"]; ok { + // check if this a wrapped odata error, i.e. { "odata.error": { ... } } + unwrapped, ok := wrapped.(map[string]any) + if !ok { + return "" + } + rawObj = unwrapped + } + + // now check for the error code + code, ok := rawObj["code"] + if !ok { + return "" + } + codeStr, ok := code.(string) + if !ok { + return "" + } + return codeStr +} + +func extractErrorCodeXML(body []byte) string { + // regular expression is much easier than dealing with the XML parser + rx := regexp.MustCompile(`<(?:\w+:)?[c|C]ode>\s*(\w+)\s*<\/(?:\w+:)?[c|C]ode>`) + res := rx.FindStringSubmatch(string(body)) + if len(res) != 2 { + return "" + } + // first submatch is the entire thing, second one is the captured error code + return res[1] +} + +// ResponseError is returned when a request is made to a service and +// the service returns a non-success HTTP status code. +// Use errors.As() to access this type in the error chain. +// Exported as azcore.ResponseError. +type ResponseError struct { + // ErrorCode is the error code returned by the resource provider if available. + ErrorCode string + + // StatusCode is the HTTP status code as defined in https://pkg.go.dev/net/http#pkg-constants. + StatusCode int + + // RawResponse is the underlying HTTP response. + RawResponse *http.Response +} + +// Error implements the error interface for type ResponseError. +// Note that the message contents are not contractual and can change over time. +func (e *ResponseError) Error() string { + // write the request method and URL with response status code + msg := &bytes.Buffer{} + fmt.Fprintf(msg, "%s %s://%s%s\n", e.RawResponse.Request.Method, e.RawResponse.Request.URL.Scheme, e.RawResponse.Request.URL.Host, e.RawResponse.Request.URL.Path) + fmt.Fprintln(msg, "--------------------------------------------------------------------------------") + fmt.Fprintf(msg, "RESPONSE %d: %s\n", e.RawResponse.StatusCode, e.RawResponse.Status) + if e.ErrorCode != "" { + fmt.Fprintf(msg, "ERROR CODE: %s\n", e.ErrorCode) + } else { + fmt.Fprintln(msg, "ERROR CODE UNAVAILABLE") + } + fmt.Fprintln(msg, "--------------------------------------------------------------------------------") + body, err := exported.Payload(e.RawResponse, nil) + if err != nil { + // this really shouldn't fail at this point as the response + // body is already cached (it was read in NewResponseError) + fmt.Fprintf(msg, "Error reading response body: %v", err) + } else if len(body) > 0 { + if err := json.Indent(msg, body, "", " "); err != nil { + // failed to pretty-print so just dump it verbatim + fmt.Fprint(msg, string(body)) + } + // the standard library doesn't have a pretty-printer for XML + fmt.Fprintln(msg) + } else { + fmt.Fprintln(msg, "Response contained no body") + } + fmt.Fprintln(msg, "--------------------------------------------------------------------------------") + + return msg.String() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log/log.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log/log.go new file mode 100644 index 00000000..0684cb31 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log/log.go @@ -0,0 +1,38 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// This is an internal helper package to combine the complete logging APIs. +package log + +import ( + azlog "github.com/Azure/azure-sdk-for-go/sdk/azcore/log" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +type Event = log.Event + +const ( + EventRequest = azlog.EventRequest + EventResponse = azlog.EventResponse + EventRetryPolicy = azlog.EventRetryPolicy + EventLRO = azlog.EventLRO +) + +func Write(cls log.Event, msg string) { + log.Write(cls, msg) +} + +func Writef(cls log.Event, format string, a ...interface{}) { + log.Writef(cls, format, a...) +} + +func SetListener(lst func(Event, string)) { + log.SetListener(lst) +} + +func Should(cls log.Event) bool { + return log.Should(cls) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async/async.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async/async.go new file mode 100644 index 00000000..b05bd8b3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async/async.go @@ -0,0 +1,159 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package async + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md + +// Applicable returns true if the LRO is using Azure-AsyncOperation. +func Applicable(resp *http.Response) bool { + return resp.Header.Get(shared.HeaderAzureAsync) != "" +} + +// CanResume returns true if the token can rehydrate this poller type. +func CanResume(token map[string]interface{}) bool { + _, ok := token["asyncURL"] + return ok +} + +// Poller is an LRO poller that uses the Azure-AsyncOperation pattern. +type Poller[T any] struct { + pl exported.Pipeline + + resp *http.Response + + // The URL from Azure-AsyncOperation header. + AsyncURL string `json:"asyncURL"` + + // The URL from Location header. + LocURL string `json:"locURL"` + + // The URL from the initial LRO request. + OrigURL string `json:"origURL"` + + // The HTTP method from the initial LRO request. + Method string `json:"method"` + + // The value of final-state-via from swagger, can be the empty string. + FinalState pollers.FinalStateVia `json:"finalState"` + + // The LRO's current state. + CurState string `json:"state"` +} + +// New creates a new Poller from the provided initial response and final-state type. +// Pass nil for response to create an empty Poller for rehydration. +func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.FinalStateVia) (*Poller[T], error) { + if resp == nil { + log.Write(log.EventLRO, "Resuming Azure-AsyncOperation poller.") + return &Poller[T]{pl: pl}, nil + } + log.Write(log.EventLRO, "Using Azure-AsyncOperation poller.") + asyncURL := resp.Header.Get(shared.HeaderAzureAsync) + if asyncURL == "" { + return nil, errors.New("response is missing Azure-AsyncOperation header") + } + if !poller.IsValidURL(asyncURL) { + return nil, fmt.Errorf("invalid polling URL %s", asyncURL) + } + // check for provisioning state. if the operation is a RELO + // and terminates synchronously this will prevent extra polling. + // it's ok if there's no provisioning state. + state, _ := poller.GetProvisioningState(resp) + if state == "" { + state = poller.StatusInProgress + } + p := &Poller[T]{ + pl: pl, + resp: resp, + AsyncURL: asyncURL, + LocURL: resp.Header.Get(shared.HeaderLocation), + OrigURL: resp.Request.URL.String(), + Method: resp.Request.Method, + FinalState: finalState, + CurState: state, + } + return p, nil +} + +// Done returns true if the LRO is in a terminal state. +func (p *Poller[T]) Done() bool { + return poller.IsTerminalState(p.CurState) +} + +// Poll retrieves the current state of the LRO. +func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { + err := pollers.PollHelper(ctx, p.AsyncURL, p.pl, func(resp *http.Response) (string, error) { + if !poller.StatusCodeValid(resp) { + p.resp = resp + return "", exported.NewResponseError(resp) + } + state, err := poller.GetStatus(resp) + if err != nil { + return "", err + } else if state == "" { + return "", errors.New("the response did not contain a status") + } + p.resp = resp + p.CurState = state + return p.CurState, nil + }) + if err != nil { + return nil, err + } + return p.resp, nil +} + +func (p *Poller[T]) Result(ctx context.Context, out *T) error { + if p.resp.StatusCode == http.StatusNoContent { + return nil + } else if poller.Failed(p.CurState) { + return exported.NewResponseError(p.resp) + } + var req *exported.Request + var err error + if p.Method == http.MethodPatch || p.Method == http.MethodPut { + // for PATCH and PUT, the final GET is on the original resource URL + req, err = exported.NewRequest(ctx, http.MethodGet, p.OrigURL) + } else if p.Method == http.MethodPost { + if p.FinalState == pollers.FinalStateViaAzureAsyncOp { + // no final GET required + } else if p.FinalState == pollers.FinalStateViaOriginalURI { + req, err = exported.NewRequest(ctx, http.MethodGet, p.OrigURL) + } else if p.LocURL != "" { + // ideally FinalState would be set to "location" but it isn't always. + // must check last due to more permissive condition. + req, err = exported.NewRequest(ctx, http.MethodGet, p.LocURL) + } + } + if err != nil { + return err + } + + // if a final GET request has been created, execute it + if req != nil { + resp, err := p.pl.Do(req) + if err != nil { + return err + } + p.resp = resp + } + + return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body/body.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body/body.go new file mode 100644 index 00000000..2bb9e105 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body/body.go @@ -0,0 +1,135 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package body + +import ( + "context" + "errors" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// Kind is the identifier of this type in a resume token. +const kind = "body" + +// Applicable returns true if the LRO is using no headers, just provisioning state. +// This is only applicable to PATCH and PUT methods and assumes no polling headers. +func Applicable(resp *http.Response) bool { + // we can't check for absense of headers due to some misbehaving services + // like redis that return a Location header but don't actually use that protocol + return resp.Request.Method == http.MethodPatch || resp.Request.Method == http.MethodPut +} + +// CanResume returns true if the token can rehydrate this poller type. +func CanResume(token map[string]interface{}) bool { + t, ok := token["type"] + if !ok { + return false + } + tt, ok := t.(string) + if !ok { + return false + } + return tt == kind +} + +// Poller is an LRO poller that uses the Body pattern. +type Poller[T any] struct { + pl exported.Pipeline + + resp *http.Response + + // The poller's type, used for resume token processing. + Type string `json:"type"` + + // The URL for polling. + PollURL string `json:"pollURL"` + + // The LRO's current state. + CurState string `json:"state"` +} + +// New creates a new Poller from the provided initial response. +// Pass nil for response to create an empty Poller for rehydration. +func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) { + if resp == nil { + log.Write(log.EventLRO, "Resuming Body poller.") + return &Poller[T]{pl: pl}, nil + } + log.Write(log.EventLRO, "Using Body poller.") + p := &Poller[T]{ + pl: pl, + resp: resp, + Type: kind, + PollURL: resp.Request.URL.String(), + } + // default initial state to InProgress. depending on the HTTP + // status code and provisioning state, we might change the value. + curState := poller.StatusInProgress + provState, err := poller.GetProvisioningState(resp) + if err != nil && !errors.Is(err, poller.ErrNoBody) { + return nil, err + } + if resp.StatusCode == http.StatusCreated && provState != "" { + // absense of provisioning state is ok for a 201, means the operation is in progress + curState = provState + } else if resp.StatusCode == http.StatusOK { + if provState != "" { + curState = provState + } else if provState == "" { + // for a 200, absense of provisioning state indicates success + curState = poller.StatusSucceeded + } + } else if resp.StatusCode == http.StatusNoContent { + curState = poller.StatusSucceeded + } + p.CurState = curState + return p, nil +} + +func (p *Poller[T]) Done() bool { + return poller.IsTerminalState(p.CurState) +} + +func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { + err := pollers.PollHelper(ctx, p.PollURL, p.pl, func(resp *http.Response) (string, error) { + if !poller.StatusCodeValid(resp) { + p.resp = resp + return "", exported.NewResponseError(resp) + } + if resp.StatusCode == http.StatusNoContent { + p.resp = resp + p.CurState = poller.StatusSucceeded + return p.CurState, nil + } + state, err := poller.GetProvisioningState(resp) + if errors.Is(err, poller.ErrNoBody) { + // a missing response body in non-204 case is an error + return "", err + } else if state == "" { + // a response body without provisioning state is considered terminal success + state = poller.StatusSucceeded + } else if err != nil { + return "", err + } + p.resp = resp + p.CurState = state + return p.CurState, nil + }) + if err != nil { + return nil, err + } + return p.resp, nil +} + +func (p *Poller[T]) Result(ctx context.Context, out *T) error { + return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake/fake.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake/fake.go new file mode 100644 index 00000000..15adbee2 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake/fake.go @@ -0,0 +1,118 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package fake + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// Applicable returns true if the LRO is a fake. +func Applicable(resp *http.Response) bool { + return resp.Header.Get(shared.HeaderFakePollerStatus) != "" +} + +// CanResume returns true if the token can rehydrate this poller type. +func CanResume(token map[string]interface{}) bool { + _, ok := token["fakeURL"] + return ok +} + +// Poller is an LRO poller that uses the Core-Fake-Poller pattern. +type Poller[T any] struct { + pl exported.Pipeline + + resp *http.Response + + // The API name from CtxAPINameKey + APIName string `json:"apiName"` + + // The URL from Core-Fake-Poller header. + FakeURL string `json:"fakeURL"` + + // The LRO's current state. + FakeStatus string `json:"status"` +} + +// New creates a new Poller from the provided initial response. +// Pass nil for response to create an empty Poller for rehydration. +func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) { + if resp == nil { + log.Write(log.EventLRO, "Resuming Core-Fake-Poller poller.") + return &Poller[T]{pl: pl}, nil + } + + log.Write(log.EventLRO, "Using Core-Fake-Poller poller.") + fakeStatus := resp.Header.Get(shared.HeaderFakePollerStatus) + if fakeStatus == "" { + return nil, errors.New("response is missing Fake-Poller-Status header") + } + + ctxVal := resp.Request.Context().Value(shared.CtxAPINameKey{}) + if ctxVal == nil { + return nil, errors.New("missing value for CtxAPINameKey") + } + + apiName, ok := ctxVal.(string) + if !ok { + return nil, fmt.Errorf("expected string for CtxAPINameKey, the type was %T", ctxVal) + } + + p := &Poller[T]{ + pl: pl, + resp: resp, + APIName: apiName, + FakeURL: fmt.Sprintf("%s://%s%s/get/fake/status", resp.Request.URL.Scheme, resp.Request.URL.Host, resp.Request.URL.Path), + FakeStatus: fakeStatus, + } + return p, nil +} + +// Done returns true if the LRO is in a terminal state. +func (p *Poller[T]) Done() bool { + return poller.IsTerminalState(p.FakeStatus) +} + +// Poll retrieves the current state of the LRO. +func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { + ctx = context.WithValue(ctx, shared.CtxAPINameKey{}, p.APIName) + err := pollers.PollHelper(ctx, p.FakeURL, p.pl, func(resp *http.Response) (string, error) { + if !poller.StatusCodeValid(resp) { + p.resp = resp + return "", exported.NewResponseError(resp) + } + fakeStatus := resp.Header.Get(shared.HeaderFakePollerStatus) + if fakeStatus == "" { + return "", errors.New("response is missing Fake-Poller-Status header") + } + p.resp = resp + p.FakeStatus = fakeStatus + return p.FakeStatus, nil + }) + if err != nil { + return nil, err + } + return p.resp, nil +} + +func (p *Poller[T]) Result(ctx context.Context, out *T) error { + if p.resp.StatusCode == http.StatusNoContent { + return nil + } else if poller.Failed(p.FakeStatus) { + return exported.NewResponseError(p.resp) + } + + return pollers.ResultHelper(p.resp, poller.Failed(p.FakeStatus), out) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc/loc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc/loc.go new file mode 100644 index 00000000..d6be8987 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc/loc.go @@ -0,0 +1,119 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package loc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// Kind is the identifier of this type in a resume token. +const kind = "loc" + +// Applicable returns true if the LRO is using Location. +func Applicable(resp *http.Response) bool { + return resp.Header.Get(shared.HeaderLocation) != "" +} + +// CanResume returns true if the token can rehydrate this poller type. +func CanResume(token map[string]interface{}) bool { + t, ok := token["type"] + if !ok { + return false + } + tt, ok := t.(string) + if !ok { + return false + } + return tt == kind +} + +// Poller is an LRO poller that uses the Location pattern. +type Poller[T any] struct { + pl exported.Pipeline + resp *http.Response + + Type string `json:"type"` + PollURL string `json:"pollURL"` + CurState string `json:"state"` +} + +// New creates a new Poller from the provided initial response. +// Pass nil for response to create an empty Poller for rehydration. +func New[T any](pl exported.Pipeline, resp *http.Response) (*Poller[T], error) { + if resp == nil { + log.Write(log.EventLRO, "Resuming Location poller.") + return &Poller[T]{pl: pl}, nil + } + log.Write(log.EventLRO, "Using Location poller.") + locURL := resp.Header.Get(shared.HeaderLocation) + if locURL == "" { + return nil, errors.New("response is missing Location header") + } + if !poller.IsValidURL(locURL) { + return nil, fmt.Errorf("invalid polling URL %s", locURL) + } + // check for provisioning state. if the operation is a RELO + // and terminates synchronously this will prevent extra polling. + // it's ok if there's no provisioning state. + state, _ := poller.GetProvisioningState(resp) + if state == "" { + state = poller.StatusInProgress + } + return &Poller[T]{ + pl: pl, + resp: resp, + Type: kind, + PollURL: locURL, + CurState: state, + }, nil +} + +func (p *Poller[T]) Done() bool { + return poller.IsTerminalState(p.CurState) +} + +func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { + err := pollers.PollHelper(ctx, p.PollURL, p.pl, func(resp *http.Response) (string, error) { + // location polling can return an updated polling URL + if h := resp.Header.Get(shared.HeaderLocation); h != "" { + p.PollURL = h + } + // if provisioning state is available, use that. this is only + // for some ARM LRO scenarios (e.g. DELETE with a Location header) + // so if it's missing then use HTTP status code. + provState, _ := poller.GetProvisioningState(resp) + p.resp = resp + if provState != "" { + p.CurState = provState + } else if resp.StatusCode == http.StatusAccepted { + p.CurState = poller.StatusInProgress + } else if resp.StatusCode > 199 && resp.StatusCode < 300 { + // any 2xx other than a 202 indicates success + p.CurState = poller.StatusSucceeded + } else { + p.CurState = poller.StatusFailed + } + return p.CurState, nil + }) + if err != nil { + return nil, err + } + return p.resp, nil +} + +func (p *Poller[T]) Result(ctx context.Context, out *T) error { + return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op/op.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op/op.go new file mode 100644 index 00000000..1bc7ad0a --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op/op.go @@ -0,0 +1,145 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package op + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// Applicable returns true if the LRO is using Operation-Location. +func Applicable(resp *http.Response) bool { + return resp.Header.Get(shared.HeaderOperationLocation) != "" +} + +// CanResume returns true if the token can rehydrate this poller type. +func CanResume(token map[string]interface{}) bool { + _, ok := token["oplocURL"] + return ok +} + +// Poller is an LRO poller that uses the Operation-Location pattern. +type Poller[T any] struct { + pl exported.Pipeline + resp *http.Response + + OpLocURL string `json:"oplocURL"` + LocURL string `json:"locURL"` + OrigURL string `json:"origURL"` + Method string `json:"method"` + FinalState pollers.FinalStateVia `json:"finalState"` + CurState string `json:"state"` +} + +// New creates a new Poller from the provided initial response. +// Pass nil for response to create an empty Poller for rehydration. +func New[T any](pl exported.Pipeline, resp *http.Response, finalState pollers.FinalStateVia) (*Poller[T], error) { + if resp == nil { + log.Write(log.EventLRO, "Resuming Operation-Location poller.") + return &Poller[T]{pl: pl}, nil + } + log.Write(log.EventLRO, "Using Operation-Location poller.") + opURL := resp.Header.Get(shared.HeaderOperationLocation) + if opURL == "" { + return nil, errors.New("response is missing Operation-Location header") + } + if !poller.IsValidURL(opURL) { + return nil, fmt.Errorf("invalid Operation-Location URL %s", opURL) + } + locURL := resp.Header.Get(shared.HeaderLocation) + // Location header is optional + if locURL != "" && !poller.IsValidURL(locURL) { + return nil, fmt.Errorf("invalid Location URL %s", locURL) + } + // default initial state to InProgress. if the + // service sent us a status then use that instead. + curState := poller.StatusInProgress + status, err := poller.GetStatus(resp) + if err != nil && !errors.Is(err, poller.ErrNoBody) { + return nil, err + } + if status != "" { + curState = status + } + + return &Poller[T]{ + pl: pl, + resp: resp, + OpLocURL: opURL, + LocURL: locURL, + OrigURL: resp.Request.URL.String(), + Method: resp.Request.Method, + FinalState: finalState, + CurState: curState, + }, nil +} + +func (p *Poller[T]) Done() bool { + return poller.IsTerminalState(p.CurState) +} + +func (p *Poller[T]) Poll(ctx context.Context) (*http.Response, error) { + err := pollers.PollHelper(ctx, p.OpLocURL, p.pl, func(resp *http.Response) (string, error) { + if !poller.StatusCodeValid(resp) { + p.resp = resp + return "", exported.NewResponseError(resp) + } + state, err := poller.GetStatus(resp) + if err != nil { + return "", err + } else if state == "" { + return "", errors.New("the response did not contain a status") + } + p.resp = resp + p.CurState = state + return p.CurState, nil + }) + if err != nil { + return nil, err + } + return p.resp, nil +} + +func (p *Poller[T]) Result(ctx context.Context, out *T) error { + var req *exported.Request + var err error + if p.FinalState == pollers.FinalStateViaLocation && p.LocURL != "" { + req, err = exported.NewRequest(ctx, http.MethodGet, p.LocURL) + } else if p.FinalState == pollers.FinalStateViaOpLocation && p.Method == http.MethodPost { + // no final GET required, terminal response should have it + } else if rl, rlErr := poller.GetResourceLocation(p.resp); rlErr != nil && !errors.Is(rlErr, poller.ErrNoBody) { + return rlErr + } else if rl != "" { + req, err = exported.NewRequest(ctx, http.MethodGet, rl) + } else if p.Method == http.MethodPatch || p.Method == http.MethodPut { + req, err = exported.NewRequest(ctx, http.MethodGet, p.OrigURL) + } else if p.Method == http.MethodPost && p.LocURL != "" { + req, err = exported.NewRequest(ctx, http.MethodGet, p.LocURL) + } + if err != nil { + return err + } + + // if a final GET request has been created, execute it + if req != nil { + resp, err := p.pl.Do(req) + if err != nil { + return err + } + p.resp = resp + } + + return pollers.ResultHelper(p.resp, poller.Failed(p.CurState), out) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/poller.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/poller.go new file mode 100644 index 00000000..37ed647f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/poller.go @@ -0,0 +1,24 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package pollers + +// FinalStateVia is the enumerated type for the possible final-state-via values. +type FinalStateVia string + +const ( + // FinalStateViaAzureAsyncOp indicates the final payload comes from the Azure-AsyncOperation URL. + FinalStateViaAzureAsyncOp FinalStateVia = "azure-async-operation" + + // FinalStateViaLocation indicates the final payload comes from the Location URL. + FinalStateViaLocation FinalStateVia = "location" + + // FinalStateViaOriginalURI indicates the final payload comes from the original URL. + FinalStateViaOriginalURI FinalStateVia = "original-uri" + + // FinalStateViaOpLocation indicates the final payload comes from the Operation-Location URL. + FinalStateViaOpLocation FinalStateVia = "operation-location" +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/util.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/util.go new file mode 100644 index 00000000..d8d86a46 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/util.go @@ -0,0 +1,187 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package pollers + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "net/http" + "reflect" + + azexported "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// getTokenTypeName creates a type name from the type parameter T. +func getTokenTypeName[T any]() (string, error) { + tt := shared.TypeOfT[T]() + var n string + if tt.Kind() == reflect.Pointer { + n = "*" + tt = tt.Elem() + } + n += tt.Name() + if n == "" { + return "", errors.New("nameless types are not allowed") + } + return n, nil +} + +type resumeTokenWrapper[T any] struct { + Type string `json:"type"` + Token T `json:"token"` +} + +// NewResumeToken creates a resume token from the specified type. +// An error is returned if the generic type has no name (e.g. struct{}). +func NewResumeToken[TResult, TSource any](from TSource) (string, error) { + n, err := getTokenTypeName[TResult]() + if err != nil { + return "", err + } + b, err := json.Marshal(resumeTokenWrapper[TSource]{ + Type: n, + Token: from, + }) + if err != nil { + return "", err + } + return string(b), nil +} + +// ExtractToken returns the poller-specific token information from the provided token value. +func ExtractToken(token string) ([]byte, error) { + raw := map[string]json.RawMessage{} + if err := json.Unmarshal([]byte(token), &raw); err != nil { + return nil, err + } + // this is dependent on the type resumeTokenWrapper[T] + tk, ok := raw["token"] + if !ok { + return nil, errors.New("missing token value") + } + return tk, nil +} + +// IsTokenValid returns an error if the specified token isn't applicable for generic type T. +func IsTokenValid[T any](token string) error { + raw := map[string]interface{}{} + if err := json.Unmarshal([]byte(token), &raw); err != nil { + return err + } + t, ok := raw["type"] + if !ok { + return errors.New("missing type value") + } + tt, ok := t.(string) + if !ok { + return fmt.Errorf("invalid type format %T", t) + } + n, err := getTokenTypeName[T]() + if err != nil { + return err + } + if tt != n { + return fmt.Errorf("cannot resume from this poller token. token is for type %s, not %s", tt, n) + } + return nil +} + +// used if the operation synchronously completed +type NopPoller[T any] struct { + resp *http.Response + result T +} + +// NewNopPoller creates a NopPoller from the provided response. +// It unmarshals the response body into an instance of T. +func NewNopPoller[T any](resp *http.Response) (*NopPoller[T], error) { + np := &NopPoller[T]{resp: resp} + if resp.StatusCode == http.StatusNoContent { + return np, nil + } + payload, err := exported.Payload(resp, nil) + if err != nil { + return nil, err + } + if len(payload) == 0 { + return np, nil + } + if err = json.Unmarshal(payload, &np.result); err != nil { + return nil, err + } + return np, nil +} + +func (*NopPoller[T]) Done() bool { + return true +} + +func (p *NopPoller[T]) Poll(context.Context) (*http.Response, error) { + return p.resp, nil +} + +func (p *NopPoller[T]) Result(ctx context.Context, out *T) error { + *out = p.result + return nil +} + +// PollHelper creates and executes the request, calling update() with the response. +// If the request fails, the update func is not called. +// The update func returns the state of the operation for logging purposes or an error +// if it fails to extract the required state from the response. +func PollHelper(ctx context.Context, endpoint string, pl azexported.Pipeline, update func(resp *http.Response) (string, error)) error { + req, err := azexported.NewRequest(ctx, http.MethodGet, endpoint) + if err != nil { + return err + } + resp, err := pl.Do(req) + if err != nil { + return err + } + state, err := update(resp) + if err != nil { + return err + } + log.Writef(log.EventLRO, "State %s", state) + return nil +} + +// ResultHelper processes the response as success or failure. +// In the success case, it unmarshals the payload into either a new instance of T or out. +// In the failure case, it creates an *azcore.Response error from the response. +func ResultHelper[T any](resp *http.Response, failed bool, out *T) error { + // short-circuit the simple success case with no response body to unmarshal + if resp.StatusCode == http.StatusNoContent { + return nil + } + + defer resp.Body.Close() + if !poller.StatusCodeValid(resp) || failed { + // the LRO failed. unmarshall the error and update state + return azexported.NewResponseError(resp) + } + + // success case + payload, err := exported.Payload(resp, nil) + if err != nil { + return err + } + if len(payload) == 0 { + return nil + } + + if err = json.Unmarshal(payload, out); err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go new file mode 100644 index 00000000..604cdbda --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go @@ -0,0 +1,40 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package shared + +const ( + ContentTypeAppJSON = "application/json" + ContentTypeAppXML = "application/xml" + ContentTypeTextPlain = "text/plain" +) + +const ( + HeaderAuthorization = "Authorization" + HeaderAuxiliaryAuthorization = "x-ms-authorization-auxiliary" + HeaderAzureAsync = "Azure-AsyncOperation" + HeaderContentLength = "Content-Length" + HeaderContentType = "Content-Type" + HeaderFakePollerStatus = "Fake-Poller-Status" + HeaderLocation = "Location" + HeaderOperationLocation = "Operation-Location" + HeaderRetryAfter = "Retry-After" + HeaderUserAgent = "User-Agent" + HeaderWWWAuthenticate = "WWW-Authenticate" + HeaderXMSClientRequestID = "x-ms-client-request-id" + HeaderXMSRequestID = "x-ms-request-id" + HeaderXMSErrorCode = "x-ms-error-code" +) + +const BearerTokenPrefix = "Bearer " + +const ( + // Module is the name of the calling module used in telemetry data. + Module = "azcore" + + // Version is the semantic version (see http://semver.org) of this module. + Version = "v1.8.0-beta.1" +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/shared.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/shared.go new file mode 100644 index 00000000..f347072f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/shared.go @@ -0,0 +1,134 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package shared + +import ( + "context" + "fmt" + "net/http" + "reflect" + "regexp" + "strconv" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" +) + +// CtxWithHTTPHeaderKey is used as a context key for adding/retrieving http.Header. +type CtxWithHTTPHeaderKey struct{} + +// CtxWithRetryOptionsKey is used as a context key for adding/retrieving RetryOptions. +type CtxWithRetryOptionsKey struct{} + +// CtxIncludeResponseKey is used as a context key for retrieving the raw response. +type CtxIncludeResponseKey struct{} + +// CtxWithTracingTracer is used as a context key for adding/retrieving tracing.Tracer. +type CtxWithTracingTracer struct{} + +// CtxAPINameKey is used as a context key for adding/retrieving the API name. +type CtxAPINameKey struct{} + +// Delay waits for the duration to elapse or the context to be cancelled. +func Delay(ctx context.Context, delay time.Duration) error { + select { + case <-time.After(delay): + return nil + case <-ctx.Done(): + return ctx.Err() + } +} + +// RetryAfter returns non-zero if the response contains a Retry-After header value. +func RetryAfter(resp *http.Response) time.Duration { + if resp == nil { + return 0 + } + ra := resp.Header.Get(HeaderRetryAfter) + if ra == "" { + return 0 + } + // retry-after values are expressed in either number of + // seconds or an HTTP-date indicating when to try again + if retryAfter, _ := strconv.Atoi(ra); retryAfter > 0 { + return time.Duration(retryAfter) * time.Second + } else if t, err := time.Parse(time.RFC1123, ra); err == nil { + return time.Until(t) + } + return 0 +} + +// TypeOfT returns the type of the generic type param. +func TypeOfT[T any]() reflect.Type { + // you can't, at present, obtain the type of + // a type parameter, so this is the trick + return reflect.TypeOf((*T)(nil)).Elem() +} + +// TransportFunc is a helper to use a first-class func to satisfy the Transporter interface. +type TransportFunc func(*http.Request) (*http.Response, error) + +// Do implements the Transporter interface for the TransportFunc type. +func (pf TransportFunc) Do(req *http.Request) (*http.Response, error) { + return pf(req) +} + +// ValidateModVer verifies that moduleVersion is a valid semver 2.0 string. +func ValidateModVer(moduleVersion string) error { + modVerRegx := regexp.MustCompile(`^v\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?$`) + if !modVerRegx.MatchString(moduleVersion) { + return fmt.Errorf("malformed moduleVersion param value %s", moduleVersion) + } + return nil +} + +// ExtractModuleName returns "module", "package.Client" from "module/package.Client" or +// "package", "package.Client" from "package.Client" when there's no "module/" prefix. +// If clientName is malformed, an error is returned. +func ExtractModuleName(clientName string) (string, string, error) { + // uses unnamed capturing for "module", "package.Client", and "package" + regex, err := regexp.Compile(`^(?:([a-z0-9]+)/)?(([a-z0-9]+)\.(?:[A-Za-z0-9]+))$`) + if err != nil { + return "", "", err + } + + matches := regex.FindStringSubmatch(clientName) + if len(matches) < 4 { + return "", "", fmt.Errorf("malformed clientName %s", clientName) + } + + // the first match is the entire string, the second is "module", the third is + // "package.Client" and the fourth is "package". + // if there was no "module/" prefix, the second match will be the empty string + if matches[1] != "" { + return matches[1], matches[2], nil + } + return matches[3], matches[2], nil +} + +// NonRetriableError marks the specified error as non-retriable. +func NonRetriableError(err error) error { + return &nonRetriableError{err} +} + +type nonRetriableError struct { + error +} + +func (p *nonRetriableError) Error() string { + return p.error.Error() +} + +func (*nonRetriableError) NonRetriable() { + // marker method +} + +func (p *nonRetriableError) Unwrap() error { + return p.error +} + +var _ errorinfo.NonRetriable = (*nonRetriableError)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/doc.go new file mode 100644 index 00000000..2f3901bf --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/doc.go @@ -0,0 +1,10 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package log contains functionality for configuring logging behavior. +// Default logging to stderr can be enabled by setting environment variable AZURE_SDK_GO_LOGGING to "all". +package log diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/log.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/log.go new file mode 100644 index 00000000..7bde29d0 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/log/log.go @@ -0,0 +1,50 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Package log provides functionality for configuring logging facilities. +package log + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +// Event is used to group entries. Each group can be toggled on or off. +type Event = log.Event + +const ( + // EventRequest entries contain information about HTTP requests. + // This includes information like the URL, query parameters, and headers. + EventRequest Event = "Request" + + // EventResponse entries contain information about HTTP responses. + // This includes information like the HTTP status code, headers, and request URL. + EventResponse Event = "Response" + + // EventRetryPolicy entries contain information specific to the retry policy in use. + EventRetryPolicy Event = "Retry" + + // EventLRO entries contain information specific to long-running operations. + // This includes information like polling location, operation state, and sleep intervals. + EventLRO Event = "LongRunningOperation" +) + +// SetEvents is used to control which events are written to +// the log. By default all log events are writen. +// NOTE: this is not goroutine safe and should be called before using SDK clients. +func SetEvents(cls ...Event) { + log.SetEvents(cls...) +} + +// SetListener will set the Logger to write to the specified Listener. +// NOTE: this is not goroutine safe and should be called before using SDK clients. +func SetListener(lst func(Event, string)) { + log.SetListener(lst) +} + +// for testing purposes +func resetEvents() { + log.TestResetEvents() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/doc.go new file mode 100644 index 00000000..fad2579e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/doc.go @@ -0,0 +1,10 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package policy contains the definitions needed for configuring in-box pipeline policies +// and creating custom policies. +package policy diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/policy.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/policy.go new file mode 100644 index 00000000..2d7ad45f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/policy/policy.go @@ -0,0 +1,165 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package policy + +import ( + "net/http" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +// Policy represents an extensibility point for the Pipeline that can mutate the specified +// Request and react to the received Response. +type Policy = exported.Policy + +// Transporter represents an HTTP pipeline transport used to send HTTP requests and receive responses. +type Transporter = exported.Transporter + +// Request is an abstraction over the creation of an HTTP request as it passes through the pipeline. +// Don't use this type directly, use runtime.NewRequest() instead. +type Request = exported.Request + +// ClientOptions contains optional settings for a client's pipeline. +// All zero-value fields will be initialized with default values. +type ClientOptions struct { + // APIVersion overrides the default version requested of the service. + // Set with caution as this package version has not been tested with arbitrary service versions. + APIVersion string + + // Cloud specifies a cloud for the client. The default is Azure Public Cloud. + Cloud cloud.Configuration + + // Logging configures the built-in logging policy. + Logging LogOptions + + // Retry configures the built-in retry policy. + Retry RetryOptions + + // Telemetry configures the built-in telemetry policy. + Telemetry TelemetryOptions + + // TracingProvider configures the tracing provider. + // It defaults to a no-op tracer. + TracingProvider tracing.Provider + + // Transport sets the transport for HTTP requests. + Transport Transporter + + // PerCallPolicies contains custom policies to inject into the pipeline. + // Each policy is executed once per request. + PerCallPolicies []Policy + + // PerRetryPolicies contains custom policies to inject into the pipeline. + // Each policy is executed once per request, and for each retry of that request. + PerRetryPolicies []Policy +} + +// LogOptions configures the logging policy's behavior. +type LogOptions struct { + // IncludeBody indicates if request and response bodies should be included in logging. + // The default value is false. + // NOTE: enabling this can lead to disclosure of sensitive information, use with care. + IncludeBody bool + + // AllowedHeaders is the slice of headers to log with their values intact. + // All headers not in the slice will have their values REDACTED. + // Applies to request and response headers. + AllowedHeaders []string + + // AllowedQueryParams is the slice of query parameters to log with their values intact. + // All query parameters not in the slice will have their values REDACTED. + AllowedQueryParams []string +} + +// RetryOptions configures the retry policy's behavior. +// Zero-value fields will have their specified default values applied during use. +// This allows for modification of a subset of fields. +type RetryOptions struct { + // MaxRetries specifies the maximum number of attempts a failed operation will be retried + // before producing an error. + // The default value is three. A value less than zero means one try and no retries. + MaxRetries int32 + + // TryTimeout indicates the maximum time allowed for any single try of an HTTP request. + // This is disabled by default. Specify a value greater than zero to enable. + // NOTE: Setting this to a small value might cause premature HTTP request time-outs. + TryTimeout time.Duration + + // RetryDelay specifies the initial amount of delay to use before retrying an operation. + // The value is used only if the HTTP response does not contain a Retry-After header. + // The delay increases exponentially with each retry up to the maximum specified by MaxRetryDelay. + // The default value is four seconds. A value less than zero means no delay between retries. + RetryDelay time.Duration + + // MaxRetryDelay specifies the maximum delay allowed before retrying an operation. + // Typically the value is greater than or equal to the value specified in RetryDelay. + // The default Value is 60 seconds. A value less than zero means there is no cap. + MaxRetryDelay time.Duration + + // StatusCodes specifies the HTTP status codes that indicate the operation should be retried. + // A nil slice will use the following values. + // http.StatusRequestTimeout 408 + // http.StatusTooManyRequests 429 + // http.StatusInternalServerError 500 + // http.StatusBadGateway 502 + // http.StatusServiceUnavailable 503 + // http.StatusGatewayTimeout 504 + // Specifying values will replace the default values. + // Specifying an empty slice will disable retries for HTTP status codes. + StatusCodes []int + + // ShouldRetry evaluates if the retry policy should retry the request. + // When specified, the function overrides comparison against the list of + // HTTP status codes and error checking within the retry policy. Context + // and NonRetriable errors remain evaluated before calling ShouldRetry. + // The *http.Response and error parameters are mutually exclusive, i.e. + // if one is nil, the other is not nil. + // A return value of true means the retry policy should retry. + ShouldRetry func(*http.Response, error) bool +} + +// TelemetryOptions configures the telemetry policy's behavior. +type TelemetryOptions struct { + // ApplicationID is an application-specific identification string to add to the User-Agent. + // It has a maximum length of 24 characters and must not contain any spaces. + ApplicationID string + + // Disabled will prevent the addition of any telemetry data to the User-Agent. + Disabled bool +} + +// TokenRequestOptions contain specific parameter that may be used by credentials types when attempting to get a token. +type TokenRequestOptions = exported.TokenRequestOptions + +// BearerTokenOptions configures the bearer token policy's behavior. +type BearerTokenOptions struct { + // AuthorizationHandler allows SDK developers to run client-specific logic when BearerTokenPolicy must authorize a request. + // When this field isn't set, the policy follows its default behavior of authorizing every request with a bearer token from + // its given credential. + AuthorizationHandler AuthorizationHandler +} + +// AuthorizationHandler allows SDK developers to insert custom logic that runs when BearerTokenPolicy must authorize a request. +type AuthorizationHandler struct { + // OnRequest is called each time the policy receives a request. Its func parameter authorizes the request with a token + // from the policy's given credential. Implementations that need to perform I/O should use the Request's context, + // available from Request.Raw().Context(). When OnRequest returns an error, the policy propagates that error and doesn't + // send the request. When OnRequest is nil, the policy follows its default behavior, authorizing the request with a + // token from its credential according to its configuration. + OnRequest func(*Request, func(TokenRequestOptions) error) error + + // OnChallenge is called when the policy receives a 401 response, allowing the AuthorizationHandler to re-authorize the + // request according to an authentication challenge (the Response's WWW-Authenticate header). OnChallenge is responsible + // for parsing parameters from the challenge. Its func parameter will authorize the request with a token from the policy's + // given credential. Implementations that need to perform I/O should use the Request's context, available from + // Request.Raw().Context(). When OnChallenge returns nil, the policy will send the request again. When OnChallenge is nil, + // the policy will return any 401 response to the client. + OnChallenge func(*Request, *http.Response, func(TokenRequestOptions) error) error +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/doc.go new file mode 100644 index 00000000..c9cfa438 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/doc.go @@ -0,0 +1,10 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package runtime contains various facilities for creating requests and handling responses. +// The content is intended for SDK authors. +package runtime diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/errors.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/errors.go new file mode 100644 index 00000000..6d03b291 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/errors.go @@ -0,0 +1,19 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" +) + +// NewResponseError creates an *azcore.ResponseError from the provided HTTP response. +// Call this when a service request returns a non-successful status code. +func NewResponseError(resp *http.Response) error { + return exported.NewResponseError(resp) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pager.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pager.go new file mode 100644 index 00000000..b7e59527 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pager.go @@ -0,0 +1,90 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "reflect" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +// PagingHandler contains the required data for constructing a Pager. +type PagingHandler[T any] struct { + // More returns a boolean indicating if there are more pages to fetch. + // It uses the provided page to make the determination. + More func(T) bool + + // Fetcher fetches the first and subsequent pages. + Fetcher func(context.Context, *T) (T, error) + + // Tracer contains the Tracer from the client that's creating the Pager. + Tracer tracing.Tracer +} + +// Pager provides operations for iterating over paged responses. +type Pager[T any] struct { + current *T + handler PagingHandler[T] + tracer tracing.Tracer + firstPage bool +} + +// NewPager creates an instance of Pager using the specified PagingHandler. +// Pass a non-nil T for firstPage if the first page has already been retrieved. +func NewPager[T any](handler PagingHandler[T]) *Pager[T] { + return &Pager[T]{ + handler: handler, + tracer: handler.Tracer, + firstPage: true, + } +} + +// More returns true if there are more pages to retrieve. +func (p *Pager[T]) More() bool { + if p.current != nil { + return p.handler.More(*p.current) + } + return true +} + +// NextPage advances the pager to the next page. +func (p *Pager[T]) NextPage(ctx context.Context) (T, error) { + var resp T + var err error + if p.current != nil { + if p.firstPage { + // we get here if it's an LRO-pager, we already have the first page + p.firstPage = false + return *p.current, nil + } else if !p.handler.More(*p.current) { + return *new(T), errors.New("no more pages") + } + ctx, endSpan := StartSpan(ctx, fmt.Sprintf("%s.NextPage", shortenTypeName(reflect.TypeOf(*p).Name())), p.tracer, nil) + defer endSpan(err) + resp, err = p.handler.Fetcher(ctx, p.current) + } else { + // non-LRO case, first page + p.firstPage = false + ctx, endSpan := StartSpan(ctx, fmt.Sprintf("%s.NextPage", shortenTypeName(reflect.TypeOf(*p).Name())), p.tracer, nil) + defer endSpan(err) + resp, err = p.handler.Fetcher(ctx, nil) + } + if err != nil { + return *new(T), err + } + p.current = &resp + return *p.current, nil +} + +// UnmarshalJSON implements the json.Unmarshaler interface for Pager[T]. +func (p *Pager[T]) UnmarshalJSON(data []byte) error { + return json.Unmarshal(data, &p.current) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pipeline.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pipeline.go new file mode 100644 index 00000000..ffb3ea1f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/pipeline.go @@ -0,0 +1,88 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// PipelineOptions contains Pipeline options for SDK developers +type PipelineOptions struct { + // AllowedHeaders is the slice of headers to log with their values intact. + // All headers not in the slice will have their values REDACTED. + // Applies to request and response headers. + AllowedHeaders []string + + // AllowedQueryParameters is the slice of query parameters to log with their values intact. + // All query parameters not in the slice will have their values REDACTED. + AllowedQueryParameters []string + + // APIVersion overrides the default version requested of the service. + // Set with caution as this package version has not been tested with arbitrary service versions. + APIVersion APIVersionOptions + + // PerCall contains custom policies to inject into the pipeline. + // Each policy is executed once per request. + PerCall []policy.Policy + + // PerRetry contains custom policies to inject into the pipeline. + // Each policy is executed once per request, and for each retry of that request. + PerRetry []policy.Policy + + // TracingNamespace contains the value to use for the az.namespace span attribute. + TracingNamespace string +} + +// Pipeline represents a primitive for sending HTTP requests and receiving responses. +// Its behavior can be extended by specifying policies during construction. +type Pipeline = exported.Pipeline + +// NewPipeline creates a pipeline from connection options, with any additional policies as specified. +// Policies from ClientOptions are placed after policies from PipelineOptions. +// The module and version parameters are used by the telemetry policy, when enabled. +func NewPipeline(module, version string, plOpts PipelineOptions, options *policy.ClientOptions) Pipeline { + cp := policy.ClientOptions{} + if options != nil { + cp = *options + } + if len(plOpts.AllowedHeaders) > 0 { + headers := make([]string, len(plOpts.AllowedHeaders)+len(cp.Logging.AllowedHeaders)) + copy(headers, plOpts.AllowedHeaders) + headers = append(headers, cp.Logging.AllowedHeaders...) + cp.Logging.AllowedHeaders = headers + } + if len(plOpts.AllowedQueryParameters) > 0 { + qp := make([]string, len(plOpts.AllowedQueryParameters)+len(cp.Logging.AllowedQueryParams)) + copy(qp, plOpts.AllowedQueryParameters) + qp = append(qp, cp.Logging.AllowedQueryParams...) + cp.Logging.AllowedQueryParams = qp + } + // we put the includeResponsePolicy at the very beginning so that the raw response + // is populated with the final response (some policies might mutate the response) + policies := []policy.Policy{exported.PolicyFunc(includeResponsePolicy)} + if cp.APIVersion != "" { + policies = append(policies, newAPIVersionPolicy(cp.APIVersion, &plOpts.APIVersion)) + } + if !cp.Telemetry.Disabled { + policies = append(policies, NewTelemetryPolicy(module, version, &cp.Telemetry)) + } + policies = append(policies, plOpts.PerCall...) + policies = append(policies, cp.PerCallPolicies...) + policies = append(policies, NewRetryPolicy(&cp.Retry)) + policies = append(policies, plOpts.PerRetry...) + policies = append(policies, cp.PerRetryPolicies...) + policies = append(policies, exported.PolicyFunc(httpHeaderPolicy)) + policies = append(policies, newHTTPTracePolicy(cp.Logging.AllowedQueryParams)) + policies = append(policies, NewLogPolicy(&cp.Logging)) + policies = append(policies, exported.PolicyFunc(bodyDownloadPolicy)) + transport := cp.Transport + if transport == nil { + transport = defaultHTTPClient + } + return exported.NewPipeline(transport, policies...) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_api_version.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_api_version.go new file mode 100644 index 00000000..e5309aa6 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_api_version.go @@ -0,0 +1,75 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "errors" + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// APIVersionOptions contains options for API versions +type APIVersionOptions struct { + // Location indicates where to set the version on a request, for example in a header or query param + Location APIVersionLocation + // Name is the name of the header or query parameter, for example "api-version" + Name string +} + +// APIVersionLocation indicates which part of a request identifies the service version +type APIVersionLocation int + +const ( + // APIVersionLocationQueryParam indicates a query parameter + APIVersionLocationQueryParam = 0 + // APIVersionLocationHeader indicates a header + APIVersionLocationHeader = 1 +) + +// newAPIVersionPolicy constructs an APIVersionPolicy. If version is "", Do will be a no-op. If version +// isn't empty and opts.Name is empty, Do will return an error. +func newAPIVersionPolicy(version string, opts *APIVersionOptions) *apiVersionPolicy { + if opts == nil { + opts = &APIVersionOptions{} + } + return &apiVersionPolicy{location: opts.Location, name: opts.Name, version: version} +} + +// apiVersionPolicy enables users to set the API version of every request a client sends. +type apiVersionPolicy struct { + // location indicates whether "name" refers to a query parameter or header. + location APIVersionLocation + + // name of the query param or header whose value should be overridden; provided by the client. + name string + + // version is the value (provided by the user) that replaces the default version value. + version string +} + +// Do sets the request's API version, if the policy is configured to do so, replacing any prior value. +func (a *apiVersionPolicy) Do(req *policy.Request) (*http.Response, error) { + if a.version != "" { + if a.name == "" { + // user set ClientOptions.APIVersion but the client ctor didn't set PipelineOptions.APIVersionOptions + return nil, errors.New("this client doesn't support overriding its API version") + } + switch a.location { + case APIVersionLocationHeader: + req.Raw().Header.Set(a.name, a.version) + case APIVersionLocationQueryParam: + q := req.Raw().URL.Query() + q.Set(a.name, a.version) + req.Raw().URL.RawQuery = q.Encode() + default: + return nil, fmt.Errorf("unknown APIVersionLocation %d", a.location) + } + } + return req.Next() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_bearer_token.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_bearer_token.go new file mode 100644 index 00000000..44b12c46 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_bearer_token.go @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "net/http" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/temporal" +) + +// BearerTokenPolicy authorizes requests with bearer tokens acquired from a TokenCredential. +type BearerTokenPolicy struct { + // mainResource is the resource to be retreived using the tenant specified in the credential + mainResource *temporal.Resource[exported.AccessToken, acquiringResourceState] + // the following fields are read-only + authzHandler policy.AuthorizationHandler + cred exported.TokenCredential + scopes []string +} + +type acquiringResourceState struct { + req *policy.Request + p *BearerTokenPolicy + tro policy.TokenRequestOptions +} + +// acquire acquires or updates the resource; only one +// thread/goroutine at a time ever calls this function +func acquire(state acquiringResourceState) (newResource exported.AccessToken, newExpiration time.Time, err error) { + tk, err := state.p.cred.GetToken(state.req.Raw().Context(), state.tro) + if err != nil { + return exported.AccessToken{}, time.Time{}, err + } + return tk, tk.ExpiresOn, nil +} + +// NewBearerTokenPolicy creates a policy object that authorizes requests with bearer tokens. +// cred: an azcore.TokenCredential implementation such as a credential object from azidentity +// scopes: the list of permission scopes required for the token. +// opts: optional settings. Pass nil to accept default values; this is the same as passing a zero-value options. +func NewBearerTokenPolicy(cred exported.TokenCredential, scopes []string, opts *policy.BearerTokenOptions) *BearerTokenPolicy { + if opts == nil { + opts = &policy.BearerTokenOptions{} + } + return &BearerTokenPolicy{ + authzHandler: opts.AuthorizationHandler, + cred: cred, + scopes: scopes, + mainResource: temporal.NewResource(acquire), + } +} + +// authenticateAndAuthorize returns a function which authorizes req with a token from the policy's credential +func (b *BearerTokenPolicy) authenticateAndAuthorize(req *policy.Request) func(policy.TokenRequestOptions) error { + return func(tro policy.TokenRequestOptions) error { + as := acquiringResourceState{p: b, req: req, tro: tro} + tk, err := b.mainResource.Get(as) + if err != nil { + return err + } + req.Raw().Header.Set(shared.HeaderAuthorization, shared.BearerTokenPrefix+tk.Token) + return nil + } +} + +// Do authorizes a request with a bearer token +func (b *BearerTokenPolicy) Do(req *policy.Request) (*http.Response, error) { + var err error + if b.authzHandler.OnRequest != nil { + err = b.authzHandler.OnRequest(req, b.authenticateAndAuthorize(req)) + } else { + err = b.authenticateAndAuthorize(req)(policy.TokenRequestOptions{Scopes: b.scopes}) + } + if err != nil { + return nil, shared.NonRetriableError(err) + } + + res, err := req.Next() + if err != nil { + return nil, err + } + + if res.StatusCode == http.StatusUnauthorized { + b.mainResource.Expire() + if res.Header.Get("WWW-Authenticate") != "" && b.authzHandler.OnChallenge != nil { + if err = b.authzHandler.OnChallenge(req, res, b.authenticateAndAuthorize(req)); err == nil { + res, err = req.Next() + } + } + } + if err != nil { + err = shared.NonRetriableError(err) + } + return res, err +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_body_download.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_body_download.go new file mode 100644 index 00000000..99dc029f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_body_download.go @@ -0,0 +1,72 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "fmt" + "net/http" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" +) + +// bodyDownloadPolicy creates a policy object that downloads the response's body to a []byte. +func bodyDownloadPolicy(req *policy.Request) (*http.Response, error) { + resp, err := req.Next() + if err != nil { + return resp, err + } + var opValues bodyDownloadPolicyOpValues + // don't skip downloading error response bodies + if req.OperationValue(&opValues); opValues.Skip && resp.StatusCode < 400 { + return resp, err + } + // Either bodyDownloadPolicyOpValues was not specified (so skip is false) + // or it was specified and skip is false: don't skip downloading the body + _, err = Payload(resp) + if err != nil { + return resp, newBodyDownloadError(err, req) + } + return resp, err +} + +// bodyDownloadPolicyOpValues is the struct containing the per-operation values +type bodyDownloadPolicyOpValues struct { + Skip bool +} + +type bodyDownloadError struct { + err error +} + +func newBodyDownloadError(err error, req *policy.Request) error { + // on failure, only retry the request for idempotent operations. + // we currently identify them as DELETE, GET, and PUT requests. + if m := strings.ToUpper(req.Raw().Method); m == http.MethodDelete || m == http.MethodGet || m == http.MethodPut { + // error is safe for retry + return err + } + // wrap error to avoid retries + return &bodyDownloadError{ + err: err, + } +} + +func (b *bodyDownloadError) Error() string { + return fmt.Sprintf("body download policy: %s", b.err.Error()) +} + +func (b *bodyDownloadError) NonRetriable() { + // marker method +} + +func (b *bodyDownloadError) Unwrap() error { + return b.err +} + +var _ errorinfo.NonRetriable = (*bodyDownloadError)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_header.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_header.go new file mode 100644 index 00000000..770e0a2b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_header.go @@ -0,0 +1,39 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// newHTTPHeaderPolicy creates a policy object that adds custom HTTP headers to a request +func httpHeaderPolicy(req *policy.Request) (*http.Response, error) { + // check if any custom HTTP headers have been specified + if header := req.Raw().Context().Value(shared.CtxWithHTTPHeaderKey{}); header != nil { + for k, v := range header.(http.Header) { + // use Set to replace any existing value + // it also canonicalizes the header key + req.Raw().Header.Set(k, v[0]) + // add any remaining values + for i := 1; i < len(v); i++ { + req.Raw().Header.Add(k, v[i]) + } + } + } + return req.Next() +} + +// WithHTTPHeader adds the specified http.Header to the parent context. +// Use this to specify custom HTTP headers at the API-call level. +// Any overlapping headers will have their values replaced with the values specified here. +func WithHTTPHeader(parent context.Context, header http.Header) context.Context { + return context.WithValue(parent, shared.CtxWithHTTPHeaderKey{}, header) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_trace.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_trace.go new file mode 100644 index 00000000..498434d9 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_http_trace.go @@ -0,0 +1,117 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "fmt" + "net/http" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" +) + +const ( + attrHTTPMethod = "http.method" + attrHTTPURL = "http.url" + attrHTTPUserAgent = "http.user_agent" + attrHTTPStatusCode = "http.status_code" + + attrAZClientReqID = "az.client_request_id" + attrAZServiceReqID = "az.service_request_id" + + attrNetPeerName = "net.peer.name" +) + +// newHTTPTracePolicy creates a new instance of the httpTracePolicy. +// - allowedQueryParams contains the user-specified query parameters that don't need to be redacted from the trace +func newHTTPTracePolicy(allowedQueryParams []string) exported.Policy { + return &httpTracePolicy{allowedQP: getAllowedQueryParams(allowedQueryParams)} +} + +// httpTracePolicy is a policy that creates a trace for the HTTP request and its response +type httpTracePolicy struct { + allowedQP map[string]struct{} +} + +// Do implements the pipeline.Policy interfaces for the httpTracePolicy type. +func (h *httpTracePolicy) Do(req *policy.Request) (resp *http.Response, err error) { + rawTracer := req.Raw().Context().Value(shared.CtxWithTracingTracer{}) + if tracer, ok := rawTracer.(tracing.Tracer); ok { + attributes := []tracing.Attribute{ + {Key: attrHTTPMethod, Value: req.Raw().Method}, + {Key: attrHTTPURL, Value: getSanitizedURL(*req.Raw().URL, h.allowedQP)}, + {Key: attrNetPeerName, Value: req.Raw().URL.Host}, + } + + if ua := req.Raw().Header.Get(shared.HeaderUserAgent); ua != "" { + attributes = append(attributes, tracing.Attribute{Key: attrHTTPUserAgent, Value: ua}) + } + if reqID := req.Raw().Header.Get(shared.HeaderXMSClientRequestID); reqID != "" { + attributes = append(attributes, tracing.Attribute{Key: attrAZClientReqID, Value: reqID}) + } + + ctx := req.Raw().Context() + ctx, span := tracer.Start(ctx, "HTTP "+req.Raw().Method, &tracing.SpanOptions{ + Kind: tracing.SpanKindClient, + Attributes: attributes, + }) + + defer func() { + if resp != nil { + span.SetAttributes(tracing.Attribute{Key: attrHTTPStatusCode, Value: resp.StatusCode}) + if resp.StatusCode > 399 { + span.SetStatus(tracing.SpanStatusError, resp.Status) + } + if reqID := resp.Header.Get(shared.HeaderXMSRequestID); reqID != "" { + span.SetAttributes(tracing.Attribute{Key: attrAZServiceReqID, Value: reqID}) + } + } else if err != nil { + // including the output from err.Error() might disclose URL query parameters. + // so instead of attempting to sanitize the output, we simply output the error type. + span.SetStatus(tracing.SpanStatusError, fmt.Sprintf("%T", err)) + } + span.End(nil) + }() + + req = req.WithContext(ctx) + } + resp, err = req.Next() + return +} + +// StartSpanOptions contains the optional values for StartSpan. +type StartSpanOptions struct { + // for future expansion +} + +// StartSpan starts a new tracing span. +// You must call the returned func to terminate the span. Pass the applicable error +// if the span will exit with an error condition. +// - ctx is the parent context of the newly created context +// - name is the name of the span. this is typically the fully qualified name of an API ("Client.Method") +// - tracer is the client's Tracer for creating spans +// - options contains optional values. pass nil to accept any default values +func StartSpan(ctx context.Context, name string, tracer tracing.Tracer, options *StartSpanOptions) (context.Context, func(error)) { + if !tracer.Enabled() { + return ctx, func(err error) {} + } + ctx, span := tracer.Start(ctx, name, &tracing.SpanOptions{ + Kind: tracing.SpanKindInternal, + }) + ctx = context.WithValue(ctx, shared.CtxWithTracingTracer{}, tracer) + return ctx, func(err error) { + if err != nil { + errType := strings.Replace(fmt.Sprintf("%T", err), "*exported.", "*azcore.", 1) + span.SetStatus(tracing.SpanStatusError, fmt.Sprintf("%s:\n%s", errType, err.Error())) + } + span.End(nil) + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_include_response.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_include_response.go new file mode 100644 index 00000000..4714baa3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_include_response.go @@ -0,0 +1,34 @@ +//go:build go1.16 +// +build go1.16 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// includeResponsePolicy creates a policy that retrieves the raw HTTP response upon request +func includeResponsePolicy(req *policy.Request) (*http.Response, error) { + resp, err := req.Next() + if resp == nil { + return resp, err + } + if httpOutRaw := req.Raw().Context().Value(shared.CtxIncludeResponseKey{}); httpOutRaw != nil { + httpOut := httpOutRaw.(**http.Response) + *httpOut = resp + } + return resp, err +} + +// WithCaptureResponse applies the HTTP response retrieval annotation to the parent context. +// The resp parameter will contain the HTTP response after the request has completed. +func WithCaptureResponse(parent context.Context, resp **http.Response) context.Context { + return context.WithValue(parent, shared.CtxIncludeResponseKey{}, resp) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_logging.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_logging.go new file mode 100644 index 00000000..8514f57d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_logging.go @@ -0,0 +1,263 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "bytes" + "fmt" + "io" + "net/http" + "net/url" + "sort" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/diag" +) + +type logPolicy struct { + includeBody bool + allowedHeaders map[string]struct{} + allowedQP map[string]struct{} +} + +// NewLogPolicy creates a request/response logging policy object configured using the specified options. +// Pass nil to accept the default values; this is the same as passing a zero-value options. +func NewLogPolicy(o *policy.LogOptions) policy.Policy { + if o == nil { + o = &policy.LogOptions{} + } + // construct default hash set of allowed headers + allowedHeaders := map[string]struct{}{ + "accept": {}, + "cache-control": {}, + "connection": {}, + "content-length": {}, + "content-type": {}, + "date": {}, + "etag": {}, + "expires": {}, + "if-match": {}, + "if-modified-since": {}, + "if-none-match": {}, + "if-unmodified-since": {}, + "last-modified": {}, + "ms-cv": {}, + "pragma": {}, + "request-id": {}, + "retry-after": {}, + "server": {}, + "traceparent": {}, + "transfer-encoding": {}, + "user-agent": {}, + "www-authenticate": {}, + "x-ms-request-id": {}, + "x-ms-client-request-id": {}, + "x-ms-return-client-request-id": {}, + } + // add any caller-specified allowed headers to the set + for _, ah := range o.AllowedHeaders { + allowedHeaders[strings.ToLower(ah)] = struct{}{} + } + // now do the same thing for query params + allowedQP := getAllowedQueryParams(o.AllowedQueryParams) + return &logPolicy{ + includeBody: o.IncludeBody, + allowedHeaders: allowedHeaders, + allowedQP: allowedQP, + } +} + +// getAllowedQueryParams merges the default set of allowed query parameters +// with a custom set (usually comes from client options). +func getAllowedQueryParams(customAllowedQP []string) map[string]struct{} { + allowedQP := map[string]struct{}{ + "api-version": {}, + } + for _, qp := range customAllowedQP { + allowedQP[strings.ToLower(qp)] = struct{}{} + } + return allowedQP +} + +// logPolicyOpValues is the struct containing the per-operation values +type logPolicyOpValues struct { + try int32 + start time.Time +} + +func (p *logPolicy) Do(req *policy.Request) (*http.Response, error) { + // Get the per-operation values. These are saved in the Message's map so that they persist across each retry calling into this policy object. + var opValues logPolicyOpValues + if req.OperationValue(&opValues); opValues.start.IsZero() { + opValues.start = time.Now() // If this is the 1st try, record this operation's start time + } + opValues.try++ // The first try is #1 (not #0) + req.SetOperationValue(opValues) + + // Log the outgoing request as informational + if log.Should(log.EventRequest) { + b := &bytes.Buffer{} + fmt.Fprintf(b, "==> OUTGOING REQUEST (Try=%d)\n", opValues.try) + p.writeRequestWithResponse(b, req, nil, nil) + var err error + if p.includeBody { + err = writeReqBody(req, b) + } + log.Write(log.EventRequest, b.String()) + if err != nil { + return nil, err + } + } + + // Set the time for this particular retry operation and then Do the operation. + tryStart := time.Now() + response, err := req.Next() // Make the request + tryEnd := time.Now() + tryDuration := tryEnd.Sub(tryStart) + opDuration := tryEnd.Sub(opValues.start) + + if log.Should(log.EventResponse) { + // We're going to log this; build the string to log + b := &bytes.Buffer{} + fmt.Fprintf(b, "==> REQUEST/RESPONSE (Try=%d/%v, OpTime=%v) -- ", opValues.try, tryDuration, opDuration) + if err != nil { // This HTTP request did not get a response from the service + fmt.Fprint(b, "REQUEST ERROR\n") + } else { + fmt.Fprint(b, "RESPONSE RECEIVED\n") + } + + p.writeRequestWithResponse(b, req, response, err) + if err != nil { + // skip frames runtime.Callers() and runtime.StackTrace() + b.WriteString(diag.StackTrace(2, 32)) + } else if p.includeBody { + err = writeRespBody(response, b) + } + log.Write(log.EventResponse, b.String()) + } + return response, err +} + +const redactedValue = "REDACTED" + +// getSanitizedURL returns a sanitized string for the provided url.URL +func getSanitizedURL(u url.URL, allowedQueryParams map[string]struct{}) string { + // redact applicable query params + qp := u.Query() + for k := range qp { + if _, ok := allowedQueryParams[strings.ToLower(k)]; !ok { + qp.Set(k, redactedValue) + } + } + u.RawQuery = qp.Encode() + return u.String() +} + +// writeRequestWithResponse appends a formatted HTTP request into a Buffer. If request and/or err are +// not nil, then these are also written into the Buffer. +func (p *logPolicy) writeRequestWithResponse(b *bytes.Buffer, req *policy.Request, resp *http.Response, err error) { + // Write the request into the buffer. + fmt.Fprint(b, " "+req.Raw().Method+" "+getSanitizedURL(*req.Raw().URL, p.allowedQP)+"\n") + p.writeHeader(b, req.Raw().Header) + if resp != nil { + fmt.Fprintln(b, " --------------------------------------------------------------------------------") + fmt.Fprint(b, " RESPONSE Status: "+resp.Status+"\n") + p.writeHeader(b, resp.Header) + } + if err != nil { + fmt.Fprintln(b, " --------------------------------------------------------------------------------") + fmt.Fprint(b, " ERROR:\n"+err.Error()+"\n") + } +} + +// formatHeaders appends an HTTP request's or response's header into a Buffer. +func (p *logPolicy) writeHeader(b *bytes.Buffer, header http.Header) { + if len(header) == 0 { + b.WriteString(" (no headers)\n") + return + } + keys := make([]string, 0, len(header)) + // Alphabetize the headers + for k := range header { + keys = append(keys, k) + } + sort.Strings(keys) + for _, k := range keys { + value := header.Get(k) + // redact all header values not in the allow-list + if _, ok := p.allowedHeaders[strings.ToLower(k)]; !ok { + value = redactedValue + } + fmt.Fprintf(b, " %s: %+v\n", k, value) + } +} + +// returns true if the request/response body should be logged. +// this is determined by looking at the content-type header value. +func shouldLogBody(b *bytes.Buffer, contentType string) bool { + contentType = strings.ToLower(contentType) + if strings.HasPrefix(contentType, "text") || + strings.Contains(contentType, "json") || + strings.Contains(contentType, "xml") { + return true + } + fmt.Fprintf(b, " Skip logging body for %s\n", contentType) + return false +} + +// writes to a buffer, used for logging purposes +func writeReqBody(req *policy.Request, b *bytes.Buffer) error { + if req.Raw().Body == nil { + fmt.Fprint(b, " Request contained no body\n") + return nil + } + if ct := req.Raw().Header.Get(shared.HeaderContentType); !shouldLogBody(b, ct) { + return nil + } + body, err := io.ReadAll(req.Raw().Body) + if err != nil { + fmt.Fprintf(b, " Failed to read request body: %s\n", err.Error()) + return err + } + if err := req.RewindBody(); err != nil { + return err + } + logBody(b, body) + return nil +} + +// writes to a buffer, used for logging purposes +func writeRespBody(resp *http.Response, b *bytes.Buffer) error { + ct := resp.Header.Get(shared.HeaderContentType) + if ct == "" { + fmt.Fprint(b, " Response contained no body\n") + return nil + } else if !shouldLogBody(b, ct) { + return nil + } + body, err := Payload(resp) + if err != nil { + fmt.Fprintf(b, " Failed to read response body: %s\n", err.Error()) + return err + } + if len(body) > 0 { + logBody(b, body) + } else { + fmt.Fprint(b, " Response contained no body\n") + } + return nil +} + +func logBody(b *bytes.Buffer, body []byte) { + fmt.Fprintln(b, " --------------------------------------------------------------------------------") + fmt.Fprintln(b, string(body)) + fmt.Fprintln(b, " --------------------------------------------------------------------------------") +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_request_id.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_request_id.go new file mode 100644 index 00000000..360a7f21 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_request_id.go @@ -0,0 +1,34 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/uuid" +) + +type requestIDPolicy struct{} + +// NewRequestIDPolicy returns a policy that add the x-ms-client-request-id header +func NewRequestIDPolicy() policy.Policy { + return &requestIDPolicy{} +} + +func (r *requestIDPolicy) Do(req *policy.Request) (*http.Response, error) { + if req.Raw().Header.Get(shared.HeaderXMSClientRequestID) == "" { + id, err := uuid.New() + if err != nil { + return nil, err + } + req.Raw().Header.Set(shared.HeaderXMSClientRequestID, id.String()) + } + + return req.Next() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_retry.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_retry.go new file mode 100644 index 00000000..09fb3233 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_retry.go @@ -0,0 +1,254 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "errors" + "io" + "math" + "math/rand" + "net/http" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" + "github.com/Azure/azure-sdk-for-go/sdk/internal/exported" +) + +const ( + defaultMaxRetries = 3 +) + +func setDefaults(o *policy.RetryOptions) { + if o.MaxRetries == 0 { + o.MaxRetries = defaultMaxRetries + } else if o.MaxRetries < 0 { + o.MaxRetries = 0 + } + + // SDK guidelines specify the default MaxRetryDelay is 60 seconds + if o.MaxRetryDelay == 0 { + o.MaxRetryDelay = 60 * time.Second + } else if o.MaxRetryDelay < 0 { + // not really an unlimited cap, but sufficiently large enough to be considered as such + o.MaxRetryDelay = math.MaxInt64 + } + if o.RetryDelay == 0 { + o.RetryDelay = 800 * time.Millisecond + } else if o.RetryDelay < 0 { + o.RetryDelay = 0 + } + if o.StatusCodes == nil { + // NOTE: if you change this list, you MUST update the docs in policy/policy.go + o.StatusCodes = []int{ + http.StatusRequestTimeout, // 408 + http.StatusTooManyRequests, // 429 + http.StatusInternalServerError, // 500 + http.StatusBadGateway, // 502 + http.StatusServiceUnavailable, // 503 + http.StatusGatewayTimeout, // 504 + } + } +} + +func calcDelay(o policy.RetryOptions, try int32) time.Duration { // try is >=1; never 0 + delay := time.Duration((1< o.MaxRetryDelay { + delay = o.MaxRetryDelay + } + return delay +} + +// NewRetryPolicy creates a policy object configured using the specified options. +// Pass nil to accept the default values; this is the same as passing a zero-value options. +func NewRetryPolicy(o *policy.RetryOptions) policy.Policy { + if o == nil { + o = &policy.RetryOptions{} + } + p := &retryPolicy{options: *o} + return p +} + +type retryPolicy struct { + options policy.RetryOptions +} + +func (p *retryPolicy) Do(req *policy.Request) (resp *http.Response, err error) { + options := p.options + // check if the retry options have been overridden for this call + if override := req.Raw().Context().Value(shared.CtxWithRetryOptionsKey{}); override != nil { + options = override.(policy.RetryOptions) + } + setDefaults(&options) + // Exponential retry algorithm: ((2 ^ attempt) - 1) * delay * random(0.8, 1.2) + // When to retry: connection failure or temporary/timeout. + var rwbody *retryableRequestBody + if req.Body() != nil { + // wrap the body so we control when it's actually closed. + // do this outside the for loop so defers don't accumulate. + rwbody = &retryableRequestBody{body: req.Body()} + defer rwbody.realClose() + } + try := int32(1) + for { + resp = nil // reset + log.Writef(log.EventRetryPolicy, "=====> Try=%d", try) + + // For each try, seek to the beginning of the Body stream. We do this even for the 1st try because + // the stream may not be at offset 0 when we first get it and we want the same behavior for the + // 1st try as for additional tries. + err = req.RewindBody() + if err != nil { + return + } + // RewindBody() restores Raw().Body to its original state, so set our rewindable after + if rwbody != nil { + req.Raw().Body = rwbody + } + + if options.TryTimeout == 0 { + clone := req.Clone(req.Raw().Context()) + resp, err = clone.Next() + } else { + // Set the per-try time for this particular retry operation and then Do the operation. + tryCtx, tryCancel := context.WithTimeout(req.Raw().Context(), options.TryTimeout) + clone := req.Clone(tryCtx) + resp, err = clone.Next() // Make the request + // if the body was already downloaded or there was an error it's safe to cancel the context now + if err != nil { + tryCancel() + } else if exported.PayloadDownloaded(resp) { + tryCancel() + } else { + // must cancel the context after the body has been read and closed + resp.Body = &contextCancelReadCloser{cf: tryCancel, body: resp.Body} + } + } + if err == nil { + log.Writef(log.EventRetryPolicy, "response %d", resp.StatusCode) + } else { + log.Writef(log.EventRetryPolicy, "error %v", err) + } + + if ctxErr := req.Raw().Context().Err(); ctxErr != nil { + // don't retry if the parent context has been cancelled or its deadline exceeded + err = ctxErr + log.Writef(log.EventRetryPolicy, "abort due to %v", err) + return + } + + // check if the error is not retriable + var nre errorinfo.NonRetriable + if errors.As(err, &nre) { + // the error says it's not retriable so don't retry + log.Writef(log.EventRetryPolicy, "non-retriable error %T", nre) + return + } + + if options.ShouldRetry != nil { + // a non-nil ShouldRetry overrides our HTTP status code check + if !options.ShouldRetry(resp, err) { + // predicate says we shouldn't retry + log.Write(log.EventRetryPolicy, "exit due to ShouldRetry") + return + } + } else if err == nil && !HasStatusCode(resp, options.StatusCodes...) { + // if there is no error and the response code isn't in the list of retry codes then we're done. + log.Write(log.EventRetryPolicy, "exit due to non-retriable status code") + return + } + + if try == options.MaxRetries+1 { + // max number of tries has been reached, don't sleep again + log.Writef(log.EventRetryPolicy, "MaxRetries %d exceeded", options.MaxRetries) + return + } + + // use the delay from retry-after if available + delay := shared.RetryAfter(resp) + if delay <= 0 { + delay = calcDelay(options, try) + } else if delay > options.MaxRetryDelay { + // the retry-after delay exceeds the the cap so don't retry + log.Writef(log.EventRetryPolicy, "Retry-After delay %s exceeds MaxRetryDelay of %s", delay, options.MaxRetryDelay) + return + } + + // drain before retrying so nothing is leaked + Drain(resp) + + log.Writef(log.EventRetryPolicy, "End Try #%d, Delay=%v", try, delay) + select { + case <-time.After(delay): + try++ + case <-req.Raw().Context().Done(): + err = req.Raw().Context().Err() + log.Writef(log.EventRetryPolicy, "abort due to %v", err) + return + } + } +} + +// WithRetryOptions adds the specified RetryOptions to the parent context. +// Use this to specify custom RetryOptions at the API-call level. +func WithRetryOptions(parent context.Context, options policy.RetryOptions) context.Context { + return context.WithValue(parent, shared.CtxWithRetryOptionsKey{}, options) +} + +// ********** The following type/methods implement the retryableRequestBody (a ReadSeekCloser) + +// This struct is used when sending a body to the network +type retryableRequestBody struct { + body io.ReadSeeker // Seeking is required to support retries +} + +// Read reads a block of data from an inner stream and reports progress +func (b *retryableRequestBody) Read(p []byte) (n int, err error) { + return b.body.Read(p) +} + +func (b *retryableRequestBody) Seek(offset int64, whence int) (offsetFromStart int64, err error) { + return b.body.Seek(offset, whence) +} + +func (b *retryableRequestBody) Close() error { + // We don't want the underlying transport to close the request body on transient failures so this is a nop. + // The retry policy closes the request body upon success. + return nil +} + +func (b *retryableRequestBody) realClose() error { + if c, ok := b.body.(io.Closer); ok { + return c.Close() + } + return nil +} + +// ********** The following type/methods implement the contextCancelReadCloser + +// contextCancelReadCloser combines an io.ReadCloser with a cancel func. +// it ensures the cancel func is invoked once the body has been read and closed. +type contextCancelReadCloser struct { + cf context.CancelFunc + body io.ReadCloser +} + +func (rc *contextCancelReadCloser) Read(p []byte) (n int, err error) { + return rc.body.Read(p) +} + +func (rc *contextCancelReadCloser) Close() error { + err := rc.body.Close() + rc.cf() + return err +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_telemetry.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_telemetry.go new file mode 100644 index 00000000..2abcdc57 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/policy_telemetry.go @@ -0,0 +1,79 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "bytes" + "fmt" + "net/http" + "os" + "runtime" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +type telemetryPolicy struct { + telemetryValue string +} + +// NewTelemetryPolicy creates a telemetry policy object that adds telemetry information to outgoing HTTP requests. +// The format is [ ]azsdk-go-/ . +// Pass nil to accept the default values; this is the same as passing a zero-value options. +func NewTelemetryPolicy(mod, ver string, o *policy.TelemetryOptions) policy.Policy { + if o == nil { + o = &policy.TelemetryOptions{} + } + tp := telemetryPolicy{} + if o.Disabled { + return &tp + } + b := &bytes.Buffer{} + // normalize ApplicationID + if o.ApplicationID != "" { + o.ApplicationID = strings.ReplaceAll(o.ApplicationID, " ", "/") + if len(o.ApplicationID) > 24 { + o.ApplicationID = o.ApplicationID[:24] + } + b.WriteString(o.ApplicationID) + b.WriteRune(' ') + } + b.WriteString(formatTelemetry(mod, ver)) + b.WriteRune(' ') + b.WriteString(platformInfo) + tp.telemetryValue = b.String() + return &tp +} + +func formatTelemetry(comp, ver string) string { + return fmt.Sprintf("azsdk-go-%s/%s", comp, ver) +} + +func (p telemetryPolicy) Do(req *policy.Request) (*http.Response, error) { + if p.telemetryValue == "" { + return req.Next() + } + // preserve the existing User-Agent string + if ua := req.Raw().Header.Get(shared.HeaderUserAgent); ua != "" { + p.telemetryValue = fmt.Sprintf("%s %s", p.telemetryValue, ua) + } + req.Raw().Header.Set(shared.HeaderUserAgent, p.telemetryValue) + return req.Next() +} + +// NOTE: the ONLY function that should write to this variable is this func +var platformInfo = func() string { + operatingSystem := runtime.GOOS // Default OS string + switch operatingSystem { + case "windows": + operatingSystem = os.Getenv("OS") // Get more specific OS information + case "linux": // accept default OS info + case "freebsd": // accept default OS info + } + return fmt.Sprintf("(%s; %s)", runtime.Version(), operatingSystem) +}() diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go new file mode 100644 index 00000000..c373f689 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/poller.go @@ -0,0 +1,384 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "context" + "encoding/json" + "errors" + "flag" + "fmt" + "net/http" + "reflect" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing" + "github.com/Azure/azure-sdk-for-go/sdk/internal/poller" +) + +// FinalStateVia is the enumerated type for the possible final-state-via values. +type FinalStateVia = pollers.FinalStateVia + +const ( + // FinalStateViaAzureAsyncOp indicates the final payload comes from the Azure-AsyncOperation URL. + FinalStateViaAzureAsyncOp = pollers.FinalStateViaAzureAsyncOp + + // FinalStateViaLocation indicates the final payload comes from the Location URL. + FinalStateViaLocation = pollers.FinalStateViaLocation + + // FinalStateViaOriginalURI indicates the final payload comes from the original URL. + FinalStateViaOriginalURI = pollers.FinalStateViaOriginalURI + + // FinalStateViaOpLocation indicates the final payload comes from the Operation-Location URL. + FinalStateViaOpLocation = pollers.FinalStateViaOpLocation +) + +// NewPollerOptions contains the optional parameters for NewPoller. +type NewPollerOptions[T any] struct { + // FinalStateVia contains the final-state-via value for the LRO. + FinalStateVia FinalStateVia + + // Response contains a preconstructed response type. + // The final payload will be unmarshaled into it and returned. + Response *T + + // Handler[T] contains a custom polling implementation. + Handler PollingHandler[T] + + // Tracer contains the Tracer from the client that's creating the Poller. + Tracer tracing.Tracer +} + +// NewPoller creates a Poller based on the provided initial response. +func NewPoller[T any](resp *http.Response, pl exported.Pipeline, options *NewPollerOptions[T]) (*Poller[T], error) { + if options == nil { + options = &NewPollerOptions[T]{} + } + result := options.Response + if result == nil { + result = new(T) + } + if options.Handler != nil { + return &Poller[T]{ + op: options.Handler, + resp: resp, + result: result, + tracer: options.Tracer, + }, nil + } + + defer resp.Body.Close() + // this is a back-stop in case the swagger is incorrect (i.e. missing one or more status codes for success). + // ideally the codegen should return an error if the initial response failed and not even create a poller. + if !poller.StatusCodeValid(resp) { + return nil, errors.New("the operation failed or was cancelled") + } + + // determine the polling method + var opr PollingHandler[T] + var err error + if fake.Applicable(resp) { + opr, err = fake.New[T](pl, resp) + } else if async.Applicable(resp) { + // async poller must be checked first as it can also have a location header + opr, err = async.New[T](pl, resp, options.FinalStateVia) + } else if op.Applicable(resp) { + // op poller must be checked before loc as it can also have a location header + opr, err = op.New[T](pl, resp, options.FinalStateVia) + } else if loc.Applicable(resp) { + opr, err = loc.New[T](pl, resp) + } else if body.Applicable(resp) { + // must test body poller last as it's a subset of the other pollers. + // TODO: this is ambiguous for PATCH/PUT if it returns a 200 with no polling headers (sync completion) + opr, err = body.New[T](pl, resp) + } else if m := resp.Request.Method; resp.StatusCode == http.StatusAccepted && (m == http.MethodDelete || m == http.MethodPost) { + // if we get here it means we have a 202 with no polling headers. + // for DELETE and POST this is a hard error per ARM RPC spec. + return nil, errors.New("response is missing polling URL") + } else { + opr, err = pollers.NewNopPoller[T](resp) + } + + if err != nil { + return nil, err + } + return &Poller[T]{ + op: opr, + resp: resp, + result: result, + tracer: options.Tracer, + }, nil +} + +// NewPollerFromResumeTokenOptions contains the optional parameters for NewPollerFromResumeToken. +type NewPollerFromResumeTokenOptions[T any] struct { + // Response contains a preconstructed response type. + // The final payload will be unmarshaled into it and returned. + Response *T + + // Handler[T] contains a custom polling implementation. + Handler PollingHandler[T] + + // Tracer contains the Tracer from the client that's creating the Poller. + Tracer tracing.Tracer +} + +// NewPollerFromResumeToken creates a Poller from a resume token string. +func NewPollerFromResumeToken[T any](token string, pl exported.Pipeline, options *NewPollerFromResumeTokenOptions[T]) (*Poller[T], error) { + if options == nil { + options = &NewPollerFromResumeTokenOptions[T]{} + } + result := options.Response + if result == nil { + result = new(T) + } + + if err := pollers.IsTokenValid[T](token); err != nil { + return nil, err + } + raw, err := pollers.ExtractToken(token) + if err != nil { + return nil, err + } + var asJSON map[string]interface{} + if err := json.Unmarshal(raw, &asJSON); err != nil { + return nil, err + } + + opr := options.Handler + // now rehydrate the poller based on the encoded poller type + if fake.CanResume(asJSON) { + opr, _ = fake.New[T](pl, nil) + } else if opr != nil { + log.Writef(log.EventLRO, "Resuming custom poller %T.", opr) + } else if async.CanResume(asJSON) { + opr, _ = async.New[T](pl, nil, "") + } else if body.CanResume(asJSON) { + opr, _ = body.New[T](pl, nil) + } else if loc.CanResume(asJSON) { + opr, _ = loc.New[T](pl, nil) + } else if op.CanResume(asJSON) { + opr, _ = op.New[T](pl, nil, "") + } else { + return nil, fmt.Errorf("unhandled poller token %s", string(raw)) + } + if err := json.Unmarshal(raw, &opr); err != nil { + return nil, err + } + return &Poller[T]{ + op: opr, + result: result, + tracer: options.Tracer, + }, nil +} + +// PollingHandler[T] abstracts the differences among poller implementations. +type PollingHandler[T any] interface { + // Done returns true if the LRO has reached a terminal state. + Done() bool + + // Poll fetches the latest state of the LRO. + Poll(context.Context) (*http.Response, error) + + // Result is called once the LRO has reached a terminal state. It populates the out parameter + // with the result of the operation. + Result(ctx context.Context, out *T) error +} + +// Poller encapsulates a long-running operation, providing polling facilities until the operation reaches a terminal state. +type Poller[T any] struct { + op PollingHandler[T] + resp *http.Response + err error + result *T + tracer tracing.Tracer + done bool +} + +// PollUntilDoneOptions contains the optional values for the Poller[T].PollUntilDone() method. +type PollUntilDoneOptions struct { + // Frequency is the time to wait between polling intervals in absence of a Retry-After header. Allowed minimum is one second. + // Pass zero to accept the default value (30s). + Frequency time.Duration +} + +// PollUntilDone will poll the service endpoint until a terminal state is reached, an error is received, or the context expires. +// It internally uses Poll(), Done(), and Result() in its polling loop, sleeping for the specified duration between intervals. +// options: pass nil to accept the default values. +// NOTE: the default polling frequency is 30 seconds which works well for most operations. However, some operations might +// benefit from a shorter or longer duration. +func (p *Poller[T]) PollUntilDone(ctx context.Context, options *PollUntilDoneOptions) (res T, err error) { + if options == nil { + options = &PollUntilDoneOptions{} + } + cp := *options + if cp.Frequency == 0 { + cp.Frequency = 30 * time.Second + } + + ctx, endSpan := StartSpan(ctx, fmt.Sprintf("%s.PollUntilDone", shortenTypeName(reflect.TypeOf(*p).Name())), p.tracer, nil) + defer func() { endSpan(err) }() + + // skip the floor check when executing tests so they don't take so long + if isTest := flag.Lookup("test.v"); isTest == nil && cp.Frequency < time.Second { + err = errors.New("polling frequency minimum is one second") + return + } + + start := time.Now() + logPollUntilDoneExit := func(v interface{}) { + log.Writef(log.EventLRO, "END PollUntilDone() for %T: %v, total time: %s", p.op, v, time.Since(start)) + } + log.Writef(log.EventLRO, "BEGIN PollUntilDone() for %T", p.op) + if p.resp != nil { + // initial check for a retry-after header existing on the initial response + if retryAfter := shared.RetryAfter(p.resp); retryAfter > 0 { + log.Writef(log.EventLRO, "initial Retry-After delay for %s", retryAfter.String()) + if err = shared.Delay(ctx, retryAfter); err != nil { + logPollUntilDoneExit(err) + return + } + } + } + // begin polling the endpoint until a terminal state is reached + for { + var resp *http.Response + resp, err = p.Poll(ctx) + if err != nil { + logPollUntilDoneExit(err) + return + } + if p.Done() { + logPollUntilDoneExit("succeeded") + res, err = p.Result(ctx) + return + } + d := cp.Frequency + if retryAfter := shared.RetryAfter(resp); retryAfter > 0 { + log.Writef(log.EventLRO, "Retry-After delay for %s", retryAfter.String()) + d = retryAfter + } else { + log.Writef(log.EventLRO, "delay for %s", d.String()) + } + if err = shared.Delay(ctx, d); err != nil { + logPollUntilDoneExit(err) + return + } + } +} + +// Poll fetches the latest state of the LRO. It returns an HTTP response or error. +// If Poll succeeds, the poller's state is updated and the HTTP response is returned. +// If Poll fails, the poller's state is unmodified and the error is returned. +// Calling Poll on an LRO that has reached a terminal state will return the last HTTP response. +func (p *Poller[T]) Poll(ctx context.Context) (resp *http.Response, err error) { + if p.Done() { + // the LRO has reached a terminal state, don't poll again + resp = p.resp + return + } + + ctx, endSpan := StartSpan(ctx, fmt.Sprintf("%s.Poll", shortenTypeName(reflect.TypeOf(*p).Name())), p.tracer, nil) + defer func() { endSpan(err) }() + + resp, err = p.op.Poll(ctx) + if err != nil { + return + } + p.resp = resp + return +} + +// Done returns true if the LRO has reached a terminal state. +// Once a terminal state is reached, call Result(). +func (p *Poller[T]) Done() bool { + return p.op.Done() +} + +// Result returns the result of the LRO and is meant to be used in conjunction with Poll and Done. +// If the LRO completed successfully, a populated instance of T is returned. +// If the LRO failed or was canceled, an *azcore.ResponseError error is returned. +// Calling this on an LRO in a non-terminal state will return an error. +func (p *Poller[T]) Result(ctx context.Context) (res T, err error) { + if !p.Done() { + err = errors.New("poller is in a non-terminal state") + return + } + if p.done { + // the result has already been retrieved, return the cached value + if p.err != nil { + err = p.err + return + } + res = *p.result + return + } + + ctx, endSpan := StartSpan(ctx, fmt.Sprintf("%s.Result", shortenTypeName(reflect.TypeOf(*p).Name())), p.tracer, nil) + defer func() { endSpan(err) }() + + err = p.op.Result(ctx, p.result) + var respErr *exported.ResponseError + if errors.As(err, &respErr) { + // the LRO failed. record the error + p.err = err + } else if err != nil { + // the call to Result failed, don't cache anything in this case + return + } + p.done = true + if p.err != nil { + err = p.err + return + } + res = *p.result + return +} + +// ResumeToken returns a value representing the poller that can be used to resume +// the LRO at a later time. ResumeTokens are unique per service operation. +// The token's format should be considered opaque and is subject to change. +// Calling this on an LRO in a terminal state will return an error. +func (p *Poller[T]) ResumeToken() (string, error) { + if p.Done() { + return "", errors.New("poller is in a terminal state") + } + tk, err := pollers.NewResumeToken[T](p.op) + if err != nil { + return "", err + } + return tk, err +} + +// extracts the type name from the string returned from reflect.Value.Name() +func shortenTypeName(s string) string { + // the value is formatted as follows + // Poller[module/Package.Type].Method + // we want to shorten the generic type parameter string to Type + // anything we don't recognize will be left as-is + begin := strings.Index(s, "[") + end := strings.Index(s, "]") + if begin == -1 || end == -1 { + return s + } + + typeName := s[begin+1 : end] + if i := strings.LastIndex(typeName, "."); i > -1 { + typeName = typeName[i+1:] + } + return s[:begin+1] + typeName + s[end:] +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go new file mode 100644 index 00000000..7938b5fb --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go @@ -0,0 +1,247 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "bytes" + "context" + "encoding/json" + "encoding/xml" + "fmt" + "io" + "mime/multipart" + "os" + "path" + "reflect" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +// Base64Encoding is usesd to specify which base-64 encoder/decoder to use when +// encoding/decoding a slice of bytes to/from a string. +type Base64Encoding = exported.Base64Encoding + +const ( + // Base64StdFormat uses base64.StdEncoding for encoding and decoding payloads. + Base64StdFormat Base64Encoding = exported.Base64StdFormat + + // Base64URLFormat uses base64.RawURLEncoding for encoding and decoding payloads. + Base64URLFormat Base64Encoding = exported.Base64URLFormat +) + +// NewRequest creates a new policy.Request with the specified input. +// The endpoint MUST be properly encoded before calling this function. +func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*policy.Request, error) { + return exported.NewRequest(ctx, httpMethod, endpoint) +} + +// JoinPaths concatenates multiple URL path segments into one path, +// inserting path separation characters as required. JoinPaths will preserve +// query parameters in the root path +func JoinPaths(root string, paths ...string) string { + if len(paths) == 0 { + return root + } + + qps := "" + if strings.Contains(root, "?") { + splitPath := strings.Split(root, "?") + root, qps = splitPath[0], splitPath[1] + } + + p := path.Join(paths...) + // path.Join will remove any trailing slashes. + // if one was provided, preserve it. + if strings.HasSuffix(paths[len(paths)-1], "/") && !strings.HasSuffix(p, "/") { + p += "/" + } + + if qps != "" { + p = p + "?" + qps + } + + if strings.HasSuffix(root, "/") && strings.HasPrefix(p, "/") { + root = root[:len(root)-1] + } else if !strings.HasSuffix(root, "/") && !strings.HasPrefix(p, "/") { + p = "/" + p + } + return root + p +} + +// EncodeByteArray will base-64 encode the byte slice v. +func EncodeByteArray(v []byte, format Base64Encoding) string { + return exported.EncodeByteArray(v, format) +} + +// MarshalAsByteArray will base-64 encode the byte slice v, then calls SetBody. +// The encoded value is treated as a JSON string. +func MarshalAsByteArray(req *policy.Request, v []byte, format Base64Encoding) error { + // send as a JSON string + encode := fmt.Sprintf("\"%s\"", EncodeByteArray(v, format)) + return req.SetBody(exported.NopCloser(strings.NewReader(encode)), shared.ContentTypeAppJSON) +} + +// MarshalAsJSON calls json.Marshal() to get the JSON encoding of v then calls SetBody. +func MarshalAsJSON(req *policy.Request, v interface{}) error { + if omit := os.Getenv("AZURE_SDK_GO_OMIT_READONLY"); omit == "true" { + v = cloneWithoutReadOnlyFields(v) + } + b, err := json.Marshal(v) + if err != nil { + return fmt.Errorf("error marshalling type %T: %s", v, err) + } + return req.SetBody(exported.NopCloser(bytes.NewReader(b)), shared.ContentTypeAppJSON) +} + +// MarshalAsXML calls xml.Marshal() to get the XML encoding of v then calls SetBody. +func MarshalAsXML(req *policy.Request, v interface{}) error { + b, err := xml.Marshal(v) + if err != nil { + return fmt.Errorf("error marshalling type %T: %s", v, err) + } + // inclue the XML header as some services require it + b = []byte(xml.Header + string(b)) + return req.SetBody(exported.NopCloser(bytes.NewReader(b)), shared.ContentTypeAppXML) +} + +// SetMultipartFormData writes the specified keys/values as multi-part form +// fields with the specified value. File content must be specified as a ReadSeekCloser. +// All other values are treated as string values. +func SetMultipartFormData(req *policy.Request, formData map[string]interface{}) error { + body := bytes.Buffer{} + writer := multipart.NewWriter(&body) + + writeContent := func(fieldname, filename string, src io.Reader) error { + fd, err := writer.CreateFormFile(fieldname, filename) + if err != nil { + return err + } + // copy the data to the form file + if _, err = io.Copy(fd, src); err != nil { + return err + } + return nil + } + + for k, v := range formData { + if rsc, ok := v.(io.ReadSeekCloser); ok { + if err := writeContent(k, k, rsc); err != nil { + return err + } + continue + } else if rscs, ok := v.([]io.ReadSeekCloser); ok { + for _, rsc := range rscs { + if err := writeContent(k, k, rsc); err != nil { + return err + } + } + continue + } + // ensure the value is in string format + s, ok := v.(string) + if !ok { + s = fmt.Sprintf("%v", v) + } + if err := writer.WriteField(k, s); err != nil { + return err + } + } + if err := writer.Close(); err != nil { + return err + } + return req.SetBody(exported.NopCloser(bytes.NewReader(body.Bytes())), writer.FormDataContentType()) +} + +// SkipBodyDownload will disable automatic downloading of the response body. +func SkipBodyDownload(req *policy.Request) { + req.SetOperationValue(bodyDownloadPolicyOpValues{Skip: true}) +} + +// CtxAPINameKey is used as a context key for adding/retrieving the API name. +type CtxAPINameKey = shared.CtxAPINameKey + +// returns a clone of the object graph pointed to by v, omitting values of all read-only +// fields. if there are no read-only fields in the object graph, no clone is created. +func cloneWithoutReadOnlyFields(v interface{}) interface{} { + val := reflect.Indirect(reflect.ValueOf(v)) + if val.Kind() != reflect.Struct { + // not a struct, skip + return v + } + // first walk the graph to find any R/O fields. + // if there aren't any, skip cloning the graph. + if !recursiveFindReadOnlyField(val) { + return v + } + return recursiveCloneWithoutReadOnlyFields(val) +} + +// returns true if any field in the object graph of val contains the `azure:"ro"` tag value +func recursiveFindReadOnlyField(val reflect.Value) bool { + t := val.Type() + // iterate over the fields, looking for the "azure" tag. + for i := 0; i < t.NumField(); i++ { + field := t.Field(i) + aztag := field.Tag.Get("azure") + if azureTagIsReadOnly(aztag) { + return true + } else if reflect.Indirect(val.Field(i)).Kind() == reflect.Struct && recursiveFindReadOnlyField(reflect.Indirect(val.Field(i))) { + return true + } + } + return false +} + +// clones the object graph of val. all non-R/O properties are copied to the clone +func recursiveCloneWithoutReadOnlyFields(val reflect.Value) interface{} { + t := val.Type() + clone := reflect.New(t) + // iterate over the fields, looking for the "azure" tag. + for i := 0; i < t.NumField(); i++ { + field := t.Field(i) + aztag := field.Tag.Get("azure") + if azureTagIsReadOnly(aztag) { + // omit from payload + continue + } + // clone field will receive the same value as the source field... + value := val.Field(i) + v := reflect.Indirect(value) + if v.IsValid() && v.Type() != reflect.TypeOf(time.Time{}) && v.Kind() == reflect.Struct { + // ...unless the source value is a struct, in which case we recurse to clone that struct. + // (We can't recursively clone time.Time because it contains unexported fields.) + c := recursiveCloneWithoutReadOnlyFields(v) + if field.Anonymous { + // NOTE: this does not handle the case of embedded fields of unexported struct types. + // this should be ok as we don't generate any code like this at present + value = reflect.Indirect(reflect.ValueOf(c)) + } else { + value = reflect.ValueOf(c) + } + } + reflect.Indirect(clone).Field(i).Set(value) + } + return clone.Interface() +} + +// returns true if the "azure" tag contains the option "ro" +func azureTagIsReadOnly(tag string) bool { + if tag == "" { + return false + } + parts := strings.Split(tag, ",") + for _, part := range parts { + if part == "ro" { + return true + } + } + return false +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/response.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/response.go new file mode 100644 index 00000000..003c875b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/response.go @@ -0,0 +1,109 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "bytes" + "encoding/json" + "encoding/xml" + "fmt" + "io" + "net/http" + + azexported "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" + "github.com/Azure/azure-sdk-for-go/sdk/internal/exported" +) + +// Payload reads and returns the response body or an error. +// On a successful read, the response body is cached. +// Subsequent reads will access the cached value. +func Payload(resp *http.Response) ([]byte, error) { + return exported.Payload(resp, nil) +} + +// HasStatusCode returns true if the Response's status code is one of the specified values. +func HasStatusCode(resp *http.Response, statusCodes ...int) bool { + return exported.HasStatusCode(resp, statusCodes...) +} + +// UnmarshalAsByteArray will base-64 decode the received payload and place the result into the value pointed to by v. +func UnmarshalAsByteArray(resp *http.Response, v *[]byte, format Base64Encoding) error { + p, err := Payload(resp) + if err != nil { + return err + } + return DecodeByteArray(string(p), v, format) +} + +// UnmarshalAsJSON calls json.Unmarshal() to unmarshal the received payload into the value pointed to by v. +func UnmarshalAsJSON(resp *http.Response, v interface{}) error { + payload, err := Payload(resp) + if err != nil { + return err + } + // TODO: verify early exit is correct + if len(payload) == 0 { + return nil + } + err = removeBOM(resp) + if err != nil { + return err + } + err = json.Unmarshal(payload, v) + if err != nil { + err = fmt.Errorf("unmarshalling type %T: %s", v, err) + } + return err +} + +// UnmarshalAsXML calls xml.Unmarshal() to unmarshal the received payload into the value pointed to by v. +func UnmarshalAsXML(resp *http.Response, v interface{}) error { + payload, err := Payload(resp) + if err != nil { + return err + } + // TODO: verify early exit is correct + if len(payload) == 0 { + return nil + } + err = removeBOM(resp) + if err != nil { + return err + } + err = xml.Unmarshal(payload, v) + if err != nil { + err = fmt.Errorf("unmarshalling type %T: %s", v, err) + } + return err +} + +// Drain reads the response body to completion then closes it. The bytes read are discarded. +func Drain(resp *http.Response) { + if resp != nil && resp.Body != nil { + _, _ = io.Copy(io.Discard, resp.Body) + resp.Body.Close() + } +} + +// removeBOM removes any byte-order mark prefix from the payload if present. +func removeBOM(resp *http.Response) error { + _, err := exported.Payload(resp, &exported.PayloadOptions{ + BytesModifier: func(b []byte) []byte { + // UTF8 + return bytes.TrimPrefix(b, []byte("\xef\xbb\xbf")) + }, + }) + if err != nil { + return err + } + return nil +} + +// DecodeByteArray will base-64 decode the provided string into v. +func DecodeByteArray(s string, v *[]byte, format Base64Encoding) error { + return azexported.DecodeByteArray(s, v, format) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/transport_default_http_client.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/transport_default_http_client.go new file mode 100644 index 00000000..869bed51 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/transport_default_http_client.go @@ -0,0 +1,37 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package runtime + +import ( + "crypto/tls" + "net" + "net/http" + "time" +) + +var defaultHTTPClient *http.Client + +func init() { + defaultTransport := &http.Transport{ + Proxy: http.ProxyFromEnvironment, + DialContext: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + }).DialContext, + ForceAttemptHTTP2: true, + MaxIdleConns: 100, + IdleConnTimeout: 90 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + TLSClientConfig: &tls.Config{ + MinVersion: tls.VersionTLS12, + }, + } + defaultHTTPClient = &http.Client{ + Transport: defaultTransport, + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/doc.go new file mode 100644 index 00000000..cadaef3d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/doc.go @@ -0,0 +1,9 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package streaming contains helpers for streaming IO operations and progress reporting. +package streaming diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/progress.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/progress.go new file mode 100644 index 00000000..fbcd4831 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming/progress.go @@ -0,0 +1,75 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package streaming + +import ( + "io" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported" +) + +type progress struct { + rc io.ReadCloser + rsc io.ReadSeekCloser + pr func(bytesTransferred int64) + offset int64 +} + +// NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker. +// In addition to adding a Close method to an io.ReadSeeker, this can also be used to wrap an +// io.ReadSeekCloser with a no-op Close method to allow explicit control of when the io.ReedSeekCloser +// has its underlying stream closed. +func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser { + return exported.NopCloser(rs) +} + +// NewRequestProgress adds progress reporting to an HTTP request's body stream. +func NewRequestProgress(body io.ReadSeekCloser, pr func(bytesTransferred int64)) io.ReadSeekCloser { + return &progress{ + rc: body, + rsc: body, + pr: pr, + offset: 0, + } +} + +// NewResponseProgress adds progress reporting to an HTTP response's body stream. +func NewResponseProgress(body io.ReadCloser, pr func(bytesTransferred int64)) io.ReadCloser { + return &progress{ + rc: body, + rsc: nil, + pr: pr, + offset: 0, + } +} + +// Read reads a block of data from an inner stream and reports progress +func (p *progress) Read(b []byte) (n int, err error) { + n, err = p.rc.Read(b) + if err != nil && err != io.EOF { + return + } + p.offset += int64(n) + // Invokes the user's callback method to report progress + p.pr(p.offset) + return +} + +// Seek only expects a zero or from beginning. +func (p *progress) Seek(offset int64, whence int) (int64, error) { + // This should only ever be called with offset = 0 and whence = io.SeekStart + n, err := p.rsc.Seek(offset, whence) + if err == nil { + p.offset = int64(n) + } + return n, err +} + +// requestBodyProgress supports Close but the underlying stream may not; if it does, Close will close it. +func (p *progress) Close() error { + return p.rc.Close() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/doc.go new file mode 100644 index 00000000..faa98c9d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/doc.go @@ -0,0 +1,9 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright 2017 Microsoft Corporation. All rights reserved. +// Use of this source code is governed by an MIT +// license that can be found in the LICENSE file. + +// Package to contains various type-conversion helper functions. +package to diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/to.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/to.go new file mode 100644 index 00000000..e0e4817b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/to/to.go @@ -0,0 +1,21 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package to + +// Ptr returns a pointer to the provided value. +func Ptr[T any](v T) *T { + return &v +} + +// SliceOfPtrs returns a slice of *T from the specified values. +func SliceOfPtrs[T any](vv ...T) []*T { + slc := make([]*T, len(vv)) + for i := range vv { + slc[i] = Ptr(vv[i]) + } + return slc +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/constants.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/constants.go new file mode 100644 index 00000000..80282d4a --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/constants.go @@ -0,0 +1,41 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package tracing + +// SpanKind represents the role of a Span inside a Trace. Often, this defines how a Span will be processed and visualized by various backends. +type SpanKind int + +const ( + // SpanKindInternal indicates the span represents an internal operation within an application. + SpanKindInternal SpanKind = 1 + + // SpanKindServer indicates the span covers server-side handling of a request. + SpanKindServer SpanKind = 2 + + // SpanKindClient indicates the span describes a request to a remote service. + SpanKindClient SpanKind = 3 + + // SpanKindProducer indicates the span was created by a messaging producer. + SpanKindProducer SpanKind = 4 + + // SpanKindConsumer indicates the span was created by a messaging consumer. + SpanKindConsumer SpanKind = 5 +) + +// SpanStatus represents the status of a span. +type SpanStatus int + +const ( + // SpanStatusUnset is the default status code. + SpanStatusUnset SpanStatus = 0 + + // SpanStatusError indicates the operation contains an error. + SpanStatusError SpanStatus = 1 + + // SpanStatusOK indicates the operation completed successfully. + SpanStatusOK SpanStatus = 2 +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/tracing.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/tracing.go new file mode 100644 index 00000000..62df070d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing/tracing.go @@ -0,0 +1,196 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// Package tracing contains the definitions needed to support distributed tracing. +package tracing + +import ( + "context" +) + +// ProviderOptions contains the optional values when creating a Provider. +type ProviderOptions struct { + // for future expansion +} + +// NewProvider creates a new Provider with the specified values. +// - newTracerFn is the underlying implementation for creating Tracer instances +// - options contains optional values; pass nil to accept the default value +func NewProvider(newTracerFn func(name, version string) Tracer, options *ProviderOptions) Provider { + return Provider{ + newTracerFn: newTracerFn, + } +} + +// Provider is the factory that creates Tracer instances. +// It defaults to a no-op provider. +type Provider struct { + newTracerFn func(name, version string) Tracer +} + +// NewTracer creates a new Tracer for the specified name and version. +// - name - the name of the tracer object, typically the fully qualified name of the service client +// - version - the version of the module in which the service client resides +func (p Provider) NewTracer(name, version string) (tracer Tracer) { + if p.newTracerFn != nil { + tracer = p.newTracerFn(name, version) + } + return +} + +///////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// TracerOptions contains the optional values when creating a Tracer. +type TracerOptions struct { + // SpanFromContext contains the implementation for the Tracer.SpanFromContext method. + SpanFromContext func(context.Context) Span +} + +// NewTracer creates a Tracer with the specified values. +// - newSpanFn is the underlying implementation for creating Span instances +// - options contains optional values; pass nil to accept the default value +func NewTracer(newSpanFn func(ctx context.Context, spanName string, options *SpanOptions) (context.Context, Span), options *TracerOptions) Tracer { + if options == nil { + options = &TracerOptions{} + } + return Tracer{ + newSpanFn: newSpanFn, + spanFromContextFn: options.SpanFromContext, + } +} + +// Tracer is the factory that creates Span instances. +type Tracer struct { + attrs []Attribute + newSpanFn func(ctx context.Context, spanName string, options *SpanOptions) (context.Context, Span) + spanFromContextFn func(ctx context.Context) Span +} + +// Start creates a new span and a context.Context that contains it. +// - ctx is the parent context for this span. If it contains a Span, the newly created span will be a child of that span, else it will be a root span +// - spanName identifies the span within a trace, it's typically the fully qualified API name +// - options contains optional values for the span, pass nil to accept any defaults +func (t Tracer) Start(ctx context.Context, spanName string, options *SpanOptions) (context.Context, Span) { + if t.newSpanFn != nil { + opts := SpanOptions{} + if options != nil { + opts = *options + } + opts.Attributes = append(opts.Attributes, t.attrs...) + return t.newSpanFn(ctx, spanName, &opts) + } + return ctx, Span{} +} + +// SetAttributes sets attrs to be applied to each Span. If a key from attrs +// already exists for an attribute of the Span it will be overwritten with +// the value contained in attrs. +func (t *Tracer) SetAttributes(attrs ...Attribute) { + t.attrs = append(t.attrs, attrs...) +} + +// Enabled returns true if this Tracer is capable of creating Spans. +func (t Tracer) Enabled() bool { + return t.newSpanFn != nil +} + +// SpanFromContext returns the Span associated with the current context. +// If the provided context has no Span, false is returned. +func (t Tracer) SpanFromContext(ctx context.Context) Span { + if t.spanFromContextFn != nil { + return t.spanFromContextFn(ctx) + } + return Span{} +} + +// SpanOptions contains optional settings for creating a span. +type SpanOptions struct { + // Kind indicates the kind of Span. + Kind SpanKind + + // Attributes contains key-value pairs of attributes for the span. + Attributes []Attribute +} + +///////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// SpanImpl abstracts the underlying implementation for Span, +// allowing it to work with various tracing implementations. +// Any zero-values will have their default, no-op behavior. +type SpanImpl struct { + // End contains the implementation for the Span.End method. + End func() + + // SetAttributes contains the implementation for the Span.SetAttributes method. + SetAttributes func(...Attribute) + + // AddEvent contains the implementation for the Span.AddEvent method. + AddEvent func(string, ...Attribute) + + // SetStatus contains the implementation for the Span.SetStatus method. + SetStatus func(SpanStatus, string) +} + +// NewSpan creates a Span with the specified implementation. +func NewSpan(impl SpanImpl) Span { + return Span{ + impl: impl, + } +} + +// Span is a single unit of a trace. A trace can contain multiple spans. +// A zero-value Span provides a no-op implementation. +type Span struct { + impl SpanImpl +} + +// End terminates the span and MUST be called before the span leaves scope. +// Any further updates to the span will be ignored after End is called. +func (s Span) End(opts *SpanEndOptions) { + if s.impl.End != nil { + s.impl.End() + } +} + +// SetAttributes sets the specified attributes on the Span. +// Any existing attributes with the same keys will have their values overwritten. +func (s Span) SetAttributes(attrs ...Attribute) { + if s.impl.SetAttributes != nil { + s.impl.SetAttributes(attrs...) + } +} + +// AddEvent adds a named event with an optional set of attributes to the span. +func (s Span) AddEvent(name string, attrs ...Attribute) { + if s.impl.AddEvent != nil { + s.impl.AddEvent(name, attrs...) + } +} + +// SetStatus sets the status on the span along with a description. +func (s Span) SetStatus(code SpanStatus, desc string) { + if s.impl.SetStatus != nil { + s.impl.SetStatus(code, desc) + } +} + +// SpanEndOptions contains the optional values for the Span.End() method. +type SpanEndOptions struct { + // for future expansion +} + +///////////////////////////////////////////////////////////////////////////////////////////////////////////// + +// Attribute is a key-value pair. +type Attribute struct { + // Key is the name of the attribute. + Key string + + // Value is the attribute's value. + // Types that are natively supported include int64, float64, int, bool, string. + // Any other type will be formatted per rules of fmt.Sprintf("%v"). + Value any +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md new file mode 100644 index 00000000..5daee20d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/CHANGELOG.md @@ -0,0 +1,378 @@ +# Release History + +## 1.2.2 (2023-03-07) + +### Other Changes +* Upgraded dependencies + +## 1.3.0-beta.3 (2023-02-07) + +### Features Added +* By default, credentials set client capability "CP1" to enable support for + [Continuous Access Evaluation (CAE)](https://docs.microsoft.com/azure/active-directory/develop/app-resilience-continuous-access-evaluation). + This indicates to Azure Active Directory that your application can handle CAE claims challenges. + You can disable this behavior by setting the environment variable "AZURE_IDENTITY_DISABLE_CP1" to "true". +* `InteractiveBrowserCredentialOptions.LoginHint` enables pre-populating the login + prompt with a username ([#15599](https://github.com/Azure/azure-sdk-for-go/pull/15599)) +* Service principal and user credentials support ADFS authentication on Azure Stack. + Specify "adfs" as the credential's tenant. +* Applications running in private or disconnected clouds can prevent credentials from + requesting Azure AD instance metadata by setting the `DisableInstanceDiscovery` + field on credential options. +* Many credentials can now be configured to authenticate in multiple tenants. The + options types for these credentials have an `AdditionallyAllowedTenants` field + that specifies additional tenants in which the credential may authenticate. + +## 1.2.1 (2023-01-26) + +### Other Changes +* Upgrade MSAL to v0.8.1 + +## 1.3.0-beta.2 (2023-01-10) + +### Features Added +* Added `OnBehalfOfCredential` to support the on-behalf-of flow + ([#16642](https://github.com/Azure/azure-sdk-for-go/issues/16642)) + +### Bugs Fixed +* `AzureCLICredential` reports token expiration in local time (should be UTC) + +### Other Changes +* `AzureCLICredential` imposes its default timeout only when the `Context` + passed to `GetToken()` has no deadline +* Added `NewCredentialUnavailableError()`. This function constructs an error indicating + a credential can't authenticate and an encompassing `ChainedTokenCredential` should + try its next credential, if any. + +## 1.3.0-beta.1 (2022-12-13) + +### Features Added +* `WorkloadIdentityCredential` and `DefaultAzureCredential` support + Workload Identity Federation on Kubernetes. `DefaultAzureCredential` + support requires environment variable configuration as set by the + Workload Identity webhook. + ([#15615](https://github.com/Azure/azure-sdk-for-go/issues/15615)) + +## 1.2.0 (2022-11-08) + +### Other Changes +* This version includes all fixes and features from 1.2.0-beta.* + +## 1.2.0-beta.3 (2022-10-11) + +### Features Added +* `ManagedIdentityCredential` caches tokens in memory + +### Bugs Fixed +* `ClientCertificateCredential` sends only the leaf cert for SNI authentication + +## 1.2.0-beta.2 (2022-08-10) + +### Features Added +* Added `ClientAssertionCredential` to enable applications to authenticate + with custom client assertions + +### Other Changes +* Updated AuthenticationFailedError with links to TROUBLESHOOTING.md for relevant errors +* Upgraded `microsoft-authentication-library-for-go` requirement to v0.6.0 + +## 1.2.0-beta.1 (2022-06-07) + +### Features Added +* `EnvironmentCredential` reads certificate passwords from `AZURE_CLIENT_CERTIFICATE_PASSWORD` + ([#17099](https://github.com/Azure/azure-sdk-for-go/pull/17099)) + +## 1.1.0 (2022-06-07) + +### Features Added +* `ClientCertificateCredential` and `ClientSecretCredential` support ESTS-R. First-party + applications can set environment variable `AZURE_REGIONAL_AUTHORITY_NAME` with a + region name. + ([#15605](https://github.com/Azure/azure-sdk-for-go/issues/15605)) + +## 1.0.1 (2022-06-07) + +### Other Changes +* Upgrade `microsoft-authentication-library-for-go` requirement to v0.5.1 + ([#18176](https://github.com/Azure/azure-sdk-for-go/issues/18176)) + +## 1.0.0 (2022-05-12) + +### Features Added +* `DefaultAzureCredential` reads environment variable `AZURE_CLIENT_ID` for the + client ID of a user-assigned managed identity + ([#17293](https://github.com/Azure/azure-sdk-for-go/pull/17293)) + +### Breaking Changes +* Removed `AuthorizationCodeCredential`. Use `InteractiveBrowserCredential` instead + to authenticate a user with the authorization code flow. +* Instances of `AuthenticationFailedError` are now returned by pointer. +* `GetToken()` returns `azcore.AccessToken` by value + +### Bugs Fixed +* `AzureCLICredential` panics after receiving an unexpected error type + ([#17490](https://github.com/Azure/azure-sdk-for-go/issues/17490)) + +### Other Changes +* `GetToken()` returns an error when the caller specifies no scope +* Updated to the latest versions of `golang.org/x/crypto`, `azcore` and `internal` + +## 0.14.0 (2022-04-05) + +### Breaking Changes +* This module now requires Go 1.18 +* Removed `AuthorityHost`. Credentials are now configured for sovereign or private + clouds with the API in `azcore/cloud`, for example: + ```go + // before + opts := azidentity.ClientSecretCredentialOptions{AuthorityHost: azidentity.AzureGovernment} + cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, &opts) + + // after + import "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + + opts := azidentity.ClientSecretCredentialOptions{} + opts.Cloud = cloud.AzureGovernment + cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, &opts) + ``` + +## 0.13.2 (2022-03-08) + +### Bugs Fixed +* Prevented a data race in `DefaultAzureCredential` and `ChainedTokenCredential` + ([#17144](https://github.com/Azure/azure-sdk-for-go/issues/17144)) + +### Other Changes +* Upgraded App Service managed identity version from 2017-09-01 to 2019-08-01 + ([#17086](https://github.com/Azure/azure-sdk-for-go/pull/17086)) + +## 0.13.1 (2022-02-08) + +### Features Added +* `EnvironmentCredential` supports certificate SNI authentication when + `AZURE_CLIENT_SEND_CERTIFICATE_CHAIN` is "true". + ([#16851](https://github.com/Azure/azure-sdk-for-go/pull/16851)) + +### Bugs Fixed +* `ManagedIdentityCredential.GetToken()` now returns an error when configured for + a user assigned identity in Azure Cloud Shell (which doesn't support such identities) + ([#16946](https://github.com/Azure/azure-sdk-for-go/pull/16946)) + +### Other Changes +* `NewDefaultAzureCredential()` logs non-fatal errors. These errors are also included in the + error returned by `DefaultAzureCredential.GetToken()` when it's unable to acquire a token + from any source. ([#15923](https://github.com/Azure/azure-sdk-for-go/issues/15923)) + +## 0.13.0 (2022-01-11) + +### Breaking Changes +* Replaced `AuthenticationFailedError.RawResponse()` with a field having the same name +* Unexported `CredentialUnavailableError` +* Instances of `ChainedTokenCredential` will now skip looping through the list of source credentials and re-use the first successful credential on subsequent calls to `GetToken`. + * If `ChainedTokenCredentialOptions.RetrySources` is true, `ChainedTokenCredential` will continue to try all of the originally provided credentials each time the `GetToken` method is called. + * `ChainedTokenCredential.successfulCredential` will contain a reference to the last successful credential. + * `DefaultAzureCredenial` will also re-use the first successful credential on subsequent calls to `GetToken`. + * `DefaultAzureCredential.chain.successfulCredential` will also contain a reference to the last successful credential. + +### Other Changes +* `ManagedIdentityCredential` no longer probes IMDS before requesting a token + from it. Also, an error response from IMDS no longer disables a credential + instance. Following an error, a credential instance will continue to send + requests to IMDS as necessary. +* Adopted MSAL for user and service principal authentication +* Updated `azcore` requirement to 0.21.0 + +## 0.12.0 (2021-11-02) +### Breaking Changes +* Raised minimum go version to 1.16 +* Removed `NewAuthenticationPolicy()` from credentials. Clients should instead use azcore's + `runtime.NewBearerTokenPolicy()` to construct a bearer token authorization policy. +* The `AuthorityHost` field in credential options structs is now a custom type, + `AuthorityHost`, with underlying type `string` +* `NewChainedTokenCredential` has a new signature to accommodate a placeholder + options struct: + ```go + // before + cred, err := NewChainedTokenCredential(credA, credB) + + // after + cred, err := NewChainedTokenCredential([]azcore.TokenCredential{credA, credB}, nil) + ``` +* Removed `ExcludeAzureCLICredential`, `ExcludeEnvironmentCredential`, and `ExcludeMSICredential` + from `DefaultAzureCredentialOptions` +* `NewClientCertificateCredential` requires a `[]*x509.Certificate` and `crypto.PrivateKey` instead of + a path to a certificate file. Added `ParseCertificates` to simplify getting these in common cases: + ```go + // before + cred, err := NewClientCertificateCredential("tenant", "client-id", "/cert.pem", nil) + + // after + certData, err := os.ReadFile("/cert.pem") + certs, key, err := ParseCertificates(certData, password) + cred, err := NewClientCertificateCredential(tenantID, clientID, certs, key, nil) + ``` +* Removed `InteractiveBrowserCredentialOptions.ClientSecret` and `.Port` +* Removed `AADAuthenticationFailedError` +* Removed `id` parameter of `NewManagedIdentityCredential()`. User assigned identities are now + specified by `ManagedIdentityCredentialOptions.ID`: + ```go + // before + cred, err := NewManagedIdentityCredential("client-id", nil) + // or, for a resource ID + opts := &ManagedIdentityCredentialOptions{ID: ResourceID} + cred, err := NewManagedIdentityCredential("/subscriptions/...", opts) + + // after + clientID := ClientID("7cf7db0d-...") + opts := &ManagedIdentityCredentialOptions{ID: clientID} + // or, for a resource ID + resID: ResourceID("/subscriptions/...") + opts := &ManagedIdentityCredentialOptions{ID: resID} + cred, err := NewManagedIdentityCredential(opts) + ``` +* `DeviceCodeCredentialOptions.UserPrompt` has a new type: `func(context.Context, DeviceCodeMessage) error` +* Credential options structs now embed `azcore.ClientOptions`. In addition to changing literal initialization + syntax, this change renames `HTTPClient` fields to `Transport`. +* Renamed `LogCredential` to `EventCredential` +* `AzureCLICredential` no longer reads the environment variable `AZURE_CLI_PATH` +* `NewManagedIdentityCredential` no longer reads environment variables `AZURE_CLIENT_ID` and + `AZURE_RESOURCE_ID`. Use `ManagedIdentityCredentialOptions.ID` instead. +* Unexported `AuthenticationFailedError` and `CredentialUnavailableError` structs. In their place are two + interfaces having the same names. + +### Bugs Fixed +* `AzureCLICredential.GetToken` no longer mutates its `opts.Scopes` + +### Features Added +* Added connection configuration options to `DefaultAzureCredentialOptions` +* `AuthenticationFailedError.RawResponse()` returns the HTTP response motivating the error, + if available + +### Other Changes +* `NewDefaultAzureCredential()` returns `*DefaultAzureCredential` instead of `*ChainedTokenCredential` +* Added `TenantID` field to `DefaultAzureCredentialOptions` and `AzureCLICredentialOptions` + +## 0.11.0 (2021-09-08) +### Breaking Changes +* Unexported `AzureCLICredentialOptions.TokenProvider` and its type, + `AzureCLITokenProvider` + +### Bug Fixes +* `ManagedIdentityCredential.GetToken` returns `CredentialUnavailableError` + when IMDS has no assigned identity, signaling `DefaultAzureCredential` to + try other credentials + + +## 0.10.0 (2021-08-30) +### Breaking Changes +* Update based on `azcore` refactor [#15383](https://github.com/Azure/azure-sdk-for-go/pull/15383) + +## 0.9.3 (2021-08-20) + +### Bugs Fixed +* `ManagedIdentityCredential.GetToken` no longer mutates its `opts.Scopes` + +### Other Changes +* Bumps version of `azcore` to `v0.18.1` + + +## 0.9.2 (2021-07-23) +### Features Added +* Adding support for Service Fabric environment in `ManagedIdentityCredential` +* Adding an option for using a resource ID instead of client ID in `ManagedIdentityCredential` + + +## 0.9.1 (2021-05-24) +### Features Added +* Add LICENSE.txt and bump version information + + +## 0.9.0 (2021-05-21) +### Features Added +* Add support for authenticating in Azure Stack environments +* Enable user assigned identities for the IMDS scenario in `ManagedIdentityCredential` +* Add scope to resource conversion in `GetToken()` on `ManagedIdentityCredential` + + +## 0.8.0 (2021-01-20) +### Features Added +* Updating documentation + + +## 0.7.1 (2021-01-04) +### Features Added +* Adding port option to `InteractiveBrowserCredential` + + +## 0.7.0 (2020-12-11) +### Features Added +* Add `redirectURI` parameter back to authentication code flow + + +## 0.6.1 (2020-12-09) +### Features Added +* Updating query parameter in `ManagedIdentityCredential` and updating datetime string for parsing managed identity access tokens. + + +## 0.6.0 (2020-11-16) +### Features Added +* Remove `RedirectURL` parameter from auth code flow to align with the MSAL implementation which relies on the native client redirect URL. + + +## 0.5.0 (2020-10-30) +### Features Added +* Flattening credential options + + +## 0.4.3 (2020-10-21) +### Features Added +* Adding Azure Arc support in `ManagedIdentityCredential` + + +## 0.4.2 (2020-10-16) +### Features Added +* Typo fixes + + +## 0.4.1 (2020-10-16) +### Features Added +* Ensure authority hosts are only HTTPs + + +## 0.4.0 (2020-10-16) +### Features Added +* Adding options structs for credentials + + +## 0.3.0 (2020-10-09) +### Features Added +* Update `DeviceCodeCredential` callback + + +## 0.2.2 (2020-10-09) +### Features Added +* Add `AuthorizationCodeCredential` + + +## 0.2.1 (2020-10-06) +### Features Added +* Add `InteractiveBrowserCredential` + + +## 0.2.0 (2020-09-11) +### Features Added +* Refactor `azidentity` on top of `azcore` refactor +* Updated policies to conform to `policy.Policy` interface changes. +* Updated non-retriable errors to conform to `azcore.NonRetriableError`. +* Fixed calls to `Request.SetBody()` to include content type. +* Switched endpoints to string types and removed extra parsing code. + + +## 0.1.1 (2020-09-02) +### Features Added +* Add `AzureCLICredential` to `DefaultAzureCredential` chain + + +## 0.1.0 (2020-07-23) +### Features Added +* Initial Release. Azure Identity library that provides Azure Active Directory token authentication support for the SDK. diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt new file mode 100644 index 00000000..48ea6616 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/MIGRATION.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/MIGRATION.md new file mode 100644 index 00000000..4ac53eb7 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/MIGRATION.md @@ -0,0 +1,307 @@ +# Migrating from autorest/adal to azidentity + +`azidentity` provides Azure Active Directory (Azure AD) authentication for the newest Azure SDK modules (`github.com/azure-sdk-for-go/sdk/...`). Older Azure SDK packages (`github.com/azure-sdk-for-go/services/...`) use types from `github.com/go-autorest/autorest/adal` instead. + +This guide shows common authentication code using `autorest/adal` and its equivalent using `azidentity`. + +## Table of contents + +- [Acquire a token](#acquire-a-token) +- [Client certificate authentication](#client-certificate-authentication) +- [Client secret authentication](#client-secret-authentication) +- [Configuration](#configuration) +- [Device code authentication](#device-code-authentication) +- [Managed identity](#managed-identity) +- [Use azidentity credentials with older packages](#use-azidentity-credentials-with-older-packages) + +## Configuration + +### `autorest/adal` + +Token providers require a token audience (resource identifier) and an instance of `adal.OAuthConfig`, which requires an Azure AD endpoint and tenant: + +```go +import "github.com/Azure/go-autorest/autorest/adal" + +oauthCfg, err := adal.NewOAuthConfig("https://login.chinacloudapi.cn", tenantID) +handle(err) + +spt, err := adal.NewServicePrincipalTokenWithSecret( + *oauthCfg, clientID, "https://management.chinacloudapi.cn/", &adal.ServicePrincipalTokenSecret{ClientSecret: secret}, +) +``` + +### `azidentity` + +A credential instance can acquire tokens for any audience. The audience for each token is determined by the client requesting it. Credentials require endpoint configuration only for sovereign or private clouds. The `azcore/cloud` package has predefined configuration for sovereign clouds such as Azure China: + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" +) + +clientOpts := azcore.ClientOptions{Cloud: cloud.AzureChina} + +cred, err := azidentity.NewClientSecretCredential( + tenantID, clientID, secret, &azidentity.ClientSecretCredentialOptions{ClientOptions: clientOpts}, +) +handle(err) +``` + +## Client secret authentication + +### `autorest/adal` + +```go +import ( + "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-06-01/subscriptions" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/adal" +) + +oauthCfg, err := adal.NewOAuthConfig("https://login.microsoftonline.com", tenantID) +handle(err) +spt, err := adal.NewServicePrincipalTokenWithSecret( + *oauthCfg, clientID, "https://management.azure.com/", &adal.ServicePrincipalTokenSecret{ClientSecret: secret}, +) +handle(err) + +client := subscriptions.NewClient() +client.Authorizer = autorest.NewBearerAuthorizer(spt) +``` + +### `azidentity` + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions" +) + +cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, nil) +handle(err) + +client, err := armsubscriptions.NewClient(cred, nil) +handle(err) +``` + +## Client certificate authentication + +### `autorest/adal` + +```go +import ( + "os" + + "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-06-01/subscriptions" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/adal" +) +certData, err := os.ReadFile("./example.pfx") +handle(err) + +certificate, rsaPrivateKey, err := decodePkcs12(certData, "") +handle(err) + +oauthCfg, err := adal.NewOAuthConfig("https://login.microsoftonline.com", tenantID) +handle(err) + +spt, err := adal.NewServicePrincipalTokenFromCertificate( + *oauthConfig, clientID, certificate, rsaPrivateKey, "https://management.azure.com/", +) + +client := subscriptions.NewClient() +client.Authorizer = autorest.NewBearerAuthorizer(spt) +``` + +### `azidentity` + +```go +import ( + "os" + + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions" +) + +certData, err := os.ReadFile("./example.pfx") +handle(err) + +certs, key, err := azidentity.ParseCertificates(certData, nil) +handle(err) + +cred, err = azidentity.NewClientCertificateCredential(tenantID, clientID, certs, key, nil) +handle(err) + +client, err := armsubscriptions.NewClient(cred, nil) +handle(err) +``` + +## Managed identity + +### `autorest/adal` + +```go +import ( + "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-06-01/subscriptions" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/adal" +) + +spt, err := adal.NewServicePrincipalTokenFromManagedIdentity("https://management.azure.com/", nil) +handle(err) + +client := subscriptions.NewClient() +client.Authorizer = autorest.NewBearerAuthorizer(spt) +``` + +### `azidentity` + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions" +) + +cred, err := azidentity.NewManagedIdentityCredential(nil) +handle(err) + +client, err := armsubscriptions.NewClient(cred, nil) +handle(err) +``` + +### User-assigned identities + +`autorest/adal`: + +```go +import "github.com/Azure/go-autorest/autorest/adal" + +opts := &adal.ManagedIdentityOptions{ClientID: "..."} +spt, err := adal.NewServicePrincipalTokenFromManagedIdentity("https://management.azure.com/") +handle(err) +``` + +`azidentity`: + +```go +import "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + +opts := azidentity.ManagedIdentityCredentialOptions{ID: azidentity.ClientID("...")} +cred, err := azidentity.NewManagedIdentityCredential(&opts) +handle(err) +``` + +## Device code authentication + +### `autorest/adal` + +```go +import ( + "fmt" + "net/http" + + "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-06-01/subscriptions" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/adal" +) + +oauthClient := &http.Client{} +oauthCfg, err := adal.NewOAuthConfig("https://login.microsoftonline.com", tenantID) +handle(err) +resource := "https://management.azure.com/" +deviceCode, err := adal.InitiateDeviceAuth(oauthClient, *oauthCfg, clientID, resource) +handle(err) + +// display instructions, wait for the user to authenticate +fmt.Println(*deviceCode.Message) +token, err := adal.WaitForUserCompletion(oauthClient, deviceCode) +handle(err) + +spt, err := adal.NewServicePrincipalTokenFromManualToken(*oauthCfg, clientID, resource, *token) +handle(err) + +client := subscriptions.NewClient() +client.Authorizer = autorest.NewBearerAuthorizer(spt) +``` + +### `azidentity` + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions" +) + +cred, err := azidentity.NewDeviceCodeCredential(nil) +handle(err) + +client, err := armsubscriptions.NewSubscriptionsClient(cred, nil) +handle(err) +``` + +`azidentity.DeviceCodeCredential` will guide a user through authentication, printing instructions to the console by default. The user prompt is customizable. For more information, see the [package documentation](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#DeviceCodeCredential). + +## Acquire a token + +### `autorest/adal` + +```go +import "github.com/Azure/go-autorest/autorest/adal" + +oauthCfg, err := adal.NewOAuthConfig("https://login.microsoftonline.com", tenantID) +handle(err) + +spt, err := adal.NewServicePrincipalTokenWithSecret( + *oauthCfg, clientID, "https://vault.azure.net", &adal.ServicePrincipalTokenSecret{ClientSecret: secret}, +) + +err = spt.Refresh() +if err == nil { + token := spt.Token +} +``` + +### `azidentity` + +In ordinary usage, application code doesn't need to request tokens from credentials directly. Azure SDK clients handle token acquisition and refreshing internally. However, applications may call `GetToken()` to do so. All credential types have this method. + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" +) + +cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, nil) +handle(err) + +tk, err := cred.GetToken( + context.TODO(), policy.TokenRequestOptions{Scopes: []string{"https://vault.azure.net/.default"}}, +) +if err == nil { + token := tk.Token +} +``` + +Note that `azidentity` credentials use the Azure AD v2.0 endpoint, which requires OAuth 2 scopes instead of the resource identifiers `autorest/adal` expects. For more information, see [Azure AD documentation](https://docs.microsoft.com/azure/active-directory/develop/v2-permissions-and-consent). + +## Use azidentity credentials with older packages + +The [azidext module](https://pkg.go.dev/github.com/jongio/azidext/go/azidext) provides an adapter for `azidentity` credential types. The adapter enables using the credential types with older Azure SDK clients. For example: + +```go +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-06-01/subscriptions" + "github.com/jongio/azidext/go/azidext" +) + +cred, err := azidentity.NewClientSecretCredential(tenantID, clientID, secret, nil) +handle(err) + +client := subscriptions.NewClient() +client.Authorizer = azidext.NewTokenCredentialAdapter(cred, []string{"https://management.azure.com//.default"}) +``` + +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-go%2Fsdk%2Fazidentity%2FMIGRATION.png) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/README.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/README.md new file mode 100644 index 00000000..2df42c81 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/README.md @@ -0,0 +1,241 @@ +# Azure Identity Client Module for Go + +The Azure Identity module provides Azure Active Directory (Azure AD) token authentication support across the Azure SDK. It includes a set of `TokenCredential` implementations, which can be used with Azure SDK clients supporting token authentication. + +[![PkgGoDev](https://pkg.go.dev/badge/github.com/Azure/azure-sdk-for-go/sdk/azidentity)](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity) +| [Azure Active Directory documentation](https://docs.microsoft.com/azure/active-directory/) +| [Source code](https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/azidentity) + +# Getting started + +## Install the module + +This project uses [Go modules](https://github.com/golang/go/wiki/Modules) for versioning and dependency management. + +Install the Azure Identity module: + +```sh +go get -u github.com/Azure/azure-sdk-for-go/sdk/azidentity +``` + +## Prerequisites + +- an [Azure subscription](https://azure.microsoft.com/free/) +- Go 1.18 + +### Authenticating during local development + +When debugging and executing code locally, developers typically use their own accounts to authenticate calls to Azure services. The `azidentity` module supports authenticating through developer tools to simplify local development. + +#### Authenticating via the Azure CLI + +`DefaultAzureCredential` and `AzureCLICredential` can authenticate as the user +signed in to the [Azure CLI](https://docs.microsoft.com/cli/azure). To sign in to the Azure CLI, run `az login`. On a system with a default web browser, the Azure CLI will launch the browser to authenticate a user. + +When no default browser is available, `az login` will use the device code +authentication flow. This can also be selected manually by running `az login --use-device-code`. + +## Key concepts + +### Credentials + +A credential is a type which contains or can obtain the data needed for a +service client to authenticate requests. Service clients across the Azure SDK +accept a credential instance when they are constructed, and use that credential +to authenticate requests. + +The `azidentity` module focuses on OAuth authentication with Azure Active +Directory (AAD). It offers a variety of credential types capable of acquiring +an Azure AD access token. See [Credential Types](#credential-types "Credential Types") for a list of this module's credential types. + +### DefaultAzureCredential + +`DefaultAzureCredential` is appropriate for most apps that will be deployed to Azure. It combines common production credentials with development credentials. It attempts to authenticate via the following mechanisms in this order, stopping when one succeeds: + +![DefaultAzureCredential authentication flow](img/mermaidjs/DefaultAzureCredentialAuthFlow.svg) + +1. **Environment** - `DefaultAzureCredential` will read account information specified via [environment variables](#environment-variables) and use it to authenticate. +2. **Managed Identity** - If the app is deployed to an Azure host with managed identity enabled, `DefaultAzureCredential` will authenticate with it. +3. **Azure CLI** - If a user or service principal has authenticated via the Azure CLI `az login` command, `DefaultAzureCredential` will authenticate that identity. + +> Note: `DefaultAzureCredential` is intended to simplify getting started with the SDK by handling common scenarios with reasonable default behaviors. Developers who want more control or whose scenario isn't served by the default settings should use other credential types. + +## Managed Identity + +`DefaultAzureCredential` and `ManagedIdentityCredential` support +[managed identity authentication](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview) +in any hosting environment which supports managed identities, such as (this list is not exhaustive): +* [Azure App Service](https://docs.microsoft.com/azure/app-service/overview-managed-identity) +* [Azure Arc](https://docs.microsoft.com/azure/azure-arc/servers/managed-identity-authentication) +* [Azure Cloud Shell](https://docs.microsoft.com/azure/cloud-shell/msi-authorization) +* [Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/use-managed-identity) +* [Azure Service Fabric](https://docs.microsoft.com/azure/service-fabric/concepts-managed-identity) +* [Azure Virtual Machines](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token) + +## Examples + +- [Authenticate with DefaultAzureCredential](#authenticate-with-defaultazurecredential "Authenticate with DefaultAzureCredential") +- [Define a custom authentication flow with ChainedTokenCredential](#define-a-custom-authentication-flow-with-chainedtokencredential "Define a custom authentication flow with ChainedTokenCredential") +- [Specify a user-assigned managed identity for DefaultAzureCredential](#specify-a-user-assigned-managed-identity-for-defaultazurecredential) + +### Authenticate with DefaultAzureCredential + +This example demonstrates authenticating a client from the `armresources` module with `DefaultAzureCredential`. + +```go +cred, err := azidentity.NewDefaultAzureCredential(nil) +if err != nil { + // handle error +} + +client := armresources.NewResourceGroupsClient("subscription ID", cred, nil) +``` + +### Specify a user-assigned managed identity for DefaultAzureCredential + +To configure `DefaultAzureCredential` to authenticate a user-assigned managed identity, set the environment variable `AZURE_CLIENT_ID` to the identity's client ID. + +### Define a custom authentication flow with `ChainedTokenCredential` + +`DefaultAzureCredential` is generally the quickest way to get started developing apps for Azure. For more advanced scenarios, `ChainedTokenCredential` links multiple credential instances to be tried sequentially when authenticating. It will try each chained credential in turn until one provides a token or fails to authenticate due to an error. + +The following example demonstrates creating a credential, which will attempt to authenticate using managed identity. It will fall back to authenticating via the Azure CLI when a managed identity is unavailable. + +```go +managed, err := azidentity.NewManagedIdentityCredential(nil) +if err != nil { + // handle error +} +azCLI, err := azidentity.NewAzureCLICredential(nil) +if err != nil { + // handle error +} +chain, err := azidentity.NewChainedTokenCredential([]azcore.TokenCredential{managed, azCLI}, nil) +if err != nil { + // handle error +} + +client := armresources.NewResourceGroupsClient("subscription ID", chain, nil) +``` + +## Credential Types + +### Authenticating Azure Hosted Applications + +|Credential|Usage +|-|- +|[DefaultAzureCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#DefaultAzureCredential)|Simplified authentication experience for getting started developing Azure apps +|[ChainedTokenCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#ChainedTokenCredential)|Define custom authentication flows, composing multiple credentials +|[EnvironmentCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#EnvironmentCredential)|Authenticate a service principal or user configured by environment variables +|[ManagedIdentityCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#ManagedIdentityCredential)|Authenticate the managed identity of an Azure resource + +### Authenticating Service Principals + +|Credential|Usage +|-|- +|[ClientAssertionCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity@v1.2.0-beta.2#ClientAssertionCredential)|Authenticate a service principal with a signed client assertion +|[ClientCertificateCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#ClientCertificateCredential)|Authenticate a service principal with a certificate +|[ClientSecretCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#ClientSecretCredential)|Authenticate a service principal with a secret + +### Authenticating Users + +|Credential|Usage +|-|- +|[InteractiveBrowserCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#InteractiveBrowserCredential)|Interactively authenticate a user with the default web browser +|[DeviceCodeCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#DeviceCodeCredential)|Interactively authenticate a user on a device with limited UI +|[UsernamePasswordCredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#UsernamePasswordCredential)|Authenticate a user with a username and password + +### Authenticating via Development Tools + +|Credential|Usage +|-|- +|[AzureCLICredential](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#AzureCLICredential)|Authenticate as the user signed in to the Azure CLI + +## Environment Variables + +`DefaultAzureCredential` and `EnvironmentCredential` can be configured with environment variables. Each type of authentication requires values for specific variables: + +#### Service principal with secret + +|variable name|value +|-|- +|`AZURE_CLIENT_ID`|ID of an Azure Active Directory application +|`AZURE_TENANT_ID`|ID of the application's Azure Active Directory tenant +|`AZURE_CLIENT_SECRET`|one of the application's client secrets + +#### Service principal with certificate + +|variable name|value +|-|- +|`AZURE_CLIENT_ID`|ID of an Azure Active Directory application +|`AZURE_TENANT_ID`|ID of the application's Azure Active Directory tenant +|`AZURE_CLIENT_CERTIFICATE_PATH`|path to a certificate file including private key +|`AZURE_CLIENT_CERTIFICATE_PASSWORD`|password of the certificate file, if any + +#### Username and password + +|variable name|value +|-|- +|`AZURE_CLIENT_ID`|ID of an Azure Active Directory application +|`AZURE_USERNAME`|a username (usually an email address) +|`AZURE_PASSWORD`|that user's password + +Configuration is attempted in the above order. For example, if values for a +client secret and certificate are both present, the client secret will be used. + +## Troubleshooting + +### Error Handling + +Credentials return an `error` when they fail to authenticate or lack data they require to authenticate. For guidance on resolving errors from specific credential types, see the [troubleshooting guide](https://aka.ms/azsdk/go/identity/troubleshoot). + +For more details on handling specific Azure Active Directory errors please refer to the +Azure Active Directory +[error code documentation](https://docs.microsoft.com/azure/active-directory/develop/reference-aadsts-error-codes). + +### Logging + +This module uses the classification-based logging implementation in `azcore`. To enable console logging for all SDK modules, set `AZURE_SDK_GO_LOGGING` to `all`. Use the `azcore/log` package to control log event output or to enable logs for `azidentity` only. For example: +```go +import azlog "github.com/Azure/azure-sdk-for-go/sdk/azcore/log" + +// print log output to stdout +azlog.SetListener(func(event azlog.Event, s string) { + fmt.Println(s) +}) + +// include only azidentity credential logs +azlog.SetEvents(azidentity.EventAuthentication) +``` + +Credentials log basic information only, such as `GetToken` success or failure and errors. These log entries don't contain authentication secrets but may contain sensitive information. + +## Next steps + +Client and management modules listed on the [Azure SDK releases page](https://azure.github.io/azure-sdk/releases/latest/go.html) support authenticating with `azidentity` credential types. You can learn more about using these libraries in their documentation, which is linked from the release page. + +## Provide Feedback + +If you encounter bugs or have suggestions, please +[open an issue](https://github.com/Azure/azure-sdk-for-go/issues). + +## Contributing + +This project welcomes contributions and suggestions. Most contributions require +you to agree to a Contributor License Agreement (CLA) declaring that you have +the right to, and actually do, grant us the rights to use your contribution. +For details, visit [https://cla.microsoft.com](https://cla.microsoft.com). + +When you submit a pull request, a CLA-bot will automatically determine whether +you need to provide a CLA and decorate the PR appropriately (e.g., label, +comment). Simply follow the instructions provided by the bot. You will only +need to do this once across all repos using our CLA. + +This project has adopted the +[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the +[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any +additional questions or comments. + +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-go%2Fsdk%2Fazidentity%2FREADME.png) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md new file mode 100644 index 00000000..affa91d0 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/TROUBLESHOOTING.md @@ -0,0 +1,197 @@ +# Troubleshoot Azure Identity authentication issues + +This troubleshooting guide covers failure investigation techniques, common errors for the credential types in the `azidentity` module, and mitigation steps to resolve these errors. + +## Table of contents + +- [Handle azidentity errors](#handle-azidentity-errors) + - [Permission issues](#permission-issues) +- [Find relevant information in errors](#find-relevant-information-in-errors) +- [Enable and configure logging](#enable-and-configure-logging) +- [Troubleshoot DefaultAzureCredential authentication issues](#troubleshoot-defaultazurecredential-authentication-issues) +- [Troubleshoot EnvironmentCredential authentication issues](#troubleshoot-environmentcredential-authentication-issues) +- [Troubleshoot ClientSecretCredential authentication issues](#troubleshoot-clientsecretcredential-authentication-issues) +- [Troubleshoot ClientCertificateCredential authentication issues](#troubleshoot-clientcertificatecredential-authentication-issues) +- [Troubleshoot UsernamePasswordCredential authentication issues](#troubleshoot-usernamepasswordcredential-authentication-issues) +- [Troubleshoot ManagedIdentityCredential authentication issues](#troubleshoot-managedidentitycredential-authentication-issues) + - [Azure Virtual Machine managed identity](#azure-virtual-machine-managed-identity) + - [Azure App Service and Azure Functions managed identity](#azure-app-service-and-azure-functions-managed-identity) + - [Azure Kubernetes Service managed identity](#azure-kubernetes-service-managed-identity) +- [Troubleshoot AzureCliCredential authentication issues](#troubleshoot-azureclicredential-authentication-issues) +- [Get additional help](#get-additional-help) + +## Handle azidentity errors + +Any service client method that makes a request to the service may return an error due to authentication failure. This is because the credential authenticates on the first call to the service and on any subsequent call that needs to refresh an access token. Authentication errors include a description of the failure and possibly an error message from Azure Active Directory (Azure AD). Depending on the application, these errors may or may not be recoverable. + +### Permission issues + +Service client errors with a status code of 401 or 403 often indicate that authentication succeeded but the caller doesn't have permission to access the specified API. Check the service documentation to determine which RBAC roles are needed for the request, and ensure the authenticated user or service principal has the appropriate role assignments. + +## Find relevant information in errors + +Authentication errors can include responses from Azure AD and often contain information helpful in diagnosis. Consider the following error message: + +``` +ClientSecretCredential authentication failed +POST https://login.microsoftonline.com/3c631bb7-a9f7-4343-a5ba-a615913/oauth2/v2.0/token +-------------------------------------------------------------------------------- +RESPONSE 401 Unauthorized +-------------------------------------------------------------------------------- +{ + "error": "invalid_client", + "error_description": "AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app '86be4c01-505b-45e9-bfc0-9b825fd84'.\r\nTrace ID: 03da4b8e-5ffe-48ca-9754-aff4276f0100\r\nCorrelation ID: 7b12f9bb-2eef-42e3-ad75-eee69ec9088d\r\nTimestamp: 2022-03-02 18:25:26Z", + "error_codes": [ + 7000215 + ], + "timestamp": "2022-03-02 18:25:26Z", + "trace_id": "03da4b8e-5ffe-48ca-9754-aff4276f0100", + "correlation_id": "7b12f9bb-2eef-42e3-ad75-eee69ec9088d", + "error_uri": "https://login.microsoftonline.com/error?code=7000215" +} +-------------------------------------------------------------------------------- +``` + +This error contains several pieces of information: + +- __Failing Credential Type__: The type of credential that failed to authenticate. This can be helpful when diagnosing issues with chained credential types such as `DefaultAzureCredential` or `ChainedTokenCredential`. + +- __Azure AD Error Code and Message__: The error code and message returned by Azure AD. This can give insight into the specific reason the request failed. For instance, in this case authentication failed because the provided client secret is incorrect. [Azure AD documentation](https://docs.microsoft.com/azure/active-directory/develop/reference-aadsts-error-codes#aadsts-error-codes) has more information on AADSTS error codes. + +- __Correlation ID and Timestamp__: The correlation ID and timestamp identify the request in server-side logs. This information can be useful to support engineers diagnosing unexpected Azure AD failures. + +### Enable and configure logging + +`azidentity` provides the same logging capabilities as the rest of the Azure SDK. The simplest way to see the logs to help debug authentication issues is to print credential logs to the console. +```go +import azlog "github.com/Azure/azure-sdk-for-go/sdk/azcore/log" + +// print log output to stdout +azlog.SetListener(func(event azlog.Event, s string) { + fmt.Println(s) +}) + +// include only azidentity credential logs +azlog.SetEvents(azidentity.EventAuthentication) +``` + +## Troubleshoot DefaultAzureCredential authentication issues + +| Error |Description| Mitigation | +|---|---|---| +|"DefaultAzureCredential failed to acquire a token"|No credential in the `DefaultAzureCredential` chain provided a token|
  • [Enable logging](#enable-and-configure-logging) to get further diagnostic information.
  • Consult the troubleshooting guide for underlying credential types for more information.
    • [EnvironmentCredential](#troubleshoot-environmentcredential-authentication-issues)
    • [ManagedIdentityCredential](#troubleshoot-visualstudiocredential-authentication-issues)
    • [AzureCLICredential](#troubleshoot-azureclicredential-authentication-issues)
    | +|Error from the client with a status code of 401 or 403|Authentication succeeded but the authorizing Azure service responded with a 401 (Unauthorized), or 403 (Forbidden) status code|
    • [Enable logging](#enable-and-configure-logging) to determine which credential in the chain returned the authenticating token.
    • If an unexpected credential is returning a token, check application configuration such as environment variables.
    • Ensure the correct role is assigned to the authenticated identity. For example, a service specific role rather than the subscription Owner role.
    | + +## Troubleshoot EnvironmentCredential authentication issues + +| Error Message |Description| Mitigation | +|---|---|---| +|Missing or incomplete environment variable configuration|A valid combination of environment variables wasn't set|Ensure the appropriate environment variables are set for the intended authentication method as described in the [module documentation](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#EnvironmentCredential)| + + +## Troubleshoot ClientSecretCredential authentication issues + +| Error Code | Issue | Mitigation | +|---|---|---| +|AADSTS7000215|An invalid client secret was provided.|Ensure the secret provided to the credential constructor is valid. If unsure, create a new client secret using the Azure portal. Details on creating a new client secret are in [Azure AD documentation](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#option-2-create-a-new-application-secret).| +|AADSTS7000222|An expired client secret was provided.|Create a new client secret using the Azure portal. Details on creating a new client secret are in [Azure AD documentation](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#option-2-create-a-new-application-secret).| +|AADSTS700016|The specified application wasn't found in the specified tenant.|Ensure the client and tenant IDs provided to the credential constructor are correct for your application registration. For multi-tenant apps, ensure the application has been added to the desired tenant by a tenant admin. To add a new application in the desired tenant, follow the [Azure AD instructions](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal).| + + +## Troubleshoot ClientCertificateCredential authentication issues + +| Error Code | Description | Mitigation | +|---|---|---| +|AADSTS700027|Client assertion contains an invalid signature.|Ensure the specified certificate has been uploaded to the application registration as described in [Azure AD documentation](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal#option-1-upload-a-certificate).| +|AADSTS700016|The specified application wasn't found in the specified tenant.|Ensure the client and tenant IDs provided to the credential constructor are correct for your application registration. For multi-tenant apps, ensure the application has been added to the desired tenant by a tenant admin. To add a new application in the desired tenant, follow the [Azure AD instructions](https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal).| + + +## Troubleshoot UsernamePasswordCredential authentication issues + +| Error Code | Issue | Mitigation | +|---|---|---| +|AADSTS50126|The provided username or password is invalid.|Ensure the username and password provided to the credential constructor are valid.| + + +## Troubleshoot ManagedIdentityCredential authentication issues + +`ManagedIdentityCredential` is designed to work on a variety of Azure hosts support managed identity. Configuration and troubleshooting vary from host to host. The below table lists the Azure hosts that can be assigned a managed identity and are supported by `ManagedIdentityCredential`. + +|Host Environment| | | +|---|---|---| +|Azure Virtual Machines and Scale Sets|[Configuration](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm)|[Troubleshooting](#azure-virtual-machine-managed-identity)| +|Azure App Service and Azure Functions|[Configuration](https://docs.microsoft.com/azure/app-service/overview-managed-identity)|[Troubleshooting](#azure-app-service-and-azure-functions-managed-identity)| +|Azure Kubernetes Service|[Configuration](https://azure.github.io/aad-pod-identity/docs/)|[Troubleshooting](#azure-kubernetes-service-managed-identity)| +|Azure Arc|[Configuration](https://docs.microsoft.com/azure/azure-arc/servers/managed-identity-authentication)|| +|Azure Service Fabric|[Configuration](https://docs.microsoft.com/azure/service-fabric/concepts-managed-identity)|| + +### Azure Virtual Machine managed identity + +| Error Message |Description| Mitigation | +|---|---|---| +|The requested identity hasn’t been assigned to this resource.|The IMDS endpoint responded with a status code of 400, indicating the requested identity isn’t assigned to the VM.|If using a user assigned identity, ensure the specified ID is correct.

    If using a system assigned identity, make sure it has been enabled as described in [managed identity documentation](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm#enable-system-assigned-managed-identity-on-an-existing-vm).| +|The request failed due to a gateway error.|The request to the IMDS endpoint failed due to a gateway error, 502 or 504 status code.|IMDS doesn't support requests via proxy or gateway. Disable proxies or gateways running on the VM for requests to the IMDS endpoint `http://169.254.169.254`| +|No response received from the managed identity endpoint.|No response was received for the request to IMDS or the request timed out.|

    • Ensure the VM is configured for managed identity as described in [managed identity documentation](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm).
    • Verify the IMDS endpoint is reachable on the VM. See [below](#verify-imds-is-available-on-the-vm) for instructions.
    | +|Multiple attempts failed to obtain a token from the managed identity endpoint.|The credential has exhausted its retries for a token request.|
    • Refer to the error message for more details on specific failures.
    • Ensure the VM is configured for managed identity as described in [managed identity documentation](https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/qs-configure-portal-windows-vm).
    • Verify the IMDS endpoint is reachable on the VM. See [below](#verify-imds-is-available-on-the-vm) for instructions.
    | + +#### Verify IMDS is available on the VM + +If you have access to the VM, you can use `curl` to verify the managed identity endpoint is available. + +```sh +curl 'http://169.254.169.254/metadata/identity/oauth2/token?resource=https://management.core.windows.net&api-version=2018-02-01' -H "Metadata: true" +``` + +> This command's output will contain an access token and SHOULD NOT BE SHARED, to avoid compromising account security. + +### Azure App Service and Azure Functions managed identity + +| Error Message |Description| Mitigation | +|---|---|---| +|Get "`http://169.254.169.254/...`" i/o timeout|The App Service host hasn't set environment variables for managed identity configuration.|
    • Ensure the App Service is configured for managed identity as described in [App Service documentation](https://docs.microsoft.com/azure/app-service/overview-managed-identity).
    • Verify the App Service environment is properly configured and the managed identity endpoint is available. See [below](#verify-the-app-service-managed-identity-endpoint-is-available) for instructions.
    | + +#### Verify the App Service managed identity endpoint is available + +If you can SSH into the App Service, you can verify managed identity is available in the environment. First ensure the environment variables `IDENTITY_ENDPOINT` and `IDENTITY_SECRET` are set. Then you can verify the managed identity endpoint is available using `curl`. + +```sh +curl "$IDENTITY_ENDPOINT?resource=https://management.core.windows.net&api-version=2019-08-01" -H "X-IDENTITY-HEADER: $IDENTITY_HEADER" +``` + +> This command's output will contain an access token and SHOULD NOT BE SHARED, to avoid compromising account security. + +### Azure Kubernetes Service managed identity + +#### Pod Identity + +| Error Message |Description| Mitigation | +|---|---|---| +|"no azure identity found for request clientID"|The application attempted to authenticate before an identity was assigned to its pod|Verify the pod is labeled correctly. This also occurs when a correctly labeled pod authenticates before the identity is ready. To prevent initialization races, configure NMI to set the Retry-After header in its responses as described in [Pod Identity documentation](https://azure.github.io/aad-pod-identity/docs/configure/feature_flags/#set-retry-after-header-in-nmi-response). + + +## Troubleshoot AzureCliCredential authentication issues + +| Error Message |Description| Mitigation | +|---|---|---| +|Azure CLI not found on path|The Azure CLI isn’t installed or isn't on the application's path.|
    • Ensure the Azure CLI is installed as described in [Azure CLI documentation](https://docs.microsoft.com/cli/azure/install-azure-cli).
    • Validate the installation location is in the application's `PATH` environment variable.
    | +|Please run 'az login' to set up account|No account is currently logged into the Azure CLI, or the login has expired.|
    • Run `az login` to log into the Azure CLI. More information about Azure CLI authentication is available in the [Azure CLI documentation](https://docs.microsoft.com/cli/azure/authenticate-azure-cli).
    • Verify that the Azure CLI can obtain tokens. See [below](#verify-the-azure-cli-can-obtain-tokens) for instructions.
    | + +#### Verify the Azure CLI can obtain tokens + +You can manually verify that the Azure CLI can authenticate and obtain tokens. First, use the `account` command to verify the logged in account. + +```azurecli +az account show +``` + +Once you've verified the Azure CLI is using the correct account, you can validate that it's able to obtain tokens for that account. + +```azurecli +az account get-access-token --output json --resource https://management.core.windows.net +``` + +> This command's output will contain an access token and SHOULD NOT BE SHARED, to avoid compromising account security. + +## Get additional help + +Additional information on ways to reach out for support can be found in [SUPPORT.md](https://github.com/Azure/azure-sdk-for-go/blob/main/SUPPORT.md). diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azidentity.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azidentity.go new file mode 100644 index 00000000..56111f8f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azidentity.go @@ -0,0 +1,165 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/url" + "os" + "regexp" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" +) + +const ( + azureAuthorityHost = "AZURE_AUTHORITY_HOST" + azureClientCertificatePassword = "AZURE_CLIENT_CERTIFICATE_PASSWORD" + azureClientCertificatePath = "AZURE_CLIENT_CERTIFICATE_PATH" + azureClientID = "AZURE_CLIENT_ID" + azureClientSecret = "AZURE_CLIENT_SECRET" + azurePassword = "AZURE_PASSWORD" + azureRegionalAuthorityName = "AZURE_REGIONAL_AUTHORITY_NAME" + azureTenantID = "AZURE_TENANT_ID" + azureUsername = "AZURE_USERNAME" + + organizationsTenantID = "organizations" + developerSignOnClientID = "04b07795-8ddb-461a-bbee-02f9e1bf7b46" + defaultSuffix = "/.default" + tenantIDValidationErr = "invalid tenantID. You can locate your tenantID by following the instructions listed here: https://docs.microsoft.com/partner-center/find-ids-and-domain-names" +) + +func getConfidentialClient(clientID, tenantID string, cred confidential.Credential, co *azcore.ClientOptions, additionalOpts ...confidential.Option) (confidential.Client, error) { + if !validTenantID(tenantID) { + return confidential.Client{}, errors.New(tenantIDValidationErr) + } + authorityHost, err := setAuthorityHost(co.Cloud) + if err != nil { + return confidential.Client{}, err + } + authority := runtime.JoinPaths(authorityHost, tenantID) + o := []confidential.Option{ + confidential.WithAzureRegion(os.Getenv(azureRegionalAuthorityName)), + confidential.WithHTTPClient(newPipelineAdapter(co)), + } + o = append(o, additionalOpts...) + return confidential.New(authority, clientID, cred, o...) +} + +func getPublicClient(clientID, tenantID string, co *azcore.ClientOptions) (public.Client, error) { + if !validTenantID(tenantID) { + return public.Client{}, errors.New(tenantIDValidationErr) + } + authorityHost, err := setAuthorityHost(co.Cloud) + if err != nil { + return public.Client{}, err + } + return public.New(clientID, + public.WithAuthority(runtime.JoinPaths(authorityHost, tenantID)), + public.WithHTTPClient(newPipelineAdapter(co)), + ) +} + +// setAuthorityHost initializes the authority host for credentials. Precedence is: +// 1. cloud.Configuration.ActiveDirectoryAuthorityHost value set by user +// 2. value of AZURE_AUTHORITY_HOST +// 3. default: Azure Public Cloud +func setAuthorityHost(cc cloud.Configuration) (string, error) { + host := cc.ActiveDirectoryAuthorityHost + if host == "" { + if len(cc.Services) > 0 { + return "", errors.New("missing ActiveDirectoryAuthorityHost for specified cloud") + } + host = cloud.AzurePublic.ActiveDirectoryAuthorityHost + if envAuthorityHost := os.Getenv(azureAuthorityHost); envAuthorityHost != "" { + host = envAuthorityHost + } + } + u, err := url.Parse(host) + if err != nil { + return "", err + } + if u.Scheme != "https" { + return "", errors.New("cannot use an authority host without https") + } + return host, nil +} + +// validTenantID return true is it receives a valid tenantID, returns false otherwise +func validTenantID(tenantID string) bool { + match, err := regexp.MatchString("^[0-9a-zA-Z-.]+$", tenantID) + if err != nil { + return false + } + return match +} + +func newPipelineAdapter(opts *azcore.ClientOptions) pipelineAdapter { + pl := runtime.NewPipeline(component, version, runtime.PipelineOptions{}, opts) + return pipelineAdapter{pl: pl} +} + +type pipelineAdapter struct { + pl runtime.Pipeline +} + +func (p pipelineAdapter) CloseIdleConnections() { + // do nothing +} + +func (p pipelineAdapter) Do(r *http.Request) (*http.Response, error) { + req, err := runtime.NewRequest(r.Context(), r.Method, r.URL.String()) + if err != nil { + return nil, err + } + if r.Body != nil && r.Body != http.NoBody { + // create a rewindable body from the existing body as required + var body io.ReadSeekCloser + if rsc, ok := r.Body.(io.ReadSeekCloser); ok { + body = rsc + } else { + b, err := io.ReadAll(r.Body) + if err != nil { + return nil, err + } + body = streaming.NopCloser(bytes.NewReader(b)) + } + err = req.SetBody(body, r.Header.Get("Content-Type")) + if err != nil { + return nil, err + } + } + resp, err := p.pl.Do(req) + if err != nil { + return nil, err + } + return resp, err +} + +// enables fakes for test scenarios +type confidentialClient interface { + AcquireTokenSilent(ctx context.Context, scopes []string, options ...confidential.AcquireSilentOption) (confidential.AuthResult, error) + AcquireTokenByAuthCode(ctx context.Context, code string, redirectURI string, scopes []string, options ...confidential.AcquireByAuthCodeOption) (confidential.AuthResult, error) + AcquireTokenByCredential(ctx context.Context, scopes []string, options ...confidential.AcquireByCredentialOption) (confidential.AuthResult, error) +} + +// enables fakes for test scenarios +type publicClient interface { + AcquireTokenSilent(ctx context.Context, scopes []string, options ...public.AcquireSilentOption) (public.AuthResult, error) + AcquireTokenByUsernamePassword(ctx context.Context, scopes []string, username string, password string, options ...public.AcquireByUsernamePasswordOption) (public.AuthResult, error) + AcquireTokenByDeviceCode(ctx context.Context, scopes []string, options ...public.AcquireByDeviceCodeOption) (public.DeviceCode, error) + AcquireTokenByAuthCode(ctx context.Context, code string, redirectURI string, scopes []string, options ...public.AcquireByAuthCodeOption) (public.AuthResult, error) + AcquireTokenInteractive(ctx context.Context, scopes []string, options ...public.AcquireInteractiveOption) (public.AuthResult, error) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go new file mode 100644 index 00000000..68f46d51 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/azure_cli_credential.go @@ -0,0 +1,189 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "bytes" + "context" + "encoding/json" + "errors" + "fmt" + "os" + "os/exec" + "regexp" + "runtime" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" +) + +const credNameAzureCLI = "AzureCLICredential" + +// used by tests to fake invoking the CLI +type azureCLITokenProvider func(ctx context.Context, resource string, tenantID string) ([]byte, error) + +// AzureCLICredentialOptions contains optional parameters for AzureCLICredential. +type AzureCLICredentialOptions struct { + // TenantID identifies the tenant the credential should authenticate in. + // Defaults to the CLI's default tenant, which is typically the home tenant of the logged in user. + TenantID string + + tokenProvider azureCLITokenProvider +} + +// init returns an instance of AzureCLICredentialOptions initialized with default values. +func (o *AzureCLICredentialOptions) init() { + if o.tokenProvider == nil { + o.tokenProvider = defaultTokenProvider() + } +} + +// AzureCLICredential authenticates as the identity logged in to the Azure CLI. +type AzureCLICredential struct { + tokenProvider azureCLITokenProvider + tenantID string +} + +// NewAzureCLICredential constructs an AzureCLICredential. Pass nil to accept default options. +func NewAzureCLICredential(options *AzureCLICredentialOptions) (*AzureCLICredential, error) { + cp := AzureCLICredentialOptions{} + if options != nil { + cp = *options + } + cp.init() + return &AzureCLICredential{ + tokenProvider: cp.tokenProvider, + tenantID: cp.TenantID, + }, nil +} + +// GetToken requests a token from the Azure CLI. This credential doesn't cache tokens, so every call invokes the CLI. +// This method is called automatically by Azure SDK clients. +func (c *AzureCLICredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) != 1 { + return azcore.AccessToken{}, errors.New(credNameAzureCLI + ": GetToken() requires exactly one scope") + } + // CLI expects an AAD v1 resource, not a v2 scope + scope := strings.TrimSuffix(opts.Scopes[0], defaultSuffix) + at, err := c.authenticate(ctx, scope) + if err != nil { + return azcore.AccessToken{}, err + } + logGetTokenSuccess(c, opts) + return at, nil +} + +const timeoutCLIRequest = 10 * time.Second + +func (c *AzureCLICredential) authenticate(ctx context.Context, resource string) (azcore.AccessToken, error) { + output, err := c.tokenProvider(ctx, resource, c.tenantID) + if err != nil { + return azcore.AccessToken{}, err + } + + return c.createAccessToken(output) +} + +func defaultTokenProvider() func(ctx context.Context, resource string, tenantID string) ([]byte, error) { + return func(ctx context.Context, resource string, tenantID string) ([]byte, error) { + match, err := regexp.MatchString("^[0-9a-zA-Z-.:/]+$", resource) + if err != nil { + return nil, err + } + if !match { + return nil, fmt.Errorf(`%s: unexpected scope "%s". Only alphanumeric characters and ".", ";", "-", and "/" are allowed`, credNameAzureCLI, resource) + } + + ctx, cancel := context.WithTimeout(ctx, timeoutCLIRequest) + defer cancel() + + commandLine := "az account get-access-token -o json --resource " + resource + if tenantID != "" { + commandLine += " --tenant " + tenantID + } + var cliCmd *exec.Cmd + if runtime.GOOS == "windows" { + dir := os.Getenv("SYSTEMROOT") + if dir == "" { + return nil, newCredentialUnavailableError(credNameAzureCLI, "environment variable 'SYSTEMROOT' has no value") + } + cliCmd = exec.CommandContext(ctx, "cmd.exe", "/c", commandLine) + cliCmd.Dir = dir + } else { + cliCmd = exec.CommandContext(ctx, "/bin/sh", "-c", commandLine) + cliCmd.Dir = "/bin" + } + cliCmd.Env = os.Environ() + var stderr bytes.Buffer + cliCmd.Stderr = &stderr + + output, err := cliCmd.Output() + if err != nil { + msg := stderr.String() + var exErr *exec.ExitError + if errors.As(err, &exErr) && exErr.ExitCode() == 127 || strings.HasPrefix(msg, "'az' is not recognized") { + msg = "Azure CLI not found on path" + } + if msg == "" { + msg = err.Error() + } + return nil, newCredentialUnavailableError(credNameAzureCLI, msg) + } + + return output, nil + } +} + +func (c *AzureCLICredential) createAccessToken(tk []byte) (azcore.AccessToken, error) { + t := struct { + AccessToken string `json:"accessToken"` + Authority string `json:"_authority"` + ClientID string `json:"_clientId"` + ExpiresOn string `json:"expiresOn"` + IdentityProvider string `json:"identityProvider"` + IsMRRT bool `json:"isMRRT"` + RefreshToken string `json:"refreshToken"` + Resource string `json:"resource"` + TokenType string `json:"tokenType"` + UserID string `json:"userId"` + }{} + err := json.Unmarshal(tk, &t) + if err != nil { + return azcore.AccessToken{}, err + } + + tokenExpirationDate, err := parseExpirationDate(t.ExpiresOn) + if err != nil { + return azcore.AccessToken{}, fmt.Errorf("Error parsing Token Expiration Date %q: %+v", t.ExpiresOn, err) + } + + converted := azcore.AccessToken{ + Token: t.AccessToken, + ExpiresOn: *tokenExpirationDate, + } + return converted, nil +} + +// parseExpirationDate parses either a Azure CLI or CloudShell date into a time object +func parseExpirationDate(input string) (*time.Time, error) { + // CloudShell (and potentially the Azure CLI in future) + expirationDate, cloudShellErr := time.Parse(time.RFC3339, input) + if cloudShellErr != nil { + // Azure CLI (Python) e.g. 2017-08-31 19:48:57.998857 (plus the local timezone) + const cliFormat = "2006-01-02 15:04:05.999999" + expirationDate, cliErr := time.ParseInLocation(cliFormat, input, time.Local) + if cliErr != nil { + return nil, fmt.Errorf("Error parsing expiration date %q.\n\nCloudShell Error: \n%+v\n\nCLI Error:\n%+v", input, cloudShellErr, cliErr) + } + return &expirationDate, nil + } + return &expirationDate, nil +} + +var _ azcore.TokenCredential = (*AzureCLICredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/chained_token_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/chained_token_credential.go new file mode 100644 index 00000000..86a89064 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/chained_token_credential.go @@ -0,0 +1,133 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +// ChainedTokenCredentialOptions contains optional parameters for ChainedTokenCredential. +type ChainedTokenCredentialOptions struct { + // RetrySources configures how the credential uses its sources. When true, the credential always attempts to + // authenticate through each source in turn, stopping when one succeeds. When false, the credential authenticates + // only through this first successful source--it never again tries the sources which failed. + RetrySources bool +} + +// ChainedTokenCredential links together multiple credentials and tries them sequentially when authenticating. By default, +// it tries all the credentials until one authenticates, after which it always uses that credential. +type ChainedTokenCredential struct { + cond *sync.Cond + iterating bool + name string + retrySources bool + sources []azcore.TokenCredential + successfulCredential azcore.TokenCredential +} + +// NewChainedTokenCredential creates a ChainedTokenCredential. Pass nil for options to accept defaults. +func NewChainedTokenCredential(sources []azcore.TokenCredential, options *ChainedTokenCredentialOptions) (*ChainedTokenCredential, error) { + if len(sources) == 0 { + return nil, errors.New("sources must contain at least one TokenCredential") + } + for _, source := range sources { + if source == nil { // cannot have a nil credential in the chain or else the application will panic when GetToken() is called on nil + return nil, errors.New("sources cannot contain nil") + } + } + cp := make([]azcore.TokenCredential, len(sources)) + copy(cp, sources) + if options == nil { + options = &ChainedTokenCredentialOptions{} + } + return &ChainedTokenCredential{ + cond: sync.NewCond(&sync.Mutex{}), + name: "ChainedTokenCredential", + retrySources: options.RetrySources, + sources: cp, + }, nil +} + +// GetToken calls GetToken on the chained credentials in turn, stopping when one returns a token. +// This method is called automatically by Azure SDK clients. +func (c *ChainedTokenCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if !c.retrySources { + // ensure only one goroutine at a time iterates the sources and perhaps sets c.successfulCredential + c.cond.L.Lock() + for { + if c.successfulCredential != nil { + c.cond.L.Unlock() + return c.successfulCredential.GetToken(ctx, opts) + } + if !c.iterating { + c.iterating = true + // allow other goroutines to wait while this one iterates + c.cond.L.Unlock() + break + } + c.cond.Wait() + } + } + + var err error + var errs []error + var token azcore.AccessToken + var successfulCredential azcore.TokenCredential + for _, cred := range c.sources { + token, err = cred.GetToken(ctx, opts) + if err == nil { + log.Writef(EventAuthentication, "%s authenticated with %s", c.name, extractCredentialName(cred)) + successfulCredential = cred + break + } + errs = append(errs, err) + if _, ok := err.(*credentialUnavailableError); !ok { + break + } + } + if c.iterating { + c.cond.L.Lock() + c.successfulCredential = successfulCredential + c.iterating = false + c.cond.L.Unlock() + c.cond.Broadcast() + } + // err is the error returned by the last GetToken call. It will be nil when that call succeeds + if err != nil { + // return credentialUnavailableError iff all sources did so; return AuthenticationFailedError otherwise + msg := createChainedErrorMessage(errs) + if _, ok := err.(*credentialUnavailableError); ok { + err = newCredentialUnavailableError(c.name, msg) + } else { + res := getResponseFromError(err) + err = newAuthenticationFailedError(c.name, msg, res) + } + } + return token, err +} + +func createChainedErrorMessage(errs []error) string { + msg := "failed to acquire a token.\nAttempted credentials:" + for _, err := range errs { + msg += fmt.Sprintf("\n\t%s", err.Error()) + } + return msg +} + +func extractCredentialName(credential azcore.TokenCredential) string { + return strings.TrimPrefix(fmt.Sprintf("%T", credential), "*azidentity.") +} + +var _ azcore.TokenCredential = (*ChainedTokenCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml new file mode 100644 index 00000000..3b443e8e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/ci.yml @@ -0,0 +1,47 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. +trigger: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/azidentity/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/azidentity/ + +stages: +- template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml + parameters: + RunLiveTests: true + ServiceDirectory: 'azidentity' + PreSteps: + - pwsh: | + [System.Convert]::FromBase64String($env:PFX_CONTENTS) | Set-Content -Path $(Agent.TempDirectory)/test.pfx -AsByteStream + Set-Content -Path $(Agent.TempDirectory)/test.pem -Value $env:PEM_CONTENTS + [System.Convert]::FromBase64String($env:SNI_CONTENTS) | Set-Content -Path $(Agent.TempDirectory)/testsni.pfx -AsByteStream + env: + PFX_CONTENTS: $(net-identity-spcert-pfx) + PEM_CONTENTS: $(net-identity-spcert-pem) + SNI_CONTENTS: $(net-identity-spcert-sni) + EnvVars: + AZURE_IDENTITY_TEST_TENANTID: $(net-identity-tenantid) + AZURE_IDENTITY_TEST_USERNAME: $(net-identity-username) + AZURE_IDENTITY_TEST_PASSWORD: $(net-identity-password) + IDENTITY_SP_TENANT_ID: $(net-identity-sp-tenantid) + IDENTITY_SP_CLIENT_ID: $(net-identity-sp-clientid) + IDENTITY_SP_CLIENT_SECRET: $(net-identity-sp-clientsecret) + IDENTITY_SP_CERT_PEM: $(Agent.TempDirectory)/test.pem + IDENTITY_SP_CERT_PFX: $(Agent.TempDirectory)/test.pfx + IDENTITY_SP_CERT_SNI: $(Agent.TempDirectory)/testsni.pfx diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_assertion_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_assertion_credential.go new file mode 100644 index 00000000..ffcf2094 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_assertion_credential.go @@ -0,0 +1,74 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" +) + +const credNameAssertion = "ClientAssertionCredential" + +// ClientAssertionCredential authenticates an application with assertions provided by a callback function. +// This credential is for advanced scenarios. ClientCertificateCredential has a more convenient API for +// the most common assertion scenario, authenticating a service principal with a certificate. See +// [Azure AD documentation] for details of the assertion format. +// +// [Azure AD documentation]: https://docs.microsoft.com/azure/active-directory/develop/active-directory-certificate-credentials#assertion-format +type ClientAssertionCredential struct { + client confidentialClient +} + +// ClientAssertionCredentialOptions contains optional parameters for ClientAssertionCredential. +type ClientAssertionCredentialOptions struct { + azcore.ClientOptions +} + +// NewClientAssertionCredential constructs a ClientAssertionCredential. The getAssertion function must be thread safe. Pass nil for options to accept defaults. +func NewClientAssertionCredential(tenantID, clientID string, getAssertion func(context.Context) (string, error), options *ClientAssertionCredentialOptions) (*ClientAssertionCredential, error) { + if getAssertion == nil { + return nil, errors.New("getAssertion must be a function that returns assertions") + } + if options == nil { + options = &ClientAssertionCredentialOptions{} + } + cred := confidential.NewCredFromAssertionCallback( + func(ctx context.Context, _ confidential.AssertionRequestOptions) (string, error) { + return getAssertion(ctx) + }, + ) + c, err := getConfidentialClient(clientID, tenantID, cred, &options.ClientOptions) + if err != nil { + return nil, err + } + return &ClientAssertionCredential{client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *ClientAssertionCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameAssertion + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + + ar, err = c.client.AcquireTokenByCredential(ctx, opts.Scopes) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameAssertion, err) + } + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*ClientAssertionCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_certificate_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_certificate_credential.go new file mode 100644 index 00000000..90b9fcac --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_certificate_credential.go @@ -0,0 +1,163 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "crypto" + "crypto/x509" + "encoding/pem" + "errors" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" + "golang.org/x/crypto/pkcs12" +) + +const credNameCert = "ClientCertificateCredential" + +// ClientCertificateCredentialOptions contains optional parameters for ClientCertificateCredential. +type ClientCertificateCredentialOptions struct { + azcore.ClientOptions + + // SendCertificateChain controls whether the credential sends the public certificate chain in the x5c + // header of each token request's JWT. This is required for Subject Name/Issuer (SNI) authentication. + // Defaults to False. + SendCertificateChain bool +} + +// ClientCertificateCredential authenticates a service principal with a certificate. +type ClientCertificateCredential struct { + client confidentialClient +} + +// NewClientCertificateCredential constructs a ClientCertificateCredential. Pass nil for options to accept defaults. +func NewClientCertificateCredential(tenantID string, clientID string, certs []*x509.Certificate, key crypto.PrivateKey, options *ClientCertificateCredentialOptions) (*ClientCertificateCredential, error) { + if len(certs) == 0 { + return nil, errors.New("at least one certificate is required") + } + if options == nil { + options = &ClientCertificateCredentialOptions{} + } + cred, err := confidential.NewCredFromCert(certs, key) + if err != nil { + return nil, err + } + var o []confidential.Option + if options.SendCertificateChain { + o = append(o, confidential.WithX5C()) + } + c, err := getConfidentialClient(clientID, tenantID, cred, &options.ClientOptions, o...) + if err != nil { + return nil, err + } + return &ClientCertificateCredential{client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *ClientCertificateCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameCert + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + + ar, err = c.client.AcquireTokenByCredential(ctx, opts.Scopes) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameCert, err) + } + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +// ParseCertificates loads certificates and a private key, in PEM or PKCS12 format, for use with NewClientCertificateCredential. +// Pass nil for password if the private key isn't encrypted. This function can't decrypt keys in PEM format. +func ParseCertificates(certData []byte, password []byte) ([]*x509.Certificate, crypto.PrivateKey, error) { + var blocks []*pem.Block + var err error + if len(password) == 0 { + blocks, err = loadPEMCert(certData) + } + if len(blocks) == 0 || err != nil { + blocks, err = loadPKCS12Cert(certData, string(password)) + } + if err != nil { + return nil, nil, err + } + var certs []*x509.Certificate + var pk crypto.PrivateKey + for _, block := range blocks { + switch block.Type { + case "CERTIFICATE": + c, err := x509.ParseCertificate(block.Bytes) + if err != nil { + return nil, nil, err + } + certs = append(certs, c) + case "PRIVATE KEY": + if pk != nil { + return nil, nil, errors.New("certData contains multiple private keys") + } + pk, err = x509.ParsePKCS8PrivateKey(block.Bytes) + if err != nil { + pk, err = x509.ParsePKCS1PrivateKey(block.Bytes) + } + if err != nil { + return nil, nil, err + } + case "RSA PRIVATE KEY": + if pk != nil { + return nil, nil, errors.New("certData contains multiple private keys") + } + pk, err = x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + return nil, nil, err + } + } + } + if len(certs) == 0 { + return nil, nil, errors.New("found no certificate") + } + if pk == nil { + return nil, nil, errors.New("found no private key") + } + return certs, pk, nil +} + +func loadPEMCert(certData []byte) ([]*pem.Block, error) { + blocks := []*pem.Block{} + for { + var block *pem.Block + block, certData = pem.Decode(certData) + if block == nil { + break + } + blocks = append(blocks, block) + } + if len(blocks) == 0 { + return nil, errors.New("didn't find any PEM blocks") + } + return blocks, nil +} + +func loadPKCS12Cert(certData []byte, password string) ([]*pem.Block, error) { + blocks, err := pkcs12.ToPEM(certData, password) + if err != nil { + return nil, err + } + if len(blocks) == 0 { + // not mentioning PKCS12 in this message because we end up here when certData is garbage + return nil, errors.New("didn't find any certificate content") + } + return blocks, err +} + +var _ azcore.TokenCredential = (*ClientCertificateCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_secret_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_secret_credential.go new file mode 100644 index 00000000..1c3a5166 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/client_secret_credential.go @@ -0,0 +1,65 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" +) + +const credNameSecret = "ClientSecretCredential" + +// ClientSecretCredentialOptions contains optional parameters for ClientSecretCredential. +type ClientSecretCredentialOptions struct { + azcore.ClientOptions +} + +// ClientSecretCredential authenticates an application with a client secret. +type ClientSecretCredential struct { + client confidentialClient +} + +// NewClientSecretCredential constructs a ClientSecretCredential. Pass nil for options to accept defaults. +func NewClientSecretCredential(tenantID string, clientID string, clientSecret string, options *ClientSecretCredentialOptions) (*ClientSecretCredential, error) { + if options == nil { + options = &ClientSecretCredentialOptions{} + } + cred, err := confidential.NewCredFromSecret(clientSecret) + if err != nil { + return nil, err + } + c, err := getConfidentialClient(clientID, tenantID, cred, &options.ClientOptions) + if err != nil { + return nil, err + } + return &ClientSecretCredential{client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *ClientSecretCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameSecret + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + + ar, err = c.client.AcquireTokenByCredential(ctx, opts.Scopes) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameSecret, err) + } + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*ClientSecretCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go new file mode 100644 index 00000000..c2b801c4 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/default_azure_credential.go @@ -0,0 +1,134 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + "os" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +// DefaultAzureCredentialOptions contains optional parameters for DefaultAzureCredential. +// These options may not apply to all credentials in the chain. +type DefaultAzureCredentialOptions struct { + azcore.ClientOptions + + // TenantID identifies the tenant the Azure CLI should authenticate in. + // Defaults to the CLI's default tenant, which is typically the home tenant of the user logged in to the CLI. + TenantID string +} + +// DefaultAzureCredential is a default credential chain for applications that will deploy to Azure. +// It combines credentials suitable for deployment with credentials suitable for local development. +// It attempts to authenticate with each of these credential types, in the following order, stopping when one provides a token: +// +// EnvironmentCredential +// ManagedIdentityCredential +// AzureCLICredential +// +// Consult the documentation for these credential types for more information on how they authenticate. +// Once a credential has successfully authenticated, DefaultAzureCredential will use that credential for +// every subsequent authentication. +type DefaultAzureCredential struct { + chain *ChainedTokenCredential +} + +// NewDefaultAzureCredential creates a DefaultAzureCredential. Pass nil for options to accept defaults. +func NewDefaultAzureCredential(options *DefaultAzureCredentialOptions) (*DefaultAzureCredential, error) { + var creds []azcore.TokenCredential + var errorMessages []string + + if options == nil { + options = &DefaultAzureCredentialOptions{} + } + + envCred, err := NewEnvironmentCredential(&EnvironmentCredentialOptions{ClientOptions: options.ClientOptions}) + if err == nil { + creds = append(creds, envCred) + } else { + errorMessages = append(errorMessages, "EnvironmentCredential: "+err.Error()) + creds = append(creds, &defaultCredentialErrorReporter{credType: "EnvironmentCredential", err: err}) + } + + o := &ManagedIdentityCredentialOptions{ClientOptions: options.ClientOptions} + if ID, ok := os.LookupEnv(azureClientID); ok { + o.ID = ClientID(ID) + } + msiCred, err := NewManagedIdentityCredential(o) + if err == nil { + creds = append(creds, msiCred) + msiCred.mic.imdsTimeout = time.Second + } else { + errorMessages = append(errorMessages, credNameManagedIdentity+": "+err.Error()) + creds = append(creds, &defaultCredentialErrorReporter{credType: credNameManagedIdentity, err: err}) + } + + cliCred, err := NewAzureCLICredential(&AzureCLICredentialOptions{TenantID: options.TenantID}) + if err == nil { + creds = append(creds, cliCred) + } else { + errorMessages = append(errorMessages, credNameAzureCLI+": "+err.Error()) + creds = append(creds, &defaultCredentialErrorReporter{credType: credNameAzureCLI, err: err}) + } + + err = defaultAzureCredentialConstructorErrorHandler(len(creds), errorMessages) + if err != nil { + return nil, err + } + + chain, err := NewChainedTokenCredential(creds, nil) + if err != nil { + return nil, err + } + chain.name = "DefaultAzureCredential" + return &DefaultAzureCredential{chain: chain}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *DefaultAzureCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + return c.chain.GetToken(ctx, opts) +} + +var _ azcore.TokenCredential = (*DefaultAzureCredential)(nil) + +func defaultAzureCredentialConstructorErrorHandler(numberOfSuccessfulCredentials int, errorMessages []string) (err error) { + errorMessage := strings.Join(errorMessages, "\n\t") + + if numberOfSuccessfulCredentials == 0 { + return errors.New(errorMessage) + } + + if len(errorMessages) != 0 { + log.Writef(EventAuthentication, "NewDefaultAzureCredential failed to initialize some credentials:\n\t%s", errorMessage) + } + + return nil +} + +// defaultCredentialErrorReporter is a substitute for credentials that couldn't be constructed. +// Its GetToken method always returns a credentialUnavailableError having the same message as +// the error that prevented constructing the credential. This ensures the message is present +// in the error returned by ChainedTokenCredential.GetToken() +type defaultCredentialErrorReporter struct { + credType string + err error +} + +func (d *defaultCredentialErrorReporter) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if _, ok := d.err.(*credentialUnavailableError); ok { + return azcore.AccessToken{}, d.err + } + return azcore.AccessToken{}, newCredentialUnavailableError(d.credType, d.err.Error()) +} + +var _ azcore.TokenCredential = (*defaultCredentialErrorReporter)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/device_code_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/device_code_credential.go new file mode 100644 index 00000000..2e9b5438 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/device_code_credential.go @@ -0,0 +1,119 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + "fmt" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" +) + +const credNameDeviceCode = "DeviceCodeCredential" + +// DeviceCodeCredentialOptions contains optional parameters for DeviceCodeCredential. +type DeviceCodeCredentialOptions struct { + azcore.ClientOptions + + // TenantID is the Azure Active Directory tenant the credential authenticates in. Defaults to the + // "organizations" tenant, which can authenticate work and school accounts. Required for single-tenant + // applications. + TenantID string + // ClientID is the ID of the application users will authenticate to. + // Defaults to the ID of an Azure development application. + ClientID string + // UserPrompt controls how the credential presents authentication instructions. The credential calls + // this function with authentication details when it receives a device code. By default, the credential + // prints these details to stdout. + UserPrompt func(context.Context, DeviceCodeMessage) error +} + +func (o *DeviceCodeCredentialOptions) init() { + if o.TenantID == "" { + o.TenantID = organizationsTenantID + } + if o.ClientID == "" { + o.ClientID = developerSignOnClientID + } + if o.UserPrompt == nil { + o.UserPrompt = func(ctx context.Context, dc DeviceCodeMessage) error { + fmt.Println(dc.Message) + return nil + } + } +} + +// DeviceCodeMessage contains the information a user needs to complete authentication. +type DeviceCodeMessage struct { + // UserCode is the user code returned by the service. + UserCode string `json:"user_code"` + // VerificationURL is the URL at which the user must authenticate. + VerificationURL string `json:"verification_uri"` + // Message is user instruction from Azure Active Directory. + Message string `json:"message"` +} + +// DeviceCodeCredential acquires tokens for a user via the device code flow, which has the +// user browse to an Azure Active Directory URL, enter a code, and authenticate. It's useful +// for authenticating a user in an environment without a web browser, such as an SSH session. +// If a web browser is available, InteractiveBrowserCredential is more convenient because it +// automatically opens a browser to the login page. +type DeviceCodeCredential struct { + client publicClient + userPrompt func(context.Context, DeviceCodeMessage) error + account public.Account +} + +// NewDeviceCodeCredential creates a DeviceCodeCredential. Pass nil to accept default options. +func NewDeviceCodeCredential(options *DeviceCodeCredentialOptions) (*DeviceCodeCredential, error) { + cp := DeviceCodeCredentialOptions{} + if options != nil { + cp = *options + } + cp.init() + c, err := getPublicClient(cp.ClientID, cp.TenantID, &cp.ClientOptions) + if err != nil { + return nil, err + } + return &DeviceCodeCredential{userPrompt: cp.UserPrompt, client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. It will begin the device code flow and poll until the user completes authentication. +// This method is called automatically by Azure SDK clients. +func (c *DeviceCodeCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameDeviceCode + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes, public.WithSilentAccount(c.account)) + if err == nil { + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + dc, err := c.client.AcquireTokenByDeviceCode(ctx, opts.Scopes) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameDeviceCode, err) + } + err = c.userPrompt(ctx, DeviceCodeMessage{ + UserCode: dc.Result.UserCode, + VerificationURL: dc.Result.VerificationURL, + Message: dc.Result.Message, + }) + if err != nil { + return azcore.AccessToken{}, err + } + ar, err = dc.AuthenticationResult(ctx) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameDeviceCode, err) + } + c.account = ar.Account + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*DeviceCodeCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/environment_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/environment_credential.go new file mode 100644 index 00000000..b1871b4d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/environment_credential.go @@ -0,0 +1,128 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + "fmt" + "os" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +const envVarSendCertChain = "AZURE_CLIENT_SEND_CERTIFICATE_CHAIN" + +// EnvironmentCredentialOptions contains optional parameters for EnvironmentCredential +type EnvironmentCredentialOptions struct { + azcore.ClientOptions +} + +// EnvironmentCredential authenticates a service principal with a secret or certificate, or a user with a password, depending +// on environment variable configuration. It reads configuration from these variables, in the following order: +// +// # Service principal with client secret +// +// AZURE_TENANT_ID: ID of the service principal's tenant. Also called its "directory" ID. +// +// AZURE_CLIENT_ID: the service principal's client ID +// +// AZURE_CLIENT_SECRET: one of the service principal's client secrets +// +// # Service principal with certificate +// +// AZURE_TENANT_ID: ID of the service principal's tenant. Also called its "directory" ID. +// +// AZURE_CLIENT_ID: the service principal's client ID +// +// AZURE_CLIENT_CERTIFICATE_PATH: path to a PEM or PKCS12 certificate file including the private key. +// +// AZURE_CLIENT_CERTIFICATE_PASSWORD: (optional) password for the certificate file. +// +// # User with username and password +// +// AZURE_TENANT_ID: (optional) tenant to authenticate in. Defaults to "organizations". +// +// AZURE_CLIENT_ID: client ID of the application the user will authenticate to +// +// AZURE_USERNAME: a username (usually an email address) +// +// AZURE_PASSWORD: the user's password +type EnvironmentCredential struct { + cred azcore.TokenCredential +} + +// NewEnvironmentCredential creates an EnvironmentCredential. Pass nil to accept default options. +func NewEnvironmentCredential(options *EnvironmentCredentialOptions) (*EnvironmentCredential, error) { + if options == nil { + options = &EnvironmentCredentialOptions{} + } + tenantID := os.Getenv(azureTenantID) + if tenantID == "" { + return nil, errors.New("missing environment variable AZURE_TENANT_ID") + } + clientID := os.Getenv(azureClientID) + if clientID == "" { + return nil, errors.New("missing environment variable " + azureClientID) + } + if clientSecret := os.Getenv(azureClientSecret); clientSecret != "" { + log.Write(EventAuthentication, "EnvironmentCredential will authenticate with ClientSecretCredential") + o := &ClientSecretCredentialOptions{ClientOptions: options.ClientOptions} + cred, err := NewClientSecretCredential(tenantID, clientID, clientSecret, o) + if err != nil { + return nil, err + } + return &EnvironmentCredential{cred: cred}, nil + } + if certPath := os.Getenv(azureClientCertificatePath); certPath != "" { + log.Write(EventAuthentication, "EnvironmentCredential will authenticate with ClientCertificateCredential") + certData, err := os.ReadFile(certPath) + if err != nil { + return nil, fmt.Errorf(`failed to read certificate file "%s": %v`, certPath, err) + } + var password []byte + if v := os.Getenv(azureClientCertificatePassword); v != "" { + password = []byte(v) + } + certs, key, err := ParseCertificates(certData, password) + if err != nil { + return nil, fmt.Errorf(`failed to load certificate from "%s": %v`, certPath, err) + } + o := &ClientCertificateCredentialOptions{ClientOptions: options.ClientOptions} + if v, ok := os.LookupEnv(envVarSendCertChain); ok { + o.SendCertificateChain = v == "1" || strings.ToLower(v) == "true" + } + cred, err := NewClientCertificateCredential(tenantID, clientID, certs, key, o) + if err != nil { + return nil, err + } + return &EnvironmentCredential{cred: cred}, nil + } + if username := os.Getenv(azureUsername); username != "" { + if password := os.Getenv(azurePassword); password != "" { + log.Write(EventAuthentication, "EnvironmentCredential will authenticate with UsernamePasswordCredential") + o := &UsernamePasswordCredentialOptions{ClientOptions: options.ClientOptions} + cred, err := NewUsernamePasswordCredential(tenantID, clientID, username, password, o) + if err != nil { + return nil, err + } + return &EnvironmentCredential{cred: cred}, nil + } + return nil, errors.New("no value for AZURE_PASSWORD") + } + return nil, errors.New("incomplete environment variable configuration. Only AZURE_TENANT_ID and AZURE_CLIENT_ID are set") +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *EnvironmentCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + return c.cred.GetToken(ctx, opts) +} + +var _ azcore.TokenCredential = (*EnvironmentCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/errors.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/errors.go new file mode 100644 index 00000000..6695f1b7 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/errors.go @@ -0,0 +1,124 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + + "github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo" + msal "github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors" +) + +// getResponseFromError retrieves the response carried by +// an AuthenticationFailedError or MSAL CallErr, if any +func getResponseFromError(err error) *http.Response { + var a *AuthenticationFailedError + var c msal.CallErr + var res *http.Response + if errors.As(err, &c) { + res = c.Resp + } else if errors.As(err, &a) { + res = a.RawResponse + } + return res +} + +// AuthenticationFailedError indicates an authentication request has failed. +type AuthenticationFailedError struct { + // RawResponse is the HTTP response motivating the error, if available. + RawResponse *http.Response + + credType string + message string +} + +func newAuthenticationFailedError(credType string, message string, resp *http.Response) error { + return &AuthenticationFailedError{credType: credType, message: message, RawResponse: resp} +} + +func newAuthenticationFailedErrorFromMSALError(credType string, err error) error { + res := getResponseFromError(err) + return newAuthenticationFailedError(credType, err.Error(), res) +} + +// Error implements the error interface. Note that the message contents are not contractual and can change over time. +func (e *AuthenticationFailedError) Error() string { + if e.RawResponse == nil { + return e.credType + ": " + e.message + } + msg := &bytes.Buffer{} + fmt.Fprintf(msg, e.credType+" authentication failed\n") + fmt.Fprintf(msg, "%s %s://%s%s\n", e.RawResponse.Request.Method, e.RawResponse.Request.URL.Scheme, e.RawResponse.Request.URL.Host, e.RawResponse.Request.URL.Path) + fmt.Fprintln(msg, "--------------------------------------------------------------------------------") + fmt.Fprintf(msg, "RESPONSE %s\n", e.RawResponse.Status) + fmt.Fprintln(msg, "--------------------------------------------------------------------------------") + body, err := io.ReadAll(e.RawResponse.Body) + e.RawResponse.Body.Close() + if err != nil { + fmt.Fprintf(msg, "Error reading response body: %v", err) + } else if len(body) > 0 { + e.RawResponse.Body = io.NopCloser(bytes.NewReader(body)) + if err := json.Indent(msg, body, "", " "); err != nil { + // failed to pretty-print so just dump it verbatim + fmt.Fprint(msg, string(body)) + } + } else { + fmt.Fprint(msg, "Response contained no body") + } + fmt.Fprintln(msg, "\n--------------------------------------------------------------------------------") + var anchor string + switch e.credType { + case credNameAzureCLI: + anchor = "azure-cli" + case credNameCert: + anchor = "client-cert" + case credNameSecret: + anchor = "client-secret" + case credNameManagedIdentity: + anchor = "managed-id" + case credNameUserPassword: + anchor = "username-password" + } + if anchor != "" { + fmt.Fprintf(msg, "To troubleshoot, visit https://aka.ms/azsdk/go/identity/troubleshoot#%s", anchor) + } + return msg.String() +} + +// NonRetriable indicates the request which provoked this error shouldn't be retried. +func (*AuthenticationFailedError) NonRetriable() { + // marker method +} + +var _ errorinfo.NonRetriable = (*AuthenticationFailedError)(nil) + +// credentialUnavailableError indicates a credential can't attempt +// authentication because it lacks required data or state. +type credentialUnavailableError struct { + credType string + message string +} + +func newCredentialUnavailableError(credType, message string) error { + return &credentialUnavailableError{credType: credType, message: message} +} + +func (e *credentialUnavailableError) Error() string { + return e.credType + ": " + e.message +} + +// NonRetriable indicates that this error should not be retried. +func (e *credentialUnavailableError) NonRetriable() { + // marker method +} + +var _ errorinfo.NonRetriable = (*credentialUnavailableError)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/interactive_browser_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/interactive_browser_credential.go new file mode 100644 index 00000000..4d2afe4f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/interactive_browser_credential.go @@ -0,0 +1,85 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" +) + +const credNameBrowser = "InteractiveBrowserCredentiall" + +// InteractiveBrowserCredentialOptions contains optional parameters for InteractiveBrowserCredential. +type InteractiveBrowserCredentialOptions struct { + azcore.ClientOptions + + // TenantID is the Azure Active Directory tenant the credential authenticates in. Defaults to the + // "organizations" tenant, which can authenticate work and school accounts. + TenantID string + // ClientID is the ID of the application users will authenticate to. + // Defaults to the ID of an Azure development application. + ClientID string + // RedirectURL will be supported in a future version but presently doesn't work: https://github.com/Azure/azure-sdk-for-go/issues/15632. + // Applications which have "http://localhost" registered as a redirect URL need not set this option. + RedirectURL string +} + +func (o *InteractiveBrowserCredentialOptions) init() { + if o.TenantID == "" { + o.TenantID = organizationsTenantID + } + if o.ClientID == "" { + o.ClientID = developerSignOnClientID + } +} + +// InteractiveBrowserCredential opens a browser to interactively authenticate a user. +type InteractiveBrowserCredential struct { + client publicClient + options InteractiveBrowserCredentialOptions + account public.Account +} + +// NewInteractiveBrowserCredential constructs a new InteractiveBrowserCredential. Pass nil to accept default options. +func NewInteractiveBrowserCredential(options *InteractiveBrowserCredentialOptions) (*InteractiveBrowserCredential, error) { + cp := InteractiveBrowserCredentialOptions{} + if options != nil { + cp = *options + } + cp.init() + c, err := getPublicClient(cp.ClientID, cp.TenantID, &cp.ClientOptions) + if err != nil { + return nil, err + } + return &InteractiveBrowserCredential{options: cp, client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *InteractiveBrowserCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameBrowser + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes, public.WithSilentAccount(c.account)) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + + ar, err = c.client.AcquireTokenInteractive(ctx, opts.Scopes, public.WithRedirectURI(c.options.RedirectURL)) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameBrowser, err) + } + c.account = ar.Account + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*InteractiveBrowserCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/logging.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/logging.go new file mode 100644 index 00000000..569453e4 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/logging.go @@ -0,0 +1,30 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "fmt" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" +) + +// EventAuthentication entries contain information about authentication. +// This includes information like the names of environment variables +// used when obtaining credentials and the type of credential used. +const EventAuthentication log.Event = "Authentication" + +func logGetTokenSuccess(cred azcore.TokenCredential, opts policy.TokenRequestOptions) { + if !log.Should(EventAuthentication) { + return + } + scope := strings.Join(opts.Scopes, ", ") + msg := fmt.Sprintf("%T.GetToken() acquired a token for scope %s\n", cred, scope) + log.Write(EventAuthentication, msg) +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_client.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_client.go new file mode 100644 index 00000000..c9b72663 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_client.go @@ -0,0 +1,401 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "net/http" + "net/url" + "os" + "strconv" + "strings" + "time" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming" + "github.com/Azure/azure-sdk-for-go/sdk/internal/log" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" +) + +const ( + arcIMDSEndpoint = "IMDS_ENDPOINT" + identityEndpoint = "IDENTITY_ENDPOINT" + identityHeader = "IDENTITY_HEADER" + identityServerThumbprint = "IDENTITY_SERVER_THUMBPRINT" + headerMetadata = "Metadata" + imdsEndpoint = "http://169.254.169.254/metadata/identity/oauth2/token" + msiEndpoint = "MSI_ENDPOINT" + imdsAPIVersion = "2018-02-01" + azureArcAPIVersion = "2019-08-15" + serviceFabricAPIVersion = "2019-07-01-preview" + + qpClientID = "client_id" + qpResID = "mi_res_id" +) + +type msiType int + +const ( + msiTypeAppService msiType = iota + msiTypeAzureArc + msiTypeCloudShell + msiTypeIMDS + msiTypeServiceFabric +) + +// managedIdentityClient provides the base for authenticating in managed identity environments +// This type includes an runtime.Pipeline and TokenCredentialOptions. +type managedIdentityClient struct { + pipeline runtime.Pipeline + msiType msiType + endpoint string + id ManagedIDKind + imdsTimeout time.Duration +} + +type wrappedNumber json.Number + +func (n *wrappedNumber) UnmarshalJSON(b []byte) error { + c := string(b) + if c == "\"\"" { + return nil + } + return json.Unmarshal(b, (*json.Number)(n)) +} + +// setIMDSRetryOptionDefaults sets zero-valued fields to default values appropriate for IMDS +func setIMDSRetryOptionDefaults(o *policy.RetryOptions) { + if o.MaxRetries == 0 { + o.MaxRetries = 5 + } + if o.MaxRetryDelay == 0 { + o.MaxRetryDelay = 1 * time.Minute + } + if o.RetryDelay == 0 { + o.RetryDelay = 2 * time.Second + } + if o.StatusCodes == nil { + o.StatusCodes = []int{ + // IMDS docs recommend retrying 404, 429 and all 5xx + // https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token#error-handling + http.StatusNotFound, // 404 + http.StatusTooManyRequests, // 429 + http.StatusInternalServerError, // 500 + http.StatusNotImplemented, // 501 + http.StatusBadGateway, // 502 + http.StatusGatewayTimeout, // 504 + http.StatusHTTPVersionNotSupported, // 505 + http.StatusVariantAlsoNegotiates, // 506 + http.StatusInsufficientStorage, // 507 + http.StatusLoopDetected, // 508 + http.StatusNotExtended, // 510 + http.StatusNetworkAuthenticationRequired, // 511 + } + } + if o.TryTimeout == 0 { + o.TryTimeout = 1 * time.Minute + } +} + +// newManagedIdentityClient creates a new instance of the ManagedIdentityClient with the ManagedIdentityCredentialOptions +// that are passed into it along with a default pipeline. +// options: ManagedIdentityCredentialOptions configure policies for the pipeline and the authority host that +// will be used to retrieve tokens and authenticate +func newManagedIdentityClient(options *ManagedIdentityCredentialOptions) (*managedIdentityClient, error) { + if options == nil { + options = &ManagedIdentityCredentialOptions{} + } + cp := options.ClientOptions + c := managedIdentityClient{id: options.ID, endpoint: imdsEndpoint, msiType: msiTypeIMDS} + env := "IMDS" + if endpoint, ok := os.LookupEnv(identityEndpoint); ok { + if _, ok := os.LookupEnv(identityHeader); ok { + if _, ok := os.LookupEnv(identityServerThumbprint); ok { + env = "Service Fabric" + c.endpoint = endpoint + c.msiType = msiTypeServiceFabric + } else { + env = "App Service" + c.endpoint = endpoint + c.msiType = msiTypeAppService + } + } else if _, ok := os.LookupEnv(arcIMDSEndpoint); ok { + env = "Azure Arc" + c.endpoint = endpoint + c.msiType = msiTypeAzureArc + } + } else if endpoint, ok := os.LookupEnv(msiEndpoint); ok { + env = "Cloud Shell" + c.endpoint = endpoint + c.msiType = msiTypeCloudShell + } else { + setIMDSRetryOptionDefaults(&cp.Retry) + } + c.pipeline = runtime.NewPipeline(component, version, runtime.PipelineOptions{}, &cp) + + if log.Should(EventAuthentication) { + log.Writef(EventAuthentication, "Managed Identity Credential will use %s managed identity", env) + } + + return &c, nil +} + +// provideToken acquires a token for MSAL's confidential.Client, which caches the token +func (c *managedIdentityClient) provideToken(ctx context.Context, params confidential.TokenProviderParameters) (confidential.TokenProviderResult, error) { + result := confidential.TokenProviderResult{} + tk, err := c.authenticate(ctx, c.id, params.Scopes) + if err == nil { + result.AccessToken = tk.Token + result.ExpiresInSeconds = int(time.Until(tk.ExpiresOn).Seconds()) + } + return result, err +} + +// authenticate acquires an access token +func (c *managedIdentityClient) authenticate(ctx context.Context, id ManagedIDKind, scopes []string) (azcore.AccessToken, error) { + var cancel context.CancelFunc + if c.imdsTimeout > 0 && c.msiType == msiTypeIMDS { + ctx, cancel = context.WithTimeout(ctx, c.imdsTimeout) + defer cancel() + } + + msg, err := c.createAuthRequest(ctx, id, scopes) + if err != nil { + return azcore.AccessToken{}, err + } + + resp, err := c.pipeline.Do(msg) + if err != nil { + if cancel != nil && errors.Is(err, context.DeadlineExceeded) { + return azcore.AccessToken{}, newCredentialUnavailableError(credNameManagedIdentity, "IMDS token request timed out") + } + return azcore.AccessToken{}, newAuthenticationFailedError(credNameManagedIdentity, err.Error(), nil) + } + + // got a response, remove the IMDS timeout so future requests use the transport's configuration + c.imdsTimeout = 0 + + if runtime.HasStatusCode(resp, http.StatusOK, http.StatusCreated) { + return c.createAccessToken(resp) + } + + if c.msiType == msiTypeIMDS && resp.StatusCode == 400 { + if id != nil { + return azcore.AccessToken{}, newAuthenticationFailedError(credNameManagedIdentity, "the requested identity isn't assigned to this resource", resp) + } + return azcore.AccessToken{}, newCredentialUnavailableError(credNameManagedIdentity, "no default identity is assigned to this resource") + } + + return azcore.AccessToken{}, newAuthenticationFailedError(credNameManagedIdentity, "authentication failed", resp) +} + +func (c *managedIdentityClient) createAccessToken(res *http.Response) (azcore.AccessToken, error) { + value := struct { + // these are the only fields that we use + Token string `json:"access_token,omitempty"` + RefreshToken string `json:"refresh_token,omitempty"` + ExpiresIn wrappedNumber `json:"expires_in,omitempty"` // this field should always return the number of seconds for which a token is valid + ExpiresOn interface{} `json:"expires_on,omitempty"` // the value returned in this field varies between a number and a date string + }{} + if err := runtime.UnmarshalAsJSON(res, &value); err != nil { + return azcore.AccessToken{}, fmt.Errorf("internal AccessToken: %v", err) + } + if value.ExpiresIn != "" { + expiresIn, err := json.Number(value.ExpiresIn).Int64() + if err != nil { + return azcore.AccessToken{}, err + } + return azcore.AccessToken{Token: value.Token, ExpiresOn: time.Now().Add(time.Second * time.Duration(expiresIn)).UTC()}, nil + } + switch v := value.ExpiresOn.(type) { + case float64: + return azcore.AccessToken{Token: value.Token, ExpiresOn: time.Unix(int64(v), 0).UTC()}, nil + case string: + if expiresOn, err := strconv.Atoi(v); err == nil { + return azcore.AccessToken{Token: value.Token, ExpiresOn: time.Unix(int64(expiresOn), 0).UTC()}, nil + } + return azcore.AccessToken{}, newAuthenticationFailedError(credNameManagedIdentity, "unexpected expires_on value: "+v, res) + default: + msg := fmt.Sprintf("unsupported type received in expires_on: %T, %v", v, v) + return azcore.AccessToken{}, newAuthenticationFailedError(credNameManagedIdentity, msg, res) + } +} + +func (c *managedIdentityClient) createAuthRequest(ctx context.Context, id ManagedIDKind, scopes []string) (*policy.Request, error) { + switch c.msiType { + case msiTypeIMDS: + return c.createIMDSAuthRequest(ctx, id, scopes) + case msiTypeAppService: + return c.createAppServiceAuthRequest(ctx, id, scopes) + case msiTypeAzureArc: + // need to perform preliminary request to retreive the secret key challenge provided by the HIMDS service + key, err := c.getAzureArcSecretKey(ctx, scopes) + if err != nil { + msg := fmt.Sprintf("failed to retreive secret key from the identity endpoint: %v", err) + return nil, newAuthenticationFailedError(credNameManagedIdentity, msg, nil) + } + return c.createAzureArcAuthRequest(ctx, id, scopes, key) + case msiTypeServiceFabric: + return c.createServiceFabricAuthRequest(ctx, id, scopes) + case msiTypeCloudShell: + return c.createCloudShellAuthRequest(ctx, id, scopes) + default: + return nil, newCredentialUnavailableError(credNameManagedIdentity, "managed identity isn't supported in this environment") + } +} + +func (c *managedIdentityClient) createIMDSAuthRequest(ctx context.Context, id ManagedIDKind, scopes []string) (*policy.Request, error) { + request, err := runtime.NewRequest(ctx, http.MethodGet, c.endpoint) + if err != nil { + return nil, err + } + request.Raw().Header.Set(headerMetadata, "true") + q := request.Raw().URL.Query() + q.Add("api-version", imdsAPIVersion) + q.Add("resource", strings.Join(scopes, " ")) + if id != nil { + if id.idKind() == miResourceID { + q.Add(qpResID, id.String()) + } else { + q.Add(qpClientID, id.String()) + } + } + request.Raw().URL.RawQuery = q.Encode() + return request, nil +} + +func (c *managedIdentityClient) createAppServiceAuthRequest(ctx context.Context, id ManagedIDKind, scopes []string) (*policy.Request, error) { + request, err := runtime.NewRequest(ctx, http.MethodGet, c.endpoint) + if err != nil { + return nil, err + } + request.Raw().Header.Set("X-IDENTITY-HEADER", os.Getenv(identityHeader)) + q := request.Raw().URL.Query() + q.Add("api-version", "2019-08-01") + q.Add("resource", scopes[0]) + if id != nil { + if id.idKind() == miResourceID { + q.Add(qpResID, id.String()) + } else { + q.Add(qpClientID, id.String()) + } + } + request.Raw().URL.RawQuery = q.Encode() + return request, nil +} + +func (c *managedIdentityClient) createServiceFabricAuthRequest(ctx context.Context, id ManagedIDKind, scopes []string) (*policy.Request, error) { + request, err := runtime.NewRequest(ctx, http.MethodGet, c.endpoint) + if err != nil { + return nil, err + } + q := request.Raw().URL.Query() + request.Raw().Header.Set("Accept", "application/json") + request.Raw().Header.Set("Secret", os.Getenv(identityHeader)) + q.Add("api-version", serviceFabricAPIVersion) + q.Add("resource", strings.Join(scopes, " ")) + if id != nil { + log.Write(EventAuthentication, "WARNING: Service Fabric doesn't support selecting a user-assigned identity at runtime") + if id.idKind() == miResourceID { + q.Add(qpResID, id.String()) + } else { + q.Add(qpClientID, id.String()) + } + } + request.Raw().URL.RawQuery = q.Encode() + return request, nil +} + +func (c *managedIdentityClient) getAzureArcSecretKey(ctx context.Context, resources []string) (string, error) { + // create the request to retreive the secret key challenge provided by the HIMDS service + request, err := runtime.NewRequest(ctx, http.MethodGet, c.endpoint) + if err != nil { + return "", err + } + request.Raw().Header.Set(headerMetadata, "true") + q := request.Raw().URL.Query() + q.Add("api-version", azureArcAPIVersion) + q.Add("resource", strings.Join(resources, " ")) + request.Raw().URL.RawQuery = q.Encode() + // send the initial request to get the short-lived secret key + response, err := c.pipeline.Do(request) + if err != nil { + return "", err + } + // the endpoint is expected to return a 401 with the WWW-Authenticate header set to the location + // of the secret key file. Any other status code indicates an error in the request. + if response.StatusCode != 401 { + msg := fmt.Sprintf("expected a 401 response, received %d", response.StatusCode) + return "", newAuthenticationFailedError(credNameManagedIdentity, msg, response) + } + header := response.Header.Get("WWW-Authenticate") + if len(header) == 0 { + return "", errors.New("did not receive a value from WWW-Authenticate header") + } + // the WWW-Authenticate header is expected in the following format: Basic realm=/some/file/path.key + pos := strings.LastIndex(header, "=") + if pos == -1 { + return "", fmt.Errorf("did not receive a correct value from WWW-Authenticate header: %s", header) + } + key, err := os.ReadFile(header[pos+1:]) + if err != nil { + return "", fmt.Errorf("could not read file (%s) contents: %v", header[pos+1:], err) + } + return string(key), nil +} + +func (c *managedIdentityClient) createAzureArcAuthRequest(ctx context.Context, id ManagedIDKind, resources []string, key string) (*policy.Request, error) { + request, err := runtime.NewRequest(ctx, http.MethodGet, c.endpoint) + if err != nil { + return nil, err + } + request.Raw().Header.Set(headerMetadata, "true") + request.Raw().Header.Set("Authorization", fmt.Sprintf("Basic %s", key)) + q := request.Raw().URL.Query() + q.Add("api-version", azureArcAPIVersion) + q.Add("resource", strings.Join(resources, " ")) + if id != nil { + log.Write(EventAuthentication, "WARNING: Azure Arc doesn't support user-assigned managed identities") + if id.idKind() == miResourceID { + q.Add(qpResID, id.String()) + } else { + q.Add(qpClientID, id.String()) + } + } + request.Raw().URL.RawQuery = q.Encode() + return request, nil +} + +func (c *managedIdentityClient) createCloudShellAuthRequest(ctx context.Context, id ManagedIDKind, scopes []string) (*policy.Request, error) { + request, err := runtime.NewRequest(ctx, http.MethodPost, c.endpoint) + if err != nil { + return nil, err + } + request.Raw().Header.Set(headerMetadata, "true") + data := url.Values{} + data.Set("resource", strings.Join(scopes, " ")) + dataEncoded := data.Encode() + body := streaming.NopCloser(strings.NewReader(dataEncoded)) + if err := request.SetBody(body, "application/x-www-form-urlencoded"); err != nil { + return nil, err + } + if id != nil { + log.Write(EventAuthentication, "WARNING: Cloud Shell doesn't support user-assigned managed identities") + q := request.Raw().URL.Query() + if id.idKind() == miResourceID { + q.Add(qpResID, id.String()) + } else { + q.Add(qpClientID, id.String()) + } + } + return request, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_credential.go new file mode 100644 index 00000000..c1eaf36b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/managed_identity_credential.go @@ -0,0 +1,126 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + "fmt" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential" +) + +const credNameManagedIdentity = "ManagedIdentityCredential" + +type managedIdentityIDKind int + +const ( + miClientID managedIdentityIDKind = 0 + miResourceID managedIdentityIDKind = 1 +) + +// ManagedIDKind identifies the ID of a managed identity as either a client or resource ID +type ManagedIDKind interface { + fmt.Stringer + idKind() managedIdentityIDKind +} + +// ClientID is the client ID of a user-assigned managed identity. +type ClientID string + +func (ClientID) idKind() managedIdentityIDKind { + return miClientID +} + +// String returns the string value of the ID. +func (c ClientID) String() string { + return string(c) +} + +// ResourceID is the resource ID of a user-assigned managed identity. +type ResourceID string + +func (ResourceID) idKind() managedIdentityIDKind { + return miResourceID +} + +// String returns the string value of the ID. +func (r ResourceID) String() string { + return string(r) +} + +// ManagedIdentityCredentialOptions contains optional parameters for ManagedIdentityCredential. +type ManagedIdentityCredentialOptions struct { + azcore.ClientOptions + + // ID is the ID of a managed identity the credential should authenticate. Set this field to use a specific identity + // instead of the hosting environment's default. The value may be the identity's client ID or resource ID, but note that + // some platforms don't accept resource IDs. + ID ManagedIDKind +} + +// ManagedIdentityCredential authenticates an Azure managed identity in any hosting environment supporting managed identities. +// This credential authenticates a system-assigned identity by default. Use ManagedIdentityCredentialOptions.ID to specify a +// user-assigned identity. See Azure Active Directory documentation for more information about managed identities: +// https://docs.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview +type ManagedIdentityCredential struct { + client confidentialClient + mic *managedIdentityClient +} + +// NewManagedIdentityCredential creates a ManagedIdentityCredential. Pass nil to accept default options. +func NewManagedIdentityCredential(options *ManagedIdentityCredentialOptions) (*ManagedIdentityCredential, error) { + if options == nil { + options = &ManagedIdentityCredentialOptions{} + } + mic, err := newManagedIdentityClient(options) + if err != nil { + return nil, err + } + cred := confidential.NewCredFromTokenProvider(mic.provideToken) + if err != nil { + return nil, err + } + // It's okay to give MSAL an invalid client ID because MSAL will use it only as part of a cache key. + // ManagedIdentityClient handles all the details of authentication and won't receive this value from MSAL. + clientID := "SYSTEM-ASSIGNED-MANAGED-IDENTITY" + if options.ID != nil { + clientID = options.ID.String() + } + // similarly, it's okay to give MSAL an incorrect authority URL because that URL won't be used + c, err := confidential.New("https://login.microsoftonline.com/common", clientID, cred) + if err != nil { + return nil, err + } + return &ManagedIdentityCredential{client: c, mic: mic}, nil +} + +// GetToken requests an access token from the hosting environment. This method is called automatically by Azure SDK clients. +func (c *ManagedIdentityCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) != 1 { + err := errors.New(credNameManagedIdentity + ": GetToken() requires exactly one scope") + return azcore.AccessToken{}, err + } + // managed identity endpoints require an AADv1 resource (i.e. token audience), not a v2 scope, so we remove "/.default" here + scopes := []string{strings.TrimSuffix(opts.Scopes[0], defaultSuffix)} + ar, err := c.client.AcquireTokenSilent(ctx, scopes) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, nil + } + ar, err = c.client.AcquireTokenByCredential(ctx, scopes) + if err != nil { + return azcore.AccessToken{}, err + } + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*ManagedIdentityCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/username_password_credential.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/username_password_credential.go new file mode 100644 index 00000000..2ab248c3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/username_password_credential.go @@ -0,0 +1,68 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +import ( + "context" + "errors" + + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/public" +) + +const credNameUserPassword = "UsernamePasswordCredential" + +// UsernamePasswordCredentialOptions contains optional parameters for UsernamePasswordCredential. +type UsernamePasswordCredentialOptions struct { + azcore.ClientOptions +} + +// UsernamePasswordCredential authenticates a user with a password. Microsoft doesn't recommend this kind of authentication, +// because it's less secure than other authentication flows. This credential is not interactive, so it isn't compatible +// with any form of multi-factor authentication, and the application must already have user or admin consent. +// This credential can only authenticate work and school accounts; it can't authenticate Microsoft accounts. +type UsernamePasswordCredential struct { + client publicClient + username string + password string + account public.Account +} + +// NewUsernamePasswordCredential creates a UsernamePasswordCredential. clientID is the ID of the application the user +// will authenticate to. Pass nil for options to accept defaults. +func NewUsernamePasswordCredential(tenantID string, clientID string, username string, password string, options *UsernamePasswordCredentialOptions) (*UsernamePasswordCredential, error) { + if options == nil { + options = &UsernamePasswordCredentialOptions{} + } + c, err := getPublicClient(clientID, tenantID, &options.ClientOptions) + if err != nil { + return nil, err + } + return &UsernamePasswordCredential{username: username, password: password, client: c}, nil +} + +// GetToken requests an access token from Azure Active Directory. This method is called automatically by Azure SDK clients. +func (c *UsernamePasswordCredential) GetToken(ctx context.Context, opts policy.TokenRequestOptions) (azcore.AccessToken, error) { + if len(opts.Scopes) == 0 { + return azcore.AccessToken{}, errors.New(credNameUserPassword + ": GetToken() requires at least one scope") + } + ar, err := c.client.AcquireTokenSilent(ctx, opts.Scopes, public.WithSilentAccount(c.account)) + if err == nil { + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err + } + ar, err = c.client.AcquireTokenByUsernamePassword(ctx, opts.Scopes, c.username, c.password) + if err != nil { + return azcore.AccessToken{}, newAuthenticationFailedErrorFromMSALError(credNameUserPassword, err) + } + c.account = ar.Account + logGetTokenSuccess(c, opts) + return azcore.AccessToken{Token: ar.AccessToken, ExpiresOn: ar.ExpiresOn.UTC()}, err +} + +var _ azcore.TokenCredential = (*UsernamePasswordCredential)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go new file mode 100644 index 00000000..4457fd9a --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/azidentity/version.go @@ -0,0 +1,15 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package azidentity + +const ( + // UserAgent is the string to be used in the user agent string when making requests. + component = "azidentity" + + // Version is the semantic version (see http://semver.org) of this module. + version = "v1.2.2" +) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt new file mode 100644 index 00000000..48ea6616 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/diag.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/diag.go new file mode 100644 index 00000000..245af7d2 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/diag.go @@ -0,0 +1,51 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package diag + +import ( + "fmt" + "runtime" + "strings" +) + +// Caller returns the file and line number of a frame on the caller's stack. +// If the funtion fails an empty string is returned. +// skipFrames - the number of frames to skip when determining the caller. +// Passing a value of 0 will return the immediate caller of this function. +func Caller(skipFrames int) string { + if pc, file, line, ok := runtime.Caller(skipFrames + 1); ok { + // the skipFrames + 1 is to skip ourselves + frame := runtime.FuncForPC(pc) + return fmt.Sprintf("%s()\n\t%s:%d", frame.Name(), file, line) + } + return "" +} + +// StackTrace returns a formatted stack trace string. +// If the funtion fails an empty string is returned. +// skipFrames - the number of stack frames to skip before composing the trace string. +// totalFrames - the maximum number of stack frames to include in the trace string. +func StackTrace(skipFrames, totalFrames int) string { + pcCallers := make([]uintptr, totalFrames) + if frames := runtime.Callers(skipFrames, pcCallers); frames == 0 { + return "" + } + frames := runtime.CallersFrames(pcCallers) + sb := strings.Builder{} + for { + frame, more := frames.Next() + sb.WriteString(frame.Function) + sb.WriteString("()\n\t") + sb.WriteString(frame.File) + sb.WriteRune(':') + sb.WriteString(fmt.Sprintf("%d\n", frame.Line)) + if !more { + break + } + } + return sb.String() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/doc.go new file mode 100644 index 00000000..66bf13e5 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/diag/doc.go @@ -0,0 +1,7 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package diag diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/doc.go new file mode 100644 index 00000000..8c6eacb6 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/doc.go @@ -0,0 +1,7 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package errorinfo diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/errorinfo.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/errorinfo.go new file mode 100644 index 00000000..ade7b348 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo/errorinfo.go @@ -0,0 +1,16 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package errorinfo + +// NonRetriable represents a non-transient error. This works in +// conjunction with the retry policy, indicating that the error condition +// is idempotent, so no retries will be attempted. +// Use errors.As() to access this interface in the error chain. +type NonRetriable interface { + error + NonRetriable() +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/exported/exported.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/exported/exported.go new file mode 100644 index 00000000..d4ed6ccc --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/exported/exported.go @@ -0,0 +1,124 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package exported + +import ( + "errors" + "io" + "net/http" +) + +// HasStatusCode returns true if the Response's status code is one of the specified values. +// Exported as runtime.HasStatusCode(). +func HasStatusCode(resp *http.Response, statusCodes ...int) bool { + if resp == nil { + return false + } + for _, sc := range statusCodes { + if resp.StatusCode == sc { + return true + } + } + return false +} + +// PayloadOptions contains the optional values for the Payload func. +// NOT exported but used by azcore. +type PayloadOptions struct { + // BytesModifier receives the downloaded byte slice and returns an updated byte slice. + // Use this to modify the downloaded bytes in a payload (e.g. removing a BOM). + BytesModifier func([]byte) []byte +} + +// Payload reads and returns the response body or an error. +// On a successful read, the response body is cached. +// Subsequent reads will access the cached value. +// Exported as runtime.Payload() WITHOUT the opts parameter. +func Payload(resp *http.Response, opts *PayloadOptions) ([]byte, error) { + modifyBytes := func(b []byte) []byte { return b } + if opts != nil && opts.BytesModifier != nil { + modifyBytes = opts.BytesModifier + } + + // r.Body won't be a nopClosingBytesReader if downloading was skipped + if buf, ok := resp.Body.(*nopClosingBytesReader); ok { + bytesBody := modifyBytes(buf.Bytes()) + buf.Set(bytesBody) + return bytesBody, nil + } + + bytesBody, err := io.ReadAll(resp.Body) + resp.Body.Close() + if err != nil { + return nil, err + } + + bytesBody = modifyBytes(bytesBody) + resp.Body = &nopClosingBytesReader{s: bytesBody} + return bytesBody, nil +} + +// PayloadDownloaded returns true if the response body has already been downloaded. +// This implies that the Payload() func above has been previously called. +// NOT exported but used by azcore. +func PayloadDownloaded(resp *http.Response) bool { + _, ok := resp.Body.(*nopClosingBytesReader) + return ok +} + +// nopClosingBytesReader is an io.ReadSeekCloser around a byte slice. +// It also provides direct access to the byte slice to avoid rereading. +type nopClosingBytesReader struct { + s []byte + i int64 +} + +// Bytes returns the underlying byte slice. +func (r *nopClosingBytesReader) Bytes() []byte { + return r.s +} + +// Close implements the io.Closer interface. +func (*nopClosingBytesReader) Close() error { + return nil +} + +// Read implements the io.Reader interface. +func (r *nopClosingBytesReader) Read(b []byte) (n int, err error) { + if r.i >= int64(len(r.s)) { + return 0, io.EOF + } + n = copy(b, r.s[r.i:]) + r.i += int64(n) + return +} + +// Set replaces the existing byte slice with the specified byte slice and resets the reader. +func (r *nopClosingBytesReader) Set(b []byte) { + r.s = b + r.i = 0 +} + +// Seek implements the io.Seeker interface. +func (r *nopClosingBytesReader) Seek(offset int64, whence int) (int64, error) { + var i int64 + switch whence { + case io.SeekStart: + i = offset + case io.SeekCurrent: + i = r.i + offset + case io.SeekEnd: + i = int64(len(r.s)) + offset + default: + return 0, errors.New("nopClosingBytesReader: invalid whence") + } + if i < 0 { + return 0, errors.New("nopClosingBytesReader: negative position") + } + r.i = i + return i, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/doc.go new file mode 100644 index 00000000..d7876d29 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/doc.go @@ -0,0 +1,7 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package log diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/log.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/log.go new file mode 100644 index 00000000..4f1dcf1b --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/log/log.go @@ -0,0 +1,104 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package log + +import ( + "fmt" + "os" + "time" +) + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// NOTE: The following are exported as public surface area from azcore. DO NOT MODIFY +/////////////////////////////////////////////////////////////////////////////////////////////////// + +// Event is used to group entries. Each group can be toggled on or off. +type Event string + +// SetEvents is used to control which events are written to +// the log. By default all log events are writen. +func SetEvents(cls ...Event) { + log.cls = cls +} + +// SetListener will set the Logger to write to the specified listener. +func SetListener(lst func(Event, string)) { + log.lst = lst +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// END PUBLIC SURFACE AREA +/////////////////////////////////////////////////////////////////////////////////////////////////// + +// Should returns true if the specified log event should be written to the log. +// By default all log events will be logged. Call SetEvents() to limit +// the log events for logging. +// If no listener has been set this will return false. +// Calling this method is useful when the message to log is computationally expensive +// and you want to avoid the overhead if its log event is not enabled. +func Should(cls Event) bool { + if log.lst == nil { + return false + } + if log.cls == nil || len(log.cls) == 0 { + return true + } + for _, c := range log.cls { + if c == cls { + return true + } + } + return false +} + +// Write invokes the underlying listener with the specified event and message. +// If the event shouldn't be logged or there is no listener then Write does nothing. +func Write(cls Event, message string) { + if !Should(cls) { + return + } + log.lst(cls, message) +} + +// Writef invokes the underlying listener with the specified event and formatted message. +// If the event shouldn't be logged or there is no listener then Writef does nothing. +func Writef(cls Event, format string, a ...interface{}) { + if !Should(cls) { + return + } + log.lst(cls, fmt.Sprintf(format, a...)) +} + +// TestResetEvents is used for TESTING PURPOSES ONLY. +func TestResetEvents() { + log.cls = nil +} + +// logger controls which events to log and writing to the underlying log. +type logger struct { + cls []Event + lst func(Event, string) +} + +// the process-wide logger +var log logger + +func init() { + initLogging() +} + +// split out for testing purposes +func initLogging() { + if cls := os.Getenv("AZURE_SDK_GO_LOGGING"); cls == "all" { + // cls could be enhanced to support a comma-delimited list of log events + log.lst = func(cls Event, msg string) { + // simple console logger, it writes to stderr in the following format: + // [time-stamp] Event: message + fmt.Fprintf(os.Stderr, "[%s] %s: %s\n", time.Now().Format(time.StampMicro), cls, msg) + } + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/poller/util.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/poller/util.go new file mode 100644 index 00000000..db826962 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/poller/util.go @@ -0,0 +1,155 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package poller + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "net/url" + "strings" + + "github.com/Azure/azure-sdk-for-go/sdk/internal/exported" +) + +// the well-known set of LRO status/provisioning state values. +const ( + StatusSucceeded = "Succeeded" + StatusCanceled = "Canceled" + StatusFailed = "Failed" + StatusInProgress = "InProgress" +) + +// these are non-conformant states that we've seen in the wild. +// we support them for back-compat. +const ( + StatusCancelled = "Cancelled" + StatusCompleted = "Completed" +) + +// IsTerminalState returns true if the LRO's state is terminal. +func IsTerminalState(s string) bool { + return Failed(s) || Succeeded(s) +} + +// Failed returns true if the LRO's state is terminal failure. +func Failed(s string) bool { + return strings.EqualFold(s, StatusFailed) || strings.EqualFold(s, StatusCanceled) || strings.EqualFold(s, StatusCancelled) +} + +// Succeeded returns true if the LRO's state is terminal success. +func Succeeded(s string) bool { + return strings.EqualFold(s, StatusSucceeded) || strings.EqualFold(s, StatusCompleted) +} + +// returns true if the LRO response contains a valid HTTP status code +func StatusCodeValid(resp *http.Response) bool { + return exported.HasStatusCode(resp, http.StatusOK, http.StatusAccepted, http.StatusCreated, http.StatusNoContent) +} + +// IsValidURL verifies that the URL is valid and absolute. +func IsValidURL(s string) bool { + u, err := url.Parse(s) + return err == nil && u.IsAbs() +} + +// ErrNoBody is returned if the response didn't contain a body. +var ErrNoBody = errors.New("the response did not contain a body") + +// GetJSON reads the response body into a raw JSON object. +// It returns ErrNoBody if there was no content. +func GetJSON(resp *http.Response) (map[string]any, error) { + body, err := exported.Payload(resp, nil) + if err != nil { + return nil, err + } + if len(body) == 0 { + return nil, ErrNoBody + } + // unmarshall the body to get the value + var jsonBody map[string]any + if err = json.Unmarshal(body, &jsonBody); err != nil { + return nil, err + } + return jsonBody, nil +} + +// provisioningState returns the provisioning state from the response or the empty string. +func provisioningState(jsonBody map[string]any) string { + jsonProps, ok := jsonBody["properties"] + if !ok { + return "" + } + props, ok := jsonProps.(map[string]any) + if !ok { + return "" + } + rawPs, ok := props["provisioningState"] + if !ok { + return "" + } + ps, ok := rawPs.(string) + if !ok { + return "" + } + return ps +} + +// status returns the status from the response or the empty string. +func status(jsonBody map[string]any) string { + rawStatus, ok := jsonBody["status"] + if !ok { + return "" + } + status, ok := rawStatus.(string) + if !ok { + return "" + } + return status +} + +// GetStatus returns the LRO's status from the response body. +// Typically used for Azure-AsyncOperation flows. +// If there is no status in the response body the empty string is returned. +func GetStatus(resp *http.Response) (string, error) { + jsonBody, err := GetJSON(resp) + if err != nil { + return "", err + } + return status(jsonBody), nil +} + +// GetProvisioningState returns the LRO's state from the response body. +// If there is no state in the response body the empty string is returned. +func GetProvisioningState(resp *http.Response) (string, error) { + jsonBody, err := GetJSON(resp) + if err != nil { + return "", err + } + return provisioningState(jsonBody), nil +} + +// GetResourceLocation returns the LRO's resourceLocation value from the response body. +// Typically used for Operation-Location flows. +// If there is no resourceLocation in the response body the empty string is returned. +func GetResourceLocation(resp *http.Response) (string, error) { + jsonBody, err := GetJSON(resp) + if err != nil { + return "", err + } + v, ok := jsonBody["resourceLocation"] + if !ok { + // it might be ok if the field doesn't exist, the caller must make that determination + return "", nil + } + vv, ok := v.(string) + if !ok { + return "", fmt.Errorf("the resourceLocation value %v was not in string format", v) + } + return vv, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/temporal/resource.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/temporal/resource.go new file mode 100644 index 00000000..238ef42e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/temporal/resource.go @@ -0,0 +1,123 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package temporal + +import ( + "sync" + "time" +) + +// AcquireResource abstracts a method for refreshing a temporal resource. +type AcquireResource[TResource, TState any] func(state TState) (newResource TResource, newExpiration time.Time, err error) + +// Resource is a temporal resource (usually a credential) that requires periodic refreshing. +type Resource[TResource, TState any] struct { + // cond is used to synchronize access to the shared resource embodied by the remaining fields + cond *sync.Cond + + // acquiring indicates that some thread/goroutine is in the process of acquiring/updating the resource + acquiring bool + + // resource contains the value of the shared resource + resource TResource + + // expiration indicates when the shared resource expires; it is 0 if the resource was never acquired + expiration time.Time + + // lastAttempt indicates when a thread/goroutine last attempted to acquire/update the resource + lastAttempt time.Time + + // acquireResource is the callback function that actually acquires the resource + acquireResource AcquireResource[TResource, TState] +} + +// NewResource creates a new Resource that uses the specified AcquireResource for refreshing. +func NewResource[TResource, TState any](ar AcquireResource[TResource, TState]) *Resource[TResource, TState] { + return &Resource[TResource, TState]{cond: sync.NewCond(&sync.Mutex{}), acquireResource: ar} +} + +// Get returns the underlying resource. +// If the resource is fresh, no refresh is performed. +func (er *Resource[TResource, TState]) Get(state TState) (TResource, error) { + // If the resource is expiring within this time window, update it eagerly. + // This allows other threads/goroutines to keep running by using the not-yet-expired + // resource value while one thread/goroutine updates the resource. + const window = 5 * time.Minute // This example updates the resource 5 minutes prior to expiration + const backoff = 30 * time.Second // Minimum wait time between eager update attempts + + now, acquire, expired := time.Now(), false, false + + // acquire exclusive lock + er.cond.L.Lock() + resource := er.resource + + for { + expired = er.expiration.IsZero() || er.expiration.Before(now) + if expired { + // The resource was never acquired or has expired + if !er.acquiring { + // If another thread/goroutine is not acquiring/updating the resource, this thread/goroutine will do it + er.acquiring, acquire = true, true + break + } + // Getting here means that this thread/goroutine will wait for the updated resource + } else if er.expiration.Add(-window).Before(now) { + // The resource is valid but is expiring within the time window + if !er.acquiring && er.lastAttempt.Add(backoff).Before(now) { + // If another thread/goroutine is not acquiring/renewing the resource, and none has attempted + // to do so within the last 30 seconds, this thread/goroutine will do it + er.acquiring, acquire = true, true + break + } + // This thread/goroutine will use the existing resource value while another updates it + resource = er.resource + break + } else { + // The resource is not close to expiring, this thread/goroutine should use its current value + resource = er.resource + break + } + // If we get here, wait for the new resource value to be acquired/updated + er.cond.Wait() + } + er.cond.L.Unlock() // Release the lock so no threads/goroutines are blocked + + var err error + if acquire { + // This thread/goroutine has been selected to acquire/update the resource + var expiration time.Time + var newValue TResource + er.lastAttempt = now + newValue, expiration, err = er.acquireResource(state) + + // Atomically, update the shared resource's new value & expiration. + er.cond.L.Lock() + if err == nil { + // Update resource & expiration, return the new value + resource = newValue + er.resource, er.expiration = resource, expiration + } else if !expired { + // An eager update failed. Discard the error and return the current--still valid--resource value + err = nil + } + er.acquiring = false // Indicate that no thread/goroutine is currently acquiring the resource + + // Wake up any waiting threads/goroutines since there is a resource they can ALL use + er.cond.L.Unlock() + er.cond.Broadcast() + } + return resource, err // Return the resource this thread/goroutine can use +} + +// Expire marks the resource as expired, ensuring it's refreshed on the next call to Get(). +func (er *Resource[TResource, TState]) Expire() { + er.cond.L.Lock() + defer er.cond.L.Unlock() + + // Reset the expiration as if we never got this resource to begin with + er.expiration = time.Time{} +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/doc.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/doc.go new file mode 100644 index 00000000..a3824bee --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/doc.go @@ -0,0 +1,7 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package uuid diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/uuid.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/uuid.go new file mode 100644 index 00000000..278ac9cd --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/internal/uuid/uuid.go @@ -0,0 +1,76 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package uuid + +import ( + "crypto/rand" + "errors" + "fmt" + "strconv" +) + +// The UUID reserved variants. +const ( + reservedRFC4122 byte = 0x40 +) + +// A UUID representation compliant with specification in RFC4122 document. +type UUID [16]byte + +// New returns a new UUID using the RFC4122 algorithm. +func New() (UUID, error) { + u := UUID{} + // Set all bits to pseudo-random values. + // NOTE: this takes a process-wide lock + _, err := rand.Read(u[:]) + if err != nil { + return u, err + } + u[8] = (u[8] | reservedRFC4122) & 0x7F // u.setVariant(ReservedRFC4122) + + var version byte = 4 + u[6] = (u[6] & 0xF) | (version << 4) // u.setVersion(4) + return u, nil +} + +// String returns the UUID in "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" format. +func (u UUID) String() string { + return fmt.Sprintf("%x-%x-%x-%x-%x", u[0:4], u[4:6], u[6:8], u[8:10], u[10:]) +} + +// Parse parses a string formatted as "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" +// or "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" into a UUID. +func Parse(s string) (UUID, error) { + var uuid UUID + // ensure format + switch len(s) { + case 36: + // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 38: + // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} + s = s[1:37] + default: + return uuid, errors.New("invalid UUID format") + } + if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { + return uuid, errors.New("invalid UUID format") + } + // parse chunks + for i, x := range [16]int{ + 0, 2, 4, 6, + 9, 11, + 14, 16, + 19, 21, + 24, 26, 28, 30, 32, 34} { + b, err := strconv.ParseUint(s[x:x+2], 16, 8) + if err != nil { + return uuid, fmt.Errorf("invalid UUID format: %s", err) + } + uuid[i] = byte(b) + } + return uuid, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md new file mode 100644 index 00000000..85ae2179 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/CHANGELOG.md @@ -0,0 +1,33 @@ +# Release History + +## 0.8.1 (2023-07-19) + +### Bug Fixes + +- Fixed a potential panic in faked paged and long-running operations. + +## 0.8.0 (2023-06-13) + +### Features Added + +- Support for test fakes and OpenTelemetry trace spans. + +## 0.7.1 (2023-04-14) +### Bug Fixes + +- Fix serialization bug of empty value of `any` type. + + +## 0.7.0 (2023-03-31) +### Features Added + +- New struct `ClientFactory` which is a client factory used to create any client in this module + + +## 0.6.0 (2022-05-18) + +The package of `github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph` is using our [next generation design principles](https://azure.github.io/azure-sdk/general_introduction.html) since version 0.6.0, which contains breaking changes. + +To migrate the existing applications to the latest version, please refer to [Migration Guide](https://aka.ms/azsdk/go/mgmt/migration). + +To learn more, please refer to our documentation [Quick Start](https://aka.ms/azsdk/go/mgmt). \ No newline at end of file diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/LICENSE.txt b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/LICENSE.txt new file mode 100644 index 00000000..dc0c2ffb --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/README.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/README.md new file mode 100644 index 00000000..7f5690de --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/README.md @@ -0,0 +1,110 @@ +# Azure Resource Graph Module for Go + +[![PkgGoDev](https://pkg.go.dev/badge/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph)](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph) + +The `armresourcegraph` module provides operations for working with Azure Resource Graph. + +[Source code](https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resourcegraph/armresourcegraph) + +# Getting started + +## Prerequisites + +- an [Azure subscription](https://azure.microsoft.com/free/) +- Go 1.18 or above (You could download and install the latest version of Go from [here](https://go.dev/doc/install). It will replace the existing Go on your machine. If you want to install multiple Go versions on the same machine, you could refer this [doc](https://go.dev/doc/manage-install).) + +## Install the package + +This project uses [Go modules](https://github.com/golang/go/wiki/Modules) for versioning and dependency management. + +Install the Azure Resource Graph module: + +```sh +go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph +``` + +## Authorization + +When creating a client, you will need to provide a credential for authenticating with Azure Resource Graph. The `azidentity` module provides facilities for various ways of authenticating with Azure including client/secret, certificate, managed identity, and more. + +```go +cred, err := azidentity.NewDefaultAzureCredential(nil) +``` + +For more information on authentication, please see the documentation for `azidentity` at [pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity). + +## Client Factory + +Azure Resource Graph module consists of one or more clients. We provide a client factory which could be used to create any client in this module. + +```go +clientFactory, err := armresourcegraph.NewClientFactory(, cred, nil) +``` + +You can use `ClientOptions` in package `github.com/Azure/azure-sdk-for-go/sdk/azcore/arm` to set endpoint to connect with public and sovereign clouds as well as Azure Stack. For more information, please see the documentation for `azcore` at [pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azcore](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azcore). + +```go +options := arm.ClientOptions { + ClientOptions: azcore.ClientOptions { + Cloud: cloud.AzureChina, + }, +} +clientFactory, err := armresourcegraph.NewClientFactory(, cred, &options) +``` + +## Clients + +A client groups a set of related APIs, providing access to its functionality. Create one or more clients to access the APIs you require using client factory. + +```go +client := clientFactory.NewClient() +``` + +## Fakes +The `fake` package provides implementations for fake servers that can be used for testing. +To create a fake server, declare an instance of the required fake server type(s). +```go +myFakeServer := fake.Server{} +``` +Next, provide func implementations for the methods you wish to fake. +The named return variables can be used to simplify return value construction. +```go +myFakeServer.Resources = func(ctx context.Context, query armresourcegraph.QueryRequest, options *armresourcegraph.ClientResourcesOptions) (resp azfake.Responder[armresourcegraph.ClientResourcesResponse], errResp azfake.ErrorResponder) { + // TODO: resp.SetResponse(/* your fake ClientResourcesResponse response */) + return +} +``` +You connect the fake server to a client instance during construction through the optional transport. +Use `NewTokenCredential()` from `azcore/fake` to obtain a fake credential. +```go +import azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake" +client, err := armresourcegraph.NewClient("subscriptionID", azfake.NewTokenCredential(), &arm.ClientOptions{ + ClientOptions: azcore.ClientOptions{ + Transport: fake.NewServerTransport(&myFakeServer), + }, +}) +``` + +## Provide Feedback + +If you encounter bugs or have suggestions, please +[open an issue](https://github.com/Azure/azure-sdk-for-go/issues) and assign the `Resource Graph` label. + +# Contributing + +This project welcomes contributions and suggestions. Most contributions require +you to agree to a Contributor License Agreement (CLA) declaring that you have +the right to, and actually do, grant us the rights to use your contribution. +For details, visit [https://cla.microsoft.com](https://cla.microsoft.com). + +When you submit a pull request, a CLA-bot will automatically determine whether +you need to provide a CLA and decorate the PR appropriately (e.g., label, +comment). Simply follow the instructions provided by the bot. You will only +need to do this once across all repos using our CLA. + +This project has adopted the +[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the +[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any +additional questions or comments. diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md new file mode 100644 index 00000000..27b04f8f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/autorest.md @@ -0,0 +1,16 @@ +### AutoRest Configuration + +> see https://aka.ms/autorest + +``` yaml +azure-arm: true +require: +- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcegraph/resource-manager/readme.md +- https://github.com/Azure/azure-rest-api-specs/blob/d55b8005f05b040b852c15e74a0f3e36494a15e1/specification/resourcegraph/resource-manager/readme.go.md +license-header: MICROSOFT_MIT_NO_VERSION +module: github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph +module-version: 0.8.1 +azcore-version: 1.8.0-beta.1 +generate-fakes: true +inject-spans: true +``` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/build.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/build.go new file mode 100644 index 00000000..810aa2d6 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/build.go @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +// This file enables 'go generate' to regenerate this specific SDK +//go:generate pwsh ../../../../eng/scripts/build.ps1 -goExtension "@autorest/go@4.0.0-preview.53" -skipBuild -cleanGenerated -format -tidy -generate resourcemanager/resourcegraph/armresourcegraph + +package armresourcegraph diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/ci.yml b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/ci.yml new file mode 100644 index 00000000..c33e9675 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/ci.yml @@ -0,0 +1,28 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. +trigger: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/resourcemanager/resourcegraph/armresourcegraph/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + paths: + include: + - sdk/resourcemanager/resourcegraph/armresourcegraph/ + +stages: +- template: /eng/pipelines/templates/jobs/archetype-sdk-client.yml + parameters: + IncludeRelease: true + ServiceDirectory: 'resourcemanager/resourcegraph/armresourcegraph' diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go new file mode 100644 index 00000000..46057d4f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client.go @@ -0,0 +1,146 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" +) + +// Client contains the methods for the ResourceGraphClient group. +// Don't use this type directly, use NewClient() instead. +type Client struct { + internal *arm.Client +} + +// NewClient creates a new instance of Client with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*Client, error) { + cl, err := arm.NewClient(moduleName+".Client", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &Client{ + internal: cl, + } + return client, nil +} + +// Resources - Queries the resources managed by Azure Resource Manager for scopes specified in the request. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2021-06-01-preview +// - query - Request specifying query and its options. +// - options - ClientResourcesOptions contains the optional parameters for the Client.Resources method. +func (client *Client) Resources(ctx context.Context, query QueryRequest, options *ClientResourcesOptions) (ClientResourcesResponse, error) { + var err error + const operationName = "Client.Resources" + ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) + ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) + defer func() { endSpan(err) }() + req, err := client.resourcesCreateRequest(ctx, query, options) + if err != nil { + return ClientResourcesResponse{}, err + } + httpResp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ClientResourcesResponse{}, err + } + if !runtime.HasStatusCode(httpResp, http.StatusOK) { + err = runtime.NewResponseError(httpResp) + return ClientResourcesResponse{}, err + } + resp, err := client.resourcesHandleResponse(httpResp) + return resp, err +} + +// resourcesCreateRequest creates the Resources request. +func (client *Client) resourcesCreateRequest(ctx context.Context, query QueryRequest, options *ClientResourcesOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceGraph/resources" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2021-06-01-preview") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + if err := runtime.MarshalAsJSON(req, query); err != nil { + return nil, err + } + return req, nil +} + +// resourcesHandleResponse handles the Resources response. +func (client *Client) resourcesHandleResponse(resp *http.Response) (ClientResourcesResponse, error) { + result := ClientResourcesResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.QueryResponse); err != nil { + return ClientResourcesResponse{}, err + } + return result, nil +} + +// ResourcesHistory - List all snapshots of a resource for a given time interval. +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2021-06-01-preview +// - request - Request specifying the query and its options. +// - options - ClientResourcesHistoryOptions contains the optional parameters for the Client.ResourcesHistory method. +func (client *Client) ResourcesHistory(ctx context.Context, request ResourcesHistoryRequest, options *ClientResourcesHistoryOptions) (ClientResourcesHistoryResponse, error) { + var err error + const operationName = "Client.ResourcesHistory" + ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) + ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) + defer func() { endSpan(err) }() + req, err := client.resourcesHistoryCreateRequest(ctx, request, options) + if err != nil { + return ClientResourcesHistoryResponse{}, err + } + httpResp, err := client.internal.Pipeline().Do(req) + if err != nil { + return ClientResourcesHistoryResponse{}, err + } + if !runtime.HasStatusCode(httpResp, http.StatusOK) { + err = runtime.NewResponseError(httpResp) + return ClientResourcesHistoryResponse{}, err + } + resp, err := client.resourcesHistoryHandleResponse(httpResp) + return resp, err +} + +// resourcesHistoryCreateRequest creates the ResourcesHistory request. +func (client *Client) resourcesHistoryCreateRequest(ctx context.Context, request ResourcesHistoryRequest, options *ClientResourcesHistoryOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceGraph/resourcesHistory" + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2021-06-01-preview") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + if err := runtime.MarshalAsJSON(req, request); err != nil { + return nil, err + } + return req, nil +} + +// resourcesHistoryHandleResponse handles the ResourcesHistory response. +func (client *Client) resourcesHistoryHandleResponse(resp *http.Response) (ClientResourcesHistoryResponse, error) { + result := ClientResourcesHistoryResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.Interface); err != nil { + return ClientResourcesHistoryResponse{}, err + } + return result, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client_factory.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client_factory.go new file mode 100644 index 00000000..9abcebc3 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/client_factory.go @@ -0,0 +1,46 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import ( + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" +) + +// ClientFactory is a client factory used to create any client in this module. +// Don't use this type directly, use NewClientFactory instead. +type ClientFactory struct { + credential azcore.TokenCredential + options *arm.ClientOptions +} + +// NewClientFactory creates a new instance of ClientFactory with the specified values. +// The parameter values will be propagated to any client created from this factory. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewClientFactory(credential azcore.TokenCredential, options *arm.ClientOptions) (*ClientFactory, error) { + _, err := arm.NewClient(moduleName+".ClientFactory", moduleVersion, credential, options) + if err != nil { + return nil, err + } + return &ClientFactory{ + credential: credential, + options: options.Clone(), + }, nil +} + +func (c *ClientFactory) NewClient() *Client { + subClient, _ := NewClient(c.credential, c.options) + return subClient +} + +func (c *ClientFactory) NewOperationsClient() *OperationsClient { + subClient, _ := NewOperationsClient(c.credential, c.options) + return subClient +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go new file mode 100644 index 00000000..01c7d228 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/constants.go @@ -0,0 +1,107 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +const ( + moduleName = "armresourcegraph" + moduleVersion = "v0.8.1" +) + +// AuthorizationScopeFilter - Defines what level of authorization resources should be returned based on the which subscriptions +// and management groups are passed as scopes. +type AuthorizationScopeFilter string + +const ( + AuthorizationScopeFilterAtScopeAboveAndBelow AuthorizationScopeFilter = "AtScopeAboveAndBelow" + AuthorizationScopeFilterAtScopeAndAbove AuthorizationScopeFilter = "AtScopeAndAbove" + AuthorizationScopeFilterAtScopeAndBelow AuthorizationScopeFilter = "AtScopeAndBelow" + AuthorizationScopeFilterAtScopeExact AuthorizationScopeFilter = "AtScopeExact" +) + +// PossibleAuthorizationScopeFilterValues returns the possible values for the AuthorizationScopeFilter const type. +func PossibleAuthorizationScopeFilterValues() []AuthorizationScopeFilter { + return []AuthorizationScopeFilter{ + AuthorizationScopeFilterAtScopeAboveAndBelow, + AuthorizationScopeFilterAtScopeAndAbove, + AuthorizationScopeFilterAtScopeAndBelow, + AuthorizationScopeFilterAtScopeExact, + } +} + +// ColumnDataType - Data type of a column in a table. +type ColumnDataType string + +const ( + ColumnDataTypeBoolean ColumnDataType = "boolean" + ColumnDataTypeDatetime ColumnDataType = "datetime" + ColumnDataTypeInteger ColumnDataType = "integer" + ColumnDataTypeNumber ColumnDataType = "number" + ColumnDataTypeObject ColumnDataType = "object" + ColumnDataTypeString ColumnDataType = "string" +) + +// PossibleColumnDataTypeValues returns the possible values for the ColumnDataType const type. +func PossibleColumnDataTypeValues() []ColumnDataType { + return []ColumnDataType{ + ColumnDataTypeBoolean, + ColumnDataTypeDatetime, + ColumnDataTypeInteger, + ColumnDataTypeNumber, + ColumnDataTypeObject, + ColumnDataTypeString, + } +} + +// FacetSortOrder - The sorting order by the selected column (count by default). +type FacetSortOrder string + +const ( + FacetSortOrderAsc FacetSortOrder = "asc" + FacetSortOrderDesc FacetSortOrder = "desc" +) + +// PossibleFacetSortOrderValues returns the possible values for the FacetSortOrder const type. +func PossibleFacetSortOrderValues() []FacetSortOrder { + return []FacetSortOrder{ + FacetSortOrderAsc, + FacetSortOrderDesc, + } +} + +// ResultFormat - Defines in which format query result returned. +type ResultFormat string + +const ( + ResultFormatObjectArray ResultFormat = "objectArray" + ResultFormatTable ResultFormat = "table" +) + +// PossibleResultFormatValues returns the possible values for the ResultFormat const type. +func PossibleResultFormatValues() []ResultFormat { + return []ResultFormat{ + ResultFormatObjectArray, + ResultFormatTable, + } +} + +// ResultTruncated - Indicates whether the query results are truncated. +type ResultTruncated string + +const ( + ResultTruncatedFalse ResultTruncated = "false" + ResultTruncatedTrue ResultTruncated = "true" +) + +// PossibleResultTruncatedValues returns the possible values for the ResultTruncated const type. +func PossibleResultTruncatedValues() []ResultTruncated { + return []ResultTruncated{ + ResultTruncatedFalse, + ResultTruncatedTrue, + } +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/interfaces.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/interfaces.go new file mode 100644 index 00000000..25a4607f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/interfaces.go @@ -0,0 +1,18 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +// FacetClassification provides polymorphic access to related types. +// Call the interface's GetFacet() method to access the common type. +// Use a type switch to determine the concrete type. The possible types are: +// - *Facet, *FacetError, *FacetResult +type FacetClassification interface { + // GetFacet returns the Facet content of the underlying type. + GetFacet() *Facet +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go new file mode 100644 index 00000000..d7a29d9a --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models.go @@ -0,0 +1,287 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import "time" + +// Column - Query result column descriptor. +type Column struct { + // REQUIRED; Column name. + Name *string + + // REQUIRED; Column data type. + Type *ColumnDataType +} + +// DateTimeInterval - An interval in time specifying the date and time for the inclusive start and exclusive end, i.e. [start, +// end). +type DateTimeInterval struct { + // REQUIRED; A datetime indicating the exclusive/open end of the time interval, i.e. [start,end). Specifying an end that occurs + // chronologically before start will result in an error. + End *time.Time + + // REQUIRED; A datetime indicating the inclusive/closed start of the time interval, i.e. [start, end). Specifying a start + // that occurs chronologically after end will result in an error. + Start *time.Time +} + +// Error details. +type Error struct { + // REQUIRED; Error code identifying the specific error. + Code *string + + // REQUIRED; A human readable error message. + Message *string + + // Error details + Details []*ErrorDetails +} + +// ErrorDetails - Error details. +type ErrorDetails struct { + // REQUIRED; Error code identifying the specific error. + Code *string + + // REQUIRED; A human readable error message. + Message *string + + // OPTIONAL; Contains additional key/value pairs not defined in the schema. + AdditionalProperties map[string]any +} + +// ErrorResponse - An error response from the API. +type ErrorResponse struct { + // REQUIRED; Error information. + Error *Error +} + +// Facet - A facet containing additional statistics on the response of a query. Can be either FacetResult or FacetError. +type Facet struct { + // REQUIRED; Facet expression, same as in the corresponding facet request. + Expression *string + + // REQUIRED; Result type + ResultType *string +} + +// GetFacet implements the FacetClassification interface for type Facet. +func (f *Facet) GetFacet() *Facet { return f } + +// FacetError - A facet whose execution resulted in an error. +type FacetError struct { + // REQUIRED; An array containing detected facet errors with details. + Errors []*ErrorDetails + + // REQUIRED; Facet expression, same as in the corresponding facet request. + Expression *string + + // REQUIRED; Result type + ResultType *string +} + +// GetFacet implements the FacetClassification interface for type FacetError. +func (f *FacetError) GetFacet() *Facet { + return &Facet{ + Expression: f.Expression, + ResultType: f.ResultType, + } +} + +// FacetRequest - A request to compute additional statistics (facets) over the query results. +type FacetRequest struct { + // REQUIRED; The column or list of columns to summarize by + Expression *string + + // The options for facet evaluation + Options *FacetRequestOptions +} + +// FacetRequestOptions - The options for facet evaluation +type FacetRequestOptions struct { + // Specifies the filter condition for the 'where' clause which will be run on main query's result, just before the actual + // faceting. + Filter *string + + // The column name or query expression to sort on. Defaults to count if not present. + SortBy *string + + // The sorting order by the selected column (count by default). + SortOrder *FacetSortOrder + + // The maximum number of facet rows that should be returned. + Top *int32 +} + +// FacetResult - Successfully executed facet containing additional statistics on the response of a query. +type FacetResult struct { + // REQUIRED; Number of records returned in the facet response. + Count *int32 + + // REQUIRED; A JObject array or Table containing the desired facets. Only present if the facet is valid. + Data any + + // REQUIRED; Facet expression, same as in the corresponding facet request. + Expression *string + + // REQUIRED; Result type + ResultType *string + + // REQUIRED; Number of total records in the facet results. + TotalRecords *int64 +} + +// GetFacet implements the FacetClassification interface for type FacetResult. +func (f *FacetResult) GetFacet() *Facet { + return &Facet{ + Expression: f.Expression, + ResultType: f.ResultType, + } +} + +// Operation - Resource Graph REST API operation definition. +type Operation struct { + // Display metadata associated with the operation. + Display *OperationDisplay + + // Operation name: {provider}/{resource}/{operation} + Name *string + + // The origin of operations. + Origin *string +} + +// OperationDisplay - Display metadata associated with the operation. +type OperationDisplay struct { + // Description for the operation. + Description *string + + // Type of operation: get, read, delete, etc. + Operation *string + + // Service provider: Microsoft Resource Graph. + Provider *string + + // Resource on which the operation is performed etc. + Resource *string +} + +// OperationListResult - Result of the request to list Resource Graph operations. It contains a list of operations and a URL +// link to get the next set of results. +type OperationListResult struct { + // List of Resource Graph operations supported by the Resource Graph resource provider. + Value []*Operation +} + +// QueryRequest - Describes a query to be executed. +type QueryRequest struct { + // REQUIRED; The resources query. + Query *string + + // An array of facet requests to be computed against the query result. + Facets []*FacetRequest + + // Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ] + ManagementGroups []*string + + // The query evaluation options + Options *QueryRequestOptions + + // Azure subscriptions against which to execute the query. + Subscriptions []*string +} + +// QueryRequestOptions - The options for query evaluation +type QueryRequestOptions struct { + // Only applicable for tenant and management group level queries to decide whether to allow partial scopes for result in case + // the number of subscriptions exceed allowed limits. + AllowPartialScopes *bool + + // Defines what level of authorization resources should be returned based on the which subscriptions and management groups + // are passed as scopes. + AuthorizationScopeFilter *AuthorizationScopeFilter + + // Defines in which format query result returned. + ResultFormat *ResultFormat + + // The number of rows to skip from the beginning of the results. Overrides the next page offset when $skipToken property is + // present. + Skip *int32 + + // Continuation token for pagination, capturing the next page size and offset, as well as the context of the query. + SkipToken *string + + // The maximum number of rows that the query should return. Overrides the page size when $skipToken property is present. + Top *int32 +} + +// QueryResponse - Query result. +type QueryResponse struct { + // REQUIRED; Number of records returned in the current response. In the case of paging, this is the number of records in the + // current page. + Count *int64 + + // REQUIRED; Query output in JObject array or Table format. + Data any + + // REQUIRED; Indicates whether the query results are truncated. + ResultTruncated *ResultTruncated + + // REQUIRED; Number of total records matching the query. + TotalRecords *int64 + + // Query facets. + Facets []FacetClassification + + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current + // request) to retrieve the next page of data. + SkipToken *string +} + +// ResourcesHistoryRequest - Describes a history request to be executed. +type ResourcesHistoryRequest struct { + // Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ] + ManagementGroups []*string + + // The history request evaluation options + Options *ResourcesHistoryRequestOptions + + // The resources query. + Query *string + + // Azure subscriptions against which to execute the query. + Subscriptions []*string +} + +// ResourcesHistoryRequestOptions - The options for history request evaluation +type ResourcesHistoryRequestOptions struct { + // The time interval used to fetch history. + Interval *DateTimeInterval + + // Defines in which format query result returned. + ResultFormat *ResultFormat + + // The number of rows to skip from the beginning of the results. Overrides the next page offset when $skipToken property is + // present. + Skip *int32 + + // Continuation token for pagination, capturing the next page size and offset, as well as the context of the query. + SkipToken *string + + // The maximum number of rows that the query should return. Overrides the page size when $skipToken property is present. + Top *int32 +} + +// Table - Query output in tabular format. +type Table struct { + // REQUIRED; Query result column descriptors. + Columns []*Column + + // REQUIRED; Query result rows. + Rows [][]any +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go new file mode 100644 index 00000000..193a2d4c --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/models_serde.go @@ -0,0 +1,746 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import ( + "encoding/json" + "fmt" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "reflect" +) + +// MarshalJSON implements the json.Marshaller interface for type Column. +func (c Column) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "name", c.Name) + populate(objectMap, "type", c.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Column. +func (c *Column) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "name": + err = unpopulate(val, "Name", &c.Name) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &c.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DateTimeInterval. +func (d DateTimeInterval) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populateTimeRFC3339(objectMap, "end", d.End) + populateTimeRFC3339(objectMap, "start", d.Start) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DateTimeInterval. +func (d *DateTimeInterval) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "end": + err = unpopulateTimeRFC3339(val, "End", &d.End) + delete(rawMsg, key) + case "start": + err = unpopulateTimeRFC3339(val, "Start", &d.Start) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Error. +func (e Error) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "code", e.Code) + populate(objectMap, "details", e.Details) + populate(objectMap, "message", e.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Error. +func (e *Error) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "details": + err = unpopulate(val, "Details", &e.Details) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ErrorDetails. +func (e ErrorDetails) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "code", e.Code) + populate(objectMap, "message", e.Message) + if e.AdditionalProperties != nil { + for key, val := range e.AdditionalProperties { + objectMap[key] = val + } + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorDetails. +func (e *ErrorDetails) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &e.Code) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &e.Message) + delete(rawMsg, key) + default: + if e.AdditionalProperties == nil { + e.AdditionalProperties = map[string]any{} + } + if val != nil { + var aux any + err = json.Unmarshal(val, &aux) + e.AdditionalProperties[key] = aux + } + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ErrorResponse. +func (e ErrorResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "error", e.Error) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ErrorResponse. +func (e *ErrorResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "error": + err = unpopulate(val, "Error", &e.Error) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", e, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Facet. +func (f Facet) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = f.ResultType + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Facet. +func (f *Facet) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetError. +func (f FacetError) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "errors", f.Errors) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = "FacetError" + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetError. +func (f *FacetError) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "errors": + err = unpopulate(val, "Errors", &f.Errors) + delete(rawMsg, key) + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetRequest. +func (f FacetRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "expression", f.Expression) + populate(objectMap, "options", f.Options) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetRequest. +func (f *FacetRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &f.Options) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetRequestOptions. +func (f FacetRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "filter", f.Filter) + populate(objectMap, "sortBy", f.SortBy) + populate(objectMap, "sortOrder", f.SortOrder) + populate(objectMap, "$top", f.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetRequestOptions. +func (f *FacetRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "filter": + err = unpopulate(val, "Filter", &f.Filter) + delete(rawMsg, key) + case "sortBy": + err = unpopulate(val, "SortBy", &f.SortBy) + delete(rawMsg, key) + case "sortOrder": + err = unpopulate(val, "SortOrder", &f.SortOrder) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &f.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type FacetResult. +func (f FacetResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "count", f.Count) + populateAny(objectMap, "data", f.Data) + populate(objectMap, "expression", f.Expression) + objectMap["resultType"] = "FacetResult" + populate(objectMap, "totalRecords", f.TotalRecords) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type FacetResult. +func (f *FacetResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "count": + err = unpopulate(val, "Count", &f.Count) + delete(rawMsg, key) + case "data": + err = unpopulate(val, "Data", &f.Data) + delete(rawMsg, key) + case "expression": + err = unpopulate(val, "Expression", &f.Expression) + delete(rawMsg, key) + case "resultType": + err = unpopulate(val, "ResultType", &f.ResultType) + delete(rawMsg, key) + case "totalRecords": + err = unpopulate(val, "TotalRecords", &f.TotalRecords) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", f, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Operation. +func (o Operation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "display", o.Display) + populate(objectMap, "name", o.Name) + populate(objectMap, "origin", o.Origin) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Operation. +func (o *Operation) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "display": + err = unpopulate(val, "Display", &o.Display) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &o.Name) + delete(rawMsg, key) + case "origin": + err = unpopulate(val, "Origin", &o.Origin) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type OperationDisplay. +func (o OperationDisplay) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "description", o.Description) + populate(objectMap, "operation", o.Operation) + populate(objectMap, "provider", o.Provider) + populate(objectMap, "resource", o.Resource) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type OperationDisplay. +func (o *OperationDisplay) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "description": + err = unpopulate(val, "Description", &o.Description) + delete(rawMsg, key) + case "operation": + err = unpopulate(val, "Operation", &o.Operation) + delete(rawMsg, key) + case "provider": + err = unpopulate(val, "Provider", &o.Provider) + delete(rawMsg, key) + case "resource": + err = unpopulate(val, "Resource", &o.Resource) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type OperationListResult. +func (o OperationListResult) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "value", o.Value) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type OperationListResult. +func (o *OperationListResult) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "value": + err = unpopulate(val, "Value", &o.Value) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", o, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryRequest. +func (q QueryRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "facets", q.Facets) + populate(objectMap, "managementGroups", q.ManagementGroups) + populate(objectMap, "options", q.Options) + populate(objectMap, "query", q.Query) + populate(objectMap, "subscriptions", q.Subscriptions) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryRequest. +func (q *QueryRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "facets": + err = unpopulate(val, "Facets", &q.Facets) + delete(rawMsg, key) + case "managementGroups": + err = unpopulate(val, "ManagementGroups", &q.ManagementGroups) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &q.Options) + delete(rawMsg, key) + case "query": + err = unpopulate(val, "Query", &q.Query) + delete(rawMsg, key) + case "subscriptions": + err = unpopulate(val, "Subscriptions", &q.Subscriptions) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryRequestOptions. +func (q QueryRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "allowPartialScopes", q.AllowPartialScopes) + populate(objectMap, "authorizationScopeFilter", q.AuthorizationScopeFilter) + populate(objectMap, "resultFormat", q.ResultFormat) + populate(objectMap, "$skip", q.Skip) + populate(objectMap, "$skipToken", q.SkipToken) + populate(objectMap, "$top", q.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryRequestOptions. +func (q *QueryRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "allowPartialScopes": + err = unpopulate(val, "AllowPartialScopes", &q.AllowPartialScopes) + delete(rawMsg, key) + case "authorizationScopeFilter": + err = unpopulate(val, "AuthorizationScopeFilter", &q.AuthorizationScopeFilter) + delete(rawMsg, key) + case "resultFormat": + err = unpopulate(val, "ResultFormat", &q.ResultFormat) + delete(rawMsg, key) + case "$skip": + err = unpopulate(val, "Skip", &q.Skip) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &q.SkipToken) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &q.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type QueryResponse. +func (q QueryResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "count", q.Count) + populateAny(objectMap, "data", q.Data) + populate(objectMap, "facets", q.Facets) + populate(objectMap, "resultTruncated", q.ResultTruncated) + populate(objectMap, "$skipToken", q.SkipToken) + populate(objectMap, "totalRecords", q.TotalRecords) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type QueryResponse. +func (q *QueryResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "count": + err = unpopulate(val, "Count", &q.Count) + delete(rawMsg, key) + case "data": + err = unpopulate(val, "Data", &q.Data) + delete(rawMsg, key) + case "facets": + q.Facets, err = unmarshalFacetClassificationArray(val) + delete(rawMsg, key) + case "resultTruncated": + err = unpopulate(val, "ResultTruncated", &q.ResultTruncated) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &q.SkipToken) + delete(rawMsg, key) + case "totalRecords": + err = unpopulate(val, "TotalRecords", &q.TotalRecords) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", q, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourcesHistoryRequest. +func (r ResourcesHistoryRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "managementGroups", r.ManagementGroups) + populate(objectMap, "options", r.Options) + populate(objectMap, "query", r.Query) + populate(objectMap, "subscriptions", r.Subscriptions) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourcesHistoryRequest. +func (r *ResourcesHistoryRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "managementGroups": + err = unpopulate(val, "ManagementGroups", &r.ManagementGroups) + delete(rawMsg, key) + case "options": + err = unpopulate(val, "Options", &r.Options) + delete(rawMsg, key) + case "query": + err = unpopulate(val, "Query", &r.Query) + delete(rawMsg, key) + case "subscriptions": + err = unpopulate(val, "Subscriptions", &r.Subscriptions) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type ResourcesHistoryRequestOptions. +func (r ResourcesHistoryRequestOptions) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "interval", r.Interval) + populate(objectMap, "resultFormat", r.ResultFormat) + populate(objectMap, "$skip", r.Skip) + populate(objectMap, "$skipToken", r.SkipToken) + populate(objectMap, "$top", r.Top) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ResourcesHistoryRequestOptions. +func (r *ResourcesHistoryRequestOptions) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "interval": + err = unpopulate(val, "Interval", &r.Interval) + delete(rawMsg, key) + case "resultFormat": + err = unpopulate(val, "ResultFormat", &r.ResultFormat) + delete(rawMsg, key) + case "$skip": + err = unpopulate(val, "Skip", &r.Skip) + delete(rawMsg, key) + case "$skipToken": + err = unpopulate(val, "SkipToken", &r.SkipToken) + delete(rawMsg, key) + case "$top": + err = unpopulate(val, "Top", &r.Top) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", r, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type Table. +func (t Table) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "columns", t.Columns) + populate(objectMap, "rows", t.Rows) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Table. +func (t *Table) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "columns": + err = unpopulate(val, "Columns", &t.Columns) + delete(rawMsg, key) + case "rows": + err = unpopulate(val, "Rows", &t.Rows) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", t, err) + } + } + return nil +} + +func populate(m map[string]any, k string, v any) { + if v == nil { + return + } else if azcore.IsNullValue(v) { + m[k] = nil + } else if !reflect.ValueOf(v).IsNil() { + m[k] = v + } +} + +func populateAny(m map[string]any, k string, v any) { + if v == nil { + return + } else if azcore.IsNullValue(v) { + m[k] = nil + } else { + m[k] = v + } +} + +func unpopulate(data json.RawMessage, fn string, v any) error { + if data == nil { + return nil + } + if err := json.Unmarshal(data, v); err != nil { + return fmt.Errorf("struct field %s: %v", fn, err) + } + return nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go new file mode 100644 index 00000000..72e68d3d --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/operations_client.go @@ -0,0 +1,89 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" +) + +// OperationsClient contains the methods for the Operations group. +// Don't use this type directly, use NewOperationsClient() instead. +type OperationsClient struct { + internal *arm.Client +} + +// NewOperationsClient creates a new instance of OperationsClient with the specified values. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - pass nil to accept the default values. +func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*OperationsClient, error) { + cl, err := arm.NewClient(moduleName+".OperationsClient", moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &OperationsClient{ + internal: cl, + } + return client, nil +} + +// NewListPager - Lists all of the available REST API operations. +// +// Generated from API version 2021-06-01-preview +// - options - OperationsClientListOptions contains the optional parameters for the OperationsClient.NewListPager method. +func (client *OperationsClient) NewListPager(options *OperationsClientListOptions) *runtime.Pager[OperationsClientListResponse] { + return runtime.NewPager(runtime.PagingHandler[OperationsClientListResponse]{ + More: func(page OperationsClientListResponse) bool { + return false + }, + Fetcher: func(ctx context.Context, page *OperationsClientListResponse) (OperationsClientListResponse, error) { + ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, "OperationsClient.NewListPager") + req, err := client.listCreateRequest(ctx, options) + if err != nil { + return OperationsClientListResponse{}, err + } + resp, err := client.internal.Pipeline().Do(req) + if err != nil { + return OperationsClientListResponse{}, err + } + if !runtime.HasStatusCode(resp, http.StatusOK) { + return OperationsClientListResponse{}, runtime.NewResponseError(resp) + } + return client.listHandleResponse(resp) + }, + Tracer: client.internal.Tracer(), + }) +} + +// listCreateRequest creates the List request. +func (client *OperationsClient) listCreateRequest(ctx context.Context, options *OperationsClientListOptions) (*policy.Request, error) { + urlPath := "/providers/Microsoft.ResourceGraph/operations" + req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2021-06-01-preview") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + return req, nil +} + +// listHandleResponse handles the List response. +func (client *OperationsClient) listHandleResponse(resp *http.Response) (OperationsClientListResponse, error) { + result := OperationsClientListResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.OperationListResult); err != nil { + return OperationsClientListResponse{}, err + } + return result, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/options.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/options.go new file mode 100644 index 00000000..43016398 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/options.go @@ -0,0 +1,24 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +// ClientResourcesHistoryOptions contains the optional parameters for the Client.ResourcesHistory method. +type ClientResourcesHistoryOptions struct { + // placeholder for future optional parameters +} + +// ClientResourcesOptions contains the optional parameters for the Client.Resources method. +type ClientResourcesOptions struct { + // placeholder for future optional parameters +} + +// OperationsClientListOptions contains the optional parameters for the OperationsClient.NewListPager method. +type OperationsClientListOptions struct { + // placeholder for future optional parameters +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go new file mode 100644 index 00000000..ff55449e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/polymorphic_helpers.go @@ -0,0 +1,53 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import "encoding/json" + +func unmarshalFacetClassification(rawMsg json.RawMessage) (FacetClassification, error) { + if rawMsg == nil { + return nil, nil + } + var m map[string]any + if err := json.Unmarshal(rawMsg, &m); err != nil { + return nil, err + } + var b FacetClassification + switch m["resultType"] { + case "FacetError": + b = &FacetError{} + case "FacetResult": + b = &FacetResult{} + default: + b = &Facet{} + } + if err := json.Unmarshal(rawMsg, b); err != nil { + return nil, err + } + return b, nil +} + +func unmarshalFacetClassificationArray(rawMsg json.RawMessage) ([]FacetClassification, error) { + if rawMsg == nil { + return nil, nil + } + var rawMessages []json.RawMessage + if err := json.Unmarshal(rawMsg, &rawMessages); err != nil { + return nil, err + } + fArray := make([]FacetClassification, len(rawMessages)) + for index, rawMessage := range rawMessages { + f, err := unmarshalFacetClassification(rawMessage) + if err != nil { + return nil, err + } + fArray[index] = f + } + return fArray, nil +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go new file mode 100644 index 00000000..ce6fde39 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/response_types.go @@ -0,0 +1,28 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +// ClientResourcesHistoryResponse contains the response from method Client.ResourcesHistory. +type ClientResourcesHistoryResponse struct { + // Anything + Interface any +} + +// ClientResourcesResponse contains the response from method Client.Resources. +type ClientResourcesResponse struct { + // Query result. + QueryResponse +} + +// OperationsClientListResponse contains the response from method OperationsClient.NewListPager. +type OperationsClientListResponse struct { + // Result of the request to list Resource Graph operations. It contains a list of operations and a URL link to get the next + // set of results. + OperationListResult +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go new file mode 100644 index 00000000..dd11cb29 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph/time_rfc3339.go @@ -0,0 +1,86 @@ +//go:build go1.18 +// +build go1.18 + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +package armresourcegraph + +import ( + "encoding/json" + "fmt" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "reflect" + "regexp" + "strings" + "time" +) + +const ( + utcLayoutJSON = `"2006-01-02T15:04:05.999999999"` + utcLayout = "2006-01-02T15:04:05.999999999" + rfc3339JSON = `"` + time.RFC3339Nano + `"` +) + +// Azure reports time in UTC but it doesn't include the 'Z' time zone suffix in some cases. +var tzOffsetRegex = regexp.MustCompile(`(Z|z|\+|-)(\d+:\d+)*"*$`) + +type timeRFC3339 time.Time + +func (t timeRFC3339) MarshalJSON() (json []byte, err error) { + tt := time.Time(t) + return tt.MarshalJSON() +} + +func (t timeRFC3339) MarshalText() (text []byte, err error) { + tt := time.Time(t) + return tt.MarshalText() +} + +func (t *timeRFC3339) UnmarshalJSON(data []byte) error { + layout := utcLayoutJSON + if tzOffsetRegex.Match(data) { + layout = rfc3339JSON + } + return t.Parse(layout, string(data)) +} + +func (t *timeRFC3339) UnmarshalText(data []byte) (err error) { + layout := utcLayout + if tzOffsetRegex.Match(data) { + layout = time.RFC3339Nano + } + return t.Parse(layout, string(data)) +} + +func (t *timeRFC3339) Parse(layout, value string) error { + p, err := time.Parse(layout, strings.ToUpper(value)) + *t = timeRFC3339(p) + return err +} + +func populateTimeRFC3339(m map[string]any, k string, t *time.Time) { + if t == nil { + return + } else if azcore.IsNullValue(t) { + m[k] = nil + return + } else if reflect.ValueOf(t).IsNil() { + return + } + m[k] = (*timeRFC3339)(t) +} + +func unpopulateTimeRFC3339(data json.RawMessage, fn string, t **time.Time) error { + if data == nil || strings.EqualFold(string(data), "null") { + return nil + } + var aux timeRFC3339 + if err := json.Unmarshal(data, &aux); err != nil { + return fmt.Errorf("struct field %s: %v", fn, err) + } + *t = (*time.Time)(&aux) + return nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE new file mode 100644 index 00000000..3d8b93bc --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache/cache.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache/cache.go new file mode 100644 index 00000000..19210883 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache/cache.go @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package cache allows third parties to implement external storage for caching token data +for distributed systems or multiple local applications access. + +The data stored and extracted will represent the entire cache. Therefore it is recommended +one msal instance per user. This data is considered opaque and there are no guarantees to +implementers on the format being passed. +*/ +package cache + +import "context" + +// Marshaler marshals data from an internal cache to bytes that can be stored. +type Marshaler interface { + Marshal() ([]byte, error) +} + +// Unmarshaler unmarshals data from a storage medium into the internal cache, overwriting it. +type Unmarshaler interface { + Unmarshal([]byte) error +} + +// Serializer can serialize the cache to binary or from binary into the cache. +type Serializer interface { + Marshaler + Unmarshaler +} + +// ExportHints are suggestions for storing data. +type ExportHints struct { + // PartitionKey is a suggested key for partitioning the cache + PartitionKey string +} + +// ReplaceHints are suggestions for loading data. +type ReplaceHints struct { + // PartitionKey is a suggested key for partitioning the cache + PartitionKey string +} + +// ExportReplace exports and replaces in-memory cache data. It doesn't support nil Context or +// define the outcome of passing one. A Context without a timeout must receive a default timeout +// specified by the implementor. Retries must be implemented inside the implementation. +type ExportReplace interface { + // Replace replaces the cache with what is in external storage. Implementors should honor + // Context cancellations and return context.Canceled or context.DeadlineExceeded in those cases. + Replace(ctx context.Context, cache Unmarshaler, hints ReplaceHints) error + // Export writes the binary representation of the cache (cache.Marshal()) to external storage. + // This is considered opaque. Context cancellations should be honored as in Replace. + Export(ctx context.Context, cache Marshaler, hints ExportHints) error +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential/confidential.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential/confidential.go new file mode 100644 index 00000000..6612feb4 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential/confidential.go @@ -0,0 +1,685 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package confidential provides a client for authentication of "confidential" applications. +A "confidential" application is defined as an app that run on servers. They are considered +difficult to access and for that reason capable of keeping an application secret. +Confidential clients can hold configuration-time secrets. +*/ +package confidential + +import ( + "context" + "crypto" + "crypto/rsa" + "crypto/x509" + "encoding/base64" + "encoding/pem" + "errors" + "fmt" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +/* +Design note: + +confidential.Client uses base.Client as an embedded type. base.Client statically assigns its attributes +during creation. As it doesn't have any pointers in it, anything borrowed from it, such as +Base.AuthParams is a copy that is free to be manipulated here. + +Duplicate Calls shared between public.Client and this package: +There is some duplicate call options provided here that are the same as in public.Client . This +is a design choices. Go proverb(https://www.youtube.com/watch?v=PAAkCSZUG1c&t=9m28s): +"a little copying is better than a little dependency". Yes, we could have another package with +shared options (fail). That divides like 2 options from all others which makes the user look +through more docs. We can have all clients in one package, but I think separate packages +here makes for better naming (public.Client vs client.PublicClient). So I chose a little +duplication. + +.Net People, Take note on X509: +This uses x509.Certificates and private keys. x509 does not store private keys. .Net +has some x509.Certificate2 thing that has private keys, but that is just some bullcrap that .Net +added, it doesn't exist in real life. As such I've put a PEM decoder into here. +*/ + +// TODO(msal): This should have example code for each method on client using Go's example doc framework. +// base usage details should be include in the package documentation. + +// AuthResult contains the results of one token acquisition operation. +// For details see https://aka.ms/msal-net-authenticationresult +type AuthResult = base.AuthResult + +type Account = shared.Account + +// CertFromPEM converts a PEM file (.pem or .key) for use with [NewCredFromCert]. The file +// must contain the public certificate and the private key. If a PEM block is encrypted and +// password is not an empty string, it attempts to decrypt the PEM blocks using the password. +// Multiple certs are due to certificate chaining for use cases like TLS that sign from root to leaf. +func CertFromPEM(pemData []byte, password string) ([]*x509.Certificate, crypto.PrivateKey, error) { + var certs []*x509.Certificate + var priv crypto.PrivateKey + for { + block, rest := pem.Decode(pemData) + if block == nil { + break + } + + //nolint:staticcheck // x509.IsEncryptedPEMBlock and x509.DecryptPEMBlock are deprecated. They are used here only to support a usecase. + if x509.IsEncryptedPEMBlock(block) { + b, err := x509.DecryptPEMBlock(block, []byte(password)) + if err != nil { + return nil, nil, fmt.Errorf("could not decrypt encrypted PEM block: %v", err) + } + block, _ = pem.Decode(b) + if block == nil { + return nil, nil, fmt.Errorf("encounter encrypted PEM block that did not decode") + } + } + + switch block.Type { + case "CERTIFICATE": + cert, err := x509.ParseCertificate(block.Bytes) + if err != nil { + return nil, nil, fmt.Errorf("block labelled 'CERTIFICATE' could not be parsed by x509: %v", err) + } + certs = append(certs, cert) + case "PRIVATE KEY": + if priv != nil { + return nil, nil, errors.New("found multiple private key blocks") + } + + var err error + priv, err = x509.ParsePKCS8PrivateKey(block.Bytes) + if err != nil { + return nil, nil, fmt.Errorf("could not decode private key: %v", err) + } + case "RSA PRIVATE KEY": + if priv != nil { + return nil, nil, errors.New("found multiple private key blocks") + } + var err error + priv, err = x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + return nil, nil, fmt.Errorf("could not decode private key: %v", err) + } + } + pemData = rest + } + + if len(certs) == 0 { + return nil, nil, fmt.Errorf("no certificates found") + } + + if priv == nil { + return nil, nil, fmt.Errorf("no private key found") + } + + return certs, priv, nil +} + +// AssertionRequestOptions has required information for client assertion claims +type AssertionRequestOptions = exported.AssertionRequestOptions + +// Credential represents the credential used in confidential client flows. +type Credential struct { + secret string + + cert *x509.Certificate + key crypto.PrivateKey + x5c []string + + assertionCallback func(context.Context, AssertionRequestOptions) (string, error) + + tokenProvider func(context.Context, TokenProviderParameters) (TokenProviderResult, error) +} + +// toInternal returns the accesstokens.Credential that is used internally. The current structure of the +// code requires that client.go, requests.go and confidential.go share a credential type without +// having import recursion. That requires the type used between is in a shared package. Therefore +// we have this. +func (c Credential) toInternal() (*accesstokens.Credential, error) { + if c.secret != "" { + return &accesstokens.Credential{Secret: c.secret}, nil + } + if c.cert != nil { + if c.key == nil { + return nil, errors.New("missing private key for certificate") + } + return &accesstokens.Credential{Cert: c.cert, Key: c.key, X5c: c.x5c}, nil + } + if c.key != nil { + return nil, errors.New("missing certificate for private key") + } + if c.assertionCallback != nil { + return &accesstokens.Credential{AssertionCallback: c.assertionCallback}, nil + } + if c.tokenProvider != nil { + return &accesstokens.Credential{TokenProvider: c.tokenProvider}, nil + } + return nil, errors.New("invalid credential") +} + +// NewCredFromSecret creates a Credential from a secret. +func NewCredFromSecret(secret string) (Credential, error) { + if secret == "" { + return Credential{}, errors.New("secret can't be empty string") + } + return Credential{secret: secret}, nil +} + +// NewCredFromAssertionCallback creates a Credential that invokes a callback to get assertions +// authenticating the application. The callback must be thread safe. +func NewCredFromAssertionCallback(callback func(context.Context, AssertionRequestOptions) (string, error)) Credential { + return Credential{assertionCallback: callback} +} + +// NewCredFromCert creates a Credential from a certificate or chain of certificates and an RSA private key +// as returned by [CertFromPEM]. +func NewCredFromCert(certs []*x509.Certificate, key crypto.PrivateKey) (Credential, error) { + cred := Credential{key: key} + k, ok := key.(*rsa.PrivateKey) + if !ok { + return cred, errors.New("key must be an RSA key") + } + for _, cert := range certs { + if cert == nil { + // not returning an error here because certs may still contain a sufficient cert/key pair + continue + } + certKey, ok := cert.PublicKey.(*rsa.PublicKey) + if ok && k.E == certKey.E && k.N.Cmp(certKey.N) == 0 { + // We know this is the signing cert because its public key matches the given private key. + // This cert must be first in x5c. + cred.cert = cert + cred.x5c = append([]string{base64.StdEncoding.EncodeToString(cert.Raw)}, cred.x5c...) + } else { + cred.x5c = append(cred.x5c, base64.StdEncoding.EncodeToString(cert.Raw)) + } + } + if cred.cert == nil { + return cred, errors.New("key doesn't match any certificate") + } + return cred, nil +} + +// TokenProviderParameters is the authentication parameters passed to token providers +type TokenProviderParameters = exported.TokenProviderParameters + +// TokenProviderResult is the authentication result returned by custom token providers +type TokenProviderResult = exported.TokenProviderResult + +// NewCredFromTokenProvider creates a Credential from a function that provides access tokens. The function +// must be concurrency safe. This is intended only to allow the Azure SDK to cache MSI tokens. It isn't +// useful to applications in general because the token provider must implement all authentication logic. +func NewCredFromTokenProvider(provider func(context.Context, TokenProviderParameters) (TokenProviderResult, error)) Credential { + return Credential{tokenProvider: provider} +} + +// AutoDetectRegion instructs MSAL Go to auto detect region for Azure regional token service. +func AutoDetectRegion() string { + return "TryAutoDetect" +} + +// Client is a representation of authentication client for confidential applications as defined in the +// package doc. A new Client should be created PER SERVICE USER. +// For more information, visit https://docs.microsoft.com/azure/active-directory/develop/msal-client-applications +type Client struct { + base base.Client + cred *accesstokens.Credential +} + +// clientOptions are optional settings for New(). These options are set using various functions +// returning Option calls. +type clientOptions struct { + accessor cache.ExportReplace + authority, azureRegion string + capabilities []string + disableInstanceDiscovery, sendX5C bool + httpClient ops.HTTPClient +} + +// Option is an optional argument to New(). +type Option func(o *clientOptions) + +// WithCache provides an accessor that will read and write authentication data to an externally managed cache. +func WithCache(accessor cache.ExportReplace) Option { + return func(o *clientOptions) { + o.accessor = accessor + } +} + +// WithClientCapabilities allows configuring one or more client capabilities such as "CP1" +func WithClientCapabilities(capabilities []string) Option { + return func(o *clientOptions) { + // there's no danger of sharing the slice's underlying memory with the application because + // this slice is simply passed to base.WithClientCapabilities, which copies its data + o.capabilities = capabilities + } +} + +// WithHTTPClient allows for a custom HTTP client to be set. +func WithHTTPClient(httpClient ops.HTTPClient) Option { + return func(o *clientOptions) { + o.httpClient = httpClient + } +} + +// WithX5C specifies if x5c claim(public key of the certificate) should be sent to STS to enable Subject Name Issuer Authentication. +func WithX5C() Option { + return func(o *clientOptions) { + o.sendX5C = true + } +} + +// WithInstanceDiscovery set to false to disable authority validation (to support private cloud scenarios) +func WithInstanceDiscovery(enabled bool) Option { + return func(o *clientOptions) { + o.disableInstanceDiscovery = !enabled + } +} + +// WithAzureRegion sets the region(preferred) or Confidential.AutoDetectRegion() for auto detecting region. +// Region names as per https://azure.microsoft.com/en-ca/global-infrastructure/geographies/. +// See https://aka.ms/region-map for more details on region names. +// The region value should be short region name for the region where the service is deployed. +// For example "centralus" is short name for region Central US. +// Not all auth flows can use the regional token service. +// Service To Service (client credential flow) tokens can be obtained from the regional service. +// Requires configuration at the tenant level. +// Auto-detection works on a limited number of Azure artifacts (VMs, Azure functions). +// If auto-detection fails, the non-regional endpoint will be used. +// If an invalid region name is provided, the non-regional endpoint MIGHT be used or the token request MIGHT fail. +func WithAzureRegion(val string) Option { + return func(o *clientOptions) { + o.azureRegion = val + } +} + +// New is the constructor for Client. authority is the URL of a token authority such as "https://login.microsoftonline.com/". +// If the Client will connect directly to AD FS, use "adfs" for the tenant. clientID is the application's client ID (also called its +// "application ID"). +func New(authority, clientID string, cred Credential, options ...Option) (Client, error) { + internalCred, err := cred.toInternal() + if err != nil { + return Client{}, err + } + + opts := clientOptions{ + authority: authority, + // if the caller specified a token provider, it will handle all details of authentication, using Client only as a token cache + disableInstanceDiscovery: cred.tokenProvider != nil, + httpClient: shared.DefaultClient, + } + for _, o := range options { + o(&opts) + } + baseOpts := []base.Option{ + base.WithCacheAccessor(opts.accessor), + base.WithClientCapabilities(opts.capabilities), + base.WithInstanceDiscovery(!opts.disableInstanceDiscovery), + base.WithRegionDetection(opts.azureRegion), + base.WithX5C(opts.sendX5C), + } + base, err := base.New(clientID, opts.authority, oauth.New(opts.httpClient), baseOpts...) + if err != nil { + return Client{}, err + } + base.AuthParams.IsConfidentialClient = true + + return Client{base: base, cred: internalCred}, nil +} + +// authCodeURLOptions contains options for AuthCodeURL +type authCodeURLOptions struct { + claims, loginHint, tenantID, domainHint string +} + +// AuthCodeURLOption is implemented by options for AuthCodeURL +type AuthCodeURLOption interface { + authCodeURLOption() +} + +// AuthCodeURL creates a URL used to acquire an authorization code. Users need to call CreateAuthorizationCodeURLParameters and pass it in. +// +// Options: [WithClaims], [WithDomainHint], [WithLoginHint], [WithTenantID] +func (cca Client) AuthCodeURL(ctx context.Context, clientID, redirectURI string, scopes []string, opts ...AuthCodeURLOption) (string, error) { + o := authCodeURLOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return "", err + } + ap, err := cca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return "", err + } + ap.Claims = o.claims + ap.LoginHint = o.loginHint + ap.DomainHint = o.domainHint + return cca.base.AuthCodeURL(ctx, clientID, redirectURI, scopes, ap) +} + +// WithLoginHint pre-populates the login prompt with a username. +func WithLoginHint(username string) interface { + AuthCodeURLOption + options.CallOption +} { + return struct { + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *authCodeURLOptions: + t.loginHint = username + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithDomainHint adds the IdP domain as domain_hint query parameter in the auth url. +func WithDomainHint(domain string) interface { + AuthCodeURLOption + options.CallOption +} { + return struct { + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *authCodeURLOptions: + t.domainHint = domain + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithClaims sets additional claims to request for the token, such as those required by conditional access policies. +// Use this option when Azure AD returned a claims challenge for a prior request. The argument must be decoded. +// This option is valid for any token acquisition method. +func WithClaims(claims string) interface { + AcquireByAuthCodeOption + AcquireByCredentialOption + AcquireOnBehalfOfOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + AcquireByCredentialOption + AcquireOnBehalfOfOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.claims = claims + case *acquireTokenByCredentialOptions: + t.claims = claims + case *acquireTokenOnBehalfOfOptions: + t.claims = claims + case *acquireTokenSilentOptions: + t.claims = claims + case *authCodeURLOptions: + t.claims = claims + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithTenantID specifies a tenant for a single authentication. It may be different than the tenant set in [New]. +// This option is valid for any token acquisition method. +func WithTenantID(tenantID string) interface { + AcquireByAuthCodeOption + AcquireByCredentialOption + AcquireOnBehalfOfOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + AcquireByCredentialOption + AcquireOnBehalfOfOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.tenantID = tenantID + case *acquireTokenByCredentialOptions: + t.tenantID = tenantID + case *acquireTokenOnBehalfOfOptions: + t.tenantID = tenantID + case *acquireTokenSilentOptions: + t.tenantID = tenantID + case *authCodeURLOptions: + t.tenantID = tenantID + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// acquireTokenSilentOptions are all the optional settings to an AcquireTokenSilent() call. +// These are set by using various AcquireTokenSilentOption functions. +type acquireTokenSilentOptions struct { + account Account + claims, tenantID string +} + +// AcquireSilentOption is implemented by options for AcquireTokenSilent +type AcquireSilentOption interface { + acquireSilentOption() +} + +// WithSilentAccount uses the passed account during an AcquireTokenSilent() call. +func WithSilentAccount(account Account) interface { + AcquireSilentOption + options.CallOption +} { + return struct { + AcquireSilentOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenSilentOptions: + t.account = account + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// AcquireTokenSilent acquires a token from either the cache or using a refresh token. +// +// Options: [WithClaims], [WithSilentAccount], [WithTenantID] +func (cca Client) AcquireTokenSilent(ctx context.Context, scopes []string, opts ...AcquireSilentOption) (AuthResult, error) { + o := acquireTokenSilentOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + + if o.claims != "" { + return AuthResult{}, errors.New("call another AcquireToken method to request a new token having these claims") + } + + silentParameters := base.AcquireTokenSilentParameters{ + Scopes: scopes, + Account: o.account, + RequestType: accesstokens.ATConfidential, + Credential: cca.cred, + IsAppCache: o.account.IsZero(), + TenantID: o.tenantID, + } + + return cca.base.AcquireTokenSilent(ctx, silentParameters) +} + +// acquireTokenByAuthCodeOptions contains the optional parameters used to acquire an access token using the authorization code flow. +type acquireTokenByAuthCodeOptions struct { + challenge, claims, tenantID string +} + +// AcquireByAuthCodeOption is implemented by options for AcquireTokenByAuthCode +type AcquireByAuthCodeOption interface { + acquireByAuthCodeOption() +} + +// WithChallenge allows you to provide a challenge for the .AcquireTokenByAuthCode() call. +func WithChallenge(challenge string) interface { + AcquireByAuthCodeOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.challenge = challenge + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// AcquireTokenByAuthCode is a request to acquire a security token from the authority, using an authorization code. +// The specified redirect URI must be the same URI that was used when the authorization code was requested. +// +// Options: [WithChallenge], [WithClaims], [WithTenantID] +func (cca Client) AcquireTokenByAuthCode(ctx context.Context, code string, redirectURI string, scopes []string, opts ...AcquireByAuthCodeOption) (AuthResult, error) { + o := acquireTokenByAuthCodeOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + + params := base.AcquireTokenAuthCodeParameters{ + Scopes: scopes, + Code: code, + Challenge: o.challenge, + Claims: o.claims, + AppType: accesstokens.ATConfidential, + Credential: cca.cred, // This setting differs from public.Client.AcquireTokenByAuthCode + RedirectURI: redirectURI, + TenantID: o.tenantID, + } + + return cca.base.AcquireTokenByAuthCode(ctx, params) +} + +// acquireTokenByCredentialOptions contains optional configuration for AcquireTokenByCredential +type acquireTokenByCredentialOptions struct { + claims, tenantID string +} + +// AcquireByCredentialOption is implemented by options for AcquireTokenByCredential +type AcquireByCredentialOption interface { + acquireByCredOption() +} + +// AcquireTokenByCredential acquires a security token from the authority, using the client credentials grant. +// +// Options: [WithClaims], [WithTenantID] +func (cca Client) AcquireTokenByCredential(ctx context.Context, scopes []string, opts ...AcquireByCredentialOption) (AuthResult, error) { + o := acquireTokenByCredentialOptions{} + err := options.ApplyOptions(&o, opts) + if err != nil { + return AuthResult{}, err + } + authParams, err := cca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return AuthResult{}, err + } + authParams.Scopes = scopes + authParams.AuthorizationType = authority.ATClientCredentials + authParams.Claims = o.claims + + token, err := cca.base.Token.Credential(ctx, authParams, cca.cred) + if err != nil { + return AuthResult{}, err + } + return cca.base.AuthResultFromToken(ctx, authParams, token, true) +} + +// acquireTokenOnBehalfOfOptions contains optional configuration for AcquireTokenOnBehalfOf +type acquireTokenOnBehalfOfOptions struct { + claims, tenantID string +} + +// AcquireOnBehalfOfOption is implemented by options for AcquireTokenOnBehalfOf +type AcquireOnBehalfOfOption interface { + acquireOBOOption() +} + +// AcquireTokenOnBehalfOf acquires a security token for an app using middle tier apps access token. +// Refer https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow. +// +// Options: [WithClaims], [WithTenantID] +func (cca Client) AcquireTokenOnBehalfOf(ctx context.Context, userAssertion string, scopes []string, opts ...AcquireOnBehalfOfOption) (AuthResult, error) { + o := acquireTokenOnBehalfOfOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + params := base.AcquireTokenOnBehalfOfParameters{ + Scopes: scopes, + UserAssertion: userAssertion, + Claims: o.claims, + Credential: cca.cred, + TenantID: o.tenantID, + } + return cca.base.AcquireTokenOnBehalfOf(ctx, params) +} + +// Account gets the account in the token cache with the specified homeAccountID. +func (cca Client) Account(ctx context.Context, accountID string) (Account, error) { + return cca.base.Account(ctx, accountID) +} + +// RemoveAccount signs the account out and forgets account from token cache. +func (cca Client) RemoveAccount(ctx context.Context, account Account) error { + return cca.base.RemoveAccount(ctx, account) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/error_design.md b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/error_design.md new file mode 100644 index 00000000..7ef7862f --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/error_design.md @@ -0,0 +1,111 @@ +# MSAL Error Design + +Author: Abhidnya Patil(abhidnya.patil@microsoft.com) + +Contributors: + +- John Doak(jdoak@microsoft.com) +- Keegan Caruso(Keegan.Caruso@microsoft.com) +- Joel Hendrix(jhendrix@microsoft.com) + +## Background + +Errors in MSAL are intended for app developers to troubleshoot and not for displaying to end-users. + +### Go error handling vs other MSAL languages + +Most modern languages use exception based errors. Simply put, you "throw" an exception and it must be caught at some routine in the upper stack or it will eventually crash the program. + +Go doesn't use exceptions, instead it relies on multiple return values, one of which can be the builtin error interface type. It is up to the user to decide what to do. + +### Go custom error types + +Errors can be created in Go by simply using errors.New() or fmt.Errorf() to create an "error". + +Custom errors can be created in multiple ways. One of the more robust ways is simply to satisfy the error interface: + +```go +type MyCustomErr struct { + Msg string +} +func (m MyCustomErr) Error() string { // This implements "error" + return m.Msg +} +``` + +### MSAL Error Goals + +- Provide diagnostics to the user and for tickets that can be used to track down bugs or client misconfigurations +- Detect errors that are transitory and can be retried +- Allow the user to identify certain errors that the program can respond to, such a informing the user for the need to do an enrollment + +## Implementing Client Side Errors + +Client side errors indicate a misconfiguration or passing of bad arguments that is non-recoverable. Retrying isn't possible. + +These errors can simply be standard Go errors created by errors.New() or fmt.Errorf(). If down the line we need a custom error, we can introduce it, but for now the error messages just need to be clear on what the issue was. + +## Implementing Service Side Errors + +Service side errors occur when an external RPC responds either with an HTTP error code or returns a message that includes an error. + +These errors can be transitory (please slow down) or permanent (HTTP 404). To provide our diagnostic goals, we require the ability to differentiate these errors from other errors. + +The current implementation includes a specialized type that captures any error from the server: + +```go +// CallErr represents an HTTP call error. Has a Verbose() method that allows getting the +// http.Request and Response objects. Implements error. +type CallErr struct { + Req *http.Request + Resp *http.Response + Err error +} + +// Errors implements error.Error(). +func (e CallErr) Error() string { + return e.Err.Error() +} + +// Verbose prints a versbose error message with the request or response. +func (e CallErr) Verbose() string { + e.Resp.Request = nil // This brings in a bunch of TLS stuff we don't need + e.Resp.TLS = nil // Same + return fmt.Sprintf("%s:\nRequest:\n%s\nResponse:\n%s", e.Err, prettyConf.Sprint(e.Req), prettyConf.Sprint(e.Resp)) +} +``` + +A user will always receive the most concise error we provide. They can tell if it is a server side error using Go error package: + +```go +var callErr CallErr +if errors.As(err, &callErr) { + ... +} +``` + +We provide a Verbose() function that can retrieve the most verbose message from any error we provide: + +```go +fmt.Println(errors.Verbose(err)) +``` + +If further differentiation is required, we can add custom errors that use Go error wrapping on top of CallErr to achieve our diagnostic goals (such as detecting when to retry a call due to transient errors). + +CallErr is always thrown from the comm package (which handles all http requests) and looks similar to: + +```go +return nil, errors.CallErr{ + Req: req, + Resp: reply, + Err: fmt.Errorf("http call(%s)(%s) error: reply status code was %d:\n%s", req.URL.String(), req.Method, reply.StatusCode, ErrorResponse), //ErrorResponse is the json body extracted from the http response + } +``` + +## Future Decisions + +The ability to retry calls needs to have centralized responsibility. Either the user is doing it or the client is doing it. + +If the user should be responsible, our errors package will include a CanRetry() function that will inform the user if the error provided to them is retryable. This is based on the http error code and possibly the type of error that was returned. It would also include a sleep time if the server returned an amount of time to wait. + +Otherwise we will do this internally and retries will be left to us. diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/errors.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/errors.go new file mode 100644 index 00000000..c9b8dbed --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors/errors.go @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package errors + +import ( + "errors" + "fmt" + "io" + "net/http" + "reflect" + "strings" + + "github.com/kylelemons/godebug/pretty" +) + +var prettyConf = &pretty.Config{ + IncludeUnexported: false, + SkipZeroFields: true, + TrackCycles: true, + Formatter: map[reflect.Type]interface{}{ + reflect.TypeOf((*io.Reader)(nil)).Elem(): func(r io.Reader) string { + b, err := io.ReadAll(r) + if err != nil { + return "could not read io.Reader content" + } + return string(b) + }, + }, +} + +type verboser interface { + Verbose() string +} + +// Verbose prints the most verbose error that the error message has. +func Verbose(err error) string { + build := strings.Builder{} + for { + if err == nil { + break + } + if v, ok := err.(verboser); ok { + build.WriteString(v.Verbose()) + } else { + build.WriteString(err.Error()) + } + err = errors.Unwrap(err) + } + return build.String() +} + +// New is equivalent to errors.New(). +func New(text string) error { + return errors.New(text) +} + +// CallErr represents an HTTP call error. Has a Verbose() method that allows getting the +// http.Request and Response objects. Implements error. +type CallErr struct { + Req *http.Request + // Resp contains response body + Resp *http.Response + Err error +} + +// Errors implements error.Error(). +func (e CallErr) Error() string { + return e.Err.Error() +} + +// Verbose prints a versbose error message with the request or response. +func (e CallErr) Verbose() string { + e.Resp.Request = nil // This brings in a bunch of TLS crap we don't need + e.Resp.TLS = nil // Same + return fmt.Sprintf("%s:\nRequest:\n%s\nResponse:\n%s", e.Err, prettyConf.Sprint(e.Req), prettyConf.Sprint(e.Resp)) +} + +// Is reports whether any error in errors chain matches target. +func Is(err, target error) bool { + return errors.Is(err, target) +} + +// As finds the first error in errors chain that matches target, +// and if so, sets target to that error value and returns true. +// Otherwise, it returns false. +func As(err error, target interface{}) bool { + return errors.As(err, target) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/base.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/base.go new file mode 100644 index 00000000..00617abf --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/base.go @@ -0,0 +1,519 @@ +// Package base contains a "Base" client that is used by the external public.Client and confidential.Client. +// Base holds shared attributes that must be available to both clients and methods that act as +// shared calls. +package base + +import ( + "context" + "errors" + "fmt" + "net/url" + "reflect" + "strings" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +const ( + // AuthorityPublicCloud is the default AAD authority host + AuthorityPublicCloud = "https://login.microsoftonline.com/common" + scopeSeparator = " " +) + +// manager provides an internal cache. It is defined to allow faking the cache in tests. +// In all production use it is a *storage.Manager. +type manager interface { + Read(ctx context.Context, authParameters authority.AuthParams, account shared.Account) (storage.TokenResponse, error) + Write(authParameters authority.AuthParams, tokenResponse accesstokens.TokenResponse) (shared.Account, error) + AllAccounts() []shared.Account + Account(homeAccountID string) shared.Account + RemoveAccount(account shared.Account, clientID string) +} + +// partitionedManager provides an internal cache. It is defined to allow faking the cache in tests. +// In all production use it is a *storage.PartitionedManager. +type partitionedManager interface { + Read(ctx context.Context, authParameters authority.AuthParams) (storage.TokenResponse, error) + Write(authParameters authority.AuthParams, tokenResponse accesstokens.TokenResponse) (shared.Account, error) +} + +type noopCacheAccessor struct{} + +func (n noopCacheAccessor) Replace(ctx context.Context, u cache.Unmarshaler, h cache.ReplaceHints) error { + return nil +} +func (n noopCacheAccessor) Export(ctx context.Context, m cache.Marshaler, h cache.ExportHints) error { + return nil +} + +// AcquireTokenSilentParameters contains the parameters to acquire a token silently (from cache). +type AcquireTokenSilentParameters struct { + Scopes []string + Account shared.Account + RequestType accesstokens.AppType + Credential *accesstokens.Credential + IsAppCache bool + TenantID string + UserAssertion string + AuthorizationType authority.AuthorizeType + Claims string +} + +// AcquireTokenAuthCodeParameters contains the parameters required to acquire an access token using the auth code flow. +// To use PKCE, set the CodeChallengeParameter. +// Code challenges are used to secure authorization code grants; for more information, visit +// https://tools.ietf.org/html/rfc7636. +type AcquireTokenAuthCodeParameters struct { + Scopes []string + Code string + Challenge string + Claims string + RedirectURI string + AppType accesstokens.AppType + Credential *accesstokens.Credential + TenantID string +} + +type AcquireTokenOnBehalfOfParameters struct { + Scopes []string + Claims string + Credential *accesstokens.Credential + TenantID string + UserAssertion string +} + +// AuthResult contains the results of one token acquisition operation in PublicClientApplication +// or ConfidentialClientApplication. For details see https://aka.ms/msal-net-authenticationresult +type AuthResult struct { + Account shared.Account + IDToken accesstokens.IDToken + AccessToken string + ExpiresOn time.Time + GrantedScopes []string + DeclinedScopes []string +} + +// AuthResultFromStorage creates an AuthResult from a storage token response (which is generated from the cache). +func AuthResultFromStorage(storageTokenResponse storage.TokenResponse) (AuthResult, error) { + if err := storageTokenResponse.AccessToken.Validate(); err != nil { + return AuthResult{}, fmt.Errorf("problem with access token in StorageTokenResponse: %w", err) + } + + account := storageTokenResponse.Account + accessToken := storageTokenResponse.AccessToken.Secret + grantedScopes := strings.Split(storageTokenResponse.AccessToken.Scopes, scopeSeparator) + + // Checking if there was an ID token in the cache; this will throw an error in the case of confidential client applications. + var idToken accesstokens.IDToken + if !storageTokenResponse.IDToken.IsZero() { + err := idToken.UnmarshalJSON([]byte(storageTokenResponse.IDToken.Secret)) + if err != nil { + return AuthResult{}, fmt.Errorf("problem decoding JWT token: %w", err) + } + } + return AuthResult{account, idToken, accessToken, storageTokenResponse.AccessToken.ExpiresOn.T, grantedScopes, nil}, nil +} + +// NewAuthResult creates an AuthResult. +func NewAuthResult(tokenResponse accesstokens.TokenResponse, account shared.Account) (AuthResult, error) { + if len(tokenResponse.DeclinedScopes) > 0 { + return AuthResult{}, fmt.Errorf("token response failed because declined scopes are present: %s", strings.Join(tokenResponse.DeclinedScopes, ",")) + } + return AuthResult{ + Account: account, + IDToken: tokenResponse.IDToken, + AccessToken: tokenResponse.AccessToken, + ExpiresOn: tokenResponse.ExpiresOn.T, + GrantedScopes: tokenResponse.GrantedScopes.Slice, + }, nil +} + +// Client is a base client that provides access to common methods and primatives that +// can be used by multiple clients. +type Client struct { + Token *oauth.Client + manager manager // *storage.Manager or fakeManager in tests + pmanager partitionedManager // *storage.PartitionedManager or fakeManager in tests + + AuthParams authority.AuthParams // DO NOT EVER MAKE THIS A POINTER! See "Note" in New(). + cacheAccessor cache.ExportReplace +} + +// Option is an optional argument to the New constructor. +type Option func(c *Client) error + +// WithCacheAccessor allows you to set some type of cache for storing authentication tokens. +func WithCacheAccessor(ca cache.ExportReplace) Option { + return func(c *Client) error { + if ca != nil { + c.cacheAccessor = ca + } + return nil + } +} + +// WithClientCapabilities allows configuring one or more client capabilities such as "CP1" +func WithClientCapabilities(capabilities []string) Option { + return func(c *Client) error { + var err error + if len(capabilities) > 0 { + cc, err := authority.NewClientCapabilities(capabilities) + if err == nil { + c.AuthParams.Capabilities = cc + } + } + return err + } +} + +// WithKnownAuthorityHosts specifies hosts Client shouldn't validate or request metadata for because they're known to the user +func WithKnownAuthorityHosts(hosts []string) Option { + return func(c *Client) error { + cp := make([]string, len(hosts)) + copy(cp, hosts) + c.AuthParams.KnownAuthorityHosts = cp + return nil + } +} + +// WithX5C specifies if x5c claim(public key of the certificate) should be sent to STS to enable Subject Name Issuer Authentication. +func WithX5C(sendX5C bool) Option { + return func(c *Client) error { + c.AuthParams.SendX5C = sendX5C + return nil + } +} + +func WithRegionDetection(region string) Option { + return func(c *Client) error { + c.AuthParams.AuthorityInfo.Region = region + return nil + } +} + +func WithInstanceDiscovery(instanceDiscoveryEnabled bool) Option { + return func(c *Client) error { + c.AuthParams.AuthorityInfo.ValidateAuthority = instanceDiscoveryEnabled + c.AuthParams.AuthorityInfo.InstanceDiscoveryDisabled = !instanceDiscoveryEnabled + return nil + } +} + +// New is the constructor for Base. +func New(clientID string, authorityURI string, token *oauth.Client, options ...Option) (Client, error) { + //By default, validateAuthority is set to true and instanceDiscoveryDisabled is set to false + authInfo, err := authority.NewInfoFromAuthorityURI(authorityURI, true, false) + if err != nil { + return Client{}, err + } + authParams := authority.NewAuthParams(clientID, authInfo) + client := Client{ // Note: Hey, don't even THINK about making Base into *Base. See "design notes" in public.go and confidential.go + Token: token, + AuthParams: authParams, + cacheAccessor: noopCacheAccessor{}, + manager: storage.New(token), + pmanager: storage.NewPartitionedManager(token), + } + for _, o := range options { + if err = o(&client); err != nil { + break + } + } + return client, err + +} + +// AuthCodeURL creates a URL used to acquire an authorization code. +func (b Client) AuthCodeURL(ctx context.Context, clientID, redirectURI string, scopes []string, authParams authority.AuthParams) (string, error) { + endpoints, err := b.Token.ResolveEndpoints(ctx, authParams.AuthorityInfo, "") + if err != nil { + return "", err + } + + baseURL, err := url.Parse(endpoints.AuthorizationEndpoint) + if err != nil { + return "", err + } + + claims, err := authParams.MergeCapabilitiesAndClaims() + if err != nil { + return "", err + } + + v := url.Values{} + v.Add("client_id", clientID) + v.Add("response_type", "code") + v.Add("redirect_uri", redirectURI) + v.Add("scope", strings.Join(scopes, scopeSeparator)) + if authParams.State != "" { + v.Add("state", authParams.State) + } + if claims != "" { + v.Add("claims", claims) + } + if authParams.CodeChallenge != "" { + v.Add("code_challenge", authParams.CodeChallenge) + } + if authParams.CodeChallengeMethod != "" { + v.Add("code_challenge_method", authParams.CodeChallengeMethod) + } + if authParams.LoginHint != "" { + v.Add("login_hint", authParams.LoginHint) + } + if authParams.Prompt != "" { + v.Add("prompt", authParams.Prompt) + } + if authParams.DomainHint != "" { + v.Add("domain_hint", authParams.DomainHint) + } + // There were left over from an implementation that didn't use any of these. We may + // need to add them later, but as of now aren't needed. + /* + if p.ResponseMode != "" { + urlParams.Add("response_mode", p.ResponseMode) + } + */ + baseURL.RawQuery = v.Encode() + return baseURL.String(), nil +} + +func (b Client) AcquireTokenSilent(ctx context.Context, silent AcquireTokenSilentParameters) (ar AuthResult, err error) { + // when tenant == "", the caller didn't specify a tenant and WithTenant will use the client's configured tenant + tenant := silent.TenantID + authParams, err := b.AuthParams.WithTenant(tenant) + if err != nil { + return ar, err + } + authParams.Scopes = silent.Scopes + authParams.HomeAccountID = silent.Account.HomeAccountID + authParams.AuthorizationType = silent.AuthorizationType + authParams.Claims = silent.Claims + authParams.UserAssertion = silent.UserAssertion + + var storageTokenResponse storage.TokenResponse + if authParams.AuthorizationType == authority.ATOnBehalfOf { + if s, ok := b.pmanager.(cache.Serializer); ok { + suggestedCacheKey := authParams.CacheKey(silent.IsAppCache) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return ar, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + storageTokenResponse, err = b.pmanager.Read(ctx, authParams) + if err != nil { + return ar, err + } + } else { + if s, ok := b.manager.(cache.Serializer); ok { + suggestedCacheKey := authParams.CacheKey(silent.IsAppCache) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return ar, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + authParams.AuthorizationType = authority.ATRefreshToken + storageTokenResponse, err = b.manager.Read(ctx, authParams, silent.Account) + if err != nil { + return ar, err + } + } + + // ignore cached access tokens when given claims + if silent.Claims == "" { + ar, err = AuthResultFromStorage(storageTokenResponse) + if err == nil { + return ar, err + } + } + + // redeem a cached refresh token, if available + if reflect.ValueOf(storageTokenResponse.RefreshToken).IsZero() { + err = errors.New("no token found") + return ar, err + } + var cc *accesstokens.Credential + if silent.RequestType == accesstokens.ATConfidential { + cc = silent.Credential + } + + token, err := b.Token.Refresh(ctx, silent.RequestType, authParams, cc, storageTokenResponse.RefreshToken) + if err != nil { + return ar, err + } + + ar, err = b.AuthResultFromToken(ctx, authParams, token, true) + return ar, err +} + +func (b Client) AcquireTokenByAuthCode(ctx context.Context, authCodeParams AcquireTokenAuthCodeParameters) (AuthResult, error) { + authParams, err := b.AuthParams.WithTenant(authCodeParams.TenantID) + if err != nil { + return AuthResult{}, err + } + authParams.Claims = authCodeParams.Claims + authParams.Scopes = authCodeParams.Scopes + authParams.Redirecturi = authCodeParams.RedirectURI + authParams.AuthorizationType = authority.ATAuthCode + + var cc *accesstokens.Credential + if authCodeParams.AppType == accesstokens.ATConfidential { + cc = authCodeParams.Credential + authParams.IsConfidentialClient = true + } + + req, err := accesstokens.NewCodeChallengeRequest(authParams, authCodeParams.AppType, cc, authCodeParams.Code, authCodeParams.Challenge) + if err != nil { + return AuthResult{}, err + } + + token, err := b.Token.AuthCode(ctx, req) + if err != nil { + return AuthResult{}, err + } + + return b.AuthResultFromToken(ctx, authParams, token, true) +} + +// AcquireTokenOnBehalfOf acquires a security token for an app using middle tier apps access token. +func (b Client) AcquireTokenOnBehalfOf(ctx context.Context, onBehalfOfParams AcquireTokenOnBehalfOfParameters) (AuthResult, error) { + var ar AuthResult + silentParameters := AcquireTokenSilentParameters{ + Scopes: onBehalfOfParams.Scopes, + RequestType: accesstokens.ATConfidential, + Credential: onBehalfOfParams.Credential, + UserAssertion: onBehalfOfParams.UserAssertion, + AuthorizationType: authority.ATOnBehalfOf, + TenantID: onBehalfOfParams.TenantID, + Claims: onBehalfOfParams.Claims, + } + ar, err := b.AcquireTokenSilent(ctx, silentParameters) + if err == nil { + return ar, err + } + authParams, err := b.AuthParams.WithTenant(onBehalfOfParams.TenantID) + if err != nil { + return AuthResult{}, err + } + authParams.AuthorizationType = authority.ATOnBehalfOf + authParams.Claims = onBehalfOfParams.Claims + authParams.Scopes = onBehalfOfParams.Scopes + authParams.UserAssertion = onBehalfOfParams.UserAssertion + token, err := b.Token.OnBehalfOf(ctx, authParams, onBehalfOfParams.Credential) + if err == nil { + ar, err = b.AuthResultFromToken(ctx, authParams, token, true) + } + return ar, err +} + +func (b Client) AuthResultFromToken(ctx context.Context, authParams authority.AuthParams, token accesstokens.TokenResponse, cacheWrite bool) (ar AuthResult, err error) { + if !cacheWrite { + return NewAuthResult(token, shared.Account{}) + } + + var account shared.Account + if authParams.AuthorizationType == authority.ATOnBehalfOf { + if s, ok := b.pmanager.(cache.Serializer); ok { + suggestedCacheKey := token.CacheKey(authParams) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return ar, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + account, err = b.pmanager.Write(authParams, token) + if err != nil { + return ar, err + } + } else { + if s, ok := b.manager.(cache.Serializer); ok { + suggestedCacheKey := token.CacheKey(authParams) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return ar, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + account, err = b.manager.Write(authParams, token) + if err != nil { + return ar, err + } + } + ar, err = NewAuthResult(token, account) + return ar, err +} + +func (b Client) AllAccounts(ctx context.Context) (accts []shared.Account, err error) { + if s, ok := b.manager.(cache.Serializer); ok { + suggestedCacheKey := b.AuthParams.CacheKey(false) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return accts, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + + accts = b.manager.AllAccounts() + return accts, err +} + +func (b Client) Account(ctx context.Context, homeAccountID string) (acct shared.Account, err error) { + authParams := b.AuthParams // This is a copy, as we dont' have a pointer receiver and .AuthParams is not a pointer. + authParams.AuthorizationType = authority.AccountByID + authParams.HomeAccountID = homeAccountID + if s, ok := b.manager.(cache.Serializer); ok { + suggestedCacheKey := b.AuthParams.CacheKey(false) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return acct, err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + acct = b.manager.Account(homeAccountID) + return acct, err +} + +// RemoveAccount removes all the ATs, RTs and IDTs from the cache associated with this account. +func (b Client) RemoveAccount(ctx context.Context, account shared.Account) (err error) { + if s, ok := b.manager.(cache.Serializer); ok { + suggestedCacheKey := b.AuthParams.CacheKey(false) + err = b.cacheAccessor.Replace(ctx, s, cache.ReplaceHints{PartitionKey: suggestedCacheKey}) + if err != nil { + return err + } + defer func() { + err = b.export(ctx, s, suggestedCacheKey, err) + }() + } + b.manager.RemoveAccount(account, b.AuthParams.ClientID) + return err +} + +// export helps other methods defer exporting the cache after possibly updating its in-memory content. +// err is the error the calling method will return. If err isn't nil, export returns it without +// exporting the cache. +func (b Client) export(ctx context.Context, marshal cache.Marshaler, key string, err error) error { + if err != nil { + return err + } + return b.cacheAccessor.Export(ctx, marshal, cache.ExportHints{PartitionKey: key}) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/items.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/items.go new file mode 100644 index 00000000..548c2fae --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/items.go @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package storage + +import ( + "errors" + "fmt" + "reflect" + "strings" + "time" + + internalTime "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +// Contract is the JSON structure that is written to any storage medium when serializing +// the internal cache. This design is shared between MSAL versions in many languages. +// This cannot be changed without design that includes other SDKs. +type Contract struct { + AccessTokens map[string]AccessToken `json:"AccessToken,omitempty"` + RefreshTokens map[string]accesstokens.RefreshToken `json:"RefreshToken,omitempty"` + IDTokens map[string]IDToken `json:"IdToken,omitempty"` + Accounts map[string]shared.Account `json:"Account,omitempty"` + AppMetaData map[string]AppMetaData `json:"AppMetadata,omitempty"` + + AdditionalFields map[string]interface{} +} + +// Contract is the JSON structure that is written to any storage medium when serializing +// the internal cache. This design is shared between MSAL versions in many languages. +// This cannot be changed without design that includes other SDKs. +type InMemoryContract struct { + AccessTokensPartition map[string]map[string]AccessToken + RefreshTokensPartition map[string]map[string]accesstokens.RefreshToken + IDTokensPartition map[string]map[string]IDToken + AccountsPartition map[string]map[string]shared.Account + AppMetaData map[string]AppMetaData +} + +// NewContract is the constructor for Contract. +func NewInMemoryContract() *InMemoryContract { + return &InMemoryContract{ + AccessTokensPartition: map[string]map[string]AccessToken{}, + RefreshTokensPartition: map[string]map[string]accesstokens.RefreshToken{}, + IDTokensPartition: map[string]map[string]IDToken{}, + AccountsPartition: map[string]map[string]shared.Account{}, + AppMetaData: map[string]AppMetaData{}, + } +} + +// NewContract is the constructor for Contract. +func NewContract() *Contract { + return &Contract{ + AccessTokens: map[string]AccessToken{}, + RefreshTokens: map[string]accesstokens.RefreshToken{}, + IDTokens: map[string]IDToken{}, + Accounts: map[string]shared.Account{}, + AppMetaData: map[string]AppMetaData{}, + AdditionalFields: map[string]interface{}{}, + } +} + +// AccessToken is the JSON representation of a MSAL access token for encoding to storage. +type AccessToken struct { + HomeAccountID string `json:"home_account_id,omitempty"` + Environment string `json:"environment,omitempty"` + Realm string `json:"realm,omitempty"` + CredentialType string `json:"credential_type,omitempty"` + ClientID string `json:"client_id,omitempty"` + Secret string `json:"secret,omitempty"` + Scopes string `json:"target,omitempty"` + ExpiresOn internalTime.Unix `json:"expires_on,omitempty"` + ExtendedExpiresOn internalTime.Unix `json:"extended_expires_on,omitempty"` + CachedAt internalTime.Unix `json:"cached_at,omitempty"` + UserAssertionHash string `json:"user_assertion_hash,omitempty"` + + AdditionalFields map[string]interface{} +} + +// NewAccessToken is the constructor for AccessToken. +func NewAccessToken(homeID, env, realm, clientID string, cachedAt, expiresOn, extendedExpiresOn time.Time, scopes, token string) AccessToken { + return AccessToken{ + HomeAccountID: homeID, + Environment: env, + Realm: realm, + CredentialType: "AccessToken", + ClientID: clientID, + Secret: token, + Scopes: scopes, + CachedAt: internalTime.Unix{T: cachedAt.UTC()}, + ExpiresOn: internalTime.Unix{T: expiresOn.UTC()}, + ExtendedExpiresOn: internalTime.Unix{T: extendedExpiresOn.UTC()}, + } +} + +// Key outputs the key that can be used to uniquely look up this entry in a map. +func (a AccessToken) Key() string { + return strings.Join( + []string{a.HomeAccountID, a.Environment, a.CredentialType, a.ClientID, a.Realm, a.Scopes}, + shared.CacheKeySeparator, + ) +} + +// FakeValidate enables tests to fake access token validation +var FakeValidate func(AccessToken) error + +// Validate validates that this AccessToken can be used. +func (a AccessToken) Validate() error { + if FakeValidate != nil { + return FakeValidate(a) + } + if a.CachedAt.T.After(time.Now()) { + return errors.New("access token isn't valid, it was cached at a future time") + } + if a.ExpiresOn.T.Before(time.Now().Add(5 * time.Minute)) { + return fmt.Errorf("access token is expired") + } + if a.CachedAt.T.IsZero() { + return fmt.Errorf("access token does not have CachedAt set") + } + return nil +} + +// IDToken is the JSON representation of an MSAL id token for encoding to storage. +type IDToken struct { + HomeAccountID string `json:"home_account_id,omitempty"` + Environment string `json:"environment,omitempty"` + Realm string `json:"realm,omitempty"` + CredentialType string `json:"credential_type,omitempty"` + ClientID string `json:"client_id,omitempty"` + Secret string `json:"secret,omitempty"` + UserAssertionHash string `json:"user_assertion_hash,omitempty"` + AdditionalFields map[string]interface{} +} + +// IsZero determines if IDToken is the zero value. +func (i IDToken) IsZero() bool { + v := reflect.ValueOf(i) + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + if !field.IsZero() { + switch field.Kind() { + case reflect.Map, reflect.Slice: + if field.Len() == 0 { + continue + } + } + return false + } + } + return true +} + +// NewIDToken is the constructor for IDToken. +func NewIDToken(homeID, env, realm, clientID, idToken string) IDToken { + return IDToken{ + HomeAccountID: homeID, + Environment: env, + Realm: realm, + CredentialType: "IDToken", + ClientID: clientID, + Secret: idToken, + } +} + +// Key outputs the key that can be used to uniquely look up this entry in a map. +func (id IDToken) Key() string { + return strings.Join( + []string{id.HomeAccountID, id.Environment, id.CredentialType, id.ClientID, id.Realm}, + shared.CacheKeySeparator, + ) +} + +// AppMetaData is the JSON representation of application metadata for encoding to storage. +type AppMetaData struct { + FamilyID string `json:"family_id,omitempty"` + ClientID string `json:"client_id,omitempty"` + Environment string `json:"environment,omitempty"` + + AdditionalFields map[string]interface{} +} + +// NewAppMetaData is the constructor for AppMetaData. +func NewAppMetaData(familyID, clientID, environment string) AppMetaData { + return AppMetaData{ + FamilyID: familyID, + ClientID: clientID, + Environment: environment, + } +} + +// Key outputs the key that can be used to uniquely look up this entry in a map. +func (a AppMetaData) Key() string { + return strings.Join( + []string{"AppMetaData", a.Environment, a.ClientID}, + shared.CacheKeySeparator, + ) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/partitioned_storage.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/partitioned_storage.go new file mode 100644 index 00000000..87d7d797 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/partitioned_storage.go @@ -0,0 +1,436 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package storage + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +// PartitionedManager is a partitioned in-memory cache of access tokens, accounts and meta data. +type PartitionedManager struct { + contract *InMemoryContract + contractMu sync.RWMutex + requests aadInstanceDiscoveryer // *oauth.Token + + aadCacheMu sync.RWMutex + aadCache map[string]authority.InstanceDiscoveryMetadata +} + +// NewPartitionedManager is the constructor for PartitionedManager. +func NewPartitionedManager(requests *oauth.Client) *PartitionedManager { + m := &PartitionedManager{requests: requests, aadCache: make(map[string]authority.InstanceDiscoveryMetadata)} + m.contract = NewInMemoryContract() + return m +} + +// Read reads a storage token from the cache if it exists. +func (m *PartitionedManager) Read(ctx context.Context, authParameters authority.AuthParams) (TokenResponse, error) { + tr := TokenResponse{} + realm := authParameters.AuthorityInfo.Tenant + clientID := authParameters.ClientID + scopes := authParameters.Scopes + + // fetch metadata if instanceDiscovery is enabled + aliases := []string{authParameters.AuthorityInfo.Host} + if !authParameters.AuthorityInfo.InstanceDiscoveryDisabled { + metadata, err := m.getMetadataEntry(ctx, authParameters.AuthorityInfo) + if err != nil { + return TokenResponse{}, err + } + aliases = metadata.Aliases + } + + userAssertionHash := authParameters.AssertionHash() + partitionKeyFromRequest := userAssertionHash + + // errors returned by read* methods indicate a cache miss and are therefore non-fatal. We continue populating + // TokenResponse fields so that e.g. lack of an ID token doesn't prevent the caller from receiving a refresh token. + accessToken, err := m.readAccessToken(aliases, realm, clientID, userAssertionHash, scopes, partitionKeyFromRequest) + if err == nil { + tr.AccessToken = accessToken + } + idToken, err := m.readIDToken(aliases, realm, clientID, userAssertionHash, getPartitionKeyIDTokenRead(accessToken)) + if err == nil { + tr.IDToken = idToken + } + + if appMetadata, err := m.readAppMetaData(aliases, clientID); err == nil { + // we need the family ID to identify the correct refresh token, if any + familyID := appMetadata.FamilyID + refreshToken, err := m.readRefreshToken(aliases, familyID, clientID, userAssertionHash, partitionKeyFromRequest) + if err == nil { + tr.RefreshToken = refreshToken + } + } + + account, err := m.readAccount(aliases, realm, userAssertionHash, idToken.HomeAccountID) + if err == nil { + tr.Account = account + } + return tr, nil +} + +// Write writes a token response to the cache and returns the account information the token is stored with. +func (m *PartitionedManager) Write(authParameters authority.AuthParams, tokenResponse accesstokens.TokenResponse) (shared.Account, error) { + authParameters.HomeAccountID = tokenResponse.ClientInfo.HomeAccountID() + homeAccountID := authParameters.HomeAccountID + environment := authParameters.AuthorityInfo.Host + realm := authParameters.AuthorityInfo.Tenant + clientID := authParameters.ClientID + target := strings.Join(tokenResponse.GrantedScopes.Slice, scopeSeparator) + userAssertionHash := authParameters.AssertionHash() + cachedAt := time.Now() + + var account shared.Account + + if len(tokenResponse.RefreshToken) > 0 { + refreshToken := accesstokens.NewRefreshToken(homeAccountID, environment, clientID, tokenResponse.RefreshToken, tokenResponse.FamilyID) + if authParameters.AuthorizationType == authority.ATOnBehalfOf { + refreshToken.UserAssertionHash = userAssertionHash + } + if err := m.writeRefreshToken(refreshToken, getPartitionKeyRefreshToken(refreshToken)); err != nil { + return account, err + } + } + + if len(tokenResponse.AccessToken) > 0 { + accessToken := NewAccessToken( + homeAccountID, + environment, + realm, + clientID, + cachedAt, + tokenResponse.ExpiresOn.T, + tokenResponse.ExtExpiresOn.T, + target, + tokenResponse.AccessToken, + ) + if authParameters.AuthorizationType == authority.ATOnBehalfOf { + accessToken.UserAssertionHash = userAssertionHash // get Hash method on this + } + + // Since we have a valid access token, cache it before moving on. + if err := accessToken.Validate(); err == nil { + if err := m.writeAccessToken(accessToken, getPartitionKeyAccessToken(accessToken)); err != nil { + return account, err + } + } else { + return shared.Account{}, err + } + } + + idTokenJwt := tokenResponse.IDToken + if !idTokenJwt.IsZero() { + idToken := NewIDToken(homeAccountID, environment, realm, clientID, idTokenJwt.RawToken) + if authParameters.AuthorizationType == authority.ATOnBehalfOf { + idToken.UserAssertionHash = userAssertionHash + } + if err := m.writeIDToken(idToken, getPartitionKeyIDToken(idToken)); err != nil { + return shared.Account{}, err + } + + localAccountID := idTokenJwt.LocalAccountID() + authorityType := authParameters.AuthorityInfo.AuthorityType + + preferredUsername := idTokenJwt.UPN + if idTokenJwt.PreferredUsername != "" { + preferredUsername = idTokenJwt.PreferredUsername + } + + account = shared.NewAccount( + homeAccountID, + environment, + realm, + localAccountID, + authorityType, + preferredUsername, + ) + if authParameters.AuthorizationType == authority.ATOnBehalfOf { + account.UserAssertionHash = userAssertionHash + } + if err := m.writeAccount(account, getPartitionKeyAccount(account)); err != nil { + return shared.Account{}, err + } + } + + AppMetaData := NewAppMetaData(tokenResponse.FamilyID, clientID, environment) + + if err := m.writeAppMetaData(AppMetaData); err != nil { + return shared.Account{}, err + } + return account, nil +} + +func (m *PartitionedManager) getMetadataEntry(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + md, err := m.aadMetadataFromCache(ctx, authorityInfo) + if err != nil { + // not in the cache, retrieve it + md, err = m.aadMetadata(ctx, authorityInfo) + } + return md, err +} + +func (m *PartitionedManager) aadMetadataFromCache(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + m.aadCacheMu.RLock() + defer m.aadCacheMu.RUnlock() + metadata, ok := m.aadCache[authorityInfo.Host] + if ok { + return metadata, nil + } + return metadata, errors.New("not found") +} + +func (m *PartitionedManager) aadMetadata(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + discoveryResponse, err := m.requests.AADInstanceDiscovery(ctx, authorityInfo) + if err != nil { + return authority.InstanceDiscoveryMetadata{}, err + } + + m.aadCacheMu.Lock() + defer m.aadCacheMu.Unlock() + + for _, metadataEntry := range discoveryResponse.Metadata { + for _, aliasedAuthority := range metadataEntry.Aliases { + m.aadCache[aliasedAuthority] = metadataEntry + } + } + if _, ok := m.aadCache[authorityInfo.Host]; !ok { + m.aadCache[authorityInfo.Host] = authority.InstanceDiscoveryMetadata{ + PreferredNetwork: authorityInfo.Host, + PreferredCache: authorityInfo.Host, + } + } + return m.aadCache[authorityInfo.Host], nil +} + +func (m *PartitionedManager) readAccessToken(envAliases []string, realm, clientID, userAssertionHash string, scopes []string, partitionKey string) (AccessToken, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + if accessTokens, ok := m.contract.AccessTokensPartition[partitionKey]; ok { + // TODO: linear search (over a map no less) is slow for a large number (thousands) of tokens. + // this shows up as the dominating node in a profile. for real-world scenarios this likely isn't + // an issue, however if it does become a problem then we know where to look. + for _, at := range accessTokens { + if at.Realm == realm && at.ClientID == clientID && at.UserAssertionHash == userAssertionHash { + if checkAlias(at.Environment, envAliases) { + if isMatchingScopes(scopes, at.Scopes) { + return at, nil + } + } + } + } + } + return AccessToken{}, fmt.Errorf("access token not found") +} + +func (m *PartitionedManager) writeAccessToken(accessToken AccessToken, partitionKey string) error { + m.contractMu.Lock() + defer m.contractMu.Unlock() + key := accessToken.Key() + if m.contract.AccessTokensPartition[partitionKey] == nil { + m.contract.AccessTokensPartition[partitionKey] = make(map[string]AccessToken) + } + m.contract.AccessTokensPartition[partitionKey][key] = accessToken + return nil +} + +func matchFamilyRefreshTokenObo(rt accesstokens.RefreshToken, userAssertionHash string, envAliases []string) bool { + return rt.UserAssertionHash == userAssertionHash && checkAlias(rt.Environment, envAliases) && rt.FamilyID != "" +} + +func matchClientIDRefreshTokenObo(rt accesstokens.RefreshToken, userAssertionHash string, envAliases []string, clientID string) bool { + return rt.UserAssertionHash == userAssertionHash && checkAlias(rt.Environment, envAliases) && rt.ClientID == clientID +} + +func (m *PartitionedManager) readRefreshToken(envAliases []string, familyID, clientID, userAssertionHash, partitionKey string) (accesstokens.RefreshToken, error) { + byFamily := func(rt accesstokens.RefreshToken) bool { + return matchFamilyRefreshTokenObo(rt, userAssertionHash, envAliases) + } + byClient := func(rt accesstokens.RefreshToken) bool { + return matchClientIDRefreshTokenObo(rt, userAssertionHash, envAliases, clientID) + } + + var matchers []func(rt accesstokens.RefreshToken) bool + if familyID == "" { + matchers = []func(rt accesstokens.RefreshToken) bool{ + byClient, byFamily, + } + } else { + matchers = []func(rt accesstokens.RefreshToken) bool{ + byFamily, byClient, + } + } + + // TODO(keegan): All the tests here pass, but Bogdan says this is + // more complicated. I'm opening an issue for this to have him + // review the tests and suggest tests that would break this so + // we can re-write against good tests. His comments as follow: + // The algorithm is a bit more complex than this, I assume there are some tests covering everything. I would keep the order as is. + // The algorithm is: + // If application is NOT part of the family, search by client_ID + // If app is part of the family or if we DO NOT KNOW if it's part of the family, search by family ID, then by client_id (we will know if an app is part of the family after the first token response). + // https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/311fe8b16e7c293462806f397e189a6aa1159769/src/client/Microsoft.Identity.Client/Internal/Requests/Silent/CacheSilentStrategy.cs#L95 + m.contractMu.RLock() + defer m.contractMu.RUnlock() + for _, matcher := range matchers { + for _, rt := range m.contract.RefreshTokensPartition[partitionKey] { + if matcher(rt) { + return rt, nil + } + } + } + + return accesstokens.RefreshToken{}, fmt.Errorf("refresh token not found") +} + +func (m *PartitionedManager) writeRefreshToken(refreshToken accesstokens.RefreshToken, partitionKey string) error { + m.contractMu.Lock() + defer m.contractMu.Unlock() + key := refreshToken.Key() + if m.contract.AccessTokensPartition[partitionKey] == nil { + m.contract.RefreshTokensPartition[partitionKey] = make(map[string]accesstokens.RefreshToken) + } + m.contract.RefreshTokensPartition[partitionKey][key] = refreshToken + return nil +} + +func (m *PartitionedManager) readIDToken(envAliases []string, realm, clientID, userAssertionHash, partitionKey string) (IDToken, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + for _, idt := range m.contract.IDTokensPartition[partitionKey] { + if idt.Realm == realm && idt.ClientID == clientID && idt.UserAssertionHash == userAssertionHash { + if checkAlias(idt.Environment, envAliases) { + return idt, nil + } + } + } + return IDToken{}, fmt.Errorf("token not found") +} + +func (m *PartitionedManager) writeIDToken(idToken IDToken, partitionKey string) error { + key := idToken.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + if m.contract.IDTokensPartition[partitionKey] == nil { + m.contract.IDTokensPartition[partitionKey] = make(map[string]IDToken) + } + m.contract.IDTokensPartition[partitionKey][key] = idToken + return nil +} + +func (m *PartitionedManager) readAccount(envAliases []string, realm, UserAssertionHash, partitionKey string) (shared.Account, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + // You might ask why, if cache.Accounts is a map, we would loop through all of these instead of using a key. + // We only use a map because the storage contract shared between all language implementations says use a map. + // We can't change that. The other is because the keys are made using a specific "env", but here we are allowing + // a match in multiple envs (envAlias). That means we either need to hash each possible keyand do the lookup + // or just statically check. Since the design is to have a storage.Manager per user, the amount of keys stored + // is really low (say 2). Each hash is more expensive than the entire iteration. + for _, acc := range m.contract.AccountsPartition[partitionKey] { + if checkAlias(acc.Environment, envAliases) && acc.UserAssertionHash == UserAssertionHash && acc.Realm == realm { + return acc, nil + } + } + return shared.Account{}, fmt.Errorf("account not found") +} + +func (m *PartitionedManager) writeAccount(account shared.Account, partitionKey string) error { + key := account.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + if m.contract.AccountsPartition[partitionKey] == nil { + m.contract.AccountsPartition[partitionKey] = make(map[string]shared.Account) + } + m.contract.AccountsPartition[partitionKey][key] = account + return nil +} + +func (m *PartitionedManager) readAppMetaData(envAliases []string, clientID string) (AppMetaData, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + for _, app := range m.contract.AppMetaData { + if checkAlias(app.Environment, envAliases) && app.ClientID == clientID { + return app, nil + } + } + return AppMetaData{}, fmt.Errorf("not found") +} + +func (m *PartitionedManager) writeAppMetaData(AppMetaData AppMetaData) error { + key := AppMetaData.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract.AppMetaData[key] = AppMetaData + return nil +} + +// update updates the internal cache object. This is for use in tests, other uses are not +// supported. +func (m *PartitionedManager) update(cache *InMemoryContract) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract = cache +} + +// Marshal implements cache.Marshaler. +func (m *PartitionedManager) Marshal() ([]byte, error) { + return json.Marshal(m.contract) +} + +// Unmarshal implements cache.Unmarshaler. +func (m *PartitionedManager) Unmarshal(b []byte) error { + m.contractMu.Lock() + defer m.contractMu.Unlock() + + contract := NewInMemoryContract() + + err := json.Unmarshal(b, contract) + if err != nil { + return err + } + + m.contract = contract + + return nil +} + +func getPartitionKeyAccessToken(item AccessToken) string { + if item.UserAssertionHash != "" { + return item.UserAssertionHash + } + return item.HomeAccountID +} + +func getPartitionKeyRefreshToken(item accesstokens.RefreshToken) string { + if item.UserAssertionHash != "" { + return item.UserAssertionHash + } + return item.HomeAccountID +} + +func getPartitionKeyIDToken(item IDToken) string { + return item.HomeAccountID +} + +func getPartitionKeyAccount(item shared.Account) string { + return item.HomeAccountID +} + +func getPartitionKeyIDTokenRead(item AccessToken) string { + return item.HomeAccountID +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/storage.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/storage.go new file mode 100644 index 00000000..1c0471bb --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/storage.go @@ -0,0 +1,514 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package storage holds all cached token information for MSAL. This storage can be +// augmented with third-party extensions to provide persistent storage. In that case, +// reads and writes in upper packages will call Marshal() to take the entire in-memory +// representation and write it to storage and Unmarshal() to update the entire in-memory +// storage with what was in the persistent storage. The persistent storage can only be +// accessed in this way because multiple MSAL clients written in multiple languages can +// access the same storage and must adhere to the same method that was defined +// previously. +package storage + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +// aadInstanceDiscoveryer allows faking in tests. +// It is implemented in production by ops/authority.Client +type aadInstanceDiscoveryer interface { + AADInstanceDiscovery(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryResponse, error) +} + +// TokenResponse mimics a token response that was pulled from the cache. +type TokenResponse struct { + RefreshToken accesstokens.RefreshToken + IDToken IDToken // *Credential + AccessToken AccessToken + Account shared.Account +} + +// Manager is an in-memory cache of access tokens, accounts and meta data. This data is +// updated on read/write calls. Unmarshal() replaces all data stored here with whatever +// was given to it on each call. +type Manager struct { + contract *Contract + contractMu sync.RWMutex + requests aadInstanceDiscoveryer // *oauth.Token + + aadCacheMu sync.RWMutex + aadCache map[string]authority.InstanceDiscoveryMetadata +} + +// New is the constructor for Manager. +func New(requests *oauth.Client) *Manager { + m := &Manager{requests: requests, aadCache: make(map[string]authority.InstanceDiscoveryMetadata)} + m.contract = NewContract() + return m +} + +func checkAlias(alias string, aliases []string) bool { + for _, v := range aliases { + if alias == v { + return true + } + } + return false +} + +func isMatchingScopes(scopesOne []string, scopesTwo string) bool { + newScopesTwo := strings.Split(scopesTwo, scopeSeparator) + scopeCounter := 0 + for _, scope := range scopesOne { + for _, otherScope := range newScopesTwo { + if strings.EqualFold(scope, otherScope) { + scopeCounter++ + continue + } + } + } + return scopeCounter == len(scopesOne) +} + +// Read reads a storage token from the cache if it exists. +func (m *Manager) Read(ctx context.Context, authParameters authority.AuthParams, account shared.Account) (TokenResponse, error) { + tr := TokenResponse{} + homeAccountID := authParameters.HomeAccountID + realm := authParameters.AuthorityInfo.Tenant + clientID := authParameters.ClientID + scopes := authParameters.Scopes + + // fetch metadata if instanceDiscovery is enabled + aliases := []string{authParameters.AuthorityInfo.Host} + if !authParameters.AuthorityInfo.InstanceDiscoveryDisabled { + metadata, err := m.getMetadataEntry(ctx, authParameters.AuthorityInfo) + if err != nil { + return TokenResponse{}, err + } + aliases = metadata.Aliases + } + + accessToken := m.readAccessToken(homeAccountID, aliases, realm, clientID, scopes) + tr.AccessToken = accessToken + + if account.IsZero() { + return tr, nil + } + // errors returned by read* methods indicate a cache miss and are therefore non-fatal. We continue populating + // TokenResponse fields so that e.g. lack of an ID token doesn't prevent the caller from receiving a refresh token. + idToken, err := m.readIDToken(homeAccountID, aliases, realm, clientID) + if err == nil { + tr.IDToken = idToken + } + + if appMetadata, err := m.readAppMetaData(aliases, clientID); err == nil { + // we need the family ID to identify the correct refresh token, if any + familyID := appMetadata.FamilyID + refreshToken, err := m.readRefreshToken(homeAccountID, aliases, familyID, clientID) + if err == nil { + tr.RefreshToken = refreshToken + } + } + + account, err = m.readAccount(homeAccountID, aliases, realm) + if err == nil { + tr.Account = account + } + return tr, nil +} + +const scopeSeparator = " " + +// Write writes a token response to the cache and returns the account information the token is stored with. +func (m *Manager) Write(authParameters authority.AuthParams, tokenResponse accesstokens.TokenResponse) (shared.Account, error) { + authParameters.HomeAccountID = tokenResponse.ClientInfo.HomeAccountID() + homeAccountID := authParameters.HomeAccountID + environment := authParameters.AuthorityInfo.Host + realm := authParameters.AuthorityInfo.Tenant + clientID := authParameters.ClientID + target := strings.Join(tokenResponse.GrantedScopes.Slice, scopeSeparator) + cachedAt := time.Now() + + var account shared.Account + + if len(tokenResponse.RefreshToken) > 0 { + refreshToken := accesstokens.NewRefreshToken(homeAccountID, environment, clientID, tokenResponse.RefreshToken, tokenResponse.FamilyID) + if err := m.writeRefreshToken(refreshToken); err != nil { + return account, err + } + } + + if len(tokenResponse.AccessToken) > 0 { + accessToken := NewAccessToken( + homeAccountID, + environment, + realm, + clientID, + cachedAt, + tokenResponse.ExpiresOn.T, + tokenResponse.ExtExpiresOn.T, + target, + tokenResponse.AccessToken, + ) + + // Since we have a valid access token, cache it before moving on. + if err := accessToken.Validate(); err == nil { + if err := m.writeAccessToken(accessToken); err != nil { + return account, err + } + } + } + + idTokenJwt := tokenResponse.IDToken + if !idTokenJwt.IsZero() { + idToken := NewIDToken(homeAccountID, environment, realm, clientID, idTokenJwt.RawToken) + if err := m.writeIDToken(idToken); err != nil { + return shared.Account{}, err + } + + localAccountID := idTokenJwt.LocalAccountID() + authorityType := authParameters.AuthorityInfo.AuthorityType + + preferredUsername := idTokenJwt.UPN + if idTokenJwt.PreferredUsername != "" { + preferredUsername = idTokenJwt.PreferredUsername + } + + account = shared.NewAccount( + homeAccountID, + environment, + realm, + localAccountID, + authorityType, + preferredUsername, + ) + if err := m.writeAccount(account); err != nil { + return shared.Account{}, err + } + } + + AppMetaData := NewAppMetaData(tokenResponse.FamilyID, clientID, environment) + + if err := m.writeAppMetaData(AppMetaData); err != nil { + return shared.Account{}, err + } + return account, nil +} + +func (m *Manager) getMetadataEntry(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + md, err := m.aadMetadataFromCache(ctx, authorityInfo) + if err != nil { + // not in the cache, retrieve it + md, err = m.aadMetadata(ctx, authorityInfo) + } + return md, err +} + +func (m *Manager) aadMetadataFromCache(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + m.aadCacheMu.RLock() + defer m.aadCacheMu.RUnlock() + metadata, ok := m.aadCache[authorityInfo.Host] + if ok { + return metadata, nil + } + return metadata, errors.New("not found") +} + +func (m *Manager) aadMetadata(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryMetadata, error) { + m.aadCacheMu.Lock() + defer m.aadCacheMu.Unlock() + discoveryResponse, err := m.requests.AADInstanceDiscovery(ctx, authorityInfo) + if err != nil { + return authority.InstanceDiscoveryMetadata{}, err + } + + for _, metadataEntry := range discoveryResponse.Metadata { + for _, aliasedAuthority := range metadataEntry.Aliases { + m.aadCache[aliasedAuthority] = metadataEntry + } + } + if _, ok := m.aadCache[authorityInfo.Host]; !ok { + m.aadCache[authorityInfo.Host] = authority.InstanceDiscoveryMetadata{ + PreferredNetwork: authorityInfo.Host, + PreferredCache: authorityInfo.Host, + } + } + return m.aadCache[authorityInfo.Host], nil +} + +func (m *Manager) readAccessToken(homeID string, envAliases []string, realm, clientID string, scopes []string) AccessToken { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + // TODO: linear search (over a map no less) is slow for a large number (thousands) of tokens. + // this shows up as the dominating node in a profile. for real-world scenarios this likely isn't + // an issue, however if it does become a problem then we know where to look. + for _, at := range m.contract.AccessTokens { + if at.HomeAccountID == homeID && at.Realm == realm && at.ClientID == clientID { + if checkAlias(at.Environment, envAliases) { + if isMatchingScopes(scopes, at.Scopes) { + return at + } + } + } + } + return AccessToken{} +} + +func (m *Manager) writeAccessToken(accessToken AccessToken) error { + m.contractMu.Lock() + defer m.contractMu.Unlock() + key := accessToken.Key() + m.contract.AccessTokens[key] = accessToken + return nil +} + +func (m *Manager) readRefreshToken(homeID string, envAliases []string, familyID, clientID string) (accesstokens.RefreshToken, error) { + byFamily := func(rt accesstokens.RefreshToken) bool { + return matchFamilyRefreshToken(rt, homeID, envAliases) + } + byClient := func(rt accesstokens.RefreshToken) bool { + return matchClientIDRefreshToken(rt, homeID, envAliases, clientID) + } + + var matchers []func(rt accesstokens.RefreshToken) bool + if familyID == "" { + matchers = []func(rt accesstokens.RefreshToken) bool{ + byClient, byFamily, + } + } else { + matchers = []func(rt accesstokens.RefreshToken) bool{ + byFamily, byClient, + } + } + + // TODO(keegan): All the tests here pass, but Bogdan says this is + // more complicated. I'm opening an issue for this to have him + // review the tests and suggest tests that would break this so + // we can re-write against good tests. His comments as follow: + // The algorithm is a bit more complex than this, I assume there are some tests covering everything. I would keep the order as is. + // The algorithm is: + // If application is NOT part of the family, search by client_ID + // If app is part of the family or if we DO NOT KNOW if it's part of the family, search by family ID, then by client_id (we will know if an app is part of the family after the first token response). + // https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/blob/311fe8b16e7c293462806f397e189a6aa1159769/src/client/Microsoft.Identity.Client/Internal/Requests/Silent/CacheSilentStrategy.cs#L95 + m.contractMu.RLock() + defer m.contractMu.RUnlock() + for _, matcher := range matchers { + for _, rt := range m.contract.RefreshTokens { + if matcher(rt) { + return rt, nil + } + } + } + + return accesstokens.RefreshToken{}, fmt.Errorf("refresh token not found") +} + +func matchFamilyRefreshToken(rt accesstokens.RefreshToken, homeID string, envAliases []string) bool { + return rt.HomeAccountID == homeID && checkAlias(rt.Environment, envAliases) && rt.FamilyID != "" +} + +func matchClientIDRefreshToken(rt accesstokens.RefreshToken, homeID string, envAliases []string, clientID string) bool { + return rt.HomeAccountID == homeID && checkAlias(rt.Environment, envAliases) && rt.ClientID == clientID +} + +func (m *Manager) writeRefreshToken(refreshToken accesstokens.RefreshToken) error { + key := refreshToken.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract.RefreshTokens[key] = refreshToken + return nil +} + +func (m *Manager) readIDToken(homeID string, envAliases []string, realm, clientID string) (IDToken, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + for _, idt := range m.contract.IDTokens { + if idt.HomeAccountID == homeID && idt.Realm == realm && idt.ClientID == clientID { + if checkAlias(idt.Environment, envAliases) { + return idt, nil + } + } + } + return IDToken{}, fmt.Errorf("token not found") +} + +func (m *Manager) writeIDToken(idToken IDToken) error { + key := idToken.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract.IDTokens[key] = idToken + return nil +} + +func (m *Manager) AllAccounts() []shared.Account { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + var accounts []shared.Account + for _, v := range m.contract.Accounts { + accounts = append(accounts, v) + } + + return accounts +} + +func (m *Manager) Account(homeAccountID string) shared.Account { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + for _, v := range m.contract.Accounts { + if v.HomeAccountID == homeAccountID { + return v + } + } + + return shared.Account{} +} + +func (m *Manager) readAccount(homeAccountID string, envAliases []string, realm string) (shared.Account, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + // You might ask why, if cache.Accounts is a map, we would loop through all of these instead of using a key. + // We only use a map because the storage contract shared between all language implementations says use a map. + // We can't change that. The other is because the keys are made using a specific "env", but here we are allowing + // a match in multiple envs (envAlias). That means we either need to hash each possible keyand do the lookup + // or just statically check. Since the design is to have a storage.Manager per user, the amount of keys stored + // is really low (say 2). Each hash is more expensive than the entire iteration. + for _, acc := range m.contract.Accounts { + if acc.HomeAccountID == homeAccountID && checkAlias(acc.Environment, envAliases) && acc.Realm == realm { + return acc, nil + } + } + return shared.Account{}, fmt.Errorf("account not found") +} + +func (m *Manager) writeAccount(account shared.Account) error { + key := account.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract.Accounts[key] = account + return nil +} + +func (m *Manager) readAppMetaData(envAliases []string, clientID string) (AppMetaData, error) { + m.contractMu.RLock() + defer m.contractMu.RUnlock() + + for _, app := range m.contract.AppMetaData { + if checkAlias(app.Environment, envAliases) && app.ClientID == clientID { + return app, nil + } + } + return AppMetaData{}, fmt.Errorf("not found") +} + +func (m *Manager) writeAppMetaData(AppMetaData AppMetaData) error { + key := AppMetaData.Key() + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract.AppMetaData[key] = AppMetaData + return nil +} + +// RemoveAccount removes all the associated ATs, RTs and IDTs from the cache associated with this account. +func (m *Manager) RemoveAccount(account shared.Account, clientID string) { + m.removeRefreshTokens(account.HomeAccountID, account.Environment, clientID) + m.removeAccessTokens(account.HomeAccountID, account.Environment) + m.removeIDTokens(account.HomeAccountID, account.Environment) + m.removeAccounts(account.HomeAccountID, account.Environment) +} + +func (m *Manager) removeRefreshTokens(homeID string, env string, clientID string) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + for key, rt := range m.contract.RefreshTokens { + // Check for RTs associated with the account. + if rt.HomeAccountID == homeID && rt.Environment == env { + // Do RT's app ownership check as a precaution, in case family apps + // and 3rd-party apps share same token cache, although they should not. + if rt.ClientID == clientID || rt.FamilyID != "" { + delete(m.contract.RefreshTokens, key) + } + } + } +} + +func (m *Manager) removeAccessTokens(homeID string, env string) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + for key, at := range m.contract.AccessTokens { + // Remove AT's associated with the account + if at.HomeAccountID == homeID && at.Environment == env { + // # To avoid the complexity of locating sibling family app's AT, we skip AT's app ownership check. + // It means ATs for other apps will also be removed, it is OK because: + // non-family apps are not supposed to share token cache to begin with; + // Even if it happens, we keep other app's RT already, so SSO still works. + delete(m.contract.AccessTokens, key) + } + } +} + +func (m *Manager) removeIDTokens(homeID string, env string) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + for key, idt := range m.contract.IDTokens { + // Remove ID tokens associated with the account. + if idt.HomeAccountID == homeID && idt.Environment == env { + delete(m.contract.IDTokens, key) + } + } +} + +func (m *Manager) removeAccounts(homeID string, env string) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + for key, acc := range m.contract.Accounts { + // Remove the specified account. + if acc.HomeAccountID == homeID && acc.Environment == env { + delete(m.contract.Accounts, key) + } + } +} + +// update updates the internal cache object. This is for use in tests, other uses are not +// supported. +func (m *Manager) update(cache *Contract) { + m.contractMu.Lock() + defer m.contractMu.Unlock() + m.contract = cache +} + +// Marshal implements cache.Marshaler. +func (m *Manager) Marshal() ([]byte, error) { + return json.Marshal(m.contract) +} + +// Unmarshal implements cache.Unmarshaler. +func (m *Manager) Unmarshal(b []byte) error { + m.contractMu.Lock() + defer m.contractMu.Unlock() + + contract := NewContract() + + err := json.Unmarshal(b, contract) + if err != nil { + return err + } + + m.contract = contract + + return nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/test_serialized_cache.json b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/test_serialized_cache.json new file mode 100644 index 00000000..1d818192 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage/test_serialized_cache.json @@ -0,0 +1,56 @@ +{ + "Account": { + "uid.utid-login.windows.net-contoso": { + "username": "John Doe", + "local_account_id": "object1234", + "realm": "contoso", + "environment": "login.windows.net", + "home_account_id": "uid.utid", + "authority_type": "MSSTS" + } + }, + "RefreshToken": { + "uid.utid-login.windows.net-refreshtoken-my_client_id--s2 s1 s3": { + "target": "s2 s1 s3", + "environment": "login.windows.net", + "credential_type": "RefreshToken", + "secret": "a refresh token", + "client_id": "my_client_id", + "home_account_id": "uid.utid" + } + }, + "AccessToken": { + "an-entry": { + "foo": "bar" + }, + "uid.utid-login.windows.net-accesstoken-my_client_id-contoso-s2 s1 s3": { + "environment": "login.windows.net", + "credential_type": "AccessToken", + "secret": "an access token", + "realm": "contoso", + "target": "s2 s1 s3", + "client_id": "my_client_id", + "cached_at": "1000", + "home_account_id": "uid.utid", + "extended_expires_on": "4600", + "expires_on": "4600" + } + }, + "IdToken": { + "uid.utid-login.windows.net-idtoken-my_client_id-contoso-": { + "realm": "contoso", + "environment": "login.windows.net", + "credential_type": "IdToken", + "secret": "header.eyJvaWQiOiAib2JqZWN0MTIzNCIsICJwcmVmZXJyZWRfdXNlcm5hbWUiOiAiSm9obiBEb2UiLCAic3ViIjogInN1YiJ9.signature", + "client_id": "my_client_id", + "home_account_id": "uid.utid" + } + }, + "unknownEntity": {"field1":"1","field2":"whats"}, + "AppMetadata": { + "AppMetadata-login.windows.net-my_client_id": { + "environment": "login.windows.net", + "client_id": "my_client_id" + } + } + } \ No newline at end of file diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported/exported.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported/exported.go new file mode 100644 index 00000000..7b673e3f --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported/exported.go @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// package exported contains internal types that are re-exported from a public package +package exported + +// AssertionRequestOptions has information required to generate a client assertion +type AssertionRequestOptions struct { + // ClientID identifies the application for which an assertion is requested. Used as the assertion's "iss" and "sub" claims. + ClientID string + + // TokenEndpoint is the intended token endpoint. Used as the assertion's "aud" claim. + TokenEndpoint string +} + +// TokenProviderParameters is the authentication parameters passed to token providers +type TokenProviderParameters struct { + // Claims contains any additional claims requested for the token + Claims string + // CorrelationID of the authentication request + CorrelationID string + // Scopes requested for the token + Scopes []string + // TenantID identifies the tenant in which to authenticate + TenantID string +} + +// TokenProviderResult is the authentication result returned by custom token providers +type TokenProviderResult struct { + // AccessToken is the requested token + AccessToken string + // ExpiresInSeconds is the lifetime of the token in seconds + ExpiresInSeconds int +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/design.md b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/design.md new file mode 100644 index 00000000..09edb01b --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/design.md @@ -0,0 +1,140 @@ +# JSON Package Design +Author: John Doak(jdoak@microsoft.com) + +## Why? + +This project needs a special type of marshal/unmarshal not directly supported +by the encoding/json package. + +The need revolves around a few key wants/needs: +- unmarshal and marshal structs representing JSON messages +- fields in the messgage not in the struct must be maintained when unmarshalled +- those same fields must be marshalled back when encoded again + +The initial version used map[string]interface{} to put in the keys that +were known and then any other keys were put into a field called AdditionalFields. + +This has a few negatives: +- Dual marshaling/unmarshalling is required +- Adding a struct field requires manually adding a key by name to be encoded/decoded from the map (which is a loosely coupled construct), which can lead to bugs that aren't detected or have bad side effects +- Tests can become quickly disconnected if those keys aren't put +in tests as well. So you think you have support working, but you +don't. Existing tests were found that didn't test the marshalling output. +- There is no enforcement that if AdditionalFields is required on one struct, it should be on all containers +that don't have custom marshal/unmarshal. + +This package aims to support our needs by providing custom Marshal()/Unmarshal() functions. + +This prevents all the negatives in the initial solution listed above. However, it does add its own negative: +- Custom encoding/decoding via reflection is messy (as can be seen in encoding/json itself) + +Go proverb: Reflection is never clear +Suggested reading: https://blog.golang.org/laws-of-reflection + +## Important design decisions + +- We don't want to understand all JSON decoding rules +- We don't want to deal with all the quoting, commas, etc on decode +- Need support for json.Marshaler/Unmarshaler, so we can support types like time.Time +- If struct does not implement json.Unmarshaler, it must have AdditionalFields defined +- We only support root level objects that are \*struct or struct + +To faciliate these goals, we will utilize the json.Encoder and json.Decoder. +They provide streaming processing (efficient) and return errors on bad JSON. + +Support for json.Marshaler/Unmarshaler allows for us to use non-basic types +that must be specially encoded/decoded (like time.Time objects). + +We don't support types that can't customer unmarshal or have AdditionalFields +in order to prevent future devs from forgetting that important field and +generating bad return values. + +Support for root level objects of \*struct or struct simply acknowledges the +fact that this is designed only for the purposes listed in the Introduction. +Outside that (like encoding a lone number) should be done with the +regular json package (as it will not have additional fields). + +We don't support a few things on json supported reference types and structs: +- \*map: no need for pointers to maps +- \*slice: no need for pointers to slices +- any further pointers on struct after \*struct + +There should never be a need for this in Go. + +## Design + +## State Machines + +This uses state machine designs that based upon the Rob Pike talk on +lexers and parsers: https://www.youtube.com/watch?v=HxaD_trXwRE + +This is the most common pattern for state machines in Go and +the model to follow closesly when dealing with streaming +processing of textual data. + +Our state machines are based on the type: +```go +type stateFn func() (stateFn, error) +``` + +The state machine itself is simply a struct that has methods that +satisfy stateFn. + +Our state machines have a few standard calls +- run(): runs the state machine +- start(): always the first stateFn to be called + +All state machines have the following logic: +* run() is called +* start() is called and returns the next stateFn or error +* stateFn is called + - If returned stateFn(next state) is non-nil, call it + - If error is non-nil, run() returns the error + - If stateFn == nil and err == nil, run() return err == nil + +## Supporting types + +Marshalling/Unmarshalling must support(within top level struct): +- struct +- \*struct +- []struct +- []\*struct +- []map[string]structContainer +- [][]structContainer + +**Term note:** structContainer == type that has a struct or \*struct inside it + +We specifically do not support []interface or map[string]interface +where the interface value would hold some value with a struct in it. + +Those will still marshal/unmarshal, but without support for +AdditionalFields. + +## Marshalling + +The marshalling design will be based around a statemachine design. + +The basic logic is as follows: + +* If struct has custom marshaller, call it and return +* If struct has field "AdditionalFields", it must be a map[string]interface{} +* If struct does not have "AdditionalFields", give an error +* Get struct tag detailing json names to go names, create mapping +* For each public field name + - Write field name out + - If field value is a struct, recursively call our state machine + - Otherwise, use the json.Encoder to write out the value + +## Unmarshalling + +The unmarshalling desin is also based around a statemachine design. The +basic logic is as follows: + +* If struct has custom marhaller, call it +* If struct has field "AdditionalFields", it must be a map[string]interface{} +* Get struct tag detailing json names to go names, create mapping +* For each key found + - If key exists, + - If value is basic type, extract value into struct field using Decoder + - If value is struct type, recursively call statemachine + - If key doesn't exist, add it to AdditionalFields if it exists using Decoder diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/json.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/json.go new file mode 100644 index 00000000..2238521f --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/json.go @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package json provide functions for marshalling an unmarshalling types to JSON. These functions are meant to +// be utilized inside of structs that implement json.Unmarshaler and json.Marshaler interfaces. +// This package provides the additional functionality of writing fields that are not in the struct when marshalling +// to a field called AdditionalFields if that field exists and is a map[string]interface{}. +// When marshalling, if the struct has all the same prerequisites, it will uses the keys in AdditionalFields as +// extra fields. This package uses encoding/json underneath. +package json + +import ( + "bytes" + "encoding/json" + "fmt" + "reflect" + "strings" +) + +const addField = "AdditionalFields" +const ( + marshalJSON = "MarshalJSON" + unmarshalJSON = "UnmarshalJSON" +) + +var ( + leftBrace = []byte("{")[0] + rightBrace = []byte("}")[0] + comma = []byte(",")[0] + leftParen = []byte("[")[0] + rightParen = []byte("]")[0] +) + +var mapStrInterType = reflect.TypeOf(map[string]interface{}{}) + +// stateFn defines a state machine function. This will be used in all state +// machines in this package. +type stateFn func() (stateFn, error) + +// Marshal is used to marshal a type into its JSON representation. It +// wraps the stdlib calls in order to marshal a struct or *struct so +// that a field called "AdditionalFields" of type map[string]interface{} +// with "-" used inside struct tag `json:"-"` can be marshalled as if +// they were fields within the struct. +func Marshal(i interface{}) ([]byte, error) { + buff := bytes.Buffer{} + enc := json.NewEncoder(&buff) + enc.SetEscapeHTML(false) + enc.SetIndent("", "") + + v := reflect.ValueOf(i) + if v.Kind() != reflect.Ptr && v.CanAddr() { + v = v.Addr() + } + err := marshalStruct(v, &buff, enc) + if err != nil { + return nil, err + } + return buff.Bytes(), nil +} + +// Unmarshal unmarshals a []byte representing JSON into i, which must be a *struct. In addition, if the struct has +// a field called AdditionalFields of type map[string]interface{}, JSON data representing fields not in the struct +// will be written as key/value pairs to AdditionalFields. +func Unmarshal(b []byte, i interface{}) error { + if len(b) == 0 { + return nil + } + + jdec := json.NewDecoder(bytes.NewBuffer(b)) + jdec.UseNumber() + return unmarshalStruct(jdec, i) +} + +// MarshalRaw marshals i into a json.RawMessage. If I cannot be marshalled, +// this will panic. This is exposed to help test AdditionalField values +// which are stored as json.RawMessage. +func MarshalRaw(i interface{}) json.RawMessage { + b, err := json.Marshal(i) + if err != nil { + panic(err) + } + return json.RawMessage(b) +} + +// isDelim simply tests to see if a json.Token is a delimeter. +func isDelim(got json.Token) bool { + switch got.(type) { + case json.Delim: + return true + } + return false +} + +// delimIs tests got to see if it is want. +func delimIs(got json.Token, want rune) bool { + switch v := got.(type) { + case json.Delim: + if v == json.Delim(want) { + return true + } + } + return false +} + +// hasMarshalJSON will determine if the value or a pointer to this value has +// the MarshalJSON method. +func hasMarshalJSON(v reflect.Value) bool { + if method := v.MethodByName(marshalJSON); method.Kind() != reflect.Invalid { + _, ok := v.Interface().(json.Marshaler) + return ok + } + + if v.Kind() == reflect.Ptr { + v = v.Elem() + } else { + if !v.CanAddr() { + return false + } + v = v.Addr() + } + + if method := v.MethodByName(marshalJSON); method.Kind() != reflect.Invalid { + _, ok := v.Interface().(json.Marshaler) + return ok + } + return false +} + +// callMarshalJSON will call MarshalJSON() method on the value or a pointer to this value. +// This will panic if the method is not defined. +func callMarshalJSON(v reflect.Value) ([]byte, error) { + if method := v.MethodByName(marshalJSON); method.Kind() != reflect.Invalid { + marsh := v.Interface().(json.Marshaler) + return marsh.MarshalJSON() + } + + if v.Kind() == reflect.Ptr { + v = v.Elem() + } else { + if v.CanAddr() { + v = v.Addr() + } + } + + if method := v.MethodByName(unmarshalJSON); method.Kind() != reflect.Invalid { + marsh := v.Interface().(json.Marshaler) + return marsh.MarshalJSON() + } + + panic(fmt.Sprintf("callMarshalJSON called on type %T that does not have MarshalJSON defined", v.Interface())) +} + +// hasUnmarshalJSON will determine if the value or a pointer to this value has +// the UnmarshalJSON method. +func hasUnmarshalJSON(v reflect.Value) bool { + // You can't unmarshal on a non-pointer type. + if v.Kind() != reflect.Ptr { + if !v.CanAddr() { + return false + } + v = v.Addr() + } + + if method := v.MethodByName(unmarshalJSON); method.Kind() != reflect.Invalid { + _, ok := v.Interface().(json.Unmarshaler) + return ok + } + + return false +} + +// hasOmitEmpty indicates if the field has instructed us to not output +// the field if omitempty is set on the tag. tag is the string +// returned by reflect.StructField.Tag().Get(). +func hasOmitEmpty(tag string) bool { + sl := strings.Split(tag, ",") + for _, str := range sl { + if str == "omitempty" { + return true + } + } + return false +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/mapslice.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/mapslice.go new file mode 100644 index 00000000..cef442f2 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/mapslice.go @@ -0,0 +1,333 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package json + +import ( + "encoding/json" + "fmt" + "reflect" +) + +// unmarshalMap unmarshal's a map. +func unmarshalMap(dec *json.Decoder, m reflect.Value) error { + if m.Kind() != reflect.Ptr || m.Elem().Kind() != reflect.Map { + panic("unmarshalMap called on non-*map value") + } + mapValueType := m.Elem().Type().Elem() + walk := mapWalk{dec: dec, m: m, valueType: mapValueType} + if err := walk.run(); err != nil { + return err + } + return nil +} + +type mapWalk struct { + dec *json.Decoder + key string + m reflect.Value + valueType reflect.Type +} + +// run runs our decoder state machine. +func (m *mapWalk) run() error { + var state = m.start + var err error + for { + state, err = state() + if err != nil { + return err + } + if state == nil { + return nil + } + } +} + +func (m *mapWalk) start() (stateFn, error) { + // maps can have custom unmarshaler's. + if hasUnmarshalJSON(m.m) { + err := m.dec.Decode(m.m.Interface()) + if err != nil { + return nil, err + } + return nil, nil + } + + // We only want to use this if the map value is: + // *struct/struct/map/slice + // otherwise use standard decode + t, _ := m.valueBaseType() + switch t.Kind() { + case reflect.Struct, reflect.Map, reflect.Slice: + delim, err := m.dec.Token() + if err != nil { + return nil, err + } + // This indicates the value was set to JSON null. + if delim == nil { + return nil, nil + } + if !delimIs(delim, '{') { + return nil, fmt.Errorf("Unmarshal expected opening {, received %v", delim) + } + return m.next, nil + case reflect.Ptr: + return nil, fmt.Errorf("do not support maps with values of '**type' or '*reference") + } + + // This is a basic map type, so just use Decode(). + if err := m.dec.Decode(m.m.Interface()); err != nil { + return nil, err + } + + return nil, nil +} + +func (m *mapWalk) next() (stateFn, error) { + if m.dec.More() { + key, err := m.dec.Token() + if err != nil { + return nil, err + } + m.key = key.(string) + return m.storeValue, nil + } + // No more entries, so remove final }. + _, err := m.dec.Token() + if err != nil { + return nil, err + } + return nil, nil +} + +func (m *mapWalk) storeValue() (stateFn, error) { + v := m.valueType + for { + switch v.Kind() { + case reflect.Ptr: + v = v.Elem() + continue + case reflect.Struct: + return m.storeStruct, nil + case reflect.Map: + return m.storeMap, nil + case reflect.Slice: + return m.storeSlice, nil + } + return nil, fmt.Errorf("bug: mapWalk.storeValue() called on unsupported type: %v", v.Kind()) + } +} + +func (m *mapWalk) storeStruct() (stateFn, error) { + v := newValue(m.valueType) + if err := unmarshalStruct(m.dec, v.Interface()); err != nil { + return nil, err + } + + if m.valueType.Kind() == reflect.Ptr { + m.m.Elem().SetMapIndex(reflect.ValueOf(m.key), v) + return m.next, nil + } + m.m.Elem().SetMapIndex(reflect.ValueOf(m.key), v.Elem()) + + return m.next, nil +} + +func (m *mapWalk) storeMap() (stateFn, error) { + v := reflect.MakeMap(m.valueType) + ptr := newValue(v.Type()) + ptr.Elem().Set(v) + if err := unmarshalMap(m.dec, ptr); err != nil { + return nil, err + } + + m.m.Elem().SetMapIndex(reflect.ValueOf(m.key), v) + + return m.next, nil +} + +func (m *mapWalk) storeSlice() (stateFn, error) { + v := newValue(m.valueType) + if err := unmarshalSlice(m.dec, v); err != nil { + return nil, err + } + + m.m.Elem().SetMapIndex(reflect.ValueOf(m.key), v.Elem()) + + return m.next, nil +} + +// valueType returns the underlying Type. So a *struct would yield +// struct, etc... +func (m *mapWalk) valueBaseType() (reflect.Type, bool) { + ptr := false + v := m.valueType + if v.Kind() == reflect.Ptr { + ptr = true + v = v.Elem() + } + return v, ptr +} + +// unmarshalSlice unmarshal's the next value, which must be a slice, into +// ptrSlice, which must be a pointer to a slice. newValue() can be use to +// create the slice. +func unmarshalSlice(dec *json.Decoder, ptrSlice reflect.Value) error { + if ptrSlice.Kind() != reflect.Ptr || ptrSlice.Elem().Kind() != reflect.Slice { + panic("unmarshalSlice called on non-*[]slice value") + } + sliceValueType := ptrSlice.Elem().Type().Elem() + walk := sliceWalk{ + dec: dec, + s: ptrSlice, + valueType: sliceValueType, + } + if err := walk.run(); err != nil { + return err + } + + return nil +} + +type sliceWalk struct { + dec *json.Decoder + s reflect.Value // *[]slice + valueType reflect.Type +} + +// run runs our decoder state machine. +func (s *sliceWalk) run() error { + var state = s.start + var err error + for { + state, err = state() + if err != nil { + return err + } + if state == nil { + return nil + } + } +} + +func (s *sliceWalk) start() (stateFn, error) { + // slices can have custom unmarshaler's. + if hasUnmarshalJSON(s.s) { + err := s.dec.Decode(s.s.Interface()) + if err != nil { + return nil, err + } + return nil, nil + } + + // We only want to use this if the slice value is: + // []*struct/[]struct/[]map/[]slice + // otherwise use standard decode + t := s.valueBaseType() + + switch t.Kind() { + case reflect.Ptr: + return nil, fmt.Errorf("cannot unmarshal into a ** or *") + case reflect.Struct, reflect.Map, reflect.Slice: + delim, err := s.dec.Token() + if err != nil { + return nil, err + } + // This indicates the value was set to nil. + if delim == nil { + return nil, nil + } + if !delimIs(delim, '[') { + return nil, fmt.Errorf("Unmarshal expected opening [, received %v", delim) + } + return s.next, nil + } + + if err := s.dec.Decode(s.s.Interface()); err != nil { + return nil, err + } + return nil, nil +} + +func (s *sliceWalk) next() (stateFn, error) { + if s.dec.More() { + return s.storeValue, nil + } + // Nothing left in the slice, remove closing ] + _, err := s.dec.Token() + return nil, err +} + +func (s *sliceWalk) storeValue() (stateFn, error) { + t := s.valueBaseType() + switch t.Kind() { + case reflect.Ptr: + return nil, fmt.Errorf("do not support 'pointer to pointer' or 'pointer to reference' types") + case reflect.Struct: + return s.storeStruct, nil + case reflect.Map: + return s.storeMap, nil + case reflect.Slice: + return s.storeSlice, nil + } + return nil, fmt.Errorf("bug: sliceWalk.storeValue() called on unsupported type: %v", t.Kind()) +} + +func (s *sliceWalk) storeStruct() (stateFn, error) { + v := newValue(s.valueType) + if err := unmarshalStruct(s.dec, v.Interface()); err != nil { + return nil, err + } + + if s.valueType.Kind() == reflect.Ptr { + s.s.Elem().Set(reflect.Append(s.s.Elem(), v)) + return s.next, nil + } + + s.s.Elem().Set(reflect.Append(s.s.Elem(), v.Elem())) + return s.next, nil +} + +func (s *sliceWalk) storeMap() (stateFn, error) { + v := reflect.MakeMap(s.valueType) + ptr := newValue(v.Type()) + ptr.Elem().Set(v) + + if err := unmarshalMap(s.dec, ptr); err != nil { + return nil, err + } + + s.s.Elem().Set(reflect.Append(s.s.Elem(), v)) + + return s.next, nil +} + +func (s *sliceWalk) storeSlice() (stateFn, error) { + v := newValue(s.valueType) + if err := unmarshalSlice(s.dec, v); err != nil { + return nil, err + } + + s.s.Elem().Set(reflect.Append(s.s.Elem(), v.Elem())) + + return s.next, nil +} + +// valueType returns the underlying Type. So a *struct would yield +// struct, etc... +func (s *sliceWalk) valueBaseType() reflect.Type { + v := s.valueType + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + return v +} + +// newValue() returns a new *type that represents type passed. +func newValue(valueType reflect.Type) reflect.Value { + if valueType.Kind() == reflect.Ptr { + return reflect.New(valueType.Elem()) + } + return reflect.New(valueType) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/marshal.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/marshal.go new file mode 100644 index 00000000..df5dc6e1 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/marshal.go @@ -0,0 +1,346 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package json + +import ( + "bytes" + "encoding/json" + "fmt" + "reflect" + "unicode" +) + +// marshalStruct takes in i, which must be a *struct or struct and marshals its content +// as JSON into buff (sometimes with writes to buff directly, sometimes via enc). +// This call is recursive for all fields of *struct or struct type. +func marshalStruct(v reflect.Value, buff *bytes.Buffer, enc *json.Encoder) error { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + // We only care about custom Marshalling a struct. + if v.Kind() != reflect.Struct { + return fmt.Errorf("bug: marshal() received a non *struct or struct, received type %T", v.Interface()) + } + + if hasMarshalJSON(v) { + b, err := callMarshalJSON(v) + if err != nil { + return err + } + buff.Write(b) + return nil + } + + t := v.Type() + + // If it has an AdditionalFields field make sure its the right type. + f := v.FieldByName(addField) + if f.Kind() != reflect.Invalid { + if f.Kind() != reflect.Map { + return fmt.Errorf("type %T has field 'AdditionalFields' that is not a map[string]interface{}", v.Interface()) + } + if !f.Type().AssignableTo(mapStrInterType) { + return fmt.Errorf("type %T has field 'AdditionalFields' that is not a map[string]interface{}", v.Interface()) + } + } + + translator, err := findFields(v) + if err != nil { + return err + } + + buff.WriteByte(leftBrace) + for x := 0; x < v.NumField(); x++ { + field := v.Field(x) + + // We don't access private fields. + if unicode.IsLower(rune(t.Field(x).Name[0])) { + continue + } + + if t.Field(x).Name == addField { + if v.Field(x).Len() > 0 { + if err := writeAddFields(field.Interface(), buff, enc); err != nil { + return err + } + buff.WriteByte(comma) + } + continue + } + + // If they have omitempty set, we don't write out the field if + // it is the zero value. + if hasOmitEmpty(t.Field(x).Tag.Get("json")) { + if v.Field(x).IsZero() { + continue + } + } + + // Write out the field name part. + jsonName := translator.jsonName(t.Field(x).Name) + buff.WriteString(fmt.Sprintf("%q:", jsonName)) + + if field.Kind() == reflect.Ptr { + field = field.Elem() + } + + if err := marshalStructField(field, buff, enc); err != nil { + return err + } + } + + buff.Truncate(buff.Len() - 1) // Remove final comma + buff.WriteByte(rightBrace) + + return nil +} + +func marshalStructField(field reflect.Value, buff *bytes.Buffer, enc *json.Encoder) error { + // Determine if we need a trailing comma. + defer buff.WriteByte(comma) + + switch field.Kind() { + // If it was a *struct or struct, we need to recursively all marshal(). + case reflect.Struct: + if field.CanAddr() { + field = field.Addr() + } + return marshalStruct(field, buff, enc) + case reflect.Map: + return marshalMap(field, buff, enc) + case reflect.Slice: + return marshalSlice(field, buff, enc) + } + + // It is just a basic type, so encode it. + if err := enc.Encode(field.Interface()); err != nil { + return err + } + buff.Truncate(buff.Len() - 1) // Remove Encode() added \n + + return nil +} + +func marshalMap(v reflect.Value, buff *bytes.Buffer, enc *json.Encoder) error { + if v.Kind() != reflect.Map { + return fmt.Errorf("bug: marshalMap() called on %T", v.Interface()) + } + if v.Len() == 0 { + buff.WriteByte(leftBrace) + buff.WriteByte(rightBrace) + return nil + } + encoder := mapEncode{m: v, buff: buff, enc: enc} + return encoder.run() +} + +type mapEncode struct { + m reflect.Value + buff *bytes.Buffer + enc *json.Encoder + + valueBaseType reflect.Type +} + +// run runs our encoder state machine. +func (m *mapEncode) run() error { + var state = m.start + var err error + for { + state, err = state() + if err != nil { + return err + } + if state == nil { + return nil + } + } +} + +func (m *mapEncode) start() (stateFn, error) { + if hasMarshalJSON(m.m) { + b, err := callMarshalJSON(m.m) + if err != nil { + return nil, err + } + m.buff.Write(b) + return nil, nil + } + + valueBaseType := m.m.Type().Elem() + if valueBaseType.Kind() == reflect.Ptr { + valueBaseType = valueBaseType.Elem() + } + m.valueBaseType = valueBaseType + + switch valueBaseType.Kind() { + case reflect.Ptr: + return nil, fmt.Errorf("Marshal does not support ** or *") + case reflect.Struct, reflect.Map, reflect.Slice: + return m.encode, nil + } + + // If the map value doesn't have a struct/map/slice, just Encode() it. + if err := m.enc.Encode(m.m.Interface()); err != nil { + return nil, err + } + m.buff.Truncate(m.buff.Len() - 1) // Remove Encode() added \n + return nil, nil +} + +func (m *mapEncode) encode() (stateFn, error) { + m.buff.WriteByte(leftBrace) + + iter := m.m.MapRange() + for iter.Next() { + // Write the key. + k := iter.Key() + m.buff.WriteString(fmt.Sprintf("%q:", k.String())) + + v := iter.Value() + switch m.valueBaseType.Kind() { + case reflect.Struct: + if v.CanAddr() { + v = v.Addr() + } + if err := marshalStruct(v, m.buff, m.enc); err != nil { + return nil, err + } + case reflect.Map: + if err := marshalMap(v, m.buff, m.enc); err != nil { + return nil, err + } + case reflect.Slice: + if err := marshalSlice(v, m.buff, m.enc); err != nil { + return nil, err + } + default: + panic(fmt.Sprintf("critical bug: mapEncode.encode() called with value base type: %v", m.valueBaseType.Kind())) + } + m.buff.WriteByte(comma) + } + m.buff.Truncate(m.buff.Len() - 1) // Remove final comma + m.buff.WriteByte(rightBrace) + + return nil, nil +} + +func marshalSlice(v reflect.Value, buff *bytes.Buffer, enc *json.Encoder) error { + if v.Kind() != reflect.Slice { + return fmt.Errorf("bug: marshalSlice() called on %T", v.Interface()) + } + if v.Len() == 0 { + buff.WriteByte(leftParen) + buff.WriteByte(rightParen) + return nil + } + encoder := sliceEncode{s: v, buff: buff, enc: enc} + return encoder.run() +} + +type sliceEncode struct { + s reflect.Value + buff *bytes.Buffer + enc *json.Encoder + + valueBaseType reflect.Type +} + +// run runs our encoder state machine. +func (s *sliceEncode) run() error { + var state = s.start + var err error + for { + state, err = state() + if err != nil { + return err + } + if state == nil { + return nil + } + } +} + +func (s *sliceEncode) start() (stateFn, error) { + if hasMarshalJSON(s.s) { + b, err := callMarshalJSON(s.s) + if err != nil { + return nil, err + } + s.buff.Write(b) + return nil, nil + } + + valueBaseType := s.s.Type().Elem() + if valueBaseType.Kind() == reflect.Ptr { + valueBaseType = valueBaseType.Elem() + } + s.valueBaseType = valueBaseType + + switch valueBaseType.Kind() { + case reflect.Ptr: + return nil, fmt.Errorf("Marshal does not support ** or *") + case reflect.Struct, reflect.Map, reflect.Slice: + return s.encode, nil + } + + // If the map value doesn't have a struct/map/slice, just Encode() it. + if err := s.enc.Encode(s.s.Interface()); err != nil { + return nil, err + } + s.buff.Truncate(s.buff.Len() - 1) // Remove Encode added \n + + return nil, nil +} + +func (s *sliceEncode) encode() (stateFn, error) { + s.buff.WriteByte(leftParen) + for i := 0; i < s.s.Len(); i++ { + v := s.s.Index(i) + switch s.valueBaseType.Kind() { + case reflect.Struct: + if v.CanAddr() { + v = v.Addr() + } + if err := marshalStruct(v, s.buff, s.enc); err != nil { + return nil, err + } + case reflect.Map: + if err := marshalMap(v, s.buff, s.enc); err != nil { + return nil, err + } + case reflect.Slice: + if err := marshalSlice(v, s.buff, s.enc); err != nil { + return nil, err + } + default: + panic(fmt.Sprintf("critical bug: mapEncode.encode() called with value base type: %v", s.valueBaseType.Kind())) + } + s.buff.WriteByte(comma) + } + s.buff.Truncate(s.buff.Len() - 1) // Remove final comma + s.buff.WriteByte(rightParen) + return nil, nil +} + +// writeAddFields writes the AdditionalFields struct field out to JSON as field +// values. i must be a map[string]interface{} or this will panic. +func writeAddFields(i interface{}, buff *bytes.Buffer, enc *json.Encoder) error { + m := i.(map[string]interface{}) + + x := 0 + for k, v := range m { + buff.WriteString(fmt.Sprintf("%q:", k)) + if err := enc.Encode(v); err != nil { + return err + } + buff.Truncate(buff.Len() - 1) // Remove Encode() added \n + + if x+1 != len(m) { + buff.WriteByte(comma) + } + x++ + } + return nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/struct.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/struct.go new file mode 100644 index 00000000..07751544 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/struct.go @@ -0,0 +1,290 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package json + +import ( + "encoding/json" + "fmt" + "reflect" + "strings" +) + +func unmarshalStruct(jdec *json.Decoder, i interface{}) error { + v := reflect.ValueOf(i) + if v.Kind() != reflect.Ptr { + return fmt.Errorf("Unmarshal() received type %T, which is not a *struct", i) + } + v = v.Elem() + if v.Kind() != reflect.Struct { + return fmt.Errorf("Unmarshal() received type %T, which is not a *struct", i) + } + + if hasUnmarshalJSON(v) { + // Indicates that this type has a custom Unmarshaler. + return jdec.Decode(v.Addr().Interface()) + } + + f := v.FieldByName(addField) + if f.Kind() == reflect.Invalid { + return fmt.Errorf("Unmarshal(%T) only supports structs that have the field AdditionalFields or implements json.Unmarshaler", i) + } + + if f.Kind() != reflect.Map || !f.Type().AssignableTo(mapStrInterType) { + return fmt.Errorf("type %T has field 'AdditionalFields' that is not a map[string]interface{}", i) + } + + dec := newDecoder(jdec, v) + return dec.run() +} + +type decoder struct { + dec *json.Decoder + value reflect.Value // This will be a reflect.Struct + translator translateFields + key string +} + +func newDecoder(dec *json.Decoder, value reflect.Value) *decoder { + return &decoder{value: value, dec: dec} +} + +// run runs our decoder state machine. +func (d *decoder) run() error { + var state = d.start + var err error + for { + state, err = state() + if err != nil { + return err + } + if state == nil { + return nil + } + } +} + +// start looks for our opening delimeter '{' and then transitions to looping through our fields. +func (d *decoder) start() (stateFn, error) { + var err error + d.translator, err = findFields(d.value) + if err != nil { + return nil, err + } + + delim, err := d.dec.Token() + if err != nil { + return nil, err + } + if !delimIs(delim, '{') { + return nil, fmt.Errorf("Unmarshal expected opening {, received %v", delim) + } + + return d.next, nil +} + +// next gets the next struct field name from the raw json or stops the machine if we get our closing }. +func (d *decoder) next() (stateFn, error) { + if !d.dec.More() { + // Remove the closing }. + if _, err := d.dec.Token(); err != nil { + return nil, err + } + return nil, nil + } + + key, err := d.dec.Token() + if err != nil { + return nil, err + } + + d.key = key.(string) + return d.storeValue, nil +} + +// storeValue takes the next value and stores it our struct. If the field can't be found +// in the struct, it pushes the operation to storeAdditional(). +func (d *decoder) storeValue() (stateFn, error) { + goName := d.translator.goName(d.key) + if goName == "" { + goName = d.key + } + + // We don't have the field in the struct, so it goes in AdditionalFields. + f := d.value.FieldByName(goName) + if f.Kind() == reflect.Invalid { + return d.storeAdditional, nil + } + + // Indicates that this type has a custom Unmarshaler. + if hasUnmarshalJSON(f) { + err := d.dec.Decode(f.Addr().Interface()) + if err != nil { + return nil, err + } + return d.next, nil + } + + t, isPtr, err := fieldBaseType(d.value, goName) + if err != nil { + return nil, fmt.Errorf("type(%s) had field(%s) %w", d.value.Type().Name(), goName, err) + } + + switch t.Kind() { + // We need to recursively call ourselves on any *struct or struct. + case reflect.Struct: + if isPtr { + if f.IsNil() { + f.Set(reflect.New(t)) + } + } else { + f = f.Addr() + } + if err := unmarshalStruct(d.dec, f.Interface()); err != nil { + return nil, err + } + return d.next, nil + case reflect.Map: + v := reflect.MakeMap(f.Type()) + ptr := newValue(f.Type()) + ptr.Elem().Set(v) + if err := unmarshalMap(d.dec, ptr); err != nil { + return nil, err + } + f.Set(ptr.Elem()) + return d.next, nil + case reflect.Slice: + v := reflect.MakeSlice(f.Type(), 0, 0) + ptr := newValue(f.Type()) + ptr.Elem().Set(v) + if err := unmarshalSlice(d.dec, ptr); err != nil { + return nil, err + } + f.Set(ptr.Elem()) + return d.next, nil + } + + if !isPtr { + f = f.Addr() + } + + // For values that are pointers, we need them to be non-nil in order + // to decode into them. + if f.IsNil() { + f.Set(reflect.New(t)) + } + + if err := d.dec.Decode(f.Interface()); err != nil { + return nil, err + } + + return d.next, nil +} + +// storeAdditional pushes the key/value into our .AdditionalFields map. +func (d *decoder) storeAdditional() (stateFn, error) { + rw := json.RawMessage{} + if err := d.dec.Decode(&rw); err != nil { + return nil, err + } + field := d.value.FieldByName(addField) + if field.IsNil() { + field.Set(reflect.MakeMap(field.Type())) + } + field.SetMapIndex(reflect.ValueOf(d.key), reflect.ValueOf(rw)) + return d.next, nil +} + +func fieldBaseType(v reflect.Value, fieldName string) (t reflect.Type, isPtr bool, err error) { + sf, ok := v.Type().FieldByName(fieldName) + if !ok { + return nil, false, fmt.Errorf("bug: fieldBaseType() lookup of field(%s) on type(%s): do not have field", fieldName, v.Type().Name()) + } + t = sf.Type + if t.Kind() == reflect.Ptr { + t = t.Elem() + isPtr = true + } + if t.Kind() == reflect.Ptr { + return nil, isPtr, fmt.Errorf("received pointer to pointer type, not supported") + } + return t, isPtr, nil +} + +type translateField struct { + jsonName string + goName string +} + +// translateFields is a list of translateFields with a handy lookup method. +type translateFields []translateField + +// goName loops through a list of fields looking for one contaning the jsonName and +// returning the goName. If not found, returns the empty string. +// Note: not a map because at this size slices are faster even in tight loops. +func (t translateFields) goName(jsonName string) string { + for _, entry := range t { + if entry.jsonName == jsonName { + return entry.goName + } + } + return "" +} + +// jsonName loops through a list of fields looking for one contaning the goName and +// returning the jsonName. If not found, returns the empty string. +// Note: not a map because at this size slices are faster even in tight loops. +func (t translateFields) jsonName(goName string) string { + for _, entry := range t { + if entry.goName == goName { + return entry.jsonName + } + } + return "" +} + +var umarshalerType = reflect.TypeOf((*json.Unmarshaler)(nil)).Elem() + +// findFields parses a struct and writes the field tags for lookup. It will return an error +// if any field has a type of *struct or struct that does not implement json.Marshaler. +func findFields(v reflect.Value) (translateFields, error) { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + if v.Kind() != reflect.Struct { + return nil, fmt.Errorf("findFields received a %s type, expected *struct or struct", v.Type().Name()) + } + tfs := make([]translateField, 0, v.NumField()) + for i := 0; i < v.NumField(); i++ { + tf := translateField{ + goName: v.Type().Field(i).Name, + jsonName: parseTag(v.Type().Field(i).Tag.Get("json")), + } + switch tf.jsonName { + case "", "-": + tf.jsonName = tf.goName + } + tfs = append(tfs, tf) + + f := v.Field(i) + if f.Kind() == reflect.Ptr { + f = f.Elem() + } + if f.Kind() == reflect.Struct { + if f.Type().Implements(umarshalerType) { + return nil, fmt.Errorf("struct type %q which has field %q which "+ + "doesn't implement json.Unmarshaler", v.Type().Name(), v.Type().Field(i).Name) + } + } + } + return tfs, nil +} + +// parseTag just returns the first entry in the tag. tag is the string +// returned by reflect.StructField.Tag().Get(). +func parseTag(tag string) string { + if idx := strings.Index(tag, ","); idx != -1 { + return tag[:idx] + } + return tag +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time/time.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time/time.go new file mode 100644 index 00000000..a1c99621 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time/time.go @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package time provides for custom types to translate time from JSON and other formats +// into time.Time objects. +package time + +import ( + "fmt" + "strconv" + "strings" + "time" +) + +// Unix provides a type that can marshal and unmarshal a string representation +// of the unix epoch into a time.Time object. +type Unix struct { + T time.Time +} + +// MarshalJSON implements encoding/json.MarshalJSON(). +func (u Unix) MarshalJSON() ([]byte, error) { + if u.T.IsZero() { + return []byte(""), nil + } + return []byte(fmt.Sprintf("%q", strconv.FormatInt(u.T.Unix(), 10))), nil +} + +// UnmarshalJSON implements encoding/json.UnmarshalJSON(). +func (u *Unix) UnmarshalJSON(b []byte) error { + i, err := strconv.Atoi(strings.Trim(string(b), `"`)) + if err != nil { + return fmt.Errorf("unix time(%s) could not be converted from string to int: %w", string(b), err) + } + u.T = time.Unix(int64(i), 0) + return nil +} + +// DurationTime provides a type that can marshal and unmarshal a string representation +// of a duration from now into a time.Time object. +// Note: I'm not sure this is the best way to do this. What happens is we get a field +// called "expires_in" that represents the seconds from now that this expires. We +// turn that into a time we call .ExpiresOn. But maybe we should be recording +// when the token was received at .TokenRecieved and .ExpiresIn should remain as a duration. +// Then we could have a method called ExpiresOn(). Honestly, the whole thing is +// bad because the server doesn't return a concrete time. I think this is +// cleaner, but its not great either. +type DurationTime struct { + T time.Time +} + +// MarshalJSON implements encoding/json.MarshalJSON(). +func (d DurationTime) MarshalJSON() ([]byte, error) { + if d.T.IsZero() { + return []byte(""), nil + } + + dt := time.Until(d.T) + return []byte(fmt.Sprintf("%d", int64(dt*time.Second))), nil +} + +// UnmarshalJSON implements encoding/json.UnmarshalJSON(). +func (d *DurationTime) UnmarshalJSON(b []byte) error { + i, err := strconv.Atoi(strings.Trim(string(b), `"`)) + if err != nil { + return fmt.Errorf("unix time(%s) could not be converted from string to int: %w", string(b), err) + } + d.T = time.Now().Add(time.Duration(i) * time.Second) + return nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go new file mode 100644 index 00000000..04236ff3 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local/server.go @@ -0,0 +1,177 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package local contains a local HTTP server used with interactive authentication. +package local + +import ( + "context" + "fmt" + "net" + "net/http" + "strconv" + "strings" + "time" +) + +var okPage = []byte(` + + + + + Authentication Complete + + +

    Authentication complete. You can return to the application. Feel free to close this browser tab.

    + + +`) + +const failPage = ` + + + + + Authentication Failed + + +

    Authentication failed. You can return to the application. Feel free to close this browser tab.

    +

    Error details: error %s error_description: %s

    + + +` + +// Result is the result from the redirect. +type Result struct { + // Code is the code sent by the authority server. + Code string + // Err is set if there was an error. + Err error +} + +// Server is an HTTP server. +type Server struct { + // Addr is the address the server is listening on. + Addr string + resultCh chan Result + s *http.Server + reqState string +} + +// New creates a local HTTP server and starts it. +func New(reqState string, port int) (*Server, error) { + var l net.Listener + var err error + var portStr string + if port > 0 { + // use port provided by caller + l, err = net.Listen("tcp", fmt.Sprintf("localhost:%d", port)) + portStr = strconv.FormatInt(int64(port), 10) + } else { + // find a free port + for i := 0; i < 10; i++ { + l, err = net.Listen("tcp", "localhost:0") + if err != nil { + continue + } + addr := l.Addr().String() + portStr = addr[strings.LastIndex(addr, ":")+1:] + break + } + } + if err != nil { + return nil, err + } + + serv := &Server{ + Addr: fmt.Sprintf("http://localhost:%s", portStr), + s: &http.Server{Addr: "localhost:0", ReadHeaderTimeout: time.Second}, + reqState: reqState, + resultCh: make(chan Result, 1), + } + serv.s.Handler = http.HandlerFunc(serv.handler) + + if err := serv.start(l); err != nil { + return nil, err + } + + return serv, nil +} + +func (s *Server) start(l net.Listener) error { + go func() { + err := s.s.Serve(l) + if err != nil { + select { + case s.resultCh <- Result{Err: err}: + default: + } + } + }() + + return nil +} + +// Result gets the result of the redirect operation. Once a single result is returned, the server +// is shutdown. ctx deadline will be honored. +func (s *Server) Result(ctx context.Context) Result { + select { + case <-ctx.Done(): + return Result{Err: ctx.Err()} + case r := <-s.resultCh: + return r + } +} + +// Shutdown shuts down the server. +func (s *Server) Shutdown() { + // Note: You might get clever and think you can do this in handler() as a defer, you can't. + _ = s.s.Shutdown(context.Background()) +} + +func (s *Server) putResult(r Result) { + select { + case s.resultCh <- r: + default: + } +} + +func (s *Server) handler(w http.ResponseWriter, r *http.Request) { + q := r.URL.Query() + + headerErr := q.Get("error") + if headerErr != "" { + desc := q.Get("error_description") + // Note: It is a little weird we handle some errors by not going to the failPage. If they all should, + // change this to s.error() and make s.error() write the failPage instead of an error code. + _, _ = w.Write([]byte(fmt.Sprintf(failPage, headerErr, desc))) + s.putResult(Result{Err: fmt.Errorf(desc)}) + return + } + + respState := q.Get("state") + switch respState { + case s.reqState: + case "": + s.error(w, http.StatusInternalServerError, "server didn't send OAuth state") + return + default: + s.error(w, http.StatusInternalServerError, "mismatched OAuth state, req(%s), resp(%s)", s.reqState, respState) + return + } + + code := q.Get("code") + if code == "" { + s.error(w, http.StatusInternalServerError, "authorization code missing in query string") + return + } + + _, _ = w.Write(okPage) + s.putResult(Result{Code: code}) +} + +func (s *Server) error(w http.ResponseWriter, code int, str string, i ...interface{}) { + err := fmt.Errorf(str, i...) + http.Error(w, err.Error(), code) + s.putResult(Result{Err: err}) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/oauth.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/oauth.go new file mode 100644 index 00000000..5f136933 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/oauth.go @@ -0,0 +1,296 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package oauth + +import ( + "context" + "encoding/json" + "fmt" + "io" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported" + internalTime "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs" + "github.com/google/uuid" +) + +// ResolveEndpointer contains the methods for resolving authority endpoints. +type ResolveEndpointer interface { + ResolveEndpoints(ctx context.Context, authorityInfo authority.Info, userPrincipalName string) (authority.Endpoints, error) +} + +// AccessTokens contains the methods for fetching tokens from different sources. +type AccessTokens interface { + DeviceCodeResult(ctx context.Context, authParameters authority.AuthParams) (accesstokens.DeviceCodeResult, error) + FromUsernamePassword(ctx context.Context, authParameters authority.AuthParams) (accesstokens.TokenResponse, error) + FromAuthCode(ctx context.Context, req accesstokens.AuthCodeRequest) (accesstokens.TokenResponse, error) + FromRefreshToken(ctx context.Context, appType accesstokens.AppType, authParams authority.AuthParams, cc *accesstokens.Credential, refreshToken string) (accesstokens.TokenResponse, error) + FromClientSecret(ctx context.Context, authParameters authority.AuthParams, clientSecret string) (accesstokens.TokenResponse, error) + FromAssertion(ctx context.Context, authParameters authority.AuthParams, assertion string) (accesstokens.TokenResponse, error) + FromUserAssertionClientSecret(ctx context.Context, authParameters authority.AuthParams, userAssertion string, clientSecret string) (accesstokens.TokenResponse, error) + FromUserAssertionClientCertificate(ctx context.Context, authParameters authority.AuthParams, userAssertion string, assertion string) (accesstokens.TokenResponse, error) + FromDeviceCodeResult(ctx context.Context, authParameters authority.AuthParams, deviceCodeResult accesstokens.DeviceCodeResult) (accesstokens.TokenResponse, error) + FromSamlGrant(ctx context.Context, authParameters authority.AuthParams, samlGrant wstrust.SamlTokenInfo) (accesstokens.TokenResponse, error) +} + +// FetchAuthority will be implemented by authority.Authority. +type FetchAuthority interface { + UserRealm(context.Context, authority.AuthParams) (authority.UserRealm, error) + AADInstanceDiscovery(context.Context, authority.Info) (authority.InstanceDiscoveryResponse, error) +} + +// FetchWSTrust contains the methods for interacting with WSTrust endpoints. +type FetchWSTrust interface { + Mex(ctx context.Context, federationMetadataURL string) (defs.MexDocument, error) + SAMLTokenInfo(ctx context.Context, authParameters authority.AuthParams, cloudAudienceURN string, endpoint defs.Endpoint) (wstrust.SamlTokenInfo, error) +} + +// Client provides tokens for various types of token requests. +type Client struct { + Resolver ResolveEndpointer + AccessTokens AccessTokens + Authority FetchAuthority + WSTrust FetchWSTrust +} + +// New is the constructor for Token. +func New(httpClient ops.HTTPClient) *Client { + r := ops.New(httpClient) + return &Client{ + Resolver: newAuthorityEndpoint(r), + AccessTokens: r.AccessTokens(), + Authority: r.Authority(), + WSTrust: r.WSTrust(), + } +} + +// ResolveEndpoints gets the authorization and token endpoints and creates an AuthorityEndpoints instance. +func (t *Client) ResolveEndpoints(ctx context.Context, authorityInfo authority.Info, userPrincipalName string) (authority.Endpoints, error) { + return t.Resolver.ResolveEndpoints(ctx, authorityInfo, userPrincipalName) +} + +func (t *Client) AADInstanceDiscovery(ctx context.Context, authorityInfo authority.Info) (authority.InstanceDiscoveryResponse, error) { + return t.Authority.AADInstanceDiscovery(ctx, authorityInfo) +} + +// AuthCode returns a token based on an authorization code. +func (t *Client) AuthCode(ctx context.Context, req accesstokens.AuthCodeRequest) (accesstokens.TokenResponse, error) { + if err := t.resolveEndpoint(ctx, &req.AuthParams, ""); err != nil { + return accesstokens.TokenResponse{}, err + } + + tResp, err := t.AccessTokens.FromAuthCode(ctx, req) + if err != nil { + return accesstokens.TokenResponse{}, fmt.Errorf("could not retrieve token from auth code: %w", err) + } + return tResp, nil +} + +// Credential acquires a token from the authority using a client credentials grant. +func (t *Client) Credential(ctx context.Context, authParams authority.AuthParams, cred *accesstokens.Credential) (accesstokens.TokenResponse, error) { + if cred.TokenProvider != nil { + now := time.Now() + scopes := make([]string, len(authParams.Scopes)) + copy(scopes, authParams.Scopes) + params := exported.TokenProviderParameters{ + Claims: authParams.Claims, + CorrelationID: uuid.New().String(), + Scopes: scopes, + TenantID: authParams.AuthorityInfo.Tenant, + } + tr, err := cred.TokenProvider(ctx, params) + if err != nil { + return accesstokens.TokenResponse{}, err + } + return accesstokens.TokenResponse{ + AccessToken: tr.AccessToken, + ExpiresOn: internalTime.DurationTime{ + T: now.Add(time.Duration(tr.ExpiresInSeconds) * time.Second), + }, + GrantedScopes: accesstokens.Scopes{Slice: authParams.Scopes}, + }, nil + } + + if err := t.resolveEndpoint(ctx, &authParams, ""); err != nil { + return accesstokens.TokenResponse{}, err + } + + if cred.Secret != "" { + return t.AccessTokens.FromClientSecret(ctx, authParams, cred.Secret) + } + jwt, err := cred.JWT(ctx, authParams) + if err != nil { + return accesstokens.TokenResponse{}, err + } + return t.AccessTokens.FromAssertion(ctx, authParams, jwt) +} + +// Credential acquires a token from the authority using a client credentials grant. +func (t *Client) OnBehalfOf(ctx context.Context, authParams authority.AuthParams, cred *accesstokens.Credential) (accesstokens.TokenResponse, error) { + if err := t.resolveEndpoint(ctx, &authParams, ""); err != nil { + return accesstokens.TokenResponse{}, err + } + + if cred.Secret != "" { + return t.AccessTokens.FromUserAssertionClientSecret(ctx, authParams, authParams.UserAssertion, cred.Secret) + } + jwt, err := cred.JWT(ctx, authParams) + if err != nil { + return accesstokens.TokenResponse{}, err + } + return t.AccessTokens.FromUserAssertionClientCertificate(ctx, authParams, authParams.UserAssertion, jwt) +} + +func (t *Client) Refresh(ctx context.Context, reqType accesstokens.AppType, authParams authority.AuthParams, cc *accesstokens.Credential, refreshToken accesstokens.RefreshToken) (accesstokens.TokenResponse, error) { + if err := t.resolveEndpoint(ctx, &authParams, ""); err != nil { + return accesstokens.TokenResponse{}, err + } + + return t.AccessTokens.FromRefreshToken(ctx, reqType, authParams, cc, refreshToken.Secret) +} + +// UsernamePassword retrieves a token where a username and password is used. However, if this is +// a user realm of "Federated", this uses SAML tokens. If "Managed", uses normal username/password. +func (t *Client) UsernamePassword(ctx context.Context, authParams authority.AuthParams) (accesstokens.TokenResponse, error) { + if authParams.AuthorityInfo.AuthorityType == authority.ADFS { + if err := t.resolveEndpoint(ctx, &authParams, authParams.Username); err != nil { + return accesstokens.TokenResponse{}, err + } + return t.AccessTokens.FromUsernamePassword(ctx, authParams) + } + if err := t.resolveEndpoint(ctx, &authParams, ""); err != nil { + return accesstokens.TokenResponse{}, err + } + + userRealm, err := t.Authority.UserRealm(ctx, authParams) + if err != nil { + return accesstokens.TokenResponse{}, fmt.Errorf("problem getting user realm from authority: %w", err) + } + + switch userRealm.AccountType { + case authority.Federated: + mexDoc, err := t.WSTrust.Mex(ctx, userRealm.FederationMetadataURL) + if err != nil { + return accesstokens.TokenResponse{}, fmt.Errorf("problem getting mex doc from federated url(%s): %w", userRealm.FederationMetadataURL, err) + } + + saml, err := t.WSTrust.SAMLTokenInfo(ctx, authParams, userRealm.CloudAudienceURN, mexDoc.UsernamePasswordEndpoint) + if err != nil { + return accesstokens.TokenResponse{}, fmt.Errorf("problem getting SAML token info: %w", err) + } + return t.AccessTokens.FromSamlGrant(ctx, authParams, saml) + case authority.Managed: + return t.AccessTokens.FromUsernamePassword(ctx, authParams) + } + return accesstokens.TokenResponse{}, errors.New("unknown account type") +} + +// DeviceCode is the result of a call to Token.DeviceCode(). +type DeviceCode struct { + // Result is the device code result from the first call in the device code flow. This allows + // the caller to retrieve the displayed code that is used to authorize on the second device. + Result accesstokens.DeviceCodeResult + authParams authority.AuthParams + + accessTokens AccessTokens +} + +// Token returns a token AFTER the user uses the user code on the second device. This will block +// until either: (1) the code is input by the user and the service releases a token, (2) the token +// expires, (3) the Context passed to .DeviceCode() is cancelled or expires, (4) some other service +// error occurs. +func (d DeviceCode) Token(ctx context.Context) (accesstokens.TokenResponse, error) { + if d.accessTokens == nil { + return accesstokens.TokenResponse{}, fmt.Errorf("DeviceCode was either created outside its package or the creating method had an error. DeviceCode is not valid") + } + + var cancel context.CancelFunc + if deadline, ok := ctx.Deadline(); !ok || d.Result.ExpiresOn.Before(deadline) { + ctx, cancel = context.WithDeadline(ctx, d.Result.ExpiresOn) + } else { + ctx, cancel = context.WithCancel(ctx) + } + defer cancel() + + var interval = 50 * time.Millisecond + timer := time.NewTimer(interval) + defer timer.Stop() + + for { + timer.Reset(interval) + select { + case <-ctx.Done(): + return accesstokens.TokenResponse{}, ctx.Err() + case <-timer.C: + interval += interval * 2 + if interval > 5*time.Second { + interval = 5 * time.Second + } + } + + token, err := d.accessTokens.FromDeviceCodeResult(ctx, d.authParams, d.Result) + if err != nil && isWaitDeviceCodeErr(err) { + continue + } + return token, err // This handles if it was a non-wait error or success + } +} + +type deviceCodeError struct { + Error string `json:"error"` +} + +func isWaitDeviceCodeErr(err error) bool { + var c errors.CallErr + if !errors.As(err, &c) { + return false + } + if c.Resp.StatusCode != 400 { + return false + } + var dCErr deviceCodeError + defer c.Resp.Body.Close() + body, err := io.ReadAll(c.Resp.Body) + if err != nil { + return false + } + err = json.Unmarshal(body, &dCErr) + if err != nil { + return false + } + if dCErr.Error == "authorization_pending" || dCErr.Error == "slow_down" { + return true + } + return false +} + +// DeviceCode returns a DeviceCode object that can be used to get the code that must be entered on the second +// device and optionally the token once the code has been entered on the second device. +func (t *Client) DeviceCode(ctx context.Context, authParams authority.AuthParams) (DeviceCode, error) { + if err := t.resolveEndpoint(ctx, &authParams, ""); err != nil { + return DeviceCode{}, err + } + + dcr, err := t.AccessTokens.DeviceCodeResult(ctx, authParams) + if err != nil { + return DeviceCode{}, err + } + + return DeviceCode{Result: dcr, authParams: authParams, accessTokens: t.AccessTokens}, nil +} + +func (t *Client) resolveEndpoint(ctx context.Context, authParams *authority.AuthParams, userPrincipalName string) error { + endpoints, err := t.Resolver.ResolveEndpoints(ctx, authParams.AuthorityInfo, userPrincipalName) + if err != nil { + return fmt.Errorf("unable to resolve an endpoint: %s", err) + } + authParams.Endpoints = endpoints + return nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/accesstokens.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/accesstokens.go new file mode 100644 index 00000000..fa6bb61c --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/accesstokens.go @@ -0,0 +1,451 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package accesstokens exposes a REST client for querying backend systems to get various types of +access tokens (oauth) for use in authentication. + +These calls are of type "application/x-www-form-urlencoded". This means we use url.Values to +represent arguments and then encode them into the POST body message. We receive JSON in +return for the requests. The request definition is defined in https://tools.ietf.org/html/rfc7521#section-4.2 . +*/ +package accesstokens + +import ( + "context" + "crypto" + + /* #nosec */ + "crypto/sha1" + "crypto/x509" + "encoding/base64" + "encoding/json" + "fmt" + "net/url" + "strconv" + "strings" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust" + "github.com/golang-jwt/jwt/v4" + "github.com/google/uuid" +) + +const ( + grantType = "grant_type" + deviceCode = "device_code" + clientID = "client_id" + clientInfo = "client_info" + clientInfoVal = "1" + username = "username" + password = "password" +) + +//go:generate stringer -type=AppType + +// AppType is whether the authorization code flow is for a public or confidential client. +type AppType int8 + +const ( + // ATUnknown is the zero value when the type hasn't been set. + ATUnknown AppType = iota + // ATPublic indicates this if for the Public.Client. + ATPublic + // ATConfidential indicates this if for the Confidential.Client. + ATConfidential +) + +type urlFormCaller interface { + URLFormCall(ctx context.Context, endpoint string, qv url.Values, resp interface{}) error +} + +// DeviceCodeResponse represents the HTTP response received from the device code endpoint +type DeviceCodeResponse struct { + authority.OAuthResponseBase + + UserCode string `json:"user_code"` + DeviceCode string `json:"device_code"` + VerificationURL string `json:"verification_url"` + ExpiresIn int `json:"expires_in"` + Interval int `json:"interval"` + Message string `json:"message"` + + AdditionalFields map[string]interface{} +} + +// Convert converts the DeviceCodeResponse to a DeviceCodeResult +func (dcr DeviceCodeResponse) Convert(clientID string, scopes []string) DeviceCodeResult { + expiresOn := time.Now().UTC().Add(time.Duration(dcr.ExpiresIn) * time.Second) + return NewDeviceCodeResult(dcr.UserCode, dcr.DeviceCode, dcr.VerificationURL, expiresOn, dcr.Interval, dcr.Message, clientID, scopes) +} + +// Credential represents the credential used in confidential client flows. This can be either +// a Secret or Cert/Key. +type Credential struct { + // Secret contains the credential secret if we are doing auth by secret. + Secret string + + // Cert is the public certificate, if we're authenticating by certificate. + Cert *x509.Certificate + // Key is the private key for signing, if we're authenticating by certificate. + Key crypto.PrivateKey + // X5c is the JWT assertion's x5c header value, required for SN/I authentication. + X5c []string + + // AssertionCallback is a function provided by the application, if we're authenticating by assertion. + AssertionCallback func(context.Context, exported.AssertionRequestOptions) (string, error) + + // TokenProvider is a function provided by the application that implements custom authentication + // logic for a confidential client + TokenProvider func(context.Context, exported.TokenProviderParameters) (exported.TokenProviderResult, error) +} + +// JWT gets the jwt assertion when the credential is not using a secret. +func (c *Credential) JWT(ctx context.Context, authParams authority.AuthParams) (string, error) { + if c.AssertionCallback != nil { + options := exported.AssertionRequestOptions{ + ClientID: authParams.ClientID, + TokenEndpoint: authParams.Endpoints.TokenEndpoint, + } + return c.AssertionCallback(ctx, options) + } + + token := jwt.NewWithClaims(jwt.SigningMethodRS256, jwt.MapClaims{ + "aud": authParams.Endpoints.TokenEndpoint, + "exp": json.Number(strconv.FormatInt(time.Now().Add(10*time.Minute).Unix(), 10)), + "iss": authParams.ClientID, + "jti": uuid.New().String(), + "nbf": json.Number(strconv.FormatInt(time.Now().Unix(), 10)), + "sub": authParams.ClientID, + }) + token.Header = map[string]interface{}{ + "alg": "RS256", + "typ": "JWT", + "x5t": base64.StdEncoding.EncodeToString(thumbprint(c.Cert)), + } + + if authParams.SendX5C { + token.Header["x5c"] = c.X5c + } + + assertion, err := token.SignedString(c.Key) + if err != nil { + return "", fmt.Errorf("unable to sign a JWT token using private key: %w", err) + } + return assertion, nil +} + +// thumbprint runs the asn1.Der bytes through sha1 for use in the x5t parameter of JWT. +// https://tools.ietf.org/html/rfc7517#section-4.8 +func thumbprint(cert *x509.Certificate) []byte { + /* #nosec */ + a := sha1.Sum(cert.Raw) + return a[:] +} + +// Client represents the REST calls to get tokens from token generator backends. +type Client struct { + // Comm provides the HTTP transport client. + Comm urlFormCaller + + testing bool +} + +// FromUsernamePassword uses a username and password to get an access token. +func (c Client) FromUsernamePassword(ctx context.Context, authParameters authority.AuthParams) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.Password) + qv.Set(username, authParameters.Username) + qv.Set(password, authParameters.Password) + qv.Set(clientID, authParameters.ClientID) + qv.Set(clientInfo, clientInfoVal) + addScopeQueryParam(qv, authParameters) + + return c.doTokenResp(ctx, authParameters, qv) +} + +// AuthCodeRequest stores the values required to request a token from the authority using an authorization code +type AuthCodeRequest struct { + AuthParams authority.AuthParams + Code string + CodeChallenge string + Credential *Credential + AppType AppType +} + +// NewCodeChallengeRequest returns an AuthCodeRequest that uses a code challenge.. +func NewCodeChallengeRequest(params authority.AuthParams, appType AppType, cc *Credential, code, challenge string) (AuthCodeRequest, error) { + if appType == ATUnknown { + return AuthCodeRequest{}, fmt.Errorf("bug: NewCodeChallengeRequest() called with AppType == ATUnknown") + } + return AuthCodeRequest{ + AuthParams: params, + AppType: appType, + Code: code, + CodeChallenge: challenge, + Credential: cc, + }, nil +} + +// FromAuthCode uses an authorization code to retrieve an access token. +func (c Client) FromAuthCode(ctx context.Context, req AuthCodeRequest) (TokenResponse, error) { + var qv url.Values + + switch req.AppType { + case ATUnknown: + return TokenResponse{}, fmt.Errorf("bug: Token.AuthCode() received request with AppType == ATUnknown") + case ATConfidential: + var err error + if req.Credential == nil { + return TokenResponse{}, fmt.Errorf("AuthCodeRequest had nil Credential for Confidential app") + } + qv, err = prepURLVals(ctx, req.Credential, req.AuthParams) + if err != nil { + return TokenResponse{}, err + } + case ATPublic: + qv = url.Values{} + default: + return TokenResponse{}, fmt.Errorf("bug: Token.AuthCode() received request with AppType == %v, which we do not recongnize", req.AppType) + } + + qv.Set(grantType, grant.AuthCode) + qv.Set("code", req.Code) + qv.Set("code_verifier", req.CodeChallenge) + qv.Set("redirect_uri", req.AuthParams.Redirecturi) + qv.Set(clientID, req.AuthParams.ClientID) + qv.Set(clientInfo, clientInfoVal) + addScopeQueryParam(qv, req.AuthParams) + if err := addClaims(qv, req.AuthParams); err != nil { + return TokenResponse{}, err + } + + return c.doTokenResp(ctx, req.AuthParams, qv) +} + +// FromRefreshToken uses a refresh token (for refreshing credentials) to get a new access token. +func (c Client) FromRefreshToken(ctx context.Context, appType AppType, authParams authority.AuthParams, cc *Credential, refreshToken string) (TokenResponse, error) { + qv := url.Values{} + if appType == ATConfidential { + var err error + qv, err = prepURLVals(ctx, cc, authParams) + if err != nil { + return TokenResponse{}, err + } + } + if err := addClaims(qv, authParams); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.RefreshToken) + qv.Set(clientID, authParams.ClientID) + qv.Set(clientInfo, clientInfoVal) + qv.Set("refresh_token", refreshToken) + addScopeQueryParam(qv, authParams) + + return c.doTokenResp(ctx, authParams, qv) +} + +// FromClientSecret uses a client's secret (aka password) to get a new token. +func (c Client) FromClientSecret(ctx context.Context, authParameters authority.AuthParams, clientSecret string) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.ClientCredential) + qv.Set("client_secret", clientSecret) + qv.Set(clientID, authParameters.ClientID) + addScopeQueryParam(qv, authParameters) + + token, err := c.doTokenResp(ctx, authParameters, qv) + if err != nil { + return token, fmt.Errorf("FromClientSecret(): %w", err) + } + return token, nil +} + +func (c Client) FromAssertion(ctx context.Context, authParameters authority.AuthParams, assertion string) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.ClientCredential) + qv.Set("client_assertion_type", grant.ClientAssertion) + qv.Set("client_assertion", assertion) + qv.Set(clientID, authParameters.ClientID) + qv.Set(clientInfo, clientInfoVal) + addScopeQueryParam(qv, authParameters) + + token, err := c.doTokenResp(ctx, authParameters, qv) + if err != nil { + return token, fmt.Errorf("FromAssertion(): %w", err) + } + return token, nil +} + +func (c Client) FromUserAssertionClientSecret(ctx context.Context, authParameters authority.AuthParams, userAssertion string, clientSecret string) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.JWT) + qv.Set(clientID, authParameters.ClientID) + qv.Set("client_secret", clientSecret) + qv.Set("assertion", userAssertion) + qv.Set(clientInfo, clientInfoVal) + qv.Set("requested_token_use", "on_behalf_of") + addScopeQueryParam(qv, authParameters) + + return c.doTokenResp(ctx, authParameters, qv) +} + +func (c Client) FromUserAssertionClientCertificate(ctx context.Context, authParameters authority.AuthParams, userAssertion string, assertion string) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.JWT) + qv.Set("client_assertion_type", grant.ClientAssertion) + qv.Set("client_assertion", assertion) + qv.Set(clientID, authParameters.ClientID) + qv.Set("assertion", userAssertion) + qv.Set(clientInfo, clientInfoVal) + qv.Set("requested_token_use", "on_behalf_of") + addScopeQueryParam(qv, authParameters) + + return c.doTokenResp(ctx, authParameters, qv) +} + +func (c Client) DeviceCodeResult(ctx context.Context, authParameters authority.AuthParams) (DeviceCodeResult, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return DeviceCodeResult{}, err + } + qv.Set(clientID, authParameters.ClientID) + addScopeQueryParam(qv, authParameters) + + endpoint := strings.Replace(authParameters.Endpoints.TokenEndpoint, "token", "devicecode", -1) + + resp := DeviceCodeResponse{} + err := c.Comm.URLFormCall(ctx, endpoint, qv, &resp) + if err != nil { + return DeviceCodeResult{}, err + } + + return resp.Convert(authParameters.ClientID, authParameters.Scopes), nil +} + +func (c Client) FromDeviceCodeResult(ctx context.Context, authParameters authority.AuthParams, deviceCodeResult DeviceCodeResult) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(grantType, grant.DeviceCode) + qv.Set(deviceCode, deviceCodeResult.DeviceCode) + qv.Set(clientID, authParameters.ClientID) + qv.Set(clientInfo, clientInfoVal) + addScopeQueryParam(qv, authParameters) + + return c.doTokenResp(ctx, authParameters, qv) +} + +func (c Client) FromSamlGrant(ctx context.Context, authParameters authority.AuthParams, samlGrant wstrust.SamlTokenInfo) (TokenResponse, error) { + qv := url.Values{} + if err := addClaims(qv, authParameters); err != nil { + return TokenResponse{}, err + } + qv.Set(username, authParameters.Username) + qv.Set(password, authParameters.Password) + qv.Set(clientID, authParameters.ClientID) + qv.Set(clientInfo, clientInfoVal) + qv.Set("assertion", base64.StdEncoding.WithPadding(base64.StdPadding).EncodeToString([]byte(samlGrant.Assertion))) + addScopeQueryParam(qv, authParameters) + + switch samlGrant.AssertionType { + case grant.SAMLV1: + qv.Set(grantType, grant.SAMLV1) + case grant.SAMLV2: + qv.Set(grantType, grant.SAMLV2) + default: + return TokenResponse{}, fmt.Errorf("GetAccessTokenFromSamlGrant returned unknown SAML assertion type: %q", samlGrant.AssertionType) + } + + return c.doTokenResp(ctx, authParameters, qv) +} + +func (c Client) doTokenResp(ctx context.Context, authParams authority.AuthParams, qv url.Values) (TokenResponse, error) { + resp := TokenResponse{} + err := c.Comm.URLFormCall(ctx, authParams.Endpoints.TokenEndpoint, qv, &resp) + if err != nil { + return resp, err + } + resp.ComputeScope(authParams) + if c.testing { + return resp, nil + } + return resp, resp.Validate() +} + +// prepURLVals returns an url.Values that sets various key/values if we are doing secrets +// or JWT assertions. +func prepURLVals(ctx context.Context, cc *Credential, authParams authority.AuthParams) (url.Values, error) { + params := url.Values{} + if cc.Secret != "" { + params.Set("client_secret", cc.Secret) + return params, nil + } + + jwt, err := cc.JWT(ctx, authParams) + if err != nil { + return nil, err + } + params.Set("client_assertion", jwt) + params.Set("client_assertion_type", grant.ClientAssertion) + return params, nil +} + +// openid required to get an id token +// offline_access required to get a refresh token +// profile required to get the client_info field back +var detectDefaultScopes = map[string]bool{ + "openid": true, + "offline_access": true, + "profile": true, +} + +var defaultScopes = []string{"openid", "offline_access", "profile"} + +func AppendDefaultScopes(authParameters authority.AuthParams) []string { + scopes := make([]string, 0, len(authParameters.Scopes)+len(defaultScopes)) + for _, scope := range authParameters.Scopes { + s := strings.TrimSpace(scope) + if s == "" { + continue + } + if detectDefaultScopes[scope] { + continue + } + scopes = append(scopes, scope) + } + scopes = append(scopes, defaultScopes...) + return scopes +} + +// addClaims adds client capabilities and claims from AuthParams to the given url.Values +func addClaims(v url.Values, ap authority.AuthParams) error { + claims, err := ap.MergeCapabilitiesAndClaims() + if err == nil && claims != "" { + v.Set("claims", claims) + } + return err +} + +func addScopeQueryParam(queryParams url.Values, authParameters authority.AuthParams) { + scopes := AppendDefaultScopes(authParameters) + queryParams.Set("scope", strings.Join(scopes, " ")) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/apptype_string.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/apptype_string.go new file mode 100644 index 00000000..3bec4a67 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/apptype_string.go @@ -0,0 +1,25 @@ +// Code generated by "stringer -type=AppType"; DO NOT EDIT. + +package accesstokens + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[ATUnknown-0] + _ = x[ATPublic-1] + _ = x[ATConfidential-2] +} + +const _AppType_name = "ATUnknownATPublicATConfidential" + +var _AppType_index = [...]uint8{0, 9, 17, 31} + +func (i AppType) String() string { + if i < 0 || i >= AppType(len(_AppType_index)-1) { + return "AppType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _AppType_name[_AppType_index[i]:_AppType_index[i+1]] +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/tokens.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/tokens.go new file mode 100644 index 00000000..b3892bf3 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens/tokens.go @@ -0,0 +1,335 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package accesstokens + +import ( + "bytes" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "reflect" + "strings" + "time" + + internalTime "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" +) + +// IDToken consists of all the information used to validate a user. +// https://docs.microsoft.com/azure/active-directory/develop/id-tokens . +type IDToken struct { + PreferredUsername string `json:"preferred_username,omitempty"` + GivenName string `json:"given_name,omitempty"` + FamilyName string `json:"family_name,omitempty"` + MiddleName string `json:"middle_name,omitempty"` + Name string `json:"name,omitempty"` + Oid string `json:"oid,omitempty"` + TenantID string `json:"tid,omitempty"` + Subject string `json:"sub,omitempty"` + UPN string `json:"upn,omitempty"` + Email string `json:"email,omitempty"` + AlternativeID string `json:"alternative_id,omitempty"` + Issuer string `json:"iss,omitempty"` + Audience string `json:"aud,omitempty"` + ExpirationTime int64 `json:"exp,omitempty"` + IssuedAt int64 `json:"iat,omitempty"` + NotBefore int64 `json:"nbf,omitempty"` + RawToken string + + AdditionalFields map[string]interface{} +} + +var null = []byte("null") + +// UnmarshalJSON implements json.Unmarshaler. +func (i *IDToken) UnmarshalJSON(b []byte) error { + if bytes.Equal(null, b) { + return nil + } + + // Because we have a custom unmarshaler, you + // cannot directly call json.Unmarshal here. If you do, it will call this function + // recursively until reach our recursion limit. We have to create a new type + // that doesn't have this method in order to use json.Unmarshal. + type idToken2 IDToken + + jwt := strings.Trim(string(b), `"`) + jwtArr := strings.Split(jwt, ".") + if len(jwtArr) < 2 { + return errors.New("IDToken returned from server is invalid") + } + + jwtPart := jwtArr[1] + jwtDecoded, err := decodeJWT(jwtPart) + if err != nil { + return fmt.Errorf("unable to unmarshal IDToken, problem decoding JWT: %w", err) + } + + token := idToken2{} + err = json.Unmarshal(jwtDecoded, &token) + if err != nil { + return fmt.Errorf("unable to unmarshal IDToken: %w", err) + } + token.RawToken = jwt + + *i = IDToken(token) + return nil +} + +// IsZero indicates if the IDToken is the zero value. +func (i IDToken) IsZero() bool { + v := reflect.ValueOf(i) + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + if !field.IsZero() { + switch field.Kind() { + case reflect.Map, reflect.Slice: + if field.Len() == 0 { + continue + } + } + return false + } + } + return true +} + +// LocalAccountID extracts an account's local account ID from an ID token. +func (i IDToken) LocalAccountID() string { + if i.Oid != "" { + return i.Oid + } + return i.Subject +} + +// jwtDecoder is provided to allow tests to provide their own. +var jwtDecoder = decodeJWT + +// ClientInfo is used to create a Home Account ID for an account. +type ClientInfo struct { + UID string `json:"uid"` + UTID string `json:"utid"` + + AdditionalFields map[string]interface{} +} + +// UnmarshalJSON implements json.Unmarshaler.s +func (c *ClientInfo) UnmarshalJSON(b []byte) error { + s := strings.Trim(string(b), `"`) + // Client info may be empty in some flows, e.g. certificate exchange. + if len(s) == 0 { + return nil + } + + // Because we have a custom unmarshaler, you + // cannot directly call json.Unmarshal here. If you do, it will call this function + // recursively until reach our recursion limit. We have to create a new type + // that doesn't have this method in order to use json.Unmarshal. + type clientInfo2 ClientInfo + + raw, err := jwtDecoder(s) + if err != nil { + return fmt.Errorf("TokenResponse client_info field had JWT decode error: %w", err) + } + + var c2 clientInfo2 + + err = json.Unmarshal(raw, &c2) + if err != nil { + return fmt.Errorf("was unable to unmarshal decoded JWT in TokenRespone to ClientInfo: %w", err) + } + + *c = ClientInfo(c2) + return nil +} + +// HomeAccountID creates the home account ID. +func (c ClientInfo) HomeAccountID() string { + if c.UID == "" { + return "" + } else if c.UTID == "" { + return fmt.Sprintf("%s.%s", c.UID, c.UID) + } else { + return fmt.Sprintf("%s.%s", c.UID, c.UTID) + } +} + +// Scopes represents scopes in a TokenResponse. +type Scopes struct { + Slice []string +} + +// UnmarshalJSON implements json.Unmarshal. +func (s *Scopes) UnmarshalJSON(b []byte) error { + str := strings.Trim(string(b), `"`) + if len(str) == 0 { + return nil + } + sl := strings.Split(str, " ") + s.Slice = sl + return nil +} + +// TokenResponse is the information that is returned from a token endpoint during a token acquisition flow. +type TokenResponse struct { + authority.OAuthResponseBase + + AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` + + FamilyID string `json:"foci"` + IDToken IDToken `json:"id_token"` + ClientInfo ClientInfo `json:"client_info"` + ExpiresOn internalTime.DurationTime `json:"expires_in"` + ExtExpiresOn internalTime.DurationTime `json:"ext_expires_in"` + GrantedScopes Scopes `json:"scope"` + DeclinedScopes []string // This is derived + + AdditionalFields map[string]interface{} + + scopesComputed bool +} + +// ComputeScope computes the final scopes based on what was granted by the server and +// what our AuthParams were from the authority server. Per OAuth spec, if no scopes are returned, the response should be treated as if all scopes were granted +// This behavior can be observed in client assertion flows, but can happen at any time, this check ensures we treat +// those special responses properly Link to spec: https://tools.ietf.org/html/rfc6749#section-3.3 +func (tr *TokenResponse) ComputeScope(authParams authority.AuthParams) { + if len(tr.GrantedScopes.Slice) == 0 { + tr.GrantedScopes = Scopes{Slice: authParams.Scopes} + } else { + tr.DeclinedScopes = findDeclinedScopes(authParams.Scopes, tr.GrantedScopes.Slice) + } + tr.scopesComputed = true +} + +// Validate validates the TokenResponse has basic valid values. It must be called +// after ComputeScopes() is called. +func (tr *TokenResponse) Validate() error { + if tr.Error != "" { + return fmt.Errorf("%s: %s", tr.Error, tr.ErrorDescription) + } + + if tr.AccessToken == "" { + return errors.New("response is missing access_token") + } + + if !tr.scopesComputed { + return fmt.Errorf("TokenResponse hasn't had ScopesComputed() called") + } + return nil +} + +func (tr *TokenResponse) CacheKey(authParams authority.AuthParams) string { + if authParams.AuthorizationType == authority.ATOnBehalfOf { + return authParams.AssertionHash() + } + if authParams.AuthorizationType == authority.ATClientCredentials { + return authParams.AppKey() + } + if authParams.IsConfidentialClient || authParams.AuthorizationType == authority.ATRefreshToken { + return tr.ClientInfo.HomeAccountID() + } + return "" +} + +func findDeclinedScopes(requestedScopes []string, grantedScopes []string) []string { + declined := []string{} + grantedMap := map[string]bool{} + for _, s := range grantedScopes { + grantedMap[strings.ToLower(s)] = true + } + // Comparing the requested scopes with the granted scopes to see if there are any scopes that have been declined. + for _, r := range requestedScopes { + if !grantedMap[strings.ToLower(r)] { + declined = append(declined, r) + } + } + return declined +} + +// decodeJWT decodes a JWT and converts it to a byte array representing a JSON object +// JWT has headers and payload base64url encoded without padding +// https://tools.ietf.org/html/rfc7519#section-3 and +// https://tools.ietf.org/html/rfc7515#section-2 +func decodeJWT(data string) ([]byte, error) { + // https://tools.ietf.org/html/rfc7515#appendix-C + return base64.RawURLEncoding.DecodeString(data) +} + +// RefreshToken is the JSON representation of a MSAL refresh token for encoding to storage. +type RefreshToken struct { + HomeAccountID string `json:"home_account_id,omitempty"` + Environment string `json:"environment,omitempty"` + CredentialType string `json:"credential_type,omitempty"` + ClientID string `json:"client_id,omitempty"` + FamilyID string `json:"family_id,omitempty"` + Secret string `json:"secret,omitempty"` + Realm string `json:"realm,omitempty"` + Target string `json:"target,omitempty"` + UserAssertionHash string `json:"user_assertion_hash,omitempty"` + + AdditionalFields map[string]interface{} +} + +// NewRefreshToken is the constructor for RefreshToken. +func NewRefreshToken(homeID, env, clientID, refreshToken, familyID string) RefreshToken { + return RefreshToken{ + HomeAccountID: homeID, + Environment: env, + CredentialType: "RefreshToken", + ClientID: clientID, + FamilyID: familyID, + Secret: refreshToken, + } +} + +// Key outputs the key that can be used to uniquely look up this entry in a map. +func (rt RefreshToken) Key() string { + var fourth = rt.FamilyID + if fourth == "" { + fourth = rt.ClientID + } + + return strings.Join( + []string{rt.HomeAccountID, rt.Environment, rt.CredentialType, fourth}, + shared.CacheKeySeparator, + ) +} + +func (rt RefreshToken) GetSecret() string { + return rt.Secret +} + +// DeviceCodeResult stores the response from the STS device code endpoint. +type DeviceCodeResult struct { + // UserCode is the code the user needs to provide when authentication at the verification URI. + UserCode string + // DeviceCode is the code used in the access token request. + DeviceCode string + // VerificationURL is the the URL where user can authenticate. + VerificationURL string + // ExpiresOn is the expiration time of device code in seconds. + ExpiresOn time.Time + // Interval is the interval at which the STS should be polled at. + Interval int + // Message is the message which should be displayed to the user. + Message string + // ClientID is the UUID issued by the authorization server for your application. + ClientID string + // Scopes is the OpenID scopes used to request access a protected API. + Scopes []string +} + +// NewDeviceCodeResult creates a DeviceCodeResult instance. +func NewDeviceCodeResult(userCode, deviceCode, verificationURL string, expiresOn time.Time, interval int, message, clientID string, scopes []string) DeviceCodeResult { + return DeviceCodeResult{userCode, deviceCode, verificationURL, expiresOn, interval, message, clientID, scopes} +} + +func (dcr DeviceCodeResult) String() string { + return fmt.Sprintf("UserCode: (%v)\nDeviceCode: (%v)\nURL: (%v)\nMessage: (%v)\n", dcr.UserCode, dcr.DeviceCode, dcr.VerificationURL, dcr.Message) + +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go new file mode 100644 index 00000000..5bebdb8e --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authority.go @@ -0,0 +1,538 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package authority + +import ( + "context" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "net/url" + "os" + "path" + "strings" + "time" + + "github.com/google/uuid" +) + +const ( + authorizationEndpoint = "https://%v/%v/oauth2/v2.0/authorize" + instanceDiscoveryEndpoint = "https://%v/common/discovery/instance" + tenantDiscoveryEndpointWithRegion = "https://%s.%s/%s/v2.0/.well-known/openid-configuration" + regionName = "REGION_NAME" + defaultAPIVersion = "2021-10-01" + imdsEndpoint = "http://169.254.169.254/metadata/instance/compute/location?format=text&api-version=" + defaultAPIVersion + defaultHost = "login.microsoftonline.com" + autoDetectRegion = "TryAutoDetect" +) + +type jsonCaller interface { + JSONCall(ctx context.Context, endpoint string, headers http.Header, qv url.Values, body, resp interface{}) error +} + +var aadTrustedHostList = map[string]bool{ + "login.windows.net": true, // Microsoft Azure Worldwide - Used in validation scenarios where host is not this list + "login.chinacloudapi.cn": true, // Microsoft Azure China + "login.microsoftonline.de": true, // Microsoft Azure Blackforest + "login-us.microsoftonline.com": true, // Microsoft Azure US Government - Legacy + "login.microsoftonline.us": true, // Microsoft Azure US Government + "login.microsoftonline.com": true, // Microsoft Azure Worldwide + "login.cloudgovapi.us": true, // Microsoft Azure US Government +} + +// TrustedHost checks if an AAD host is trusted/valid. +func TrustedHost(host string) bool { + if _, ok := aadTrustedHostList[host]; ok { + return true + } + return false +} + +type OAuthResponseBase struct { + Error string `json:"error"` + SubError string `json:"suberror"` + ErrorDescription string `json:"error_description"` + ErrorCodes []int `json:"error_codes"` + CorrelationID string `json:"correlation_id"` + Claims string `json:"claims"` +} + +// TenantDiscoveryResponse is the tenant endpoints from the OpenID configuration endpoint. +type TenantDiscoveryResponse struct { + OAuthResponseBase + + AuthorizationEndpoint string `json:"authorization_endpoint"` + TokenEndpoint string `json:"token_endpoint"` + Issuer string `json:"issuer"` + + AdditionalFields map[string]interface{} +} + +// Validate validates that the response had the correct values required. +func (r *TenantDiscoveryResponse) Validate() error { + switch "" { + case r.AuthorizationEndpoint: + return errors.New("TenantDiscoveryResponse: authorize endpoint was not found in the openid configuration") + case r.TokenEndpoint: + return errors.New("TenantDiscoveryResponse: token endpoint was not found in the openid configuration") + case r.Issuer: + return errors.New("TenantDiscoveryResponse: issuer was not found in the openid configuration") + } + return nil +} + +type InstanceDiscoveryMetadata struct { + PreferredNetwork string `json:"preferred_network"` + PreferredCache string `json:"preferred_cache"` + Aliases []string `json:"aliases"` + + AdditionalFields map[string]interface{} +} + +type InstanceDiscoveryResponse struct { + TenantDiscoveryEndpoint string `json:"tenant_discovery_endpoint"` + Metadata []InstanceDiscoveryMetadata `json:"metadata"` + + AdditionalFields map[string]interface{} +} + +//go:generate stringer -type=AuthorizeType + +// AuthorizeType represents the type of token flow. +type AuthorizeType int + +// These are all the types of token flows. +const ( + ATUnknown AuthorizeType = iota + ATUsernamePassword + ATWindowsIntegrated + ATAuthCode + ATInteractive + ATClientCredentials + ATDeviceCode + ATRefreshToken + AccountByID + ATOnBehalfOf +) + +// These are all authority types +const ( + AAD = "MSSTS" + ADFS = "ADFS" +) + +// AuthParams represents the parameters used for authorization for token acquisition. +type AuthParams struct { + AuthorityInfo Info + CorrelationID string + Endpoints Endpoints + ClientID string + // Redirecturi is used for auth flows that specify a redirect URI (e.g. local server for interactive auth flow). + Redirecturi string + HomeAccountID string + // Username is the user-name portion for username/password auth flow. + Username string + // Password is the password portion for username/password auth flow. + Password string + // Scopes is the list of scopes the user consents to. + Scopes []string + // AuthorizationType specifies the auth flow being used. + AuthorizationType AuthorizeType + // State is a random value used to prevent cross-site request forgery attacks. + State string + // CodeChallenge is derived from a code verifier and is sent in the auth request. + CodeChallenge string + // CodeChallengeMethod describes the method used to create the CodeChallenge. + CodeChallengeMethod string + // Prompt specifies the user prompt type during interactive auth. + Prompt string + // IsConfidentialClient specifies if it is a confidential client. + IsConfidentialClient bool + // SendX5C specifies if x5c claim(public key of the certificate) should be sent to STS. + SendX5C bool + // UserAssertion is the access token used to acquire token on behalf of user + UserAssertion string + // Capabilities the client will include with each token request, for example "CP1". + // Call [NewClientCapabilities] to construct a value for this field. + Capabilities ClientCapabilities + // Claims required for an access token to satisfy a conditional access policy + Claims string + // KnownAuthorityHosts don't require metadata discovery because they're known to the user + KnownAuthorityHosts []string + // LoginHint is a username with which to pre-populate account selection during interactive auth + LoginHint string + // DomainHint is a directive that can be used to accelerate the user to their federated IdP sign-in page + DomainHint string +} + +// NewAuthParams creates an authorization parameters object. +func NewAuthParams(clientID string, authorityInfo Info) AuthParams { + return AuthParams{ + ClientID: clientID, + AuthorityInfo: authorityInfo, + CorrelationID: uuid.New().String(), + } +} + +// WithTenant returns a copy of the AuthParams having the specified tenant ID. If the given +// ID is empty, the copy is identical to the original. This function returns an error in +// several cases: +// - ID isn't specific (for example, it's "common") +// - ID is non-empty and the authority doesn't support tenants (for example, it's an ADFS authority) +// - the client is configured to authenticate only Microsoft accounts via the "consumers" endpoint +// - the resulting authority URL is invalid +func (p AuthParams) WithTenant(ID string) (AuthParams, error) { + switch ID { + case "", p.AuthorityInfo.Tenant: + // keep the default tenant because the caller didn't override it + return p, nil + case "common", "consumers", "organizations": + if p.AuthorityInfo.AuthorityType == AAD { + return p, fmt.Errorf(`tenant ID must be a specific tenant, not "%s"`, ID) + } + // else we'll return a better error below + } + if p.AuthorityInfo.AuthorityType != AAD { + return p, errors.New("the authority doesn't support tenants") + } + if p.AuthorityInfo.Tenant == "consumers" { + return p, errors.New(`client is configured to authenticate only personal Microsoft accounts, via the "consumers" endpoint`) + } + authority := "https://" + path.Join(p.AuthorityInfo.Host, ID) + info, err := NewInfoFromAuthorityURI(authority, p.AuthorityInfo.ValidateAuthority, p.AuthorityInfo.InstanceDiscoveryDisabled) + if err == nil { + info.Region = p.AuthorityInfo.Region + p.AuthorityInfo = info + } + return p, err +} + +// MergeCapabilitiesAndClaims combines client capabilities and challenge claims into a value suitable for an authentication request's "claims" parameter. +func (p AuthParams) MergeCapabilitiesAndClaims() (string, error) { + claims := p.Claims + if len(p.Capabilities.asMap) > 0 { + if claims == "" { + // without claims the result is simply the capabilities + return p.Capabilities.asJSON, nil + } + // Otherwise, merge claims and capabilties into a single JSON object. + // We handle the claims challenge as a map because we don't know its structure. + var challenge map[string]any + if err := json.Unmarshal([]byte(claims), &challenge); err != nil { + return "", fmt.Errorf(`claims must be JSON. Are they base64 encoded? json.Unmarshal returned "%v"`, err) + } + if err := merge(p.Capabilities.asMap, challenge); err != nil { + return "", err + } + b, err := json.Marshal(challenge) + if err != nil { + return "", err + } + claims = string(b) + } + return claims, nil +} + +// merges a into b without overwriting b's values. Returns an error when a and b share a key for which either has a non-object value. +func merge(a, b map[string]any) error { + for k, av := range a { + if bv, ok := b[k]; !ok { + // b doesn't contain this key => simply set it to a's value + b[k] = av + } else { + // b does contain this key => recursively merge a[k] into b[k], provided both are maps. If a[k] or b[k] isn't + // a map, return an error because merging would overwrite some value in b. Errors shouldn't occur in practice + // because the challenge will be from AAD, which knows the capabilities format. + if A, ok := av.(map[string]any); ok { + if B, ok := bv.(map[string]any); ok { + return merge(A, B) + } else { + // b[k] isn't a map + return errors.New("challenge claims conflict with client capabilities") + } + } else { + // a[k] isn't a map + return errors.New("challenge claims conflict with client capabilities") + } + } + } + return nil +} + +// ClientCapabilities stores capabilities in the formats used by AuthParams.MergeCapabilitiesAndClaims. +// [NewClientCapabilities] precomputes these representations because capabilities are static for the +// lifetime of a client and are included with every authentication request i.e., these computations +// always have the same result and would otherwise have to be repeated for every request. +type ClientCapabilities struct { + // asJSON is for the common case: adding the capabilities to an auth request with no challenge claims + asJSON string + // asMap is for merging the capabilities with challenge claims + asMap map[string]any +} + +func NewClientCapabilities(capabilities []string) (ClientCapabilities, error) { + c := ClientCapabilities{} + var err error + if len(capabilities) > 0 { + cpbs := make([]string, len(capabilities)) + for i := 0; i < len(cpbs); i++ { + cpbs[i] = fmt.Sprintf(`"%s"`, capabilities[i]) + } + c.asJSON = fmt.Sprintf(`{"access_token":{"xms_cc":{"values":[%s]}}}`, strings.Join(cpbs, ",")) + // note our JSON is valid but we can't stop users breaking it with garbage like "}" + err = json.Unmarshal([]byte(c.asJSON), &c.asMap) + } + return c, err +} + +// Info consists of information about the authority. +type Info struct { + Host string + CanonicalAuthorityURI string + AuthorityType string + UserRealmURIPrefix string + ValidateAuthority bool + Tenant string + Region string + InstanceDiscoveryDisabled bool +} + +func firstPathSegment(u *url.URL) (string, error) { + pathParts := strings.Split(u.EscapedPath(), "/") + if len(pathParts) >= 2 { + return pathParts[1], nil + } + + return "", errors.New(`authority must be an https URL such as "https://login.microsoftonline.com/"`) +} + +// NewInfoFromAuthorityURI creates an AuthorityInfo instance from the authority URL provided. +func NewInfoFromAuthorityURI(authority string, validateAuthority bool, instanceDiscoveryDisabled bool) (Info, error) { + u, err := url.Parse(strings.ToLower(authority)) + if err != nil || u.Scheme != "https" { + return Info{}, errors.New(`authority must be an https URL such as "https://login.microsoftonline.com/"`) + } + + tenant, err := firstPathSegment(u) + if err != nil { + return Info{}, err + } + authorityType := AAD + if tenant == "adfs" { + authorityType = ADFS + } + + // u.Host includes the port, if any, which is required for private cloud deployments + return Info{ + Host: u.Host, + CanonicalAuthorityURI: fmt.Sprintf("https://%v/%v/", u.Host, tenant), + AuthorityType: authorityType, + UserRealmURIPrefix: fmt.Sprintf("https://%v/common/userrealm/", u.Hostname()), + ValidateAuthority: validateAuthority, + Tenant: tenant, + InstanceDiscoveryDisabled: instanceDiscoveryDisabled, + }, nil +} + +// Endpoints consists of the endpoints from the tenant discovery response. +type Endpoints struct { + AuthorizationEndpoint string + TokenEndpoint string + selfSignedJwtAudience string + authorityHost string +} + +// NewEndpoints creates an Endpoints object. +func NewEndpoints(authorizationEndpoint string, tokenEndpoint string, selfSignedJwtAudience string, authorityHost string) Endpoints { + return Endpoints{authorizationEndpoint, tokenEndpoint, selfSignedJwtAudience, authorityHost} +} + +// UserRealmAccountType refers to the type of user realm. +type UserRealmAccountType string + +// These are the different types of user realms. +const ( + Unknown UserRealmAccountType = "" + Federated UserRealmAccountType = "Federated" + Managed UserRealmAccountType = "Managed" +) + +// UserRealm is used for the username password request to determine user type +type UserRealm struct { + AccountType UserRealmAccountType `json:"account_type"` + DomainName string `json:"domain_name"` + CloudInstanceName string `json:"cloud_instance_name"` + CloudAudienceURN string `json:"cloud_audience_urn"` + + // required if accountType is Federated + FederationProtocol string `json:"federation_protocol"` + FederationMetadataURL string `json:"federation_metadata_url"` + + AdditionalFields map[string]interface{} +} + +func (u UserRealm) validate() error { + switch "" { + case string(u.AccountType): + return errors.New("the account type (Federated or Managed) is missing") + case u.DomainName: + return errors.New("domain name of user realm is missing") + case u.CloudInstanceName: + return errors.New("cloud instance name of user realm is missing") + case u.CloudAudienceURN: + return errors.New("cloud Instance URN is missing") + } + + if u.AccountType == Federated { + switch "" { + case u.FederationProtocol: + return errors.New("federation protocol of user realm is missing") + case u.FederationMetadataURL: + return errors.New("federation metadata URL of user realm is missing") + } + } + return nil +} + +// Client represents the REST calls to authority backends. +type Client struct { + // Comm provides the HTTP transport client. + Comm jsonCaller // *comm.Client +} + +func (c Client) UserRealm(ctx context.Context, authParams AuthParams) (UserRealm, error) { + endpoint := fmt.Sprintf("https://%s/common/UserRealm/%s", authParams.Endpoints.authorityHost, url.PathEscape(authParams.Username)) + qv := url.Values{ + "api-version": []string{"1.0"}, + } + + resp := UserRealm{} + err := c.Comm.JSONCall( + ctx, + endpoint, + http.Header{"client-request-id": []string{authParams.CorrelationID}}, + qv, + nil, + &resp, + ) + if err != nil { + return resp, err + } + + return resp, resp.validate() +} + +func (c Client) GetTenantDiscoveryResponse(ctx context.Context, openIDConfigurationEndpoint string) (TenantDiscoveryResponse, error) { + resp := TenantDiscoveryResponse{} + err := c.Comm.JSONCall( + ctx, + openIDConfigurationEndpoint, + http.Header{}, + nil, + nil, + &resp, + ) + + return resp, err +} + +func (c Client) AADInstanceDiscovery(ctx context.Context, authorityInfo Info) (InstanceDiscoveryResponse, error) { + region := "" + var err error + resp := InstanceDiscoveryResponse{} + if authorityInfo.Region != "" && authorityInfo.Region != autoDetectRegion { + region = authorityInfo.Region + } else if authorityInfo.Region == autoDetectRegion { + region = detectRegion(ctx) + } + if region != "" { + environment := authorityInfo.Host + switch environment { + case "login.microsoft.com", "login.windows.net", "sts.windows.net", defaultHost: + environment = "r." + defaultHost + } + resp.TenantDiscoveryEndpoint = fmt.Sprintf(tenantDiscoveryEndpointWithRegion, region, environment, authorityInfo.Tenant) + metadata := InstanceDiscoveryMetadata{ + PreferredNetwork: fmt.Sprintf("%v.%v", region, authorityInfo.Host), + PreferredCache: authorityInfo.Host, + Aliases: []string{fmt.Sprintf("%v.%v", region, authorityInfo.Host), authorityInfo.Host}, + } + resp.Metadata = []InstanceDiscoveryMetadata{metadata} + } else { + qv := url.Values{} + qv.Set("api-version", "1.1") + qv.Set("authorization_endpoint", fmt.Sprintf(authorizationEndpoint, authorityInfo.Host, authorityInfo.Tenant)) + + discoveryHost := defaultHost + if TrustedHost(authorityInfo.Host) { + discoveryHost = authorityInfo.Host + } + + endpoint := fmt.Sprintf(instanceDiscoveryEndpoint, discoveryHost) + err = c.Comm.JSONCall(ctx, endpoint, http.Header{}, qv, nil, &resp) + } + return resp, err +} + +func detectRegion(ctx context.Context) string { + region := os.Getenv(regionName) + if region != "" { + region = strings.ReplaceAll(region, " ", "") + return strings.ToLower(region) + } + // HTTP call to IMDS endpoint to get region + // Refer : https://identitydivision.visualstudio.com/DevEx/_git/AuthLibrariesApiReview?path=%2FPinAuthToRegion%2FAAD%20SDK%20Proposal%20to%20Pin%20Auth%20to%20region.md&_a=preview&version=GBdev + // Set a 2 second timeout for this http client which only does calls to IMDS endpoint + client := http.Client{ + Timeout: time.Duration(2 * time.Second), + } + req, _ := http.NewRequest("GET", imdsEndpoint, nil) + req.Header.Set("Metadata", "true") + resp, err := client.Do(req) + // If the request times out or there is an error, it is retried once + if err != nil || resp.StatusCode != 200 { + resp, err = client.Do(req) + if err != nil || resp.StatusCode != 200 { + return "" + } + } + defer resp.Body.Close() + response, err := io.ReadAll(resp.Body) + if err != nil { + return "" + } + return string(response) +} + +func (a *AuthParams) CacheKey(isAppCache bool) string { + if a.AuthorizationType == ATOnBehalfOf { + return a.AssertionHash() + } + if a.AuthorizationType == ATClientCredentials || isAppCache { + return a.AppKey() + } + if a.AuthorizationType == ATRefreshToken || a.AuthorizationType == AccountByID { + return a.HomeAccountID + } + return "" +} +func (a *AuthParams) AssertionHash() string { + hasher := sha256.New() + // Per documentation this never returns an error : https://pkg.go.dev/hash#pkg-types + _, _ = hasher.Write([]byte(a.UserAssertion)) + sha := base64.URLEncoding.EncodeToString(hasher.Sum(nil)) + return sha +} + +func (a *AuthParams) AppKey() string { + if a.AuthorityInfo.Tenant != "" { + return fmt.Sprintf("%s_%s_AppTokenCache", a.ClientID, a.AuthorityInfo.Tenant) + } + return fmt.Sprintf("%s__AppTokenCache", a.ClientID) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authorizetype_string.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authorizetype_string.go new file mode 100644 index 00000000..10039773 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority/authorizetype_string.go @@ -0,0 +1,30 @@ +// Code generated by "stringer -type=AuthorizeType"; DO NOT EDIT. + +package authority + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[ATUnknown-0] + _ = x[ATUsernamePassword-1] + _ = x[ATWindowsIntegrated-2] + _ = x[ATAuthCode-3] + _ = x[ATInteractive-4] + _ = x[ATClientCredentials-5] + _ = x[ATDeviceCode-6] + _ = x[ATRefreshToken-7] +} + +const _AuthorizeType_name = "ATUnknownATUsernamePasswordATWindowsIntegratedATAuthCodeATInteractiveATClientCredentialsATDeviceCodeATRefreshToken" + +var _AuthorizeType_index = [...]uint8{0, 9, 27, 46, 56, 69, 88, 100, 114} + +func (i AuthorizeType) String() string { + if i < 0 || i >= AuthorizeType(len(_AuthorizeType_index)-1) { + return "AuthorizeType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _AuthorizeType_name[_AuthorizeType_index[i]:_AuthorizeType_index[i+1]] +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/comm.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/comm.go new file mode 100644 index 00000000..7d9ec7cd --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/comm.go @@ -0,0 +1,320 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package comm provides helpers for communicating with HTTP backends. +package comm + +import ( + "bytes" + "context" + "encoding/json" + "encoding/xml" + "fmt" + "io" + "net/http" + "net/url" + "reflect" + "runtime" + "strings" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors" + customJSON "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version" + "github.com/google/uuid" +) + +// HTTPClient represents an HTTP client. +// It's usually an *http.Client from the standard library. +type HTTPClient interface { + // Do sends an HTTP request and returns an HTTP response. + Do(req *http.Request) (*http.Response, error) + + // CloseIdleConnections closes any idle connections in a "keep-alive" state. + CloseIdleConnections() +} + +// Client provides a wrapper to our *http.Client that handles compression and serialization needs. +type Client struct { + client HTTPClient +} + +// New returns a new Client object. +func New(httpClient HTTPClient) *Client { + if httpClient == nil { + panic("http.Client cannot == nil") + } + + return &Client{client: httpClient} +} + +// JSONCall connects to the REST endpoint passing the HTTP query values, headers and JSON conversion +// of body in the HTTP body. It automatically handles compression and decompression with gzip. The response is JSON +// unmarshalled into resp. resp must be a pointer to a struct. If the body struct contains a field called +// "AdditionalFields" we use a custom marshal/unmarshal engine. +func (c *Client) JSONCall(ctx context.Context, endpoint string, headers http.Header, qv url.Values, body, resp interface{}) error { + if qv == nil { + qv = url.Values{} + } + + v := reflect.ValueOf(resp) + if err := c.checkResp(v); err != nil { + return err + } + + // Choose a JSON marshal/unmarshal depending on if we have AdditionalFields attribute. + var marshal = json.Marshal + var unmarshal = json.Unmarshal + if _, ok := v.Elem().Type().FieldByName("AdditionalFields"); ok { + marshal = customJSON.Marshal + unmarshal = customJSON.Unmarshal + } + + u, err := url.Parse(endpoint) + if err != nil { + return fmt.Errorf("could not parse path URL(%s): %w", endpoint, err) + } + u.RawQuery = qv.Encode() + + addStdHeaders(headers) + + req := &http.Request{Method: http.MethodGet, URL: u, Header: headers} + + if body != nil { + // Note: In case your wondering why we are not gzip encoding.... + // I'm not sure if these various services support gzip on send. + headers.Add("Content-Type", "application/json; charset=utf-8") + data, err := marshal(body) + if err != nil { + return fmt.Errorf("bug: conn.Call(): could not marshal the body object: %w", err) + } + req.Body = io.NopCloser(bytes.NewBuffer(data)) + req.Method = http.MethodPost + } + + data, err := c.do(ctx, req) + if err != nil { + return err + } + + if resp != nil { + if err := unmarshal(data, resp); err != nil { + return fmt.Errorf("json decode error: %w\njson message bytes were: %s", err, string(data)) + } + } + return nil +} + +// XMLCall connects to an endpoint and decodes the XML response into resp. This is used when +// sending application/xml . If sending XML via SOAP, use SOAPCall(). +func (c *Client) XMLCall(ctx context.Context, endpoint string, headers http.Header, qv url.Values, resp interface{}) error { + if err := c.checkResp(reflect.ValueOf(resp)); err != nil { + return err + } + + if qv == nil { + qv = url.Values{} + } + + u, err := url.Parse(endpoint) + if err != nil { + return fmt.Errorf("could not parse path URL(%s): %w", endpoint, err) + } + u.RawQuery = qv.Encode() + + headers.Set("Content-Type", "application/xml; charset=utf-8") // This was not set in he original Mex(), but... + addStdHeaders(headers) + + return c.xmlCall(ctx, u, headers, "", resp) +} + +// SOAPCall returns the SOAP message given an endpoint, action, body of the request and the response object to marshal into. +func (c *Client) SOAPCall(ctx context.Context, endpoint, action string, headers http.Header, qv url.Values, body string, resp interface{}) error { + if body == "" { + return fmt.Errorf("cannot make a SOAP call with body set to empty string") + } + + if err := c.checkResp(reflect.ValueOf(resp)); err != nil { + return err + } + + if qv == nil { + qv = url.Values{} + } + + u, err := url.Parse(endpoint) + if err != nil { + return fmt.Errorf("could not parse path URL(%s): %w", endpoint, err) + } + u.RawQuery = qv.Encode() + + headers.Set("Content-Type", "application/soap+xml; charset=utf-8") + headers.Set("SOAPAction", action) + addStdHeaders(headers) + + return c.xmlCall(ctx, u, headers, body, resp) +} + +// xmlCall sends an XML in body and decodes into resp. This simply does the transport and relies on +// an upper level call to set things such as SOAP parameters and Content-Type, if required. +func (c *Client) xmlCall(ctx context.Context, u *url.URL, headers http.Header, body string, resp interface{}) error { + req := &http.Request{Method: http.MethodGet, URL: u, Header: headers} + + if len(body) > 0 { + req.Method = http.MethodPost + req.Body = io.NopCloser(strings.NewReader(body)) + } + + data, err := c.do(ctx, req) + if err != nil { + return err + } + + return xml.Unmarshal(data, resp) +} + +// URLFormCall is used to make a call where we need to send application/x-www-form-urlencoded data +// to the backend and receive JSON back. qv will be encoded into the request body. +func (c *Client) URLFormCall(ctx context.Context, endpoint string, qv url.Values, resp interface{}) error { + if len(qv) == 0 { + return fmt.Errorf("URLFormCall() requires qv to have non-zero length") + } + + if err := c.checkResp(reflect.ValueOf(resp)); err != nil { + return err + } + + u, err := url.Parse(endpoint) + if err != nil { + return fmt.Errorf("could not parse path URL(%s): %w", endpoint, err) + } + + headers := http.Header{} + headers.Set("Content-Type", "application/x-www-form-urlencoded; charset=utf-8") + addStdHeaders(headers) + + enc := qv.Encode() + + req := &http.Request{ + Method: http.MethodPost, + URL: u, + Header: headers, + ContentLength: int64(len(enc)), + Body: io.NopCloser(strings.NewReader(enc)), + GetBody: func() (io.ReadCloser, error) { + return io.NopCloser(strings.NewReader(enc)), nil + }, + } + + data, err := c.do(ctx, req) + if err != nil { + return err + } + + v := reflect.ValueOf(resp) + if err := c.checkResp(v); err != nil { + return err + } + + var unmarshal = json.Unmarshal + if _, ok := v.Elem().Type().FieldByName("AdditionalFields"); ok { + unmarshal = customJSON.Unmarshal + } + if resp != nil { + if err := unmarshal(data, resp); err != nil { + return fmt.Errorf("json decode error: %w\nraw message was: %s", err, string(data)) + } + } + return nil +} + +// do makes the HTTP call to the server and returns the contents of the body. +func (c *Client) do(ctx context.Context, req *http.Request) ([]byte, error) { + if _, ok := ctx.Deadline(); !ok { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, 30*time.Second) + defer cancel() + } + req = req.WithContext(ctx) + + reply, err := c.client.Do(req) + if err != nil { + return nil, fmt.Errorf("server response error:\n %w", err) + } + defer reply.Body.Close() + + data, err := c.readBody(reply) + if err != nil { + return nil, fmt.Errorf("could not read the body of an HTTP Response: %w", err) + } + reply.Body = io.NopCloser(bytes.NewBuffer(data)) + + // NOTE: This doesn't happen immediately after the call so that we can get an error message + // from the server and include it in our error. + switch reply.StatusCode { + case 200, 201: + default: + sd := strings.TrimSpace(string(data)) + if sd != "" { + // We probably have the error in the body. + return nil, errors.CallErr{ + Req: req, + Resp: reply, + Err: fmt.Errorf("http call(%s)(%s) error: reply status code was %d:\n%s", req.URL.String(), req.Method, reply.StatusCode, sd), + } + } + return nil, errors.CallErr{ + Req: req, + Resp: reply, + Err: fmt.Errorf("http call(%s)(%s) error: reply status code was %d", req.URL.String(), req.Method, reply.StatusCode), + } + } + + return data, nil +} + +// checkResp checks a response object o make sure it is a pointer to a struct. +func (c *Client) checkResp(v reflect.Value) error { + if v.Kind() != reflect.Ptr { + return fmt.Errorf("bug: resp argument must a *struct, was %T", v.Interface()) + } + v = v.Elem() + if v.Kind() != reflect.Struct { + return fmt.Errorf("bug: resp argument must be a *struct, was %T", v.Interface()) + } + return nil +} + +// readBody reads the body out of an *http.Response. It supports gzip encoded responses. +func (c *Client) readBody(resp *http.Response) ([]byte, error) { + var reader io.Reader = resp.Body + switch resp.Header.Get("Content-Encoding") { + case "": + // Do nothing + case "gzip": + reader = gzipDecompress(resp.Body) + default: + return nil, fmt.Errorf("bug: comm.Client.JSONCall(): content was send with unsupported content-encoding %s", resp.Header.Get("Content-Encoding")) + } + return io.ReadAll(reader) +} + +var testID string + +// addStdHeaders adds the standard headers we use on all calls. +func addStdHeaders(headers http.Header) http.Header { + headers.Set("Accept-Encoding", "gzip") + // So that I can have a static id for tests. + if testID != "" { + headers.Set("client-request-id", testID) + headers.Set("Return-Client-Request-Id", "false") + } else { + headers.Set("client-request-id", uuid.New().String()) + headers.Set("Return-Client-Request-Id", "false") + } + headers.Set("x-client-sku", "MSAL.Go") + headers.Set("x-client-os", runtime.GOOS) + headers.Set("x-client-cpu", runtime.GOARCH) + headers.Set("x-client-ver", version.Version) + return headers +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/compress.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/compress.go new file mode 100644 index 00000000..4d3dbfcf --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm/compress.go @@ -0,0 +1,33 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package comm + +import ( + "compress/gzip" + "io" +) + +func gzipDecompress(r io.Reader) io.Reader { + gzipReader, _ := gzip.NewReader(r) + + pipeOut, pipeIn := io.Pipe() + go func() { + // decompression bomb would have to come from Azure services. + // If we want to limit, we should do that in comm.do(). + _, err := io.Copy(pipeIn, gzipReader) //nolint + if err != nil { + // don't need the error. + pipeIn.CloseWithError(err) //nolint + gzipReader.Close() + return + } + if err := gzipReader.Close(); err != nil { + // don't need the error. + pipeIn.CloseWithError(err) //nolint + return + } + pipeIn.Close() + }() + return pipeOut +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant/grant.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant/grant.go new file mode 100644 index 00000000..b628f61a --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant/grant.go @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package grant holds types of grants issued by authorization services. +package grant + +const ( + Password = "password" + JWT = "urn:ietf:params:oauth:grant-type:jwt-bearer" + SAMLV1 = "urn:ietf:params:oauth:grant-type:saml1_1-bearer" + SAMLV2 = "urn:ietf:params:oauth:grant-type:saml2-bearer" + DeviceCode = "device_code" + AuthCode = "authorization_code" + RefreshToken = "refresh_token" + ClientCredential = "client_credentials" + ClientAssertion = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer" +) diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/ops.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/ops.go new file mode 100644 index 00000000..1f9c543f --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/ops.go @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package ops provides operations to various backend services using REST clients. + +The REST type provides several clients that can be used to communicate to backends. +Usage is simple: + + rest := ops.New() + + // Creates an authority client and calls the UserRealm() method. + userRealm, err := rest.Authority().UserRealm(ctx, authParameters) + if err != nil { + // Do something + } +*/ +package ops + +import ( + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust" +) + +// HTTPClient represents an HTTP client. +// It's usually an *http.Client from the standard library. +type HTTPClient = comm.HTTPClient + +// REST provides REST clients for communicating with various backends used by MSAL. +type REST struct { + client *comm.Client +} + +// New is the constructor for REST. +func New(httpClient HTTPClient) *REST { + return &REST{client: comm.New(httpClient)} +} + +// Authority returns a client for querying information about various authorities. +func (r *REST) Authority() authority.Client { + return authority.Client{Comm: r.client} +} + +// AccessTokens returns a client that can be used to get various access tokens for +// authorization purposes. +func (r *REST) AccessTokens() accesstokens.Client { + return accesstokens.Client{Comm: r.client} +} + +// WSTrust provides access to various metadata in a WSTrust service. This data can +// be used to gain tokens based on SAML data using the client provided by AccessTokens(). +func (r *REST) WSTrust() wstrust.Client { + return wstrust.Client{Comm: r.client} +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/endpointtype_string.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/endpointtype_string.go new file mode 100644 index 00000000..a2bb6278 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/endpointtype_string.go @@ -0,0 +1,25 @@ +// Code generated by "stringer -type=endpointType"; DO NOT EDIT. + +package defs + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[etUnknown-0] + _ = x[etUsernamePassword-1] + _ = x[etWindowsTransport-2] +} + +const _endpointType_name = "etUnknownetUsernamePasswordetWindowsTransport" + +var _endpointType_index = [...]uint8{0, 9, 27, 45} + +func (i endpointType) String() string { + if i < 0 || i >= endpointType(len(_endpointType_index)-1) { + return "endpointType(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _endpointType_name[_endpointType_index[i]:_endpointType_index[i+1]] +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/mex_document_definitions.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/mex_document_definitions.go new file mode 100644 index 00000000..64972700 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/mex_document_definitions.go @@ -0,0 +1,394 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package defs + +import "encoding/xml" + +type Definitions struct { + XMLName xml.Name `xml:"definitions"` + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + TargetNamespace string `xml:"targetNamespace,attr"` + WSDL string `xml:"wsdl,attr"` + XSD string `xml:"xsd,attr"` + T string `xml:"t,attr"` + SOAPENC string `xml:"soapenc,attr"` + SOAP string `xml:"soap,attr"` + TNS string `xml:"tns,attr"` + MSC string `xml:"msc,attr"` + WSAM string `xml:"wsam,attr"` + SOAP12 string `xml:"soap12,attr"` + WSA10 string `xml:"wsa10,attr"` + WSA string `xml:"wsa,attr"` + WSAW string `xml:"wsaw,attr"` + WSX string `xml:"wsx,attr"` + WSAP string `xml:"wsap,attr"` + WSU string `xml:"wsu,attr"` + Trust string `xml:"trust,attr"` + WSP string `xml:"wsp,attr"` + Policy []Policy `xml:"Policy"` + Types Types `xml:"types"` + Message []Message `xml:"message"` + PortType []PortType `xml:"portType"` + Binding []Binding `xml:"binding"` + Service Service `xml:"service"` +} + +type Policy struct { + Text string `xml:",chardata"` + ID string `xml:"Id,attr"` + ExactlyOne ExactlyOne `xml:"ExactlyOne"` +} + +type ExactlyOne struct { + Text string `xml:",chardata"` + All All `xml:"All"` +} + +type All struct { + Text string `xml:",chardata"` + NegotiateAuthentication NegotiateAuthentication `xml:"NegotiateAuthentication"` + TransportBinding TransportBinding `xml:"TransportBinding"` + UsingAddressing Text `xml:"UsingAddressing"` + EndorsingSupportingTokens EndorsingSupportingTokens `xml:"EndorsingSupportingTokens"` + WSS11 WSS11 `xml:"Wss11"` + Trust10 Trust10 `xml:"Trust10"` + SignedSupportingTokens SignedSupportingTokens `xml:"SignedSupportingTokens"` + Trust13 WSTrust13 `xml:"Trust13"` + SignedEncryptedSupportingTokens SignedEncryptedSupportingTokens `xml:"SignedEncryptedSupportingTokens"` +} + +type NegotiateAuthentication struct { + Text string `xml:",chardata"` + HTTP string `xml:"http,attr"` + XMLName xml.Name +} + +type TransportBinding struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy TransportBindingPolicy `xml:"Policy"` +} + +type TransportBindingPolicy struct { + Text string `xml:",chardata"` + TransportToken TransportToken `xml:"TransportToken"` + AlgorithmSuite AlgorithmSuite `xml:"AlgorithmSuite"` + Layout Layout `xml:"Layout"` + IncludeTimestamp Text `xml:"IncludeTimestamp"` +} + +type TransportToken struct { + Text string `xml:",chardata"` + Policy TransportTokenPolicy `xml:"Policy"` +} + +type TransportTokenPolicy struct { + Text string `xml:",chardata"` + HTTPSToken HTTPSToken `xml:"HttpsToken"` +} + +type HTTPSToken struct { + Text string `xml:",chardata"` + RequireClientCertificate string `xml:"RequireClientCertificate,attr"` +} + +type AlgorithmSuite struct { + Text string `xml:",chardata"` + Policy AlgorithmSuitePolicy `xml:"Policy"` +} + +type AlgorithmSuitePolicy struct { + Text string `xml:",chardata"` + Basic256 Text `xml:"Basic256"` + Basic128 Text `xml:"Basic128"` +} + +type Layout struct { + Text string `xml:",chardata"` + Policy LayoutPolicy `xml:"Policy"` +} + +type LayoutPolicy struct { + Text string `xml:",chardata"` + Strict Text `xml:"Strict"` +} + +type EndorsingSupportingTokens struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy EndorsingSupportingTokensPolicy `xml:"Policy"` +} + +type EndorsingSupportingTokensPolicy struct { + Text string `xml:",chardata"` + X509Token X509Token `xml:"X509Token"` + RSAToken RSAToken `xml:"RsaToken"` + SignedParts SignedParts `xml:"SignedParts"` + KerberosToken KerberosToken `xml:"KerberosToken"` + IssuedToken IssuedToken `xml:"IssuedToken"` + KeyValueToken KeyValueToken `xml:"KeyValueToken"` +} + +type X509Token struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + Policy X509TokenPolicy `xml:"Policy"` +} + +type X509TokenPolicy struct { + Text string `xml:",chardata"` + RequireThumbprintReference Text `xml:"RequireThumbprintReference"` + WSSX509V3Token10 Text `xml:"WssX509V3Token10"` +} + +type RSAToken struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + Optional string `xml:"Optional,attr"` + MSSP string `xml:"mssp,attr"` +} + +type SignedParts struct { + Text string `xml:",chardata"` + Header SignedPartsHeader `xml:"Header"` +} + +type SignedPartsHeader struct { + Text string `xml:",chardata"` + Name string `xml:"Name,attr"` + Namespace string `xml:"Namespace,attr"` +} + +type KerberosToken struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + Policy KerberosTokenPolicy `xml:"Policy"` +} + +type KerberosTokenPolicy struct { + Text string `xml:",chardata"` + WSSGSSKerberosV5ApReqToken11 Text `xml:"WssGssKerberosV5ApReqToken11"` +} + +type IssuedToken struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + RequestSecurityTokenTemplate RequestSecurityTokenTemplate `xml:"RequestSecurityTokenTemplate"` + Policy IssuedTokenPolicy `xml:"Policy"` +} + +type RequestSecurityTokenTemplate struct { + Text string `xml:",chardata"` + KeyType Text `xml:"KeyType"` + EncryptWith Text `xml:"EncryptWith"` + SignatureAlgorithm Text `xml:"SignatureAlgorithm"` + CanonicalizationAlgorithm Text `xml:"CanonicalizationAlgorithm"` + EncryptionAlgorithm Text `xml:"EncryptionAlgorithm"` + KeySize Text `xml:"KeySize"` + KeyWrapAlgorithm Text `xml:"KeyWrapAlgorithm"` +} + +type IssuedTokenPolicy struct { + Text string `xml:",chardata"` + RequireInternalReference Text `xml:"RequireInternalReference"` +} + +type KeyValueToken struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + Optional string `xml:"Optional,attr"` +} + +type WSS11 struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy Wss11Policy `xml:"Policy"` +} + +type Wss11Policy struct { + Text string `xml:",chardata"` + MustSupportRefThumbprint Text `xml:"MustSupportRefThumbprint"` +} + +type Trust10 struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy Trust10Policy `xml:"Policy"` +} + +type Trust10Policy struct { + Text string `xml:",chardata"` + MustSupportIssuedTokens Text `xml:"MustSupportIssuedTokens"` + RequireClientEntropy Text `xml:"RequireClientEntropy"` + RequireServerEntropy Text `xml:"RequireServerEntropy"` +} + +type SignedSupportingTokens struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy SupportingTokensPolicy `xml:"Policy"` +} + +type SupportingTokensPolicy struct { + Text string `xml:",chardata"` + UsernameToken UsernameToken `xml:"UsernameToken"` +} +type UsernameToken struct { + Text string `xml:",chardata"` + IncludeToken string `xml:"IncludeToken,attr"` + Policy UsernameTokenPolicy `xml:"Policy"` +} + +type UsernameTokenPolicy struct { + Text string `xml:",chardata"` + WSSUsernameToken10 WSSUsernameToken10 `xml:"WssUsernameToken10"` +} + +type WSSUsernameToken10 struct { + Text string `xml:",chardata"` + XMLName xml.Name +} + +type WSTrust13 struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy WSTrust13Policy `xml:"Policy"` +} + +type WSTrust13Policy struct { + Text string `xml:",chardata"` + MustSupportIssuedTokens Text `xml:"MustSupportIssuedTokens"` + RequireClientEntropy Text `xml:"RequireClientEntropy"` + RequireServerEntropy Text `xml:"RequireServerEntropy"` +} + +type SignedEncryptedSupportingTokens struct { + Text string `xml:",chardata"` + SP string `xml:"sp,attr"` + Policy SupportingTokensPolicy `xml:"Policy"` +} + +type Types struct { + Text string `xml:",chardata"` + Schema Schema `xml:"schema"` +} + +type Schema struct { + Text string `xml:",chardata"` + TargetNamespace string `xml:"targetNamespace,attr"` + Import []Import `xml:"import"` +} + +type Import struct { + Text string `xml:",chardata"` + SchemaLocation string `xml:"schemaLocation,attr"` + Namespace string `xml:"namespace,attr"` +} + +type Message struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Part Part `xml:"part"` +} + +type Part struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Element string `xml:"element,attr"` +} + +type PortType struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Operation Operation `xml:"operation"` +} + +type Operation struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Input OperationIO `xml:"input"` + Output OperationIO `xml:"output"` +} + +type OperationIO struct { + Text string `xml:",chardata"` + Action string `xml:"Action,attr"` + Message string `xml:"message,attr"` + Body OperationIOBody `xml:"body"` +} + +type OperationIOBody struct { + Text string `xml:",chardata"` + Use string `xml:"use,attr"` +} + +type Binding struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Type string `xml:"type,attr"` + PolicyReference PolicyReference `xml:"PolicyReference"` + Binding DefinitionsBinding `xml:"binding"` + Operation BindingOperation `xml:"operation"` +} + +type PolicyReference struct { + Text string `xml:",chardata"` + URI string `xml:"URI,attr"` +} + +type DefinitionsBinding struct { + Text string `xml:",chardata"` + Transport string `xml:"transport,attr"` +} + +type BindingOperation struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Operation BindingOperationOperation `xml:"operation"` + Input BindingOperationIO `xml:"input"` + Output BindingOperationIO `xml:"output"` +} + +type BindingOperationOperation struct { + Text string `xml:",chardata"` + SoapAction string `xml:"soapAction,attr"` + Style string `xml:"style,attr"` +} + +type BindingOperationIO struct { + Text string `xml:",chardata"` + Body OperationIOBody `xml:"body"` +} + +type Service struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Port []Port `xml:"port"` +} + +type Port struct { + Text string `xml:",chardata"` + Name string `xml:"name,attr"` + Binding string `xml:"binding,attr"` + Address Address `xml:"address"` + EndpointReference PortEndpointReference `xml:"EndpointReference"` +} + +type Address struct { + Text string `xml:",chardata"` + Location string `xml:"location,attr"` +} + +type PortEndpointReference struct { + Text string `xml:",chardata"` + Address Text `xml:"Address"` + Identity Identity `xml:"Identity"` +} + +type Identity struct { + Text string `xml:",chardata"` + XMLNS string `xml:"xmlns,attr"` + SPN Text `xml:"Spn"` +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/saml_assertion_definitions.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/saml_assertion_definitions.go new file mode 100644 index 00000000..7d072556 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/saml_assertion_definitions.go @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package defs + +import "encoding/xml" + +// TODO(msal): Someone (and it ain't gonna be me) needs to document these attributes or +// at the least put a link to RFC. + +type SAMLDefinitions struct { + XMLName xml.Name `xml:"Envelope"` + Text string `xml:",chardata"` + S string `xml:"s,attr"` + A string `xml:"a,attr"` + U string `xml:"u,attr"` + Header Header `xml:"Header"` + Body Body `xml:"Body"` +} + +type Header struct { + Text string `xml:",chardata"` + Action Action `xml:"Action"` + Security Security `xml:"Security"` +} + +type Action struct { + Text string `xml:",chardata"` + MustUnderstand string `xml:"mustUnderstand,attr"` +} + +type Security struct { + Text string `xml:",chardata"` + MustUnderstand string `xml:"mustUnderstand,attr"` + O string `xml:"o,attr"` + Timestamp Timestamp `xml:"Timestamp"` +} + +type Timestamp struct { + Text string `xml:",chardata"` + ID string `xml:"Id,attr"` + Created Text `xml:"Created"` + Expires Text `xml:"Expires"` +} + +type Text struct { + Text string `xml:",chardata"` +} + +type Body struct { + Text string `xml:",chardata"` + RequestSecurityTokenResponseCollection RequestSecurityTokenResponseCollection `xml:"RequestSecurityTokenResponseCollection"` +} + +type RequestSecurityTokenResponseCollection struct { + Text string `xml:",chardata"` + Trust string `xml:"trust,attr"` + RequestSecurityTokenResponse []RequestSecurityTokenResponse `xml:"RequestSecurityTokenResponse"` +} + +type RequestSecurityTokenResponse struct { + Text string `xml:",chardata"` + Lifetime Lifetime `xml:"Lifetime"` + AppliesTo AppliesTo `xml:"AppliesTo"` + RequestedSecurityToken RequestedSecurityToken `xml:"RequestedSecurityToken"` + RequestedAttachedReference RequestedAttachedReference `xml:"RequestedAttachedReference"` + RequestedUnattachedReference RequestedUnattachedReference `xml:"RequestedUnattachedReference"` + TokenType Text `xml:"TokenType"` + RequestType Text `xml:"RequestType"` + KeyType Text `xml:"KeyType"` +} + +type Lifetime struct { + Text string `xml:",chardata"` + Created WSUTimestamp `xml:"Created"` + Expires WSUTimestamp `xml:"Expires"` +} + +type WSUTimestamp struct { + Text string `xml:",chardata"` + Wsu string `xml:"wsu,attr"` +} + +type AppliesTo struct { + Text string `xml:",chardata"` + Wsp string `xml:"wsp,attr"` + EndpointReference EndpointReference `xml:"EndpointReference"` +} + +type EndpointReference struct { + Text string `xml:",chardata"` + Wsa string `xml:"wsa,attr"` + Address Text `xml:"Address"` +} + +type RequestedSecurityToken struct { + Text string `xml:",chardata"` + AssertionRawXML string `xml:",innerxml"` + Assertion Assertion `xml:"Assertion"` +} + +type Assertion struct { + XMLName xml.Name // Normally its `xml:"Assertion"`, but I think they want to capture the xmlns + Text string `xml:",chardata"` + MajorVersion string `xml:"MajorVersion,attr"` + MinorVersion string `xml:"MinorVersion,attr"` + AssertionID string `xml:"AssertionID,attr"` + Issuer string `xml:"Issuer,attr"` + IssueInstant string `xml:"IssueInstant,attr"` + Saml string `xml:"saml,attr"` + Conditions Conditions `xml:"Conditions"` + AttributeStatement AttributeStatement `xml:"AttributeStatement"` + AuthenticationStatement AuthenticationStatement `xml:"AuthenticationStatement"` + Signature Signature `xml:"Signature"` +} + +type Conditions struct { + Text string `xml:",chardata"` + NotBefore string `xml:"NotBefore,attr"` + NotOnOrAfter string `xml:"NotOnOrAfter,attr"` + AudienceRestrictionCondition AudienceRestrictionCondition `xml:"AudienceRestrictionCondition"` +} + +type AudienceRestrictionCondition struct { + Text string `xml:",chardata"` + Audience Text `xml:"Audience"` +} + +type AttributeStatement struct { + Text string `xml:",chardata"` + Subject Subject `xml:"Subject"` + Attribute []Attribute `xml:"Attribute"` +} + +type Subject struct { + Text string `xml:",chardata"` + NameIdentifier NameIdentifier `xml:"NameIdentifier"` + SubjectConfirmation SubjectConfirmation `xml:"SubjectConfirmation"` +} + +type NameIdentifier struct { + Text string `xml:",chardata"` + Format string `xml:"Format,attr"` +} + +type SubjectConfirmation struct { + Text string `xml:",chardata"` + ConfirmationMethod Text `xml:"ConfirmationMethod"` +} + +type Attribute struct { + Text string `xml:",chardata"` + AttributeName string `xml:"AttributeName,attr"` + AttributeNamespace string `xml:"AttributeNamespace,attr"` + AttributeValue Text `xml:"AttributeValue"` +} + +type AuthenticationStatement struct { + Text string `xml:",chardata"` + AuthenticationMethod string `xml:"AuthenticationMethod,attr"` + AuthenticationInstant string `xml:"AuthenticationInstant,attr"` + Subject Subject `xml:"Subject"` +} + +type Signature struct { + Text string `xml:",chardata"` + Ds string `xml:"ds,attr"` + SignedInfo SignedInfo `xml:"SignedInfo"` + SignatureValue Text `xml:"SignatureValue"` + KeyInfo KeyInfo `xml:"KeyInfo"` +} + +type SignedInfo struct { + Text string `xml:",chardata"` + CanonicalizationMethod Method `xml:"CanonicalizationMethod"` + SignatureMethod Method `xml:"SignatureMethod"` + Reference Reference `xml:"Reference"` +} + +type Method struct { + Text string `xml:",chardata"` + Algorithm string `xml:"Algorithm,attr"` +} + +type Reference struct { + Text string `xml:",chardata"` + URI string `xml:"URI,attr"` + Transforms Transforms `xml:"Transforms"` + DigestMethod Method `xml:"DigestMethod"` + DigestValue Text `xml:"DigestValue"` +} + +type Transforms struct { + Text string `xml:",chardata"` + Transform []Method `xml:"Transform"` +} + +type KeyInfo struct { + Text string `xml:",chardata"` + Xmlns string `xml:"xmlns,attr"` + X509Data X509Data `xml:"X509Data"` +} + +type X509Data struct { + Text string `xml:",chardata"` + X509Certificate Text `xml:"X509Certificate"` +} + +type RequestedAttachedReference struct { + Text string `xml:",chardata"` + SecurityTokenReference SecurityTokenReference `xml:"SecurityTokenReference"` +} + +type SecurityTokenReference struct { + Text string `xml:",chardata"` + TokenType string `xml:"TokenType,attr"` + O string `xml:"o,attr"` + K string `xml:"k,attr"` + KeyIdentifier KeyIdentifier `xml:"KeyIdentifier"` +} + +type KeyIdentifier struct { + Text string `xml:",chardata"` + ValueType string `xml:"ValueType,attr"` +} + +type RequestedUnattachedReference struct { + Text string `xml:",chardata"` + SecurityTokenReference SecurityTokenReference `xml:"SecurityTokenReference"` +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/version_string.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/version_string.go new file mode 100644 index 00000000..6fe5efa8 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/version_string.go @@ -0,0 +1,25 @@ +// Code generated by "stringer -type=Version"; DO NOT EDIT. + +package defs + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[TrustUnknown-0] + _ = x[Trust2005-1] + _ = x[Trust13-2] +} + +const _Version_name = "TrustUnknownTrust2005Trust13" + +var _Version_index = [...]uint8{0, 12, 21, 28} + +func (i Version) String() string { + if i < 0 || i >= Version(len(_Version_index)-1) { + return "Version(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Version_name[_Version_index[i]:_Version_index[i+1]] +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_endpoint.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_endpoint.go new file mode 100644 index 00000000..8fad5efb --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_endpoint.go @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package defs + +import ( + "encoding/xml" + "fmt" + "time" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + uuid "github.com/google/uuid" +) + +//go:generate stringer -type=Version + +type Version int + +const ( + TrustUnknown Version = iota + Trust2005 + Trust13 +) + +// Endpoint represents a WSTrust endpoint. +type Endpoint struct { + // Version is the version of the endpoint. + Version Version + // URL is the URL of the endpoint. + URL string +} + +type wsTrustTokenRequestEnvelope struct { + XMLName xml.Name `xml:"s:Envelope"` + Text string `xml:",chardata"` + S string `xml:"xmlns:s,attr"` + Wsa string `xml:"xmlns:wsa,attr"` + Wsu string `xml:"xmlns:wsu,attr"` + Header struct { + Text string `xml:",chardata"` + Action struct { + Text string `xml:",chardata"` + MustUnderstand string `xml:"s:mustUnderstand,attr"` + } `xml:"wsa:Action"` + MessageID struct { + Text string `xml:",chardata"` + } `xml:"wsa:messageID"` + ReplyTo struct { + Text string `xml:",chardata"` + Address struct { + Text string `xml:",chardata"` + } `xml:"wsa:Address"` + } `xml:"wsa:ReplyTo"` + To struct { + Text string `xml:",chardata"` + MustUnderstand string `xml:"s:mustUnderstand,attr"` + } `xml:"wsa:To"` + Security struct { + Text string `xml:",chardata"` + MustUnderstand string `xml:"s:mustUnderstand,attr"` + Wsse string `xml:"xmlns:wsse,attr"` + Timestamp struct { + Text string `xml:",chardata"` + ID string `xml:"wsu:Id,attr"` + Created struct { + Text string `xml:",chardata"` + } `xml:"wsu:Created"` + Expires struct { + Text string `xml:",chardata"` + } `xml:"wsu:Expires"` + } `xml:"wsu:Timestamp"` + UsernameToken struct { + Text string `xml:",chardata"` + ID string `xml:"wsu:Id,attr"` + Username struct { + Text string `xml:",chardata"` + } `xml:"wsse:Username"` + Password struct { + Text string `xml:",chardata"` + } `xml:"wsse:Password"` + } `xml:"wsse:UsernameToken"` + } `xml:"wsse:Security"` + } `xml:"s:Header"` + Body struct { + Text string `xml:",chardata"` + RequestSecurityToken struct { + Text string `xml:",chardata"` + Wst string `xml:"xmlns:wst,attr"` + AppliesTo struct { + Text string `xml:",chardata"` + Wsp string `xml:"xmlns:wsp,attr"` + EndpointReference struct { + Text string `xml:",chardata"` + Address struct { + Text string `xml:",chardata"` + } `xml:"wsa:Address"` + } `xml:"wsa:EndpointReference"` + } `xml:"wsp:AppliesTo"` + KeyType struct { + Text string `xml:",chardata"` + } `xml:"wst:KeyType"` + RequestType struct { + Text string `xml:",chardata"` + } `xml:"wst:RequestType"` + } `xml:"wst:RequestSecurityToken"` + } `xml:"s:Body"` +} + +func buildTimeString(t time.Time) string { + // Golang time formats are weird: https://stackoverflow.com/questions/20234104/how-to-format-current-time-using-a-yyyymmddhhmmss-format + return t.Format("2006-01-02T15:04:05.000Z") +} + +func (wte *Endpoint) buildTokenRequestMessage(authType authority.AuthorizeType, cloudAudienceURN string, username string, password string) (string, error) { + var soapAction string + var trustNamespace string + var keyType string + var requestType string + + createdTime := time.Now().UTC() + expiresTime := createdTime.Add(10 * time.Minute) + + switch wte.Version { + case Trust2005: + soapAction = trust2005Spec + trustNamespace = "http://schemas.xmlsoap.org/ws/2005/02/trust" + keyType = "http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey" + requestType = "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue" + case Trust13: + soapAction = trust13Spec + trustNamespace = "http://docs.oasis-open.org/ws-sx/ws-trust/200512" + keyType = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer" + requestType = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue" + default: + return "", fmt.Errorf("buildTokenRequestMessage had Version == %q, which is not recognized", wte.Version) + } + + var envelope wsTrustTokenRequestEnvelope + + messageUUID := uuid.New() + + envelope.S = "http://www.w3.org/2003/05/soap-envelope" + envelope.Wsa = "http://www.w3.org/2005/08/addressing" + envelope.Wsu = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" + + envelope.Header.Action.MustUnderstand = "1" + envelope.Header.Action.Text = soapAction + envelope.Header.MessageID.Text = "urn:uuid:" + messageUUID.String() + envelope.Header.ReplyTo.Address.Text = "http://www.w3.org/2005/08/addressing/anonymous" + envelope.Header.To.MustUnderstand = "1" + envelope.Header.To.Text = wte.URL + + switch authType { + case authority.ATUnknown: + return "", fmt.Errorf("buildTokenRequestMessage had no authority type(%v)", authType) + case authority.ATUsernamePassword: + endpointUUID := uuid.New() + + var trustID string + if wte.Version == Trust2005 { + trustID = "UnPwSecTok2005-" + endpointUUID.String() + } else { + trustID = "UnPwSecTok13-" + endpointUUID.String() + } + + envelope.Header.Security.MustUnderstand = "1" + envelope.Header.Security.Wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" + envelope.Header.Security.Timestamp.ID = "MSATimeStamp" + envelope.Header.Security.Timestamp.Created.Text = buildTimeString(createdTime) + envelope.Header.Security.Timestamp.Expires.Text = buildTimeString(expiresTime) + envelope.Header.Security.UsernameToken.ID = trustID + envelope.Header.Security.UsernameToken.Username.Text = username + envelope.Header.Security.UsernameToken.Password.Text = password + default: + // This is just to note that we don't do anything for other cases. + // We aren't missing anything I know of. + } + + envelope.Body.RequestSecurityToken.Wst = trustNamespace + envelope.Body.RequestSecurityToken.AppliesTo.Wsp = "http://schemas.xmlsoap.org/ws/2004/09/policy" + envelope.Body.RequestSecurityToken.AppliesTo.EndpointReference.Address.Text = cloudAudienceURN + envelope.Body.RequestSecurityToken.KeyType.Text = keyType + envelope.Body.RequestSecurityToken.RequestType.Text = requestType + + output, err := xml.Marshal(envelope) + if err != nil { + return "", err + } + + return string(output), nil +} + +func (wte *Endpoint) BuildTokenRequestMessageWIA(cloudAudienceURN string) (string, error) { + return wte.buildTokenRequestMessage(authority.ATWindowsIntegrated, cloudAudienceURN, "", "") +} + +func (wte *Endpoint) BuildTokenRequestMessageUsernamePassword(cloudAudienceURN string, username string, password string) (string, error) { + return wte.buildTokenRequestMessage(authority.ATUsernamePassword, cloudAudienceURN, username, password) +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_mex_document.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_mex_document.go new file mode 100644 index 00000000..e3d19886 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs/wstrust_mex_document.go @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package defs + +import ( + "errors" + "fmt" + "strings" +) + +//go:generate stringer -type=endpointType + +type endpointType int + +const ( + etUnknown endpointType = iota + etUsernamePassword + etWindowsTransport +) + +type wsEndpointData struct { + Version Version + EndpointType endpointType +} + +const trust13Spec string = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue" +const trust2005Spec string = "http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue" + +type MexDocument struct { + UsernamePasswordEndpoint Endpoint + WindowsTransportEndpoint Endpoint + policies map[string]endpointType + bindings map[string]wsEndpointData +} + +func updateEndpoint(cached *Endpoint, found Endpoint) { + if cached == nil || cached.Version == TrustUnknown { + *cached = found + return + } + if (*cached).Version == Trust2005 && found.Version == Trust13 { + *cached = found + return + } +} + +// TODO(msal): Someone needs to write tests for everything below. + +// NewFromDef creates a new MexDocument. +func NewFromDef(defs Definitions) (MexDocument, error) { + policies, err := policies(defs) + if err != nil { + return MexDocument{}, err + } + + bindings, err := bindings(defs, policies) + if err != nil { + return MexDocument{}, err + } + + userPass, windows, err := endpoints(defs, bindings) + if err != nil { + return MexDocument{}, err + } + + return MexDocument{ + UsernamePasswordEndpoint: userPass, + WindowsTransportEndpoint: windows, + policies: policies, + bindings: bindings, + }, nil +} + +func policies(defs Definitions) (map[string]endpointType, error) { + policies := make(map[string]endpointType, len(defs.Policy)) + + for _, policy := range defs.Policy { + if policy.ExactlyOne.All.NegotiateAuthentication.XMLName.Local != "" { + if policy.ExactlyOne.All.TransportBinding.SP != "" && policy.ID != "" { + policies["#"+policy.ID] = etWindowsTransport + } + } + + if policy.ExactlyOne.All.SignedEncryptedSupportingTokens.Policy.UsernameToken.Policy.WSSUsernameToken10.XMLName.Local != "" { + if policy.ExactlyOne.All.TransportBinding.SP != "" && policy.ID != "" { + policies["#"+policy.ID] = etUsernamePassword + } + } + if policy.ExactlyOne.All.SignedSupportingTokens.Policy.UsernameToken.Policy.WSSUsernameToken10.XMLName.Local != "" { + if policy.ExactlyOne.All.TransportBinding.SP != "" && policy.ID != "" { + policies["#"+policy.ID] = etUsernamePassword + } + } + } + + if len(policies) == 0 { + return policies, errors.New("no policies for mex document") + } + + return policies, nil +} + +func bindings(defs Definitions, policies map[string]endpointType) (map[string]wsEndpointData, error) { + bindings := make(map[string]wsEndpointData, len(defs.Binding)) + + for _, binding := range defs.Binding { + policyName := binding.PolicyReference.URI + transport := binding.Binding.Transport + + if transport == "http://schemas.xmlsoap.org/soap/http" { + if policy, ok := policies[policyName]; ok { + bindingName := binding.Name + specVersion := binding.Operation.Operation.SoapAction + + if specVersion == trust13Spec { + bindings[bindingName] = wsEndpointData{Trust13, policy} + } else if specVersion == trust2005Spec { + bindings[bindingName] = wsEndpointData{Trust2005, policy} + } else { + return nil, errors.New("found unknown spec version in mex document") + } + } + } + } + return bindings, nil +} + +func endpoints(defs Definitions, bindings map[string]wsEndpointData) (userPass, windows Endpoint, err error) { + for _, port := range defs.Service.Port { + bindingName := port.Binding + + index := strings.Index(bindingName, ":") + if index != -1 { + bindingName = bindingName[index+1:] + } + + if binding, ok := bindings[bindingName]; ok { + url := strings.TrimSpace(port.EndpointReference.Address.Text) + if url == "" { + return Endpoint{}, Endpoint{}, fmt.Errorf("MexDocument cannot have blank URL endpoint") + } + if binding.Version == TrustUnknown { + return Endpoint{}, Endpoint{}, fmt.Errorf("endpoint version unknown") + } + endpoint := Endpoint{Version: binding.Version, URL: url} + + switch binding.EndpointType { + case etUsernamePassword: + updateEndpoint(&userPass, endpoint) + case etWindowsTransport: + updateEndpoint(&windows, endpoint) + default: + return Endpoint{}, Endpoint{}, errors.New("found unknown port type in MEX document") + } + } + } + return userPass, windows, nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/wstrust.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/wstrust.go new file mode 100644 index 00000000..47cd4c69 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/wstrust.go @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package wstrust provides a client for communicating with a WSTrust (https://en.wikipedia.org/wiki/WS-Trust#:~:text=WS%2DTrust%20is%20a%20WS,in%20a%20secure%20message%20exchange.) +for the purposes of extracting metadata from the service. This data can be used to acquire +tokens using the accesstokens.Client.GetAccessTokenFromSamlGrant() call. +*/ +package wstrust + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs" +) + +type xmlCaller interface { + XMLCall(ctx context.Context, endpoint string, headers http.Header, qv url.Values, resp interface{}) error + SOAPCall(ctx context.Context, endpoint, action string, headers http.Header, qv url.Values, body string, resp interface{}) error +} + +type SamlTokenInfo struct { + AssertionType string // Should be either constants SAMLV1Grant or SAMLV2Grant. + Assertion string +} + +// Client represents the REST calls to get tokens from token generator backends. +type Client struct { + // Comm provides the HTTP transport client. + Comm xmlCaller +} + +// TODO(msal): This allows me to call Mex without having a real Def file on line 45. +// This would fail because policies() would not find a policy. This is easy enough to +// fix in test data, but.... Definitions is defined with built in structs. That needs +// to be pulled apart and until then I have this hack in. +var newFromDef = defs.NewFromDef + +// Mex provides metadata about a wstrust service. +func (c Client) Mex(ctx context.Context, federationMetadataURL string) (defs.MexDocument, error) { + resp := defs.Definitions{} + err := c.Comm.XMLCall( + ctx, + federationMetadataURL, + http.Header{}, + nil, + &resp, + ) + if err != nil { + return defs.MexDocument{}, err + } + + return newFromDef(resp) +} + +const ( + SoapActionDefault = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue" + + // Note: Commented out because this action is not supported. It was in the original code + // but only used in a switch where it errored. Since there was only one value, a default + // worked better. However, buildTokenRequestMessage() had 2005 support. I'm not actually + // sure what's going on here. It like we have half support. For now this is here just + // for documentation purposes in case we are going to add support. + // + // SoapActionWSTrust2005 = "http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue" +) + +// SAMLTokenInfo provides SAML information that is used to generate a SAML token. +func (c Client) SAMLTokenInfo(ctx context.Context, authParameters authority.AuthParams, cloudAudienceURN string, endpoint defs.Endpoint) (SamlTokenInfo, error) { + var wsTrustRequestMessage string + var err error + + switch authParameters.AuthorizationType { + case authority.ATWindowsIntegrated: + wsTrustRequestMessage, err = endpoint.BuildTokenRequestMessageWIA(cloudAudienceURN) + if err != nil { + return SamlTokenInfo{}, err + } + case authority.ATUsernamePassword: + wsTrustRequestMessage, err = endpoint.BuildTokenRequestMessageUsernamePassword( + cloudAudienceURN, authParameters.Username, authParameters.Password) + if err != nil { + return SamlTokenInfo{}, err + } + default: + return SamlTokenInfo{}, fmt.Errorf("unknown auth type %v", authParameters.AuthorizationType) + } + + var soapAction string + switch endpoint.Version { + case defs.Trust13: + soapAction = SoapActionDefault + case defs.Trust2005: + return SamlTokenInfo{}, errors.New("WS Trust 2005 support is not implemented") + default: + return SamlTokenInfo{}, fmt.Errorf("the SOAP endpoint for a wstrust call had an invalid version: %v", endpoint.Version) + } + + resp := defs.SAMLDefinitions{} + err = c.Comm.SOAPCall(ctx, endpoint.URL, soapAction, http.Header{}, nil, wsTrustRequestMessage, &resp) + if err != nil { + return SamlTokenInfo{}, err + } + + return c.samlAssertion(resp) +} + +const ( + samlv1Assertion = "urn:oasis:names:tc:SAML:1.0:assertion" + samlv2Assertion = "urn:oasis:names:tc:SAML:2.0:assertion" +) + +func (c Client) samlAssertion(def defs.SAMLDefinitions) (SamlTokenInfo, error) { + for _, tokenResponse := range def.Body.RequestSecurityTokenResponseCollection.RequestSecurityTokenResponse { + token := tokenResponse.RequestedSecurityToken + if token.Assertion.XMLName.Local != "" { + assertion := token.AssertionRawXML + + samlVersion := token.Assertion.Saml + switch samlVersion { + case samlv1Assertion: + return SamlTokenInfo{AssertionType: grant.SAMLV1, Assertion: assertion}, nil + case samlv2Assertion: + return SamlTokenInfo{AssertionType: grant.SAMLV2, Assertion: assertion}, nil + } + return SamlTokenInfo{}, fmt.Errorf("couldn't parse SAML assertion, version unknown: %q", samlVersion) + } + } + return SamlTokenInfo{}, errors.New("unknown WS-Trust version") +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go new file mode 100644 index 00000000..0ade4117 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/resolvers.go @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// TODO(msal): Write some tests. The original code this came from didn't have tests and I'm too +// tired at this point to do it. It, like many other *Manager code I found was broken because +// they didn't have mutex protection. + +package oauth + +import ( + "context" + "errors" + "fmt" + "strings" + "sync" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" +) + +// ADFS is an active directory federation service authority type. +const ADFS = "ADFS" + +type cacheEntry struct { + Endpoints authority.Endpoints + ValidForDomainsInList map[string]bool +} + +func createcacheEntry(endpoints authority.Endpoints) cacheEntry { + return cacheEntry{endpoints, map[string]bool{}} +} + +// AuthorityEndpoint retrieves endpoints from an authority for auth and token acquisition. +type authorityEndpoint struct { + rest *ops.REST + + mu sync.Mutex + cache map[string]cacheEntry +} + +// newAuthorityEndpoint is the constructor for AuthorityEndpoint. +func newAuthorityEndpoint(rest *ops.REST) *authorityEndpoint { + m := &authorityEndpoint{rest: rest, cache: map[string]cacheEntry{}} + return m +} + +// ResolveEndpoints gets the authorization and token endpoints and creates an AuthorityEndpoints instance +func (m *authorityEndpoint) ResolveEndpoints(ctx context.Context, authorityInfo authority.Info, userPrincipalName string) (authority.Endpoints, error) { + + if endpoints, found := m.cachedEndpoints(authorityInfo, userPrincipalName); found { + return endpoints, nil + } + + endpoint, err := m.openIDConfigurationEndpoint(ctx, authorityInfo, userPrincipalName) + if err != nil { + return authority.Endpoints{}, err + } + + resp, err := m.rest.Authority().GetTenantDiscoveryResponse(ctx, endpoint) + if err != nil { + return authority.Endpoints{}, err + } + if err := resp.Validate(); err != nil { + return authority.Endpoints{}, fmt.Errorf("ResolveEndpoints(): %w", err) + } + + tenant := authorityInfo.Tenant + + endpoints := authority.NewEndpoints( + strings.Replace(resp.AuthorizationEndpoint, "{tenant}", tenant, -1), + strings.Replace(resp.TokenEndpoint, "{tenant}", tenant, -1), + strings.Replace(resp.Issuer, "{tenant}", tenant, -1), + authorityInfo.Host) + + m.addCachedEndpoints(authorityInfo, userPrincipalName, endpoints) + + return endpoints, nil +} + +// cachedEndpoints returns a the cached endpoints if they exists. If not, we return false. +func (m *authorityEndpoint) cachedEndpoints(authorityInfo authority.Info, userPrincipalName string) (authority.Endpoints, bool) { + m.mu.Lock() + defer m.mu.Unlock() + + if cacheEntry, ok := m.cache[authorityInfo.CanonicalAuthorityURI]; ok { + if authorityInfo.AuthorityType == ADFS { + domain, err := adfsDomainFromUpn(userPrincipalName) + if err == nil { + if _, ok := cacheEntry.ValidForDomainsInList[domain]; ok { + return cacheEntry.Endpoints, true + } + } + } + return cacheEntry.Endpoints, true + } + return authority.Endpoints{}, false +} + +func (m *authorityEndpoint) addCachedEndpoints(authorityInfo authority.Info, userPrincipalName string, endpoints authority.Endpoints) { + m.mu.Lock() + defer m.mu.Unlock() + + updatedCacheEntry := createcacheEntry(endpoints) + + if authorityInfo.AuthorityType == ADFS { + // Since we're here, we've made a call to the backend. We want to ensure we're caching + // the latest values from the server. + if cacheEntry, ok := m.cache[authorityInfo.CanonicalAuthorityURI]; ok { + for k := range cacheEntry.ValidForDomainsInList { + updatedCacheEntry.ValidForDomainsInList[k] = true + } + } + domain, err := adfsDomainFromUpn(userPrincipalName) + if err == nil { + updatedCacheEntry.ValidForDomainsInList[domain] = true + } + } + + m.cache[authorityInfo.CanonicalAuthorityURI] = updatedCacheEntry +} + +func (m *authorityEndpoint) openIDConfigurationEndpoint(ctx context.Context, authorityInfo authority.Info, userPrincipalName string) (string, error) { + if authorityInfo.Tenant == "adfs" { + return fmt.Sprintf("https://%s/adfs/.well-known/openid-configuration", authorityInfo.Host), nil + } else if authorityInfo.ValidateAuthority && !authority.TrustedHost(authorityInfo.Host) { + resp, err := m.rest.Authority().AADInstanceDiscovery(ctx, authorityInfo) + if err != nil { + return "", err + } + return resp.TenantDiscoveryEndpoint, nil + } else if authorityInfo.Region != "" { + resp, err := m.rest.Authority().AADInstanceDiscovery(ctx, authorityInfo) + if err != nil { + return "", err + } + return resp.TenantDiscoveryEndpoint, nil + + } + + return authorityInfo.CanonicalAuthorityURI + "v2.0/.well-known/openid-configuration", nil +} + +func adfsDomainFromUpn(userPrincipalName string) (string, error) { + parts := strings.Split(userPrincipalName, "@") + if len(parts) < 2 { + return "", errors.New("no @ present in user principal name") + } + return parts[1], nil +} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options/options.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options/options.go new file mode 100644 index 00000000..4561d72d --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options/options.go @@ -0,0 +1,52 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package options + +import ( + "errors" + "fmt" +) + +// CallOption implements an optional argument to a method call. See +// https://blog.devgenius.io/go-call-option-that-can-be-used-with-multiple-methods-6c81734f3dbe +// for an explanation of the usage pattern. +type CallOption interface { + Do(any) error + callOption() +} + +// ApplyOptions applies all the callOptions to options. options must be a pointer to a struct and +// callOptions must be a list of objects that implement CallOption. +func ApplyOptions[O, C any](options O, callOptions []C) error { + for _, o := range callOptions { + if t, ok := any(o).(CallOption); !ok { + return fmt.Errorf("unexpected option type %T", o) + } else if err := t.Do(options); err != nil { + return err + } + } + return nil +} + +// NewCallOption returns a new CallOption whose Do() method calls function "f". +func NewCallOption(f func(any) error) CallOption { + if f == nil { + // This isn't a practical concern because only an MSAL maintainer can get + // us here, by implementing a do-nothing option. But if someone does that, + // the below ensures the method invoked with the option returns an error. + return callOption(func(any) error { + return errors.New("invalid option: missing implementation") + }) + } + return callOption(f) +} + +// callOption is an adapter for a function to a CallOption +type callOption func(any) error + +func (c callOption) Do(a any) error { + return c(a) +} + +func (callOption) callOption() {} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared/shared.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared/shared.go new file mode 100644 index 00000000..f7e12a71 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared/shared.go @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +package shared + +import ( + "net/http" + "reflect" + "strings" +) + +const ( + // CacheKeySeparator is used in creating the keys of the cache. + CacheKeySeparator = "-" +) + +type Account struct { + HomeAccountID string `json:"home_account_id,omitempty"` + Environment string `json:"environment,omitempty"` + Realm string `json:"realm,omitempty"` + LocalAccountID string `json:"local_account_id,omitempty"` + AuthorityType string `json:"authority_type,omitempty"` + PreferredUsername string `json:"username,omitempty"` + GivenName string `json:"given_name,omitempty"` + FamilyName string `json:"family_name,omitempty"` + MiddleName string `json:"middle_name,omitempty"` + Name string `json:"name,omitempty"` + AlternativeID string `json:"alternative_account_id,omitempty"` + RawClientInfo string `json:"client_info,omitempty"` + UserAssertionHash string `json:"user_assertion_hash,omitempty"` + + AdditionalFields map[string]interface{} +} + +// NewAccount creates an account. +func NewAccount(homeAccountID, env, realm, localAccountID, authorityType, username string) Account { + return Account{ + HomeAccountID: homeAccountID, + Environment: env, + Realm: realm, + LocalAccountID: localAccountID, + AuthorityType: authorityType, + PreferredUsername: username, + } +} + +// Key creates the key for storing accounts in the cache. +func (acc Account) Key() string { + return strings.Join([]string{acc.HomeAccountID, acc.Environment, acc.Realm}, CacheKeySeparator) +} + +// IsZero checks the zero value of account. +func (acc Account) IsZero() bool { + v := reflect.ValueOf(acc) + for i := 0; i < v.NumField(); i++ { + field := v.Field(i) + if !field.IsZero() { + switch field.Kind() { + case reflect.Map, reflect.Slice: + if field.Len() == 0 { + continue + } + } + return false + } + } + return true +} + +// DefaultClient is our default shared HTTP client. +var DefaultClient = &http.Client{} diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version/version.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version/version.go new file mode 100644 index 00000000..4a20fef3 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version/version.go @@ -0,0 +1,8 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +// Package version keeps the version number of the client package. +package version + +// Version is the version of this client package that is communicated to the server. +const Version = "0.9.0" diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/public/public.go b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/public/public.go new file mode 100644 index 00000000..cce05277 --- /dev/null +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/apps/public/public.go @@ -0,0 +1,683 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. + +/* +Package public provides a client for authentication of "public" applications. A "public" +application is defined as an app that runs on client devices (android, ios, windows, linux, ...). +These devices are "untrusted" and access resources via web APIs that must authenticate. +*/ +package public + +/* +Design note: + +public.Client uses client.Base as an embedded type. client.Base statically assigns its attributes +during creation. As it doesn't have any pointers in it, anything borrowed from it, such as +Base.AuthParams is a copy that is free to be manipulated here. +*/ + +// TODO(msal): This should have example code for each method on client using Go's example doc framework. +// base usage details should be includee in the package documentation. + +import ( + "context" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + "fmt" + "net/url" + "strconv" + + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options" + "github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared" + "github.com/google/uuid" + "github.com/pkg/browser" +) + +// AuthResult contains the results of one token acquisition operation. +// For details see https://aka.ms/msal-net-authenticationresult +type AuthResult = base.AuthResult + +type Account = shared.Account + +// clientOptions configures the Client's behavior. +type clientOptions struct { + accessor cache.ExportReplace + authority string + capabilities []string + disableInstanceDiscovery bool + httpClient ops.HTTPClient +} + +func (p *clientOptions) validate() error { + u, err := url.Parse(p.authority) + if err != nil { + return fmt.Errorf("Authority options cannot be URL parsed: %w", err) + } + if u.Scheme != "https" { + return fmt.Errorf("Authority(%s) did not start with https://", u.String()) + } + return nil +} + +// Option is an optional argument to the New constructor. +type Option func(o *clientOptions) + +// WithAuthority allows for a custom authority to be set. This must be a valid https url. +func WithAuthority(authority string) Option { + return func(o *clientOptions) { + o.authority = authority + } +} + +// WithCache provides an accessor that will read and write authentication data to an externally managed cache. +func WithCache(accessor cache.ExportReplace) Option { + return func(o *clientOptions) { + o.accessor = accessor + } +} + +// WithClientCapabilities allows configuring one or more client capabilities such as "CP1" +func WithClientCapabilities(capabilities []string) Option { + return func(o *clientOptions) { + // there's no danger of sharing the slice's underlying memory with the application because + // this slice is simply passed to base.WithClientCapabilities, which copies its data + o.capabilities = capabilities + } +} + +// WithHTTPClient allows for a custom HTTP client to be set. +func WithHTTPClient(httpClient ops.HTTPClient) Option { + return func(o *clientOptions) { + o.httpClient = httpClient + } +} + +// WithInstanceDiscovery set to false to disable authority validation (to support private cloud scenarios) +func WithInstanceDiscovery(enabled bool) Option { + return func(o *clientOptions) { + o.disableInstanceDiscovery = !enabled + } +} + +// Client is a representation of authentication client for public applications as defined in the +// package doc. For more information, visit https://docs.microsoft.com/azure/active-directory/develop/msal-client-applications. +type Client struct { + base base.Client +} + +// New is the constructor for Client. +func New(clientID string, options ...Option) (Client, error) { + opts := clientOptions{ + authority: base.AuthorityPublicCloud, + httpClient: shared.DefaultClient, + } + + for _, o := range options { + o(&opts) + } + if err := opts.validate(); err != nil { + return Client{}, err + } + + base, err := base.New(clientID, opts.authority, oauth.New(opts.httpClient), base.WithCacheAccessor(opts.accessor), base.WithClientCapabilities(opts.capabilities), base.WithInstanceDiscovery(!opts.disableInstanceDiscovery)) + if err != nil { + return Client{}, err + } + return Client{base}, nil +} + +// authCodeURLOptions contains options for AuthCodeURL +type authCodeURLOptions struct { + claims, loginHint, tenantID, domainHint string +} + +// AuthCodeURLOption is implemented by options for AuthCodeURL +type AuthCodeURLOption interface { + authCodeURLOption() +} + +// AuthCodeURL creates a URL used to acquire an authorization code. +// +// Options: [WithClaims], [WithDomainHint], [WithLoginHint], [WithTenantID] +func (pca Client) AuthCodeURL(ctx context.Context, clientID, redirectURI string, scopes []string, opts ...AuthCodeURLOption) (string, error) { + o := authCodeURLOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return "", err + } + ap, err := pca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return "", err + } + ap.Claims = o.claims + ap.LoginHint = o.loginHint + ap.DomainHint = o.domainHint + return pca.base.AuthCodeURL(ctx, clientID, redirectURI, scopes, ap) +} + +// WithClaims sets additional claims to request for the token, such as those required by conditional access policies. +// Use this option when Azure AD returned a claims challenge for a prior request. The argument must be decoded. +// This option is valid for any token acquisition method. +func WithClaims(claims string) interface { + AcquireByAuthCodeOption + AcquireByDeviceCodeOption + AcquireByUsernamePasswordOption + AcquireInteractiveOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + AcquireByDeviceCodeOption + AcquireByUsernamePasswordOption + AcquireInteractiveOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.claims = claims + case *acquireTokenByDeviceCodeOptions: + t.claims = claims + case *acquireTokenByUsernamePasswordOptions: + t.claims = claims + case *acquireTokenSilentOptions: + t.claims = claims + case *authCodeURLOptions: + t.claims = claims + case *interactiveAuthOptions: + t.claims = claims + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithTenantID specifies a tenant for a single authentication. It may be different than the tenant set in [New] by [WithAuthority]. +// This option is valid for any token acquisition method. +func WithTenantID(tenantID string) interface { + AcquireByAuthCodeOption + AcquireByDeviceCodeOption + AcquireByUsernamePasswordOption + AcquireInteractiveOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + AcquireByDeviceCodeOption + AcquireByUsernamePasswordOption + AcquireInteractiveOption + AcquireSilentOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.tenantID = tenantID + case *acquireTokenByDeviceCodeOptions: + t.tenantID = tenantID + case *acquireTokenByUsernamePasswordOptions: + t.tenantID = tenantID + case *acquireTokenSilentOptions: + t.tenantID = tenantID + case *authCodeURLOptions: + t.tenantID = tenantID + case *interactiveAuthOptions: + t.tenantID = tenantID + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// acquireTokenSilentOptions are all the optional settings to an AcquireTokenSilent() call. +// These are set by using various AcquireTokenSilentOption functions. +type acquireTokenSilentOptions struct { + account Account + claims, tenantID string +} + +// AcquireSilentOption is implemented by options for AcquireTokenSilent +type AcquireSilentOption interface { + acquireSilentOption() +} + +// WithSilentAccount uses the passed account during an AcquireTokenSilent() call. +func WithSilentAccount(account Account) interface { + AcquireSilentOption + options.CallOption +} { + return struct { + AcquireSilentOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenSilentOptions: + t.account = account + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// AcquireTokenSilent acquires a token from either the cache or using a refresh token. +// +// Options: [WithClaims], [WithSilentAccount], [WithTenantID] +func (pca Client) AcquireTokenSilent(ctx context.Context, scopes []string, opts ...AcquireSilentOption) (AuthResult, error) { + o := acquireTokenSilentOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + + silentParameters := base.AcquireTokenSilentParameters{ + Scopes: scopes, + Account: o.account, + Claims: o.claims, + RequestType: accesstokens.ATPublic, + IsAppCache: false, + TenantID: o.tenantID, + } + + return pca.base.AcquireTokenSilent(ctx, silentParameters) +} + +// acquireTokenByUsernamePasswordOptions contains optional configuration for AcquireTokenByUsernamePassword +type acquireTokenByUsernamePasswordOptions struct { + claims, tenantID string +} + +// AcquireByUsernamePasswordOption is implemented by options for AcquireTokenByUsernamePassword +type AcquireByUsernamePasswordOption interface { + acquireByUsernamePasswordOption() +} + +// AcquireTokenByUsernamePassword acquires a security token from the authority, via Username/Password Authentication. +// NOTE: this flow is NOT recommended. +// +// Options: [WithClaims], [WithTenantID] +func (pca Client) AcquireTokenByUsernamePassword(ctx context.Context, scopes []string, username, password string, opts ...AcquireByUsernamePasswordOption) (AuthResult, error) { + o := acquireTokenByUsernamePasswordOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + authParams, err := pca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return AuthResult{}, err + } + authParams.Scopes = scopes + authParams.AuthorizationType = authority.ATUsernamePassword + authParams.Claims = o.claims + authParams.Username = username + authParams.Password = password + + token, err := pca.base.Token.UsernamePassword(ctx, authParams) + if err != nil { + return AuthResult{}, err + } + return pca.base.AuthResultFromToken(ctx, authParams, token, true) +} + +type DeviceCodeResult = accesstokens.DeviceCodeResult + +// DeviceCode provides the results of the device code flows first stage (containing the code) +// that must be entered on the second device and provides a method to retrieve the AuthenticationResult +// once that code has been entered and verified. +type DeviceCode struct { + // Result holds the information about the device code (such as the code). + Result DeviceCodeResult + + authParams authority.AuthParams + client Client + dc oauth.DeviceCode +} + +// AuthenticationResult retreives the AuthenticationResult once the user enters the code +// on the second device. Until then it blocks until the .AcquireTokenByDeviceCode() context +// is cancelled or the token expires. +func (d DeviceCode) AuthenticationResult(ctx context.Context) (AuthResult, error) { + token, err := d.dc.Token(ctx) + if err != nil { + return AuthResult{}, err + } + return d.client.base.AuthResultFromToken(ctx, d.authParams, token, true) +} + +// acquireTokenByDeviceCodeOptions contains optional configuration for AcquireTokenByDeviceCode +type acquireTokenByDeviceCodeOptions struct { + claims, tenantID string +} + +// AcquireByDeviceCodeOption is implemented by options for AcquireTokenByDeviceCode +type AcquireByDeviceCodeOption interface { + acquireByDeviceCodeOptions() +} + +// AcquireTokenByDeviceCode acquires a security token from the authority, by acquiring a device code and using that to acquire the token. +// Users need to create an AcquireTokenDeviceCodeParameters instance and pass it in. +// +// Options: [WithClaims], [WithTenantID] +func (pca Client) AcquireTokenByDeviceCode(ctx context.Context, scopes []string, opts ...AcquireByDeviceCodeOption) (DeviceCode, error) { + o := acquireTokenByDeviceCodeOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return DeviceCode{}, err + } + authParams, err := pca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return DeviceCode{}, err + } + authParams.Scopes = scopes + authParams.AuthorizationType = authority.ATDeviceCode + authParams.Claims = o.claims + + dc, err := pca.base.Token.DeviceCode(ctx, authParams) + if err != nil { + return DeviceCode{}, err + } + + return DeviceCode{Result: dc.Result, authParams: authParams, client: pca, dc: dc}, nil +} + +// acquireTokenByAuthCodeOptions contains the optional parameters used to acquire an access token using the authorization code flow. +type acquireTokenByAuthCodeOptions struct { + challenge, claims, tenantID string +} + +// AcquireByAuthCodeOption is implemented by options for AcquireTokenByAuthCode +type AcquireByAuthCodeOption interface { + acquireByAuthCodeOption() +} + +// WithChallenge allows you to provide a code for the .AcquireTokenByAuthCode() call. +func WithChallenge(challenge string) interface { + AcquireByAuthCodeOption + options.CallOption +} { + return struct { + AcquireByAuthCodeOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *acquireTokenByAuthCodeOptions: + t.challenge = challenge + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// AcquireTokenByAuthCode is a request to acquire a security token from the authority, using an authorization code. +// The specified redirect URI must be the same URI that was used when the authorization code was requested. +// +// Options: [WithChallenge], [WithClaims], [WithTenantID] +func (pca Client) AcquireTokenByAuthCode(ctx context.Context, code string, redirectURI string, scopes []string, opts ...AcquireByAuthCodeOption) (AuthResult, error) { + o := acquireTokenByAuthCodeOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + + params := base.AcquireTokenAuthCodeParameters{ + Scopes: scopes, + Code: code, + Challenge: o.challenge, + Claims: o.claims, + AppType: accesstokens.ATPublic, + RedirectURI: redirectURI, + TenantID: o.tenantID, + } + + return pca.base.AcquireTokenByAuthCode(ctx, params) +} + +// Accounts gets all the accounts in the token cache. +// If there are no accounts in the cache the returned slice is empty. +func (pca Client) Accounts(ctx context.Context) ([]Account, error) { + return pca.base.AllAccounts(ctx) +} + +// RemoveAccount signs the account out and forgets account from token cache. +func (pca Client) RemoveAccount(ctx context.Context, account Account) error { + return pca.base.RemoveAccount(ctx, account) +} + +// interactiveAuthOptions contains the optional parameters used to acquire an access token for interactive auth code flow. +type interactiveAuthOptions struct { + claims, domainHint, loginHint, redirectURI, tenantID string +} + +// AcquireInteractiveOption is implemented by options for AcquireTokenInteractive +type AcquireInteractiveOption interface { + acquireInteractiveOption() +} + +// WithLoginHint pre-populates the login prompt with a username. +func WithLoginHint(username string) interface { + AcquireInteractiveOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireInteractiveOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *authCodeURLOptions: + t.loginHint = username + case *interactiveAuthOptions: + t.loginHint = username + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithDomainHint adds the IdP domain as domain_hint query parameter in the auth url. +func WithDomainHint(domain string) interface { + AcquireInteractiveOption + AuthCodeURLOption + options.CallOption +} { + return struct { + AcquireInteractiveOption + AuthCodeURLOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *authCodeURLOptions: + t.domainHint = domain + case *interactiveAuthOptions: + t.domainHint = domain + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// WithRedirectURI sets a port for the local server used in interactive authentication, for +// example http://localhost:port. All URI components other than the port are ignored. +func WithRedirectURI(redirectURI string) interface { + AcquireInteractiveOption + options.CallOption +} { + return struct { + AcquireInteractiveOption + options.CallOption + }{ + CallOption: options.NewCallOption( + func(a any) error { + switch t := a.(type) { + case *interactiveAuthOptions: + t.redirectURI = redirectURI + default: + return fmt.Errorf("unexpected options type %T", a) + } + return nil + }, + ), + } +} + +// AcquireTokenInteractive acquires a security token from the authority using the default web browser to select the account. +// https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#interactive-and-non-interactive-authentication +// +// Options: [WithDomainHint], [WithLoginHint], [WithRedirectURI], [WithTenantID] +func (pca Client) AcquireTokenInteractive(ctx context.Context, scopes []string, opts ...AcquireInteractiveOption) (AuthResult, error) { + o := interactiveAuthOptions{} + if err := options.ApplyOptions(&o, opts); err != nil { + return AuthResult{}, err + } + // the code verifier is a random 32-byte sequence that's been base-64 encoded without padding. + // it's used to prevent MitM attacks during auth code flow, see https://tools.ietf.org/html/rfc7636 + cv, challenge, err := codeVerifier() + if err != nil { + return AuthResult{}, err + } + var redirectURL *url.URL + if o.redirectURI != "" { + redirectURL, err = url.Parse(o.redirectURI) + if err != nil { + return AuthResult{}, err + } + } + authParams, err := pca.base.AuthParams.WithTenant(o.tenantID) + if err != nil { + return AuthResult{}, err + } + authParams.Scopes = scopes + authParams.AuthorizationType = authority.ATInteractive + authParams.Claims = o.claims + authParams.CodeChallenge = challenge + authParams.CodeChallengeMethod = "S256" + authParams.LoginHint = o.loginHint + authParams.DomainHint = o.domainHint + authParams.State = uuid.New().String() + authParams.Prompt = "select_account" + res, err := pca.browserLogin(ctx, redirectURL, authParams) + if err != nil { + return AuthResult{}, err + } + authParams.Redirecturi = res.redirectURI + + req, err := accesstokens.NewCodeChallengeRequest(authParams, accesstokens.ATPublic, nil, res.authCode, cv) + if err != nil { + return AuthResult{}, err + } + + token, err := pca.base.Token.AuthCode(ctx, req) + if err != nil { + return AuthResult{}, err + } + + return pca.base.AuthResultFromToken(ctx, authParams, token, true) +} + +type interactiveAuthResult struct { + authCode string + redirectURI string +} + +// provides a test hook to simulate opening a browser +var browserOpenURL = func(authURL string) error { + return browser.OpenURL(authURL) +} + +// parses the port number from the provided URL. +// returns 0 if nil or no port is specified. +func parsePort(u *url.URL) (int, error) { + if u == nil { + return 0, nil + } + p := u.Port() + if p == "" { + return 0, nil + } + return strconv.Atoi(p) +} + +// browserLogin launches the system browser for interactive login +func (pca Client) browserLogin(ctx context.Context, redirectURI *url.URL, params authority.AuthParams) (interactiveAuthResult, error) { + // start local redirect server so login can call us back + port, err := parsePort(redirectURI) + if err != nil { + return interactiveAuthResult{}, err + } + srv, err := local.New(params.State, port) + if err != nil { + return interactiveAuthResult{}, err + } + defer srv.Shutdown() + params.Scopes = accesstokens.AppendDefaultScopes(params) + authURL, err := pca.base.AuthCodeURL(ctx, params.ClientID, srv.Addr, params.Scopes, params) + if err != nil { + return interactiveAuthResult{}, err + } + // open browser window so user can select credentials + if err := browserOpenURL(authURL); err != nil { + return interactiveAuthResult{}, err + } + // now wait until the logic calls us back + res := srv.Result(ctx) + if res.Err != nil { + return interactiveAuthResult{}, res.Err + } + return interactiveAuthResult{ + authCode: res.Code, + redirectURI: srv.Addr, + }, nil +} + +// creates a code verifier string along with its SHA256 hash which +// is used as the challenge when requesting an auth code. +// used in interactive auth flow for PKCE. +func codeVerifier() (codeVerifier string, challenge string, err error) { + cvBytes := make([]byte, 32) + if _, err = rand.Read(cvBytes); err != nil { + return + } + codeVerifier = base64.RawURLEncoding.EncodeToString(cvBytes) + // for PKCE, create a hash of the code verifier + cvh := sha256.Sum256([]byte(codeVerifier)) + challenge = base64.RawURLEncoding.EncodeToString(cvh[:]) + return +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/.gitignore b/vendor/github.com/golang-jwt/jwt/v4/.gitignore new file mode 100644 index 00000000..09573e01 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +bin +.idea/ + diff --git a/vendor/github.com/golang-jwt/jwt/v4/LICENSE b/vendor/github.com/golang-jwt/jwt/v4/LICENSE new file mode 100644 index 00000000..35dbc252 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/LICENSE @@ -0,0 +1,9 @@ +Copyright (c) 2012 Dave Grijalva +Copyright (c) 2021 golang-jwt maintainers + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md b/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md new file mode 100644 index 00000000..32966f59 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md @@ -0,0 +1,22 @@ +## Migration Guide (v4.0.0) + +Starting from [v4.0.0](https://github.com/golang-jwt/jwt/releases/tag/v4.0.0), the import path will be: + + "github.com/golang-jwt/jwt/v4" + +The `/v4` version will be backwards compatible with existing `v3.x.y` tags in this repo, as well as +`github.com/dgrijalva/jwt-go`. For most users this should be a drop-in replacement, if you're having +troubles migrating, please open an issue. + +You can replace all occurrences of `github.com/dgrijalva/jwt-go` or `github.com/golang-jwt/jwt` with `github.com/golang-jwt/jwt/v4`, either manually or by using tools such as `sed` or `gofmt`. + +And then you'd typically run: + +``` +go get github.com/golang-jwt/jwt/v4 +go mod tidy +``` + +## Older releases (before v3.2.0) + +The original migration guide for older releases can be found at https://github.com/dgrijalva/jwt-go/blob/master/MIGRATION_GUIDE.md. diff --git a/vendor/github.com/golang-jwt/jwt/v4/README.md b/vendor/github.com/golang-jwt/jwt/v4/README.md new file mode 100644 index 00000000..30f2f2a6 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/README.md @@ -0,0 +1,138 @@ +# jwt-go + +[![build](https://github.com/golang-jwt/jwt/actions/workflows/build.yml/badge.svg)](https://github.com/golang-jwt/jwt/actions/workflows/build.yml) +[![Go Reference](https://pkg.go.dev/badge/github.com/golang-jwt/jwt/v4.svg)](https://pkg.go.dev/github.com/golang-jwt/jwt/v4) + +A [go](http://www.golang.org) (or 'golang' for search engine friendliness) implementation of [JSON Web Tokens](https://datatracker.ietf.org/doc/html/rfc7519). + +Starting with [v4.0.0](https://github.com/golang-jwt/jwt/releases/tag/v4.0.0) this project adds Go module support, but maintains backwards compatibility with older `v3.x.y` tags and upstream `github.com/dgrijalva/jwt-go`. +See the [`MIGRATION_GUIDE.md`](./MIGRATION_GUIDE.md) for more information. + +> After the original author of the library suggested migrating the maintenance of `jwt-go`, a dedicated team of open source maintainers decided to clone the existing library into this repository. See [dgrijalva/jwt-go#462](https://github.com/dgrijalva/jwt-go/issues/462) for a detailed discussion on this topic. + + +**SECURITY NOTICE:** Some older versions of Go have a security issue in the crypto/elliptic. Recommendation is to upgrade to at least 1.15 See issue [dgrijalva/jwt-go#216](https://github.com/dgrijalva/jwt-go/issues/216) for more detail. + +**SECURITY NOTICE:** It's important that you [validate the `alg` presented is what you expect](https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/). This library attempts to make it easy to do the right thing by requiring key types match the expected alg, but you should take the extra step to verify it in your usage. See the examples provided. + +### Supported Go versions + +Our support of Go versions is aligned with Go's [version release policy](https://golang.org/doc/devel/release#policy). +So we will support a major version of Go until there are two newer major releases. +We no longer support building jwt-go with unsupported Go versions, as these contain security vulnerabilities +which will not be fixed. + +## What the heck is a JWT? + +JWT.io has [a great introduction](https://jwt.io/introduction) to JSON Web Tokens. + +In short, it's a signed JSON object that does something useful (for example, authentication). It's commonly used for `Bearer` tokens in Oauth 2. A token is made of three parts, separated by `.`'s. The first two parts are JSON objects, that have been [base64url](https://datatracker.ietf.org/doc/html/rfc4648) encoded. The last part is the signature, encoded the same way. + +The first part is called the header. It contains the necessary information for verifying the last part, the signature. For example, which encryption method was used for signing and what key was used. + +The part in the middle is the interesting bit. It's called the Claims and contains the actual stuff you care about. Refer to [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) for information about reserved keys and the proper way to add your own. + +## What's in the box? + +This library supports the parsing and verification as well as the generation and signing of JWTs. Current supported signing algorithms are HMAC SHA, RSA, RSA-PSS, and ECDSA, though hooks are present for adding your own. + +## Installation Guidelines + +1. To install the jwt package, you first need to have [Go](https://go.dev/doc/install) installed, then you can use the command below to add `jwt-go` as a dependency in your Go program. + +```sh +go get -u github.com/golang-jwt/jwt/v4 +``` + +2. Import it in your code: + +```go +import "github.com/golang-jwt/jwt/v4" +``` + +## Examples + +See [the project documentation](https://pkg.go.dev/github.com/golang-jwt/jwt/v4) for examples of usage: + +* [Simple example of parsing and validating a token](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#example-Parse-Hmac) +* [Simple example of building and signing a token](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#example-New-Hmac) +* [Directory of Examples](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#pkg-examples) + +## Extensions + +This library publishes all the necessary components for adding your own signing methods or key functions. Simply implement the `SigningMethod` interface and register a factory method using `RegisterSigningMethod` or provide a `jwt.Keyfunc`. + +A common use case would be integrating with different 3rd party signature providers, like key management services from various cloud providers or Hardware Security Modules (HSMs) or to implement additional standards. + +| Extension | Purpose | Repo | +| --------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------ | +| GCP | Integrates with multiple Google Cloud Platform signing tools (AppEngine, IAM API, Cloud KMS) | https://github.com/someone1/gcp-jwt-go | +| AWS | Integrates with AWS Key Management Service, KMS | https://github.com/matelang/jwt-go-aws-kms | +| JWKS | Provides support for JWKS ([RFC 7517](https://datatracker.ietf.org/doc/html/rfc7517)) as a `jwt.Keyfunc` | https://github.com/MicahParks/keyfunc | + +*Disclaimer*: Unless otherwise specified, these integrations are maintained by third parties and should not be considered as a primary offer by any of the mentioned cloud providers + +## Compliance + +This library was last reviewed to comply with [RFC 7519](https://datatracker.ietf.org/doc/html/rfc7519) dated May 2015 with a few notable differences: + +* In order to protect against accidental use of [Unsecured JWTs](https://datatracker.ietf.org/doc/html/rfc7519#section-6), tokens using `alg=none` will only be accepted if the constant `jwt.UnsafeAllowNoneSignatureType` is provided as the key. + +## Project Status & Versioning + +This library is considered production ready. Feedback and feature requests are appreciated. The API should be considered stable. There should be very few backwards-incompatible changes outside of major version updates (and only with good reason). + +This project uses [Semantic Versioning 2.0.0](http://semver.org). Accepted pull requests will land on `main`. Periodically, versions will be tagged from `main`. You can find all the releases on [the project releases page](https://github.com/golang-jwt/jwt/releases). + +**BREAKING CHANGES:*** +A full list of breaking changes is available in `VERSION_HISTORY.md`. See `MIGRATION_GUIDE.md` for more information on updating your code. + +## Usage Tips + +### Signing vs Encryption + +A token is simply a JSON object that is signed by its author. this tells you exactly two things about the data: + +* The author of the token was in the possession of the signing secret +* The data has not been modified since it was signed + +It's important to know that JWT does not provide encryption, which means anyone who has access to the token can read its contents. If you need to protect (encrypt) the data, there is a companion spec, `JWE`, that provides this functionality. The companion project https://github.com/golang-jwt/jwe aims at a (very) experimental implementation of the JWE standard. + +### Choosing a Signing Method + +There are several signing methods available, and you should probably take the time to learn about the various options before choosing one. The principal design decision is most likely going to be symmetric vs asymmetric. + +Symmetric signing methods, such as HSA, use only a single secret. This is probably the simplest signing method to use since any `[]byte` can be used as a valid secret. They are also slightly computationally faster to use, though this rarely is enough to matter. Symmetric signing methods work the best when both producers and consumers of tokens are trusted, or even the same system. Since the same secret is used to both sign and validate tokens, you can't easily distribute the key for validation. + +Asymmetric signing methods, such as RSA, use different keys for signing and verifying tokens. This makes it possible to produce tokens with a private key, and allow any consumer to access the public key for verification. + +### Signing Methods and Key Types + +Each signing method expects a different object type for its signing keys. See the package documentation for details. Here are the most common ones: + +* The [HMAC signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodHMAC) (`HS256`,`HS384`,`HS512`) expect `[]byte` values for signing and validation +* The [RSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodRSA) (`RS256`,`RS384`,`RS512`) expect `*rsa.PrivateKey` for signing and `*rsa.PublicKey` for validation +* The [ECDSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodECDSA) (`ES256`,`ES384`,`ES512`) expect `*ecdsa.PrivateKey` for signing and `*ecdsa.PublicKey` for validation +* The [EdDSA signing method](https://pkg.go.dev/github.com/golang-jwt/jwt/v4#SigningMethodEd25519) (`Ed25519`) expect `ed25519.PrivateKey` for signing and `ed25519.PublicKey` for validation + +### JWT and OAuth + +It's worth mentioning that OAuth and JWT are not the same thing. A JWT token is simply a signed JSON object. It can be used anywhere such a thing is useful. There is some confusion, though, as JWT is the most common type of bearer token used in OAuth2 authentication. + +Without going too far down the rabbit hole, here's a description of the interaction of these technologies: + +* OAuth is a protocol for allowing an identity provider to be separate from the service a user is logging in to. For example, whenever you use Facebook to log into a different service (Yelp, Spotify, etc), you are using OAuth. +* OAuth defines several options for passing around authentication data. One popular method is called a "bearer token". A bearer token is simply a string that _should_ only be held by an authenticated user. Thus, simply presenting this token proves your identity. You can probably derive from here why a JWT might make a good bearer token. +* Because bearer tokens are used for authentication, it's important they're kept secret. This is why transactions that use bearer tokens typically happen over SSL. + +### Troubleshooting + +This library uses descriptive error messages whenever possible. If you are not getting the expected result, have a look at the errors. The most common place people get stuck is providing the correct type of key to the parser. See the above section on signing methods and key types. + +## More + +Documentation can be found [on pkg.go.dev](https://pkg.go.dev/github.com/golang-jwt/jwt/v4). + +The command line utility included in this project (cmd/jwt) provides a straightforward example of token creation and parsing as well as a useful tool for debugging your own integration. You'll also find several implementation examples in the documentation. + +[golang-jwt](https://github.com/orgs/golang-jwt) incorporates a modified version of the JWT logo, which is distributed under the terms of the [MIT License](https://github.com/jsonwebtoken/jsonwebtoken.github.io/blob/master/LICENSE.txt). diff --git a/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md b/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md new file mode 100644 index 00000000..b08402c3 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/SECURITY.md @@ -0,0 +1,19 @@ +# Security Policy + +## Supported Versions + +As of February 2022 (and until this document is updated), the latest version `v4` is supported. + +## Reporting a Vulnerability + +If you think you found a vulnerability, and even if you are not sure, please report it to jwt-go-security@googlegroups.com or one of the other [golang-jwt maintainers](https://github.com/orgs/golang-jwt/people). Please try be explicit, describe steps to reproduce the security issue with code example(s). + +You will receive a response within a timely manner. If the issue is confirmed, we will do our best to release a patch as soon as possible given the complexity of the problem. + +## Public Discussions + +Please avoid publicly discussing a potential security vulnerability. + +Let's take this offline and find a solution first, this limits the potential impact as much as possible. + +We appreciate your help! diff --git a/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md b/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md new file mode 100644 index 00000000..afbfc4e4 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/VERSION_HISTORY.md @@ -0,0 +1,135 @@ +## `jwt-go` Version History + +#### 4.0.0 + +* Introduces support for Go modules. The `v4` version will be backwards compatible with `v3.x.y`. + +#### 3.2.2 + +* Starting from this release, we are adopting the policy to support the most 2 recent versions of Go currently available. By the time of this release, this is Go 1.15 and 1.16 ([#28](https://github.com/golang-jwt/jwt/pull/28)). +* Fixed a potential issue that could occur when the verification of `exp`, `iat` or `nbf` was not required and contained invalid contents, i.e. non-numeric/date. Thanks for @thaJeztah for making us aware of that and @giorgos-f3 for originally reporting it to the formtech fork ([#40](https://github.com/golang-jwt/jwt/pull/40)). +* Added support for EdDSA / ED25519 ([#36](https://github.com/golang-jwt/jwt/pull/36)). +* Optimized allocations ([#33](https://github.com/golang-jwt/jwt/pull/33)). + +#### 3.2.1 + +* **Import Path Change**: See MIGRATION_GUIDE.md for tips on updating your code + * Changed the import path from `github.com/dgrijalva/jwt-go` to `github.com/golang-jwt/jwt` +* Fixed type confusing issue between `string` and `[]string` in `VerifyAudience` ([#12](https://github.com/golang-jwt/jwt/pull/12)). This fixes CVE-2020-26160 + +#### 3.2.0 + +* Added method `ParseUnverified` to allow users to split up the tasks of parsing and validation +* HMAC signing method returns `ErrInvalidKeyType` instead of `ErrInvalidKey` where appropriate +* Added options to `request.ParseFromRequest`, which allows for an arbitrary list of modifiers to parsing behavior. Initial set include `WithClaims` and `WithParser`. Existing usage of this function will continue to work as before. +* Deprecated `ParseFromRequestWithClaims` to simplify API in the future. + +#### 3.1.0 + +* Improvements to `jwt` command line tool +* Added `SkipClaimsValidation` option to `Parser` +* Documentation updates + +#### 3.0.0 + +* **Compatibility Breaking Changes**: See MIGRATION_GUIDE.md for tips on updating your code + * Dropped support for `[]byte` keys when using RSA signing methods. This convenience feature could contribute to security vulnerabilities involving mismatched key types with signing methods. + * `ParseFromRequest` has been moved to `request` subpackage and usage has changed + * The `Claims` property on `Token` is now type `Claims` instead of `map[string]interface{}`. The default value is type `MapClaims`, which is an alias to `map[string]interface{}`. This makes it possible to use a custom type when decoding claims. +* Other Additions and Changes + * Added `Claims` interface type to allow users to decode the claims into a custom type + * Added `ParseWithClaims`, which takes a third argument of type `Claims`. Use this function instead of `Parse` if you have a custom type you'd like to decode into. + * Dramatically improved the functionality and flexibility of `ParseFromRequest`, which is now in the `request` subpackage + * Added `ParseFromRequestWithClaims` which is the `FromRequest` equivalent of `ParseWithClaims` + * Added new interface type `Extractor`, which is used for extracting JWT strings from http requests. Used with `ParseFromRequest` and `ParseFromRequestWithClaims`. + * Added several new, more specific, validation errors to error type bitmask + * Moved examples from README to executable example files + * Signing method registry is now thread safe + * Added new property to `ValidationError`, which contains the raw error returned by calls made by parse/verify (such as those returned by keyfunc or json parser) + +#### 2.7.0 + +This will likely be the last backwards compatible release before 3.0.0, excluding essential bug fixes. + +* Added new option `-show` to the `jwt` command that will just output the decoded token without verifying +* Error text for expired tokens includes how long it's been expired +* Fixed incorrect error returned from `ParseRSAPublicKeyFromPEM` +* Documentation updates + +#### 2.6.0 + +* Exposed inner error within ValidationError +* Fixed validation errors when using UseJSONNumber flag +* Added several unit tests + +#### 2.5.0 + +* Added support for signing method none. You shouldn't use this. The API tries to make this clear. +* Updated/fixed some documentation +* Added more helpful error message when trying to parse tokens that begin with `BEARER ` + +#### 2.4.0 + +* Added new type, Parser, to allow for configuration of various parsing parameters + * You can now specify a list of valid signing methods. Anything outside this set will be rejected. + * You can now opt to use the `json.Number` type instead of `float64` when parsing token JSON +* Added support for [Travis CI](https://travis-ci.org/dgrijalva/jwt-go) +* Fixed some bugs with ECDSA parsing + +#### 2.3.0 + +* Added support for ECDSA signing methods +* Added support for RSA PSS signing methods (requires go v1.4) + +#### 2.2.0 + +* Gracefully handle a `nil` `Keyfunc` being passed to `Parse`. Result will now be the parsed token and an error, instead of a panic. + +#### 2.1.0 + +Backwards compatible API change that was missed in 2.0.0. + +* The `SignedString` method on `Token` now takes `interface{}` instead of `[]byte` + +#### 2.0.0 + +There were two major reasons for breaking backwards compatibility with this update. The first was a refactor required to expand the width of the RSA and HMAC-SHA signing implementations. There will likely be no required code changes to support this change. + +The second update, while unfortunately requiring a small change in integration, is required to open up this library to other signing methods. Not all keys used for all signing methods have a single standard on-disk representation. Requiring `[]byte` as the type for all keys proved too limiting. Additionally, this implementation allows for pre-parsed tokens to be reused, which might matter in an application that parses a high volume of tokens with a small set of keys. Backwards compatibilty has been maintained for passing `[]byte` to the RSA signing methods, but they will also accept `*rsa.PublicKey` and `*rsa.PrivateKey`. + +It is likely the only integration change required here will be to change `func(t *jwt.Token) ([]byte, error)` to `func(t *jwt.Token) (interface{}, error)` when calling `Parse`. + +* **Compatibility Breaking Changes** + * `SigningMethodHS256` is now `*SigningMethodHMAC` instead of `type struct` + * `SigningMethodRS256` is now `*SigningMethodRSA` instead of `type struct` + * `KeyFunc` now returns `interface{}` instead of `[]byte` + * `SigningMethod.Sign` now takes `interface{}` instead of `[]byte` for the key + * `SigningMethod.Verify` now takes `interface{}` instead of `[]byte` for the key +* Renamed type `SigningMethodHS256` to `SigningMethodHMAC`. Specific sizes are now just instances of this type. + * Added public package global `SigningMethodHS256` + * Added public package global `SigningMethodHS384` + * Added public package global `SigningMethodHS512` +* Renamed type `SigningMethodRS256` to `SigningMethodRSA`. Specific sizes are now just instances of this type. + * Added public package global `SigningMethodRS256` + * Added public package global `SigningMethodRS384` + * Added public package global `SigningMethodRS512` +* Moved sample private key for HMAC tests from an inline value to a file on disk. Value is unchanged. +* Refactored the RSA implementation to be easier to read +* Exposed helper methods `ParseRSAPrivateKeyFromPEM` and `ParseRSAPublicKeyFromPEM` + +#### 1.0.2 + +* Fixed bug in parsing public keys from certificates +* Added more tests around the parsing of keys for RS256 +* Code refactoring in RS256 implementation. No functional changes + +#### 1.0.1 + +* Fixed panic if RS256 signing method was passed an invalid key + +#### 1.0.0 + +* First versioned release +* API stabilized +* Supports creating, signing, parsing, and validating JWT tokens +* Supports RS256 and HS256 signing methods diff --git a/vendor/github.com/golang-jwt/jwt/v4/claims.go b/vendor/github.com/golang-jwt/jwt/v4/claims.go new file mode 100644 index 00000000..364cec87 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/claims.go @@ -0,0 +1,269 @@ +package jwt + +import ( + "crypto/subtle" + "fmt" + "time" +) + +// Claims must just have a Valid method that determines +// if the token is invalid for any supported reason +type Claims interface { + Valid() error +} + +// RegisteredClaims are a structured version of the JWT Claims Set, +// restricted to Registered Claim Names, as referenced at +// https://datatracker.ietf.org/doc/html/rfc7519#section-4.1 +// +// This type can be used on its own, but then additional private and +// public claims embedded in the JWT will not be parsed. The typical usecase +// therefore is to embedded this in a user-defined claim type. +// +// See examples for how to use this with your own claim types. +type RegisteredClaims struct { + // the `iss` (Issuer) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + Issuer string `json:"iss,omitempty"` + + // the `sub` (Subject) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + Subject string `json:"sub,omitempty"` + + // the `aud` (Audience) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3 + Audience ClaimStrings `json:"aud,omitempty"` + + // the `exp` (Expiration Time) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + ExpiresAt *NumericDate `json:"exp,omitempty"` + + // the `nbf` (Not Before) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.5 + NotBefore *NumericDate `json:"nbf,omitempty"` + + // the `iat` (Issued At) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + IssuedAt *NumericDate `json:"iat,omitempty"` + + // the `jti` (JWT ID) claim. See https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7 + ID string `json:"jti,omitempty"` +} + +// Valid validates time based claims "exp, iat, nbf". +// There is no accounting for clock skew. +// As well, if any of the above claims are not in the token, it will still +// be considered a valid claim. +func (c RegisteredClaims) Valid() error { + vErr := new(ValidationError) + now := TimeFunc() + + // The claims below are optional, by default, so if they are set to the + // default value in Go, let's not fail the verification for them. + if !c.VerifyExpiresAt(now, false) { + delta := now.Sub(c.ExpiresAt.Time) + vErr.Inner = fmt.Errorf("%s by %s", ErrTokenExpired, delta) + vErr.Errors |= ValidationErrorExpired + } + + if !c.VerifyIssuedAt(now, false) { + vErr.Inner = ErrTokenUsedBeforeIssued + vErr.Errors |= ValidationErrorIssuedAt + } + + if !c.VerifyNotBefore(now, false) { + vErr.Inner = ErrTokenNotValidYet + vErr.Errors |= ValidationErrorNotValidYet + } + + if vErr.valid() { + return nil + } + + return vErr +} + +// VerifyAudience compares the aud claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (c *RegisteredClaims) VerifyAudience(cmp string, req bool) bool { + return verifyAud(c.Audience, cmp, req) +} + +// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). +// If req is false, it will return true, if exp is unset. +func (c *RegisteredClaims) VerifyExpiresAt(cmp time.Time, req bool) bool { + if c.ExpiresAt == nil { + return verifyExp(nil, cmp, req) + } + + return verifyExp(&c.ExpiresAt.Time, cmp, req) +} + +// VerifyIssuedAt compares the iat claim against cmp (cmp >= iat). +// If req is false, it will return true, if iat is unset. +func (c *RegisteredClaims) VerifyIssuedAt(cmp time.Time, req bool) bool { + if c.IssuedAt == nil { + return verifyIat(nil, cmp, req) + } + + return verifyIat(&c.IssuedAt.Time, cmp, req) +} + +// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). +// If req is false, it will return true, if nbf is unset. +func (c *RegisteredClaims) VerifyNotBefore(cmp time.Time, req bool) bool { + if c.NotBefore == nil { + return verifyNbf(nil, cmp, req) + } + + return verifyNbf(&c.NotBefore.Time, cmp, req) +} + +// VerifyIssuer compares the iss claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (c *RegisteredClaims) VerifyIssuer(cmp string, req bool) bool { + return verifyIss(c.Issuer, cmp, req) +} + +// StandardClaims are a structured version of the JWT Claims Set, as referenced at +// https://datatracker.ietf.org/doc/html/rfc7519#section-4. They do not follow the +// specification exactly, since they were based on an earlier draft of the +// specification and not updated. The main difference is that they only +// support integer-based date fields and singular audiences. This might lead to +// incompatibilities with other JWT implementations. The use of this is discouraged, instead +// the newer RegisteredClaims struct should be used. +// +// Deprecated: Use RegisteredClaims instead for a forward-compatible way to access registered claims in a struct. +type StandardClaims struct { + Audience string `json:"aud,omitempty"` + ExpiresAt int64 `json:"exp,omitempty"` + Id string `json:"jti,omitempty"` + IssuedAt int64 `json:"iat,omitempty"` + Issuer string `json:"iss,omitempty"` + NotBefore int64 `json:"nbf,omitempty"` + Subject string `json:"sub,omitempty"` +} + +// Valid validates time based claims "exp, iat, nbf". There is no accounting for clock skew. +// As well, if any of the above claims are not in the token, it will still +// be considered a valid claim. +func (c StandardClaims) Valid() error { + vErr := new(ValidationError) + now := TimeFunc().Unix() + + // The claims below are optional, by default, so if they are set to the + // default value in Go, let's not fail the verification for them. + if !c.VerifyExpiresAt(now, false) { + delta := time.Unix(now, 0).Sub(time.Unix(c.ExpiresAt, 0)) + vErr.Inner = fmt.Errorf("%s by %s", ErrTokenExpired, delta) + vErr.Errors |= ValidationErrorExpired + } + + if !c.VerifyIssuedAt(now, false) { + vErr.Inner = ErrTokenUsedBeforeIssued + vErr.Errors |= ValidationErrorIssuedAt + } + + if !c.VerifyNotBefore(now, false) { + vErr.Inner = ErrTokenNotValidYet + vErr.Errors |= ValidationErrorNotValidYet + } + + if vErr.valid() { + return nil + } + + return vErr +} + +// VerifyAudience compares the aud claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (c *StandardClaims) VerifyAudience(cmp string, req bool) bool { + return verifyAud([]string{c.Audience}, cmp, req) +} + +// VerifyExpiresAt compares the exp claim against cmp (cmp < exp). +// If req is false, it will return true, if exp is unset. +func (c *StandardClaims) VerifyExpiresAt(cmp int64, req bool) bool { + if c.ExpiresAt == 0 { + return verifyExp(nil, time.Unix(cmp, 0), req) + } + + t := time.Unix(c.ExpiresAt, 0) + return verifyExp(&t, time.Unix(cmp, 0), req) +} + +// VerifyIssuedAt compares the iat claim against cmp (cmp >= iat). +// If req is false, it will return true, if iat is unset. +func (c *StandardClaims) VerifyIssuedAt(cmp int64, req bool) bool { + if c.IssuedAt == 0 { + return verifyIat(nil, time.Unix(cmp, 0), req) + } + + t := time.Unix(c.IssuedAt, 0) + return verifyIat(&t, time.Unix(cmp, 0), req) +} + +// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). +// If req is false, it will return true, if nbf is unset. +func (c *StandardClaims) VerifyNotBefore(cmp int64, req bool) bool { + if c.NotBefore == 0 { + return verifyNbf(nil, time.Unix(cmp, 0), req) + } + + t := time.Unix(c.NotBefore, 0) + return verifyNbf(&t, time.Unix(cmp, 0), req) +} + +// VerifyIssuer compares the iss claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (c *StandardClaims) VerifyIssuer(cmp string, req bool) bool { + return verifyIss(c.Issuer, cmp, req) +} + +// ----- helpers + +func verifyAud(aud []string, cmp string, required bool) bool { + if len(aud) == 0 { + return !required + } + // use a var here to keep constant time compare when looping over a number of claims + result := false + + var stringClaims string + for _, a := range aud { + if subtle.ConstantTimeCompare([]byte(a), []byte(cmp)) != 0 { + result = true + } + stringClaims = stringClaims + a + } + + // case where "" is sent in one or many aud claims + if len(stringClaims) == 0 { + return !required + } + + return result +} + +func verifyExp(exp *time.Time, now time.Time, required bool) bool { + if exp == nil { + return !required + } + return now.Before(*exp) +} + +func verifyIat(iat *time.Time, now time.Time, required bool) bool { + if iat == nil { + return !required + } + return now.After(*iat) || now.Equal(*iat) +} + +func verifyNbf(nbf *time.Time, now time.Time, required bool) bool { + if nbf == nil { + return !required + } + return now.After(*nbf) || now.Equal(*nbf) +} + +func verifyIss(iss string, cmp string, required bool) bool { + if iss == "" { + return !required + } + return subtle.ConstantTimeCompare([]byte(iss), []byte(cmp)) != 0 +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/doc.go b/vendor/github.com/golang-jwt/jwt/v4/doc.go new file mode 100644 index 00000000..a86dc1a3 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/doc.go @@ -0,0 +1,4 @@ +// Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html +// +// See README.md for more info. +package jwt diff --git a/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go b/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go new file mode 100644 index 00000000..eac023fc --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/ecdsa.go @@ -0,0 +1,142 @@ +package jwt + +import ( + "crypto" + "crypto/ecdsa" + "crypto/rand" + "errors" + "math/big" +) + +var ( + // Sadly this is missing from crypto/ecdsa compared to crypto/rsa + ErrECDSAVerification = errors.New("crypto/ecdsa: verification error") +) + +// SigningMethodECDSA implements the ECDSA family of signing methods. +// Expects *ecdsa.PrivateKey for signing and *ecdsa.PublicKey for verification +type SigningMethodECDSA struct { + Name string + Hash crypto.Hash + KeySize int + CurveBits int +} + +// Specific instances for EC256 and company +var ( + SigningMethodES256 *SigningMethodECDSA + SigningMethodES384 *SigningMethodECDSA + SigningMethodES512 *SigningMethodECDSA +) + +func init() { + // ES256 + SigningMethodES256 = &SigningMethodECDSA{"ES256", crypto.SHA256, 32, 256} + RegisterSigningMethod(SigningMethodES256.Alg(), func() SigningMethod { + return SigningMethodES256 + }) + + // ES384 + SigningMethodES384 = &SigningMethodECDSA{"ES384", crypto.SHA384, 48, 384} + RegisterSigningMethod(SigningMethodES384.Alg(), func() SigningMethod { + return SigningMethodES384 + }) + + // ES512 + SigningMethodES512 = &SigningMethodECDSA{"ES512", crypto.SHA512, 66, 521} + RegisterSigningMethod(SigningMethodES512.Alg(), func() SigningMethod { + return SigningMethodES512 + }) +} + +func (m *SigningMethodECDSA) Alg() string { + return m.Name +} + +// Verify implements token verification for the SigningMethod. +// For this verify method, key must be an ecdsa.PublicKey struct +func (m *SigningMethodECDSA) Verify(signingString, signature string, key interface{}) error { + var err error + + // Decode the signature + var sig []byte + if sig, err = DecodeSegment(signature); err != nil { + return err + } + + // Get the key + var ecdsaKey *ecdsa.PublicKey + switch k := key.(type) { + case *ecdsa.PublicKey: + ecdsaKey = k + default: + return ErrInvalidKeyType + } + + if len(sig) != 2*m.KeySize { + return ErrECDSAVerification + } + + r := big.NewInt(0).SetBytes(sig[:m.KeySize]) + s := big.NewInt(0).SetBytes(sig[m.KeySize:]) + + // Create hasher + if !m.Hash.Available() { + return ErrHashUnavailable + } + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + // Verify the signature + if verifystatus := ecdsa.Verify(ecdsaKey, hasher.Sum(nil), r, s); verifystatus { + return nil + } + + return ErrECDSAVerification +} + +// Sign implements token signing for the SigningMethod. +// For this signing method, key must be an ecdsa.PrivateKey struct +func (m *SigningMethodECDSA) Sign(signingString string, key interface{}) (string, error) { + // Get the key + var ecdsaKey *ecdsa.PrivateKey + switch k := key.(type) { + case *ecdsa.PrivateKey: + ecdsaKey = k + default: + return "", ErrInvalidKeyType + } + + // Create the hasher + if !m.Hash.Available() { + return "", ErrHashUnavailable + } + + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + // Sign the string and return r, s + if r, s, err := ecdsa.Sign(rand.Reader, ecdsaKey, hasher.Sum(nil)); err == nil { + curveBits := ecdsaKey.Curve.Params().BitSize + + if m.CurveBits != curveBits { + return "", ErrInvalidKey + } + + keyBytes := curveBits / 8 + if curveBits%8 > 0 { + keyBytes += 1 + } + + // We serialize the outputs (r and s) into big-endian byte arrays + // padded with zeros on the left to make sure the sizes work out. + // Output must be 2*keyBytes long. + out := make([]byte, 2*keyBytes) + r.FillBytes(out[0:keyBytes]) // r is assigned to the first half of output. + s.FillBytes(out[keyBytes:]) // s is assigned to the second half of output. + + return EncodeSegment(out), nil + } else { + return "", err + } +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go b/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go new file mode 100644 index 00000000..5700636d --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/ecdsa_utils.go @@ -0,0 +1,69 @@ +package jwt + +import ( + "crypto/ecdsa" + "crypto/x509" + "encoding/pem" + "errors" +) + +var ( + ErrNotECPublicKey = errors.New("key is not a valid ECDSA public key") + ErrNotECPrivateKey = errors.New("key is not a valid ECDSA private key") +) + +// ParseECPrivateKeyFromPEM parses a PEM encoded Elliptic Curve Private Key Structure +func ParseECPrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + // Parse the key + var parsedKey interface{} + if parsedKey, err = x509.ParseECPrivateKey(block.Bytes); err != nil { + if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { + return nil, err + } + } + + var pkey *ecdsa.PrivateKey + var ok bool + if pkey, ok = parsedKey.(*ecdsa.PrivateKey); !ok { + return nil, ErrNotECPrivateKey + } + + return pkey, nil +} + +// ParseECPublicKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 public key +func ParseECPublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + // Parse the key + var parsedKey interface{} + if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { + if cert, err := x509.ParseCertificate(block.Bytes); err == nil { + parsedKey = cert.PublicKey + } else { + return nil, err + } + } + + var pkey *ecdsa.PublicKey + var ok bool + if pkey, ok = parsedKey.(*ecdsa.PublicKey); !ok { + return nil, ErrNotECPublicKey + } + + return pkey, nil +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/ed25519.go b/vendor/github.com/golang-jwt/jwt/v4/ed25519.go new file mode 100644 index 00000000..07d3aacd --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/ed25519.go @@ -0,0 +1,85 @@ +package jwt + +import ( + "errors" + + "crypto" + "crypto/ed25519" + "crypto/rand" +) + +var ( + ErrEd25519Verification = errors.New("ed25519: verification error") +) + +// SigningMethodEd25519 implements the EdDSA family. +// Expects ed25519.PrivateKey for signing and ed25519.PublicKey for verification +type SigningMethodEd25519 struct{} + +// Specific instance for EdDSA +var ( + SigningMethodEdDSA *SigningMethodEd25519 +) + +func init() { + SigningMethodEdDSA = &SigningMethodEd25519{} + RegisterSigningMethod(SigningMethodEdDSA.Alg(), func() SigningMethod { + return SigningMethodEdDSA + }) +} + +func (m *SigningMethodEd25519) Alg() string { + return "EdDSA" +} + +// Verify implements token verification for the SigningMethod. +// For this verify method, key must be an ed25519.PublicKey +func (m *SigningMethodEd25519) Verify(signingString, signature string, key interface{}) error { + var err error + var ed25519Key ed25519.PublicKey + var ok bool + + if ed25519Key, ok = key.(ed25519.PublicKey); !ok { + return ErrInvalidKeyType + } + + if len(ed25519Key) != ed25519.PublicKeySize { + return ErrInvalidKey + } + + // Decode the signature + var sig []byte + if sig, err = DecodeSegment(signature); err != nil { + return err + } + + // Verify the signature + if !ed25519.Verify(ed25519Key, []byte(signingString), sig) { + return ErrEd25519Verification + } + + return nil +} + +// Sign implements token signing for the SigningMethod. +// For this signing method, key must be an ed25519.PrivateKey +func (m *SigningMethodEd25519) Sign(signingString string, key interface{}) (string, error) { + var ed25519Key crypto.Signer + var ok bool + + if ed25519Key, ok = key.(crypto.Signer); !ok { + return "", ErrInvalidKeyType + } + + if _, ok := ed25519Key.Public().(ed25519.PublicKey); !ok { + return "", ErrInvalidKey + } + + // Sign the string and return the encoded result + // ed25519 performs a two-pass hash as part of its algorithm. Therefore, we need to pass a non-prehashed message into the Sign function, as indicated by crypto.Hash(0) + sig, err := ed25519Key.Sign(rand.Reader, []byte(signingString), crypto.Hash(0)) + if err != nil { + return "", err + } + return EncodeSegment(sig), nil +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go b/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go new file mode 100644 index 00000000..cdb5e68e --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/ed25519_utils.go @@ -0,0 +1,64 @@ +package jwt + +import ( + "crypto" + "crypto/ed25519" + "crypto/x509" + "encoding/pem" + "errors" +) + +var ( + ErrNotEdPrivateKey = errors.New("key is not a valid Ed25519 private key") + ErrNotEdPublicKey = errors.New("key is not a valid Ed25519 public key") +) + +// ParseEdPrivateKeyFromPEM parses a PEM-encoded Edwards curve private key +func ParseEdPrivateKeyFromPEM(key []byte) (crypto.PrivateKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + // Parse the key + var parsedKey interface{} + if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { + return nil, err + } + + var pkey ed25519.PrivateKey + var ok bool + if pkey, ok = parsedKey.(ed25519.PrivateKey); !ok { + return nil, ErrNotEdPrivateKey + } + + return pkey, nil +} + +// ParseEdPublicKeyFromPEM parses a PEM-encoded Edwards curve public key +func ParseEdPublicKeyFromPEM(key []byte) (crypto.PublicKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + // Parse the key + var parsedKey interface{} + if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { + return nil, err + } + + var pkey ed25519.PublicKey + var ok bool + if pkey, ok = parsedKey.(ed25519.PublicKey); !ok { + return nil, ErrNotEdPublicKey + } + + return pkey, nil +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/errors.go b/vendor/github.com/golang-jwt/jwt/v4/errors.go new file mode 100644 index 00000000..10ac8835 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/errors.go @@ -0,0 +1,112 @@ +package jwt + +import ( + "errors" +) + +// Error constants +var ( + ErrInvalidKey = errors.New("key is invalid") + ErrInvalidKeyType = errors.New("key is of invalid type") + ErrHashUnavailable = errors.New("the requested hash function is unavailable") + + ErrTokenMalformed = errors.New("token is malformed") + ErrTokenUnverifiable = errors.New("token is unverifiable") + ErrTokenSignatureInvalid = errors.New("token signature is invalid") + + ErrTokenInvalidAudience = errors.New("token has invalid audience") + ErrTokenExpired = errors.New("token is expired") + ErrTokenUsedBeforeIssued = errors.New("token used before issued") + ErrTokenInvalidIssuer = errors.New("token has invalid issuer") + ErrTokenNotValidYet = errors.New("token is not valid yet") + ErrTokenInvalidId = errors.New("token has invalid id") + ErrTokenInvalidClaims = errors.New("token has invalid claims") +) + +// The errors that might occur when parsing and validating a token +const ( + ValidationErrorMalformed uint32 = 1 << iota // Token is malformed + ValidationErrorUnverifiable // Token could not be verified because of signing problems + ValidationErrorSignatureInvalid // Signature validation failed + + // Standard Claim validation errors + ValidationErrorAudience // AUD validation failed + ValidationErrorExpired // EXP validation failed + ValidationErrorIssuedAt // IAT validation failed + ValidationErrorIssuer // ISS validation failed + ValidationErrorNotValidYet // NBF validation failed + ValidationErrorId // JTI validation failed + ValidationErrorClaimsInvalid // Generic claims validation error +) + +// NewValidationError is a helper for constructing a ValidationError with a string error message +func NewValidationError(errorText string, errorFlags uint32) *ValidationError { + return &ValidationError{ + text: errorText, + Errors: errorFlags, + } +} + +// ValidationError represents an error from Parse if token is not valid +type ValidationError struct { + Inner error // stores the error returned by external dependencies, i.e.: KeyFunc + Errors uint32 // bitfield. see ValidationError... constants + text string // errors that do not have a valid error just have text +} + +// Error is the implementation of the err interface. +func (e ValidationError) Error() string { + if e.Inner != nil { + return e.Inner.Error() + } else if e.text != "" { + return e.text + } else { + return "token is invalid" + } +} + +// Unwrap gives errors.Is and errors.As access to the inner error. +func (e *ValidationError) Unwrap() error { + return e.Inner +} + +// No errors +func (e *ValidationError) valid() bool { + return e.Errors == 0 +} + +// Is checks if this ValidationError is of the supplied error. We are first checking for the exact error message +// by comparing the inner error message. If that fails, we compare using the error flags. This way we can use +// custom error messages (mainly for backwards compatability) and still leverage errors.Is using the global error variables. +func (e *ValidationError) Is(err error) bool { + // Check, if our inner error is a direct match + if errors.Is(errors.Unwrap(e), err) { + return true + } + + // Otherwise, we need to match using our error flags + switch err { + case ErrTokenMalformed: + return e.Errors&ValidationErrorMalformed != 0 + case ErrTokenUnverifiable: + return e.Errors&ValidationErrorUnverifiable != 0 + case ErrTokenSignatureInvalid: + return e.Errors&ValidationErrorSignatureInvalid != 0 + case ErrTokenInvalidAudience: + return e.Errors&ValidationErrorAudience != 0 + case ErrTokenExpired: + return e.Errors&ValidationErrorExpired != 0 + case ErrTokenUsedBeforeIssued: + return e.Errors&ValidationErrorIssuedAt != 0 + case ErrTokenInvalidIssuer: + return e.Errors&ValidationErrorIssuer != 0 + case ErrTokenNotValidYet: + return e.Errors&ValidationErrorNotValidYet != 0 + case ErrTokenInvalidId: + return e.Errors&ValidationErrorId != 0 + case ErrTokenInvalidClaims: + return e.Errors&ValidationErrorClaimsInvalid != 0 + } + + return false +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/hmac.go b/vendor/github.com/golang-jwt/jwt/v4/hmac.go new file mode 100644 index 00000000..011f68a2 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/hmac.go @@ -0,0 +1,95 @@ +package jwt + +import ( + "crypto" + "crypto/hmac" + "errors" +) + +// SigningMethodHMAC implements the HMAC-SHA family of signing methods. +// Expects key type of []byte for both signing and validation +type SigningMethodHMAC struct { + Name string + Hash crypto.Hash +} + +// Specific instances for HS256 and company +var ( + SigningMethodHS256 *SigningMethodHMAC + SigningMethodHS384 *SigningMethodHMAC + SigningMethodHS512 *SigningMethodHMAC + ErrSignatureInvalid = errors.New("signature is invalid") +) + +func init() { + // HS256 + SigningMethodHS256 = &SigningMethodHMAC{"HS256", crypto.SHA256} + RegisterSigningMethod(SigningMethodHS256.Alg(), func() SigningMethod { + return SigningMethodHS256 + }) + + // HS384 + SigningMethodHS384 = &SigningMethodHMAC{"HS384", crypto.SHA384} + RegisterSigningMethod(SigningMethodHS384.Alg(), func() SigningMethod { + return SigningMethodHS384 + }) + + // HS512 + SigningMethodHS512 = &SigningMethodHMAC{"HS512", crypto.SHA512} + RegisterSigningMethod(SigningMethodHS512.Alg(), func() SigningMethod { + return SigningMethodHS512 + }) +} + +func (m *SigningMethodHMAC) Alg() string { + return m.Name +} + +// Verify implements token verification for the SigningMethod. Returns nil if the signature is valid. +func (m *SigningMethodHMAC) Verify(signingString, signature string, key interface{}) error { + // Verify the key is the right type + keyBytes, ok := key.([]byte) + if !ok { + return ErrInvalidKeyType + } + + // Decode signature, for comparison + sig, err := DecodeSegment(signature) + if err != nil { + return err + } + + // Can we use the specified hashing method? + if !m.Hash.Available() { + return ErrHashUnavailable + } + + // This signing method is symmetric, so we validate the signature + // by reproducing the signature from the signing string and key, then + // comparing that against the provided signature. + hasher := hmac.New(m.Hash.New, keyBytes) + hasher.Write([]byte(signingString)) + if !hmac.Equal(sig, hasher.Sum(nil)) { + return ErrSignatureInvalid + } + + // No validation errors. Signature is good. + return nil +} + +// Sign implements token signing for the SigningMethod. +// Key must be []byte +func (m *SigningMethodHMAC) Sign(signingString string, key interface{}) (string, error) { + if keyBytes, ok := key.([]byte); ok { + if !m.Hash.Available() { + return "", ErrHashUnavailable + } + + hasher := hmac.New(m.Hash.New, keyBytes) + hasher.Write([]byte(signingString)) + + return EncodeSegment(hasher.Sum(nil)), nil + } + + return "", ErrInvalidKeyType +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/map_claims.go b/vendor/github.com/golang-jwt/jwt/v4/map_claims.go new file mode 100644 index 00000000..2700d64a --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/map_claims.go @@ -0,0 +1,151 @@ +package jwt + +import ( + "encoding/json" + "errors" + "time" + // "fmt" +) + +// MapClaims is a claims type that uses the map[string]interface{} for JSON decoding. +// This is the default claims type if you don't supply one +type MapClaims map[string]interface{} + +// VerifyAudience Compares the aud claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (m MapClaims) VerifyAudience(cmp string, req bool) bool { + var aud []string + switch v := m["aud"].(type) { + case string: + aud = append(aud, v) + case []string: + aud = v + case []interface{}: + for _, a := range v { + vs, ok := a.(string) + if !ok { + return false + } + aud = append(aud, vs) + } + } + return verifyAud(aud, cmp, req) +} + +// VerifyExpiresAt compares the exp claim against cmp (cmp <= exp). +// If req is false, it will return true, if exp is unset. +func (m MapClaims) VerifyExpiresAt(cmp int64, req bool) bool { + cmpTime := time.Unix(cmp, 0) + + v, ok := m["exp"] + if !ok { + return !req + } + + switch exp := v.(type) { + case float64: + if exp == 0 { + return verifyExp(nil, cmpTime, req) + } + + return verifyExp(&newNumericDateFromSeconds(exp).Time, cmpTime, req) + case json.Number: + v, _ := exp.Float64() + + return verifyExp(&newNumericDateFromSeconds(v).Time, cmpTime, req) + } + + return false +} + +// VerifyIssuedAt compares the exp claim against cmp (cmp >= iat). +// If req is false, it will return true, if iat is unset. +func (m MapClaims) VerifyIssuedAt(cmp int64, req bool) bool { + cmpTime := time.Unix(cmp, 0) + + v, ok := m["iat"] + if !ok { + return !req + } + + switch iat := v.(type) { + case float64: + if iat == 0 { + return verifyIat(nil, cmpTime, req) + } + + return verifyIat(&newNumericDateFromSeconds(iat).Time, cmpTime, req) + case json.Number: + v, _ := iat.Float64() + + return verifyIat(&newNumericDateFromSeconds(v).Time, cmpTime, req) + } + + return false +} + +// VerifyNotBefore compares the nbf claim against cmp (cmp >= nbf). +// If req is false, it will return true, if nbf is unset. +func (m MapClaims) VerifyNotBefore(cmp int64, req bool) bool { + cmpTime := time.Unix(cmp, 0) + + v, ok := m["nbf"] + if !ok { + return !req + } + + switch nbf := v.(type) { + case float64: + if nbf == 0 { + return verifyNbf(nil, cmpTime, req) + } + + return verifyNbf(&newNumericDateFromSeconds(nbf).Time, cmpTime, req) + case json.Number: + v, _ := nbf.Float64() + + return verifyNbf(&newNumericDateFromSeconds(v).Time, cmpTime, req) + } + + return false +} + +// VerifyIssuer compares the iss claim against cmp. +// If required is false, this method will return true if the value matches or is unset +func (m MapClaims) VerifyIssuer(cmp string, req bool) bool { + iss, _ := m["iss"].(string) + return verifyIss(iss, cmp, req) +} + +// Valid validates time based claims "exp, iat, nbf". +// There is no accounting for clock skew. +// As well, if any of the above claims are not in the token, it will still +// be considered a valid claim. +func (m MapClaims) Valid() error { + vErr := new(ValidationError) + now := TimeFunc().Unix() + + if !m.VerifyExpiresAt(now, false) { + // TODO(oxisto): this should be replaced with ErrTokenExpired + vErr.Inner = errors.New("Token is expired") + vErr.Errors |= ValidationErrorExpired + } + + if !m.VerifyIssuedAt(now, false) { + // TODO(oxisto): this should be replaced with ErrTokenUsedBeforeIssued + vErr.Inner = errors.New("Token used before issued") + vErr.Errors |= ValidationErrorIssuedAt + } + + if !m.VerifyNotBefore(now, false) { + // TODO(oxisto): this should be replaced with ErrTokenNotValidYet + vErr.Inner = errors.New("Token is not valid yet") + vErr.Errors |= ValidationErrorNotValidYet + } + + if vErr.valid() { + return nil + } + + return vErr +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/none.go b/vendor/github.com/golang-jwt/jwt/v4/none.go new file mode 100644 index 00000000..f19835d2 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/none.go @@ -0,0 +1,52 @@ +package jwt + +// SigningMethodNone implements the none signing method. This is required by the spec +// but you probably should never use it. +var SigningMethodNone *signingMethodNone + +const UnsafeAllowNoneSignatureType unsafeNoneMagicConstant = "none signing method allowed" + +var NoneSignatureTypeDisallowedError error + +type signingMethodNone struct{} +type unsafeNoneMagicConstant string + +func init() { + SigningMethodNone = &signingMethodNone{} + NoneSignatureTypeDisallowedError = NewValidationError("'none' signature type is not allowed", ValidationErrorSignatureInvalid) + + RegisterSigningMethod(SigningMethodNone.Alg(), func() SigningMethod { + return SigningMethodNone + }) +} + +func (m *signingMethodNone) Alg() string { + return "none" +} + +// Only allow 'none' alg type if UnsafeAllowNoneSignatureType is specified as the key +func (m *signingMethodNone) Verify(signingString, signature string, key interface{}) (err error) { + // Key must be UnsafeAllowNoneSignatureType to prevent accidentally + // accepting 'none' signing method + if _, ok := key.(unsafeNoneMagicConstant); !ok { + return NoneSignatureTypeDisallowedError + } + // If signing method is none, signature must be an empty string + if signature != "" { + return NewValidationError( + "'none' signing method with non-empty signature", + ValidationErrorSignatureInvalid, + ) + } + + // Accept 'none' signing method. + return nil +} + +// Only allow 'none' signing if UnsafeAllowNoneSignatureType is specified as the key +func (m *signingMethodNone) Sign(signingString string, key interface{}) (string, error) { + if _, ok := key.(unsafeNoneMagicConstant); ok { + return "", nil + } + return "", NoneSignatureTypeDisallowedError +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/parser.go b/vendor/github.com/golang-jwt/jwt/v4/parser.go new file mode 100644 index 00000000..c0a6f692 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/parser.go @@ -0,0 +1,177 @@ +package jwt + +import ( + "bytes" + "encoding/json" + "fmt" + "strings" +) + +type Parser struct { + // If populated, only these methods will be considered valid. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + ValidMethods []string + + // Use JSON Number format in JSON decoder. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + UseJSONNumber bool + + // Skip claims validation during token parsing. + // + // Deprecated: In future releases, this field will not be exported anymore and should be set with an option to NewParser instead. + SkipClaimsValidation bool +} + +// NewParser creates a new Parser with the specified options +func NewParser(options ...ParserOption) *Parser { + p := &Parser{} + + // loop through our parsing options and apply them + for _, option := range options { + option(p) + } + + return p +} + +// Parse parses, validates, verifies the signature and returns the parsed token. +// keyFunc will receive the parsed token and should return the key for validating. +func (p *Parser) Parse(tokenString string, keyFunc Keyfunc) (*Token, error) { + return p.ParseWithClaims(tokenString, MapClaims{}, keyFunc) +} + +// ParseWithClaims parses, validates, and verifies like Parse, but supplies a default object implementing the Claims +// interface. This provides default values which can be overridden and allows a caller to use their own type, rather +// than the default MapClaims implementation of Claims. +// +// Note: If you provide a custom claim implementation that embeds one of the standard claims (such as RegisteredClaims), +// make sure that a) you either embed a non-pointer version of the claims or b) if you are using a pointer, allocate the +// proper memory for it before passing in the overall claims, otherwise you might run into a panic. +func (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) { + token, parts, err := p.ParseUnverified(tokenString, claims) + if err != nil { + return token, err + } + + // Verify signing method is in the required set + if p.ValidMethods != nil { + var signingMethodValid = false + var alg = token.Method.Alg() + for _, m := range p.ValidMethods { + if m == alg { + signingMethodValid = true + break + } + } + if !signingMethodValid { + // signing method is not in the listed set + return token, NewValidationError(fmt.Sprintf("signing method %v is invalid", alg), ValidationErrorSignatureInvalid) + } + } + + // Lookup key + var key interface{} + if keyFunc == nil { + // keyFunc was not provided. short circuiting validation + return token, NewValidationError("no Keyfunc was provided.", ValidationErrorUnverifiable) + } + if key, err = keyFunc(token); err != nil { + // keyFunc returned an error + if ve, ok := err.(*ValidationError); ok { + return token, ve + } + return token, &ValidationError{Inner: err, Errors: ValidationErrorUnverifiable} + } + + vErr := &ValidationError{} + + // Validate Claims + if !p.SkipClaimsValidation { + if err := token.Claims.Valid(); err != nil { + + // If the Claims Valid returned an error, check if it is a validation error, + // If it was another error type, create a ValidationError with a generic ClaimsInvalid flag set + if e, ok := err.(*ValidationError); !ok { + vErr = &ValidationError{Inner: err, Errors: ValidationErrorClaimsInvalid} + } else { + vErr = e + } + } + } + + // Perform validation + token.Signature = parts[2] + if err = token.Method.Verify(strings.Join(parts[0:2], "."), token.Signature, key); err != nil { + vErr.Inner = err + vErr.Errors |= ValidationErrorSignatureInvalid + } + + if vErr.valid() { + token.Valid = true + return token, nil + } + + return token, vErr +} + +// ParseUnverified parses the token but doesn't validate the signature. +// +// WARNING: Don't use this method unless you know what you're doing. +// +// It's only ever useful in cases where you know the signature is valid (because it has +// been checked previously in the stack) and you want to extract values from it. +func (p *Parser) ParseUnverified(tokenString string, claims Claims) (token *Token, parts []string, err error) { + parts = strings.Split(tokenString, ".") + if len(parts) != 3 { + return nil, parts, NewValidationError("token contains an invalid number of segments", ValidationErrorMalformed) + } + + token = &Token{Raw: tokenString} + + // parse Header + var headerBytes []byte + if headerBytes, err = DecodeSegment(parts[0]); err != nil { + if strings.HasPrefix(strings.ToLower(tokenString), "bearer ") { + return token, parts, NewValidationError("tokenstring should not contain 'bearer '", ValidationErrorMalformed) + } + return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} + } + if err = json.Unmarshal(headerBytes, &token.Header); err != nil { + return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} + } + + // parse Claims + var claimBytes []byte + token.Claims = claims + + if claimBytes, err = DecodeSegment(parts[1]); err != nil { + return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} + } + dec := json.NewDecoder(bytes.NewBuffer(claimBytes)) + if p.UseJSONNumber { + dec.UseNumber() + } + // JSON Decode. Special case for map type to avoid weird pointer behavior + if c, ok := token.Claims.(MapClaims); ok { + err = dec.Decode(&c) + } else { + err = dec.Decode(&claims) + } + // Handle decode error + if err != nil { + return token, parts, &ValidationError{Inner: err, Errors: ValidationErrorMalformed} + } + + // Lookup signature method + if method, ok := token.Header["alg"].(string); ok { + if token.Method = GetSigningMethod(method); token.Method == nil { + return token, parts, NewValidationError("signing method (alg) is unavailable.", ValidationErrorUnverifiable) + } + } else { + return token, parts, NewValidationError("signing method (alg) is unspecified.", ValidationErrorUnverifiable) + } + + return token, parts, nil +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/parser_option.go b/vendor/github.com/golang-jwt/jwt/v4/parser_option.go new file mode 100644 index 00000000..6ea6f952 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/parser_option.go @@ -0,0 +1,29 @@ +package jwt + +// ParserOption is used to implement functional-style options that modify the behavior of the parser. To add +// new options, just create a function (ideally beginning with With or Without) that returns an anonymous function that +// takes a *Parser type as input and manipulates its configuration accordingly. +type ParserOption func(*Parser) + +// WithValidMethods is an option to supply algorithm methods that the parser will check. Only those methods will be considered valid. +// It is heavily encouraged to use this option in order to prevent attacks such as https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/. +func WithValidMethods(methods []string) ParserOption { + return func(p *Parser) { + p.ValidMethods = methods + } +} + +// WithJSONNumber is an option to configure the underlying JSON parser with UseNumber +func WithJSONNumber() ParserOption { + return func(p *Parser) { + p.UseJSONNumber = true + } +} + +// WithoutClaimsValidation is an option to disable claims validation. This option should only be used if you exactly know +// what you are doing. +func WithoutClaimsValidation() ParserOption { + return func(p *Parser) { + p.SkipClaimsValidation = true + } +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/rsa.go b/vendor/github.com/golang-jwt/jwt/v4/rsa.go new file mode 100644 index 00000000..b910b19c --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/rsa.go @@ -0,0 +1,101 @@ +package jwt + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" +) + +// SigningMethodRSA implements the RSA family of signing methods. +// Expects *rsa.PrivateKey for signing and *rsa.PublicKey for validation +type SigningMethodRSA struct { + Name string + Hash crypto.Hash +} + +// Specific instances for RS256 and company +var ( + SigningMethodRS256 *SigningMethodRSA + SigningMethodRS384 *SigningMethodRSA + SigningMethodRS512 *SigningMethodRSA +) + +func init() { + // RS256 + SigningMethodRS256 = &SigningMethodRSA{"RS256", crypto.SHA256} + RegisterSigningMethod(SigningMethodRS256.Alg(), func() SigningMethod { + return SigningMethodRS256 + }) + + // RS384 + SigningMethodRS384 = &SigningMethodRSA{"RS384", crypto.SHA384} + RegisterSigningMethod(SigningMethodRS384.Alg(), func() SigningMethod { + return SigningMethodRS384 + }) + + // RS512 + SigningMethodRS512 = &SigningMethodRSA{"RS512", crypto.SHA512} + RegisterSigningMethod(SigningMethodRS512.Alg(), func() SigningMethod { + return SigningMethodRS512 + }) +} + +func (m *SigningMethodRSA) Alg() string { + return m.Name +} + +// Verify implements token verification for the SigningMethod +// For this signing method, must be an *rsa.PublicKey structure. +func (m *SigningMethodRSA) Verify(signingString, signature string, key interface{}) error { + var err error + + // Decode the signature + var sig []byte + if sig, err = DecodeSegment(signature); err != nil { + return err + } + + var rsaKey *rsa.PublicKey + var ok bool + + if rsaKey, ok = key.(*rsa.PublicKey); !ok { + return ErrInvalidKeyType + } + + // Create hasher + if !m.Hash.Available() { + return ErrHashUnavailable + } + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + // Verify the signature + return rsa.VerifyPKCS1v15(rsaKey, m.Hash, hasher.Sum(nil), sig) +} + +// Sign implements token signing for the SigningMethod +// For this signing method, must be an *rsa.PrivateKey structure. +func (m *SigningMethodRSA) Sign(signingString string, key interface{}) (string, error) { + var rsaKey *rsa.PrivateKey + var ok bool + + // Validate type of key + if rsaKey, ok = key.(*rsa.PrivateKey); !ok { + return "", ErrInvalidKey + } + + // Create the hasher + if !m.Hash.Available() { + return "", ErrHashUnavailable + } + + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + // Sign the string and return the encoded bytes + if sigBytes, err := rsa.SignPKCS1v15(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil)); err == nil { + return EncodeSegment(sigBytes), nil + } else { + return "", err + } +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go b/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go new file mode 100644 index 00000000..4fd6f9e6 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/rsa_pss.go @@ -0,0 +1,143 @@ +//go:build go1.4 +// +build go1.4 + +package jwt + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" +) + +// SigningMethodRSAPSS implements the RSAPSS family of signing methods signing methods +type SigningMethodRSAPSS struct { + *SigningMethodRSA + Options *rsa.PSSOptions + // VerifyOptions is optional. If set overrides Options for rsa.VerifyPPS. + // Used to accept tokens signed with rsa.PSSSaltLengthAuto, what doesn't follow + // https://tools.ietf.org/html/rfc7518#section-3.5 but was used previously. + // See https://github.com/dgrijalva/jwt-go/issues/285#issuecomment-437451244 for details. + VerifyOptions *rsa.PSSOptions +} + +// Specific instances for RS/PS and company. +var ( + SigningMethodPS256 *SigningMethodRSAPSS + SigningMethodPS384 *SigningMethodRSAPSS + SigningMethodPS512 *SigningMethodRSAPSS +) + +func init() { + // PS256 + SigningMethodPS256 = &SigningMethodRSAPSS{ + SigningMethodRSA: &SigningMethodRSA{ + Name: "PS256", + Hash: crypto.SHA256, + }, + Options: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthEqualsHash, + }, + VerifyOptions: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthAuto, + }, + } + RegisterSigningMethod(SigningMethodPS256.Alg(), func() SigningMethod { + return SigningMethodPS256 + }) + + // PS384 + SigningMethodPS384 = &SigningMethodRSAPSS{ + SigningMethodRSA: &SigningMethodRSA{ + Name: "PS384", + Hash: crypto.SHA384, + }, + Options: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthEqualsHash, + }, + VerifyOptions: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthAuto, + }, + } + RegisterSigningMethod(SigningMethodPS384.Alg(), func() SigningMethod { + return SigningMethodPS384 + }) + + // PS512 + SigningMethodPS512 = &SigningMethodRSAPSS{ + SigningMethodRSA: &SigningMethodRSA{ + Name: "PS512", + Hash: crypto.SHA512, + }, + Options: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthEqualsHash, + }, + VerifyOptions: &rsa.PSSOptions{ + SaltLength: rsa.PSSSaltLengthAuto, + }, + } + RegisterSigningMethod(SigningMethodPS512.Alg(), func() SigningMethod { + return SigningMethodPS512 + }) +} + +// Verify implements token verification for the SigningMethod. +// For this verify method, key must be an rsa.PublicKey struct +func (m *SigningMethodRSAPSS) Verify(signingString, signature string, key interface{}) error { + var err error + + // Decode the signature + var sig []byte + if sig, err = DecodeSegment(signature); err != nil { + return err + } + + var rsaKey *rsa.PublicKey + switch k := key.(type) { + case *rsa.PublicKey: + rsaKey = k + default: + return ErrInvalidKey + } + + // Create hasher + if !m.Hash.Available() { + return ErrHashUnavailable + } + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + opts := m.Options + if m.VerifyOptions != nil { + opts = m.VerifyOptions + } + + return rsa.VerifyPSS(rsaKey, m.Hash, hasher.Sum(nil), sig, opts) +} + +// Sign implements token signing for the SigningMethod. +// For this signing method, key must be an rsa.PrivateKey struct +func (m *SigningMethodRSAPSS) Sign(signingString string, key interface{}) (string, error) { + var rsaKey *rsa.PrivateKey + + switch k := key.(type) { + case *rsa.PrivateKey: + rsaKey = k + default: + return "", ErrInvalidKeyType + } + + // Create the hasher + if !m.Hash.Available() { + return "", ErrHashUnavailable + } + + hasher := m.Hash.New() + hasher.Write([]byte(signingString)) + + // Sign the string and return the encoded bytes + if sigBytes, err := rsa.SignPSS(rand.Reader, rsaKey, m.Hash, hasher.Sum(nil), m.Options); err == nil { + return EncodeSegment(sigBytes), nil + } else { + return "", err + } +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go b/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go new file mode 100644 index 00000000..1966c450 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/rsa_utils.go @@ -0,0 +1,105 @@ +package jwt + +import ( + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "errors" +) + +var ( + ErrKeyMustBePEMEncoded = errors.New("invalid key: Key must be a PEM encoded PKCS1 or PKCS8 key") + ErrNotRSAPrivateKey = errors.New("key is not a valid RSA private key") + ErrNotRSAPublicKey = errors.New("key is not a valid RSA public key") +) + +// ParseRSAPrivateKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 private key +func ParseRSAPrivateKeyFromPEM(key []byte) (*rsa.PrivateKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + var parsedKey interface{} + if parsedKey, err = x509.ParsePKCS1PrivateKey(block.Bytes); err != nil { + if parsedKey, err = x509.ParsePKCS8PrivateKey(block.Bytes); err != nil { + return nil, err + } + } + + var pkey *rsa.PrivateKey + var ok bool + if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { + return nil, ErrNotRSAPrivateKey + } + + return pkey, nil +} + +// ParseRSAPrivateKeyFromPEMWithPassword parses a PEM encoded PKCS1 or PKCS8 private key protected with password +// +// Deprecated: This function is deprecated and should not be used anymore. It uses the deprecated x509.DecryptPEMBlock +// function, which was deprecated since RFC 1423 is regarded insecure by design. Unfortunately, there is no alternative +// in the Go standard library for now. See https://github.com/golang/go/issues/8860. +func ParseRSAPrivateKeyFromPEMWithPassword(key []byte, password string) (*rsa.PrivateKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + var parsedKey interface{} + + var blockDecrypted []byte + if blockDecrypted, err = x509.DecryptPEMBlock(block, []byte(password)); err != nil { + return nil, err + } + + if parsedKey, err = x509.ParsePKCS1PrivateKey(blockDecrypted); err != nil { + if parsedKey, err = x509.ParsePKCS8PrivateKey(blockDecrypted); err != nil { + return nil, err + } + } + + var pkey *rsa.PrivateKey + var ok bool + if pkey, ok = parsedKey.(*rsa.PrivateKey); !ok { + return nil, ErrNotRSAPrivateKey + } + + return pkey, nil +} + +// ParseRSAPublicKeyFromPEM parses a PEM encoded PKCS1 or PKCS8 public key +func ParseRSAPublicKeyFromPEM(key []byte) (*rsa.PublicKey, error) { + var err error + + // Parse PEM block + var block *pem.Block + if block, _ = pem.Decode(key); block == nil { + return nil, ErrKeyMustBePEMEncoded + } + + // Parse the key + var parsedKey interface{} + if parsedKey, err = x509.ParsePKIXPublicKey(block.Bytes); err != nil { + if cert, err := x509.ParseCertificate(block.Bytes); err == nil { + parsedKey = cert.PublicKey + } else { + return nil, err + } + } + + var pkey *rsa.PublicKey + var ok bool + if pkey, ok = parsedKey.(*rsa.PublicKey); !ok { + return nil, ErrNotRSAPublicKey + } + + return pkey, nil +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/signing_method.go b/vendor/github.com/golang-jwt/jwt/v4/signing_method.go new file mode 100644 index 00000000..241ae9c6 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/signing_method.go @@ -0,0 +1,46 @@ +package jwt + +import ( + "sync" +) + +var signingMethods = map[string]func() SigningMethod{} +var signingMethodLock = new(sync.RWMutex) + +// SigningMethod can be used add new methods for signing or verifying tokens. +type SigningMethod interface { + Verify(signingString, signature string, key interface{}) error // Returns nil if signature is valid + Sign(signingString string, key interface{}) (string, error) // Returns encoded signature or error + Alg() string // returns the alg identifier for this method (example: 'HS256') +} + +// RegisterSigningMethod registers the "alg" name and a factory function for signing method. +// This is typically done during init() in the method's implementation +func RegisterSigningMethod(alg string, f func() SigningMethod) { + signingMethodLock.Lock() + defer signingMethodLock.Unlock() + + signingMethods[alg] = f +} + +// GetSigningMethod retrieves a signing method from an "alg" string +func GetSigningMethod(alg string) (method SigningMethod) { + signingMethodLock.RLock() + defer signingMethodLock.RUnlock() + + if methodF, ok := signingMethods[alg]; ok { + method = methodF() + } + return +} + +// GetAlgorithms returns a list of registered "alg" names +func GetAlgorithms() (algs []string) { + signingMethodLock.RLock() + defer signingMethodLock.RUnlock() + + for alg := range signingMethods { + algs = append(algs, alg) + } + return +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf b/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf new file mode 100644 index 00000000..53745d51 --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/staticcheck.conf @@ -0,0 +1 @@ +checks = ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1023"] diff --git a/vendor/github.com/golang-jwt/jwt/v4/token.go b/vendor/github.com/golang-jwt/jwt/v4/token.go new file mode 100644 index 00000000..786b275c --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/token.go @@ -0,0 +1,143 @@ +package jwt + +import ( + "encoding/base64" + "encoding/json" + "strings" + "time" +) + +// DecodePaddingAllowed will switch the codec used for decoding JWTs respectively. Note that the JWS RFC7515 +// states that the tokens will utilize a Base64url encoding with no padding. Unfortunately, some implementations +// of JWT are producing non-standard tokens, and thus require support for decoding. Note that this is a global +// variable, and updating it will change the behavior on a package level, and is also NOT go-routine safe. +// To use the non-recommended decoding, set this boolean to `true` prior to using this package. +var DecodePaddingAllowed bool + +// DecodeStrict will switch the codec used for decoding JWTs into strict mode. +// In this mode, the decoder requires that trailing padding bits are zero, as described in RFC 4648 section 3.5. +// Note that this is a global variable, and updating it will change the behavior on a package level, and is also NOT go-routine safe. +// To use strict decoding, set this boolean to `true` prior to using this package. +var DecodeStrict bool + +// TimeFunc provides the current time when parsing token to validate "exp" claim (expiration time). +// You can override it to use another time value. This is useful for testing or if your +// server uses a different time zone than your tokens. +var TimeFunc = time.Now + +// Keyfunc will be used by the Parse methods as a callback function to supply +// the key for verification. The function receives the parsed, +// but unverified Token. This allows you to use properties in the +// Header of the token (such as `kid`) to identify which key to use. +type Keyfunc func(*Token) (interface{}, error) + +// Token represents a JWT Token. Different fields will be used depending on whether you're +// creating or parsing/verifying a token. +type Token struct { + Raw string // The raw token. Populated when you Parse a token + Method SigningMethod // The signing method used or to be used + Header map[string]interface{} // The first segment of the token + Claims Claims // The second segment of the token + Signature string // The third segment of the token. Populated when you Parse a token + Valid bool // Is the token valid? Populated when you Parse/Verify a token +} + +// New creates a new Token with the specified signing method and an empty map of claims. +func New(method SigningMethod) *Token { + return NewWithClaims(method, MapClaims{}) +} + +// NewWithClaims creates a new Token with the specified signing method and claims. +func NewWithClaims(method SigningMethod, claims Claims) *Token { + return &Token{ + Header: map[string]interface{}{ + "typ": "JWT", + "alg": method.Alg(), + }, + Claims: claims, + Method: method, + } +} + +// SignedString creates and returns a complete, signed JWT. +// The token is signed using the SigningMethod specified in the token. +func (t *Token) SignedString(key interface{}) (string, error) { + var sig, sstr string + var err error + if sstr, err = t.SigningString(); err != nil { + return "", err + } + if sig, err = t.Method.Sign(sstr, key); err != nil { + return "", err + } + return strings.Join([]string{sstr, sig}, "."), nil +} + +// SigningString generates the signing string. This is the +// most expensive part of the whole deal. Unless you +// need this for something special, just go straight for +// the SignedString. +func (t *Token) SigningString() (string, error) { + var err error + var jsonValue []byte + + if jsonValue, err = json.Marshal(t.Header); err != nil { + return "", err + } + header := EncodeSegment(jsonValue) + + if jsonValue, err = json.Marshal(t.Claims); err != nil { + return "", err + } + claim := EncodeSegment(jsonValue) + + return strings.Join([]string{header, claim}, "."), nil +} + +// Parse parses, validates, verifies the signature and returns the parsed token. +// keyFunc will receive the parsed token and should return the cryptographic key +// for verifying the signature. +// The caller is strongly encouraged to set the WithValidMethods option to +// validate the 'alg' claim in the token matches the expected algorithm. +// For more details about the importance of validating the 'alg' claim, +// see https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/ +func Parse(tokenString string, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { + return NewParser(options...).Parse(tokenString, keyFunc) +} + +// ParseWithClaims is a shortcut for NewParser().ParseWithClaims(). +// +// Note: If you provide a custom claim implementation that embeds one of the standard claims (such as RegisteredClaims), +// make sure that a) you either embed a non-pointer version of the claims or b) if you are using a pointer, allocate the +// proper memory for it before passing in the overall claims, otherwise you might run into a panic. +func ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc, options ...ParserOption) (*Token, error) { + return NewParser(options...).ParseWithClaims(tokenString, claims, keyFunc) +} + +// EncodeSegment encodes a JWT specific base64url encoding with padding stripped +// +// Deprecated: In a future release, we will demote this function to a non-exported function, since it +// should only be used internally +func EncodeSegment(seg []byte) string { + return base64.RawURLEncoding.EncodeToString(seg) +} + +// DecodeSegment decodes a JWT specific base64url encoding with padding stripped +// +// Deprecated: In a future release, we will demote this function to a non-exported function, since it +// should only be used internally +func DecodeSegment(seg string) ([]byte, error) { + encoding := base64.RawURLEncoding + + if DecodePaddingAllowed { + if l := len(seg) % 4; l > 0 { + seg += strings.Repeat("=", 4-l) + } + encoding = base64.URLEncoding + } + + if DecodeStrict { + encoding = encoding.Strict() + } + return encoding.DecodeString(seg) +} diff --git a/vendor/github.com/golang-jwt/jwt/v4/types.go b/vendor/github.com/golang-jwt/jwt/v4/types.go new file mode 100644 index 00000000..ac8e140e --- /dev/null +++ b/vendor/github.com/golang-jwt/jwt/v4/types.go @@ -0,0 +1,145 @@ +package jwt + +import ( + "encoding/json" + "fmt" + "math" + "reflect" + "strconv" + "time" +) + +// TimePrecision sets the precision of times and dates within this library. +// This has an influence on the precision of times when comparing expiry or +// other related time fields. Furthermore, it is also the precision of times +// when serializing. +// +// For backwards compatibility the default precision is set to seconds, so that +// no fractional timestamps are generated. +var TimePrecision = time.Second + +// MarshalSingleStringAsArray modifies the behaviour of the ClaimStrings type, especially +// its MarshalJSON function. +// +// If it is set to true (the default), it will always serialize the type as an +// array of strings, even if it just contains one element, defaulting to the behaviour +// of the underlying []string. If it is set to false, it will serialize to a single +// string, if it contains one element. Otherwise, it will serialize to an array of strings. +var MarshalSingleStringAsArray = true + +// NumericDate represents a JSON numeric date value, as referenced at +// https://datatracker.ietf.org/doc/html/rfc7519#section-2. +type NumericDate struct { + time.Time +} + +// NewNumericDate constructs a new *NumericDate from a standard library time.Time struct. +// It will truncate the timestamp according to the precision specified in TimePrecision. +func NewNumericDate(t time.Time) *NumericDate { + return &NumericDate{t.Truncate(TimePrecision)} +} + +// newNumericDateFromSeconds creates a new *NumericDate out of a float64 representing a +// UNIX epoch with the float fraction representing non-integer seconds. +func newNumericDateFromSeconds(f float64) *NumericDate { + round, frac := math.Modf(f) + return NewNumericDate(time.Unix(int64(round), int64(frac*1e9))) +} + +// MarshalJSON is an implementation of the json.RawMessage interface and serializes the UNIX epoch +// represented in NumericDate to a byte array, using the precision specified in TimePrecision. +func (date NumericDate) MarshalJSON() (b []byte, err error) { + var prec int + if TimePrecision < time.Second { + prec = int(math.Log10(float64(time.Second) / float64(TimePrecision))) + } + truncatedDate := date.Truncate(TimePrecision) + + // For very large timestamps, UnixNano would overflow an int64, but this + // function requires nanosecond level precision, so we have to use the + // following technique to get round the issue: + // 1. Take the normal unix timestamp to form the whole number part of the + // output, + // 2. Take the result of the Nanosecond function, which retuns the offset + // within the second of the particular unix time instance, to form the + // decimal part of the output + // 3. Concatenate them to produce the final result + seconds := strconv.FormatInt(truncatedDate.Unix(), 10) + nanosecondsOffset := strconv.FormatFloat(float64(truncatedDate.Nanosecond())/float64(time.Second), 'f', prec, 64) + + output := append([]byte(seconds), []byte(nanosecondsOffset)[1:]...) + + return output, nil +} + +// UnmarshalJSON is an implementation of the json.RawMessage interface and deserializses a +// NumericDate from a JSON representation, i.e. a json.Number. This number represents an UNIX epoch +// with either integer or non-integer seconds. +func (date *NumericDate) UnmarshalJSON(b []byte) (err error) { + var ( + number json.Number + f float64 + ) + + if err = json.Unmarshal(b, &number); err != nil { + return fmt.Errorf("could not parse NumericData: %w", err) + } + + if f, err = number.Float64(); err != nil { + return fmt.Errorf("could not convert json number value to float: %w", err) + } + + n := newNumericDateFromSeconds(f) + *date = *n + + return nil +} + +// ClaimStrings is basically just a slice of strings, but it can be either serialized from a string array or just a string. +// This type is necessary, since the "aud" claim can either be a single string or an array. +type ClaimStrings []string + +func (s *ClaimStrings) UnmarshalJSON(data []byte) (err error) { + var value interface{} + + if err = json.Unmarshal(data, &value); err != nil { + return err + } + + var aud []string + + switch v := value.(type) { + case string: + aud = append(aud, v) + case []string: + aud = ClaimStrings(v) + case []interface{}: + for _, vv := range v { + vs, ok := vv.(string) + if !ok { + return &json.UnsupportedTypeError{Type: reflect.TypeOf(vv)} + } + aud = append(aud, vs) + } + case nil: + return nil + default: + return &json.UnsupportedTypeError{Type: reflect.TypeOf(v)} + } + + *s = aud + + return +} + +func (s ClaimStrings) MarshalJSON() (b []byte, err error) { + // This handles a special case in the JWT RFC. If the string array, e.g. used by the "aud" field, + // only contains one element, it MAY be serialized as a single string. This may or may not be + // desired based on the ecosystem of other JWT library used, so we make it configurable by the + // variable MarshalSingleStringAsArray. + if len(s) == 1 && !MarshalSingleStringAsArray { + return json.Marshal(s[0]) + } + + return json.Marshal([]string(s)) +} diff --git a/vendor/github.com/google/uuid/.travis.yml b/vendor/github.com/google/uuid/.travis.yml new file mode 100644 index 00000000..d8156a60 --- /dev/null +++ b/vendor/github.com/google/uuid/.travis.yml @@ -0,0 +1,9 @@ +language: go + +go: + - 1.4.3 + - 1.5.3 + - tip + +script: + - go test -v ./... diff --git a/vendor/github.com/google/uuid/CONTRIBUTING.md b/vendor/github.com/google/uuid/CONTRIBUTING.md new file mode 100644 index 00000000..04fdf09f --- /dev/null +++ b/vendor/github.com/google/uuid/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# How to contribute + +We definitely welcome patches and contribution to this project! + +### Legal requirements + +In order to protect both you and ourselves, you will need to sign the +[Contributor License Agreement](https://cla.developers.google.com/clas). + +You may have already signed it for other Google projects. diff --git a/vendor/github.com/google/uuid/CONTRIBUTORS b/vendor/github.com/google/uuid/CONTRIBUTORS new file mode 100644 index 00000000..b4bb97f6 --- /dev/null +++ b/vendor/github.com/google/uuid/CONTRIBUTORS @@ -0,0 +1,9 @@ +Paul Borman +bmatsuo +shawnps +theory +jboverfelt +dsymonds +cd1 +wallclockbuilder +dansouza diff --git a/vendor/github.com/google/uuid/LICENSE b/vendor/github.com/google/uuid/LICENSE new file mode 100644 index 00000000..5dc68268 --- /dev/null +++ b/vendor/github.com/google/uuid/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009,2014 Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/google/uuid/README.md b/vendor/github.com/google/uuid/README.md new file mode 100644 index 00000000..f765a46f --- /dev/null +++ b/vendor/github.com/google/uuid/README.md @@ -0,0 +1,19 @@ +# uuid ![build status](https://travis-ci.org/google/uuid.svg?branch=master) +The uuid package generates and inspects UUIDs based on +[RFC 4122](http://tools.ietf.org/html/rfc4122) +and DCE 1.1: Authentication and Security Services. + +This package is based on the github.com/pborman/uuid package (previously named +code.google.com/p/go-uuid). It differs from these earlier packages in that +a UUID is a 16 byte array rather than a byte slice. One loss due to this +change is the ability to represent an invalid UUID (vs a NIL UUID). + +###### Install +`go get github.com/google/uuid` + +###### Documentation +[![GoDoc](https://godoc.org/github.com/google/uuid?status.svg)](http://godoc.org/github.com/google/uuid) + +Full `go doc` style documentation for the package can be viewed online without +installing this package by using the GoDoc site here: +http://pkg.go.dev/github.com/google/uuid diff --git a/vendor/github.com/google/uuid/dce.go b/vendor/github.com/google/uuid/dce.go new file mode 100644 index 00000000..fa820b9d --- /dev/null +++ b/vendor/github.com/google/uuid/dce.go @@ -0,0 +1,80 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "encoding/binary" + "fmt" + "os" +) + +// A Domain represents a Version 2 domain +type Domain byte + +// Domain constants for DCE Security (Version 2) UUIDs. +const ( + Person = Domain(0) + Group = Domain(1) + Org = Domain(2) +) + +// NewDCESecurity returns a DCE Security (Version 2) UUID. +// +// The domain should be one of Person, Group or Org. +// On a POSIX system the id should be the users UID for the Person +// domain and the users GID for the Group. The meaning of id for +// the domain Org or on non-POSIX systems is site defined. +// +// For a given domain/id pair the same token may be returned for up to +// 7 minutes and 10 seconds. +func NewDCESecurity(domain Domain, id uint32) (UUID, error) { + uuid, err := NewUUID() + if err == nil { + uuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2 + uuid[9] = byte(domain) + binary.BigEndian.PutUint32(uuid[0:], id) + } + return uuid, err +} + +// NewDCEPerson returns a DCE Security (Version 2) UUID in the person +// domain with the id returned by os.Getuid. +// +// NewDCESecurity(Person, uint32(os.Getuid())) +func NewDCEPerson() (UUID, error) { + return NewDCESecurity(Person, uint32(os.Getuid())) +} + +// NewDCEGroup returns a DCE Security (Version 2) UUID in the group +// domain with the id returned by os.Getgid. +// +// NewDCESecurity(Group, uint32(os.Getgid())) +func NewDCEGroup() (UUID, error) { + return NewDCESecurity(Group, uint32(os.Getgid())) +} + +// Domain returns the domain for a Version 2 UUID. Domains are only defined +// for Version 2 UUIDs. +func (uuid UUID) Domain() Domain { + return Domain(uuid[9]) +} + +// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2 +// UUIDs. +func (uuid UUID) ID() uint32 { + return binary.BigEndian.Uint32(uuid[0:4]) +} + +func (d Domain) String() string { + switch d { + case Person: + return "Person" + case Group: + return "Group" + case Org: + return "Org" + } + return fmt.Sprintf("Domain%d", int(d)) +} diff --git a/vendor/github.com/google/uuid/doc.go b/vendor/github.com/google/uuid/doc.go new file mode 100644 index 00000000..5b8a4b9a --- /dev/null +++ b/vendor/github.com/google/uuid/doc.go @@ -0,0 +1,12 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package uuid generates and inspects UUIDs. +// +// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security +// Services. +// +// A UUID is a 16 byte (128 bit) array. UUIDs may be used as keys to +// maps or compared directly. +package uuid diff --git a/vendor/github.com/google/uuid/hash.go b/vendor/github.com/google/uuid/hash.go new file mode 100644 index 00000000..b404f4be --- /dev/null +++ b/vendor/github.com/google/uuid/hash.go @@ -0,0 +1,53 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "crypto/md5" + "crypto/sha1" + "hash" +) + +// Well known namespace IDs and UUIDs +var ( + NameSpaceDNS = Must(Parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8")) + NameSpaceURL = Must(Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8")) + NameSpaceOID = Must(Parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8")) + NameSpaceX500 = Must(Parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")) + Nil UUID // empty UUID, all zeros +) + +// NewHash returns a new UUID derived from the hash of space concatenated with +// data generated by h. The hash should be at least 16 byte in length. The +// first 16 bytes of the hash are used to form the UUID. The version of the +// UUID will be the lower 4 bits of version. NewHash is used to implement +// NewMD5 and NewSHA1. +func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID { + h.Reset() + h.Write(space[:]) //nolint:errcheck + h.Write(data) //nolint:errcheck + s := h.Sum(nil) + var uuid UUID + copy(uuid[:], s) + uuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4) + uuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant + return uuid +} + +// NewMD5 returns a new MD5 (Version 3) UUID based on the +// supplied name space and data. It is the same as calling: +// +// NewHash(md5.New(), space, data, 3) +func NewMD5(space UUID, data []byte) UUID { + return NewHash(md5.New(), space, data, 3) +} + +// NewSHA1 returns a new SHA1 (Version 5) UUID based on the +// supplied name space and data. It is the same as calling: +// +// NewHash(sha1.New(), space, data, 5) +func NewSHA1(space UUID, data []byte) UUID { + return NewHash(sha1.New(), space, data, 5) +} diff --git a/vendor/github.com/google/uuid/marshal.go b/vendor/github.com/google/uuid/marshal.go new file mode 100644 index 00000000..14bd3407 --- /dev/null +++ b/vendor/github.com/google/uuid/marshal.go @@ -0,0 +1,38 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import "fmt" + +// MarshalText implements encoding.TextMarshaler. +func (uuid UUID) MarshalText() ([]byte, error) { + var js [36]byte + encodeHex(js[:], uuid) + return js[:], nil +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (uuid *UUID) UnmarshalText(data []byte) error { + id, err := ParseBytes(data) + if err != nil { + return err + } + *uuid = id + return nil +} + +// MarshalBinary implements encoding.BinaryMarshaler. +func (uuid UUID) MarshalBinary() ([]byte, error) { + return uuid[:], nil +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler. +func (uuid *UUID) UnmarshalBinary(data []byte) error { + if len(data) != 16 { + return fmt.Errorf("invalid UUID (got %d bytes)", len(data)) + } + copy(uuid[:], data) + return nil +} diff --git a/vendor/github.com/google/uuid/node.go b/vendor/github.com/google/uuid/node.go new file mode 100644 index 00000000..d651a2b0 --- /dev/null +++ b/vendor/github.com/google/uuid/node.go @@ -0,0 +1,90 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "sync" +) + +var ( + nodeMu sync.Mutex + ifname string // name of interface being used + nodeID [6]byte // hardware for version 1 UUIDs + zeroID [6]byte // nodeID with only 0's +) + +// NodeInterface returns the name of the interface from which the NodeID was +// derived. The interface "user" is returned if the NodeID was set by +// SetNodeID. +func NodeInterface() string { + defer nodeMu.Unlock() + nodeMu.Lock() + return ifname +} + +// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs. +// If name is "" then the first usable interface found will be used or a random +// Node ID will be generated. If a named interface cannot be found then false +// is returned. +// +// SetNodeInterface never fails when name is "". +func SetNodeInterface(name string) bool { + defer nodeMu.Unlock() + nodeMu.Lock() + return setNodeInterface(name) +} + +func setNodeInterface(name string) bool { + iname, addr := getHardwareInterface(name) // null implementation for js + if iname != "" && addr != nil { + ifname = iname + copy(nodeID[:], addr) + return true + } + + // We found no interfaces with a valid hardware address. If name + // does not specify a specific interface generate a random Node ID + // (section 4.1.6) + if name == "" { + ifname = "random" + randomBits(nodeID[:]) + return true + } + return false +} + +// NodeID returns a slice of a copy of the current Node ID, setting the Node ID +// if not already set. +func NodeID() []byte { + defer nodeMu.Unlock() + nodeMu.Lock() + if nodeID == zeroID { + setNodeInterface("") + } + nid := nodeID + return nid[:] +} + +// SetNodeID sets the Node ID to be used for Version 1 UUIDs. The first 6 bytes +// of id are used. If id is less than 6 bytes then false is returned and the +// Node ID is not set. +func SetNodeID(id []byte) bool { + if len(id) < 6 { + return false + } + defer nodeMu.Unlock() + nodeMu.Lock() + copy(nodeID[:], id) + ifname = "user" + return true +} + +// NodeID returns the 6 byte node id encoded in uuid. It returns nil if uuid is +// not valid. The NodeID is only well defined for version 1 and 2 UUIDs. +func (uuid UUID) NodeID() []byte { + var node [6]byte + copy(node[:], uuid[10:]) + return node[:] +} diff --git a/vendor/github.com/google/uuid/node_js.go b/vendor/github.com/google/uuid/node_js.go new file mode 100644 index 00000000..24b78edc --- /dev/null +++ b/vendor/github.com/google/uuid/node_js.go @@ -0,0 +1,12 @@ +// Copyright 2017 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build js + +package uuid + +// getHardwareInterface returns nil values for the JS version of the code. +// This remvoves the "net" dependency, because it is not used in the browser. +// Using the "net" library inflates the size of the transpiled JS code by 673k bytes. +func getHardwareInterface(name string) (string, []byte) { return "", nil } diff --git a/vendor/github.com/google/uuid/node_net.go b/vendor/github.com/google/uuid/node_net.go new file mode 100644 index 00000000..0cbbcddb --- /dev/null +++ b/vendor/github.com/google/uuid/node_net.go @@ -0,0 +1,33 @@ +// Copyright 2017 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !js + +package uuid + +import "net" + +var interfaces []net.Interface // cached list of interfaces + +// getHardwareInterface returns the name and hardware address of interface name. +// If name is "" then the name and hardware address of one of the system's +// interfaces is returned. If no interfaces are found (name does not exist or +// there are no interfaces) then "", nil is returned. +// +// Only addresses of at least 6 bytes are returned. +func getHardwareInterface(name string) (string, []byte) { + if interfaces == nil { + var err error + interfaces, err = net.Interfaces() + if err != nil { + return "", nil + } + } + for _, ifs := range interfaces { + if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) { + return ifs.Name, ifs.HardwareAddr + } + } + return "", nil +} diff --git a/vendor/github.com/google/uuid/null.go b/vendor/github.com/google/uuid/null.go new file mode 100644 index 00000000..d7fcbf28 --- /dev/null +++ b/vendor/github.com/google/uuid/null.go @@ -0,0 +1,118 @@ +// Copyright 2021 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "bytes" + "database/sql/driver" + "encoding/json" + "fmt" +) + +var jsonNull = []byte("null") + +// NullUUID represents a UUID that may be null. +// NullUUID implements the SQL driver.Scanner interface so +// it can be used as a scan destination: +// +// var u uuid.NullUUID +// err := db.QueryRow("SELECT name FROM foo WHERE id=?", id).Scan(&u) +// ... +// if u.Valid { +// // use u.UUID +// } else { +// // NULL value +// } +// +type NullUUID struct { + UUID UUID + Valid bool // Valid is true if UUID is not NULL +} + +// Scan implements the SQL driver.Scanner interface. +func (nu *NullUUID) Scan(value interface{}) error { + if value == nil { + nu.UUID, nu.Valid = Nil, false + return nil + } + + err := nu.UUID.Scan(value) + if err != nil { + nu.Valid = false + return err + } + + nu.Valid = true + return nil +} + +// Value implements the driver Valuer interface. +func (nu NullUUID) Value() (driver.Value, error) { + if !nu.Valid { + return nil, nil + } + // Delegate to UUID Value function + return nu.UUID.Value() +} + +// MarshalBinary implements encoding.BinaryMarshaler. +func (nu NullUUID) MarshalBinary() ([]byte, error) { + if nu.Valid { + return nu.UUID[:], nil + } + + return []byte(nil), nil +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler. +func (nu *NullUUID) UnmarshalBinary(data []byte) error { + if len(data) != 16 { + return fmt.Errorf("invalid UUID (got %d bytes)", len(data)) + } + copy(nu.UUID[:], data) + nu.Valid = true + return nil +} + +// MarshalText implements encoding.TextMarshaler. +func (nu NullUUID) MarshalText() ([]byte, error) { + if nu.Valid { + return nu.UUID.MarshalText() + } + + return jsonNull, nil +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (nu *NullUUID) UnmarshalText(data []byte) error { + id, err := ParseBytes(data) + if err != nil { + nu.Valid = false + return err + } + nu.UUID = id + nu.Valid = true + return nil +} + +// MarshalJSON implements json.Marshaler. +func (nu NullUUID) MarshalJSON() ([]byte, error) { + if nu.Valid { + return json.Marshal(nu.UUID) + } + + return jsonNull, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (nu *NullUUID) UnmarshalJSON(data []byte) error { + if bytes.Equal(data, jsonNull) { + *nu = NullUUID{} + return nil // valid null UUID + } + err := json.Unmarshal(data, &nu.UUID) + nu.Valid = err == nil + return err +} diff --git a/vendor/github.com/google/uuid/sql.go b/vendor/github.com/google/uuid/sql.go new file mode 100644 index 00000000..2e02ec06 --- /dev/null +++ b/vendor/github.com/google/uuid/sql.go @@ -0,0 +1,59 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "database/sql/driver" + "fmt" +) + +// Scan implements sql.Scanner so UUIDs can be read from databases transparently. +// Currently, database types that map to string and []byte are supported. Please +// consult database-specific driver documentation for matching types. +func (uuid *UUID) Scan(src interface{}) error { + switch src := src.(type) { + case nil: + return nil + + case string: + // if an empty UUID comes from a table, we return a null UUID + if src == "" { + return nil + } + + // see Parse for required string format + u, err := Parse(src) + if err != nil { + return fmt.Errorf("Scan: %v", err) + } + + *uuid = u + + case []byte: + // if an empty UUID comes from a table, we return a null UUID + if len(src) == 0 { + return nil + } + + // assumes a simple slice of bytes if 16 bytes + // otherwise attempts to parse + if len(src) != 16 { + return uuid.Scan(string(src)) + } + copy((*uuid)[:], src) + + default: + return fmt.Errorf("Scan: unable to scan type %T into UUID", src) + } + + return nil +} + +// Value implements sql.Valuer so that UUIDs can be written to databases +// transparently. Currently, UUIDs map to strings. Please consult +// database-specific driver documentation for matching types. +func (uuid UUID) Value() (driver.Value, error) { + return uuid.String(), nil +} diff --git a/vendor/github.com/google/uuid/time.go b/vendor/github.com/google/uuid/time.go new file mode 100644 index 00000000..e6ef06cd --- /dev/null +++ b/vendor/github.com/google/uuid/time.go @@ -0,0 +1,123 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "encoding/binary" + "sync" + "time" +) + +// A Time represents a time as the number of 100's of nanoseconds since 15 Oct +// 1582. +type Time int64 + +const ( + lillian = 2299160 // Julian day of 15 Oct 1582 + unix = 2440587 // Julian day of 1 Jan 1970 + epoch = unix - lillian // Days between epochs + g1582 = epoch * 86400 // seconds between epochs + g1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs +) + +var ( + timeMu sync.Mutex + lasttime uint64 // last time we returned + clockSeq uint16 // clock sequence for this run + + timeNow = time.Now // for testing +) + +// UnixTime converts t the number of seconds and nanoseconds using the Unix +// epoch of 1 Jan 1970. +func (t Time) UnixTime() (sec, nsec int64) { + sec = int64(t - g1582ns100) + nsec = (sec % 10000000) * 100 + sec /= 10000000 + return sec, nsec +} + +// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and +// clock sequence as well as adjusting the clock sequence as needed. An error +// is returned if the current time cannot be determined. +func GetTime() (Time, uint16, error) { + defer timeMu.Unlock() + timeMu.Lock() + return getTime() +} + +func getTime() (Time, uint16, error) { + t := timeNow() + + // If we don't have a clock sequence already, set one. + if clockSeq == 0 { + setClockSequence(-1) + } + now := uint64(t.UnixNano()/100) + g1582ns100 + + // If time has gone backwards with this clock sequence then we + // increment the clock sequence + if now <= lasttime { + clockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000 + } + lasttime = now + return Time(now), clockSeq, nil +} + +// ClockSequence returns the current clock sequence, generating one if not +// already set. The clock sequence is only used for Version 1 UUIDs. +// +// The uuid package does not use global static storage for the clock sequence or +// the last time a UUID was generated. Unless SetClockSequence is used, a new +// random clock sequence is generated the first time a clock sequence is +// requested by ClockSequence, GetTime, or NewUUID. (section 4.2.1.1) +func ClockSequence() int { + defer timeMu.Unlock() + timeMu.Lock() + return clockSequence() +} + +func clockSequence() int { + if clockSeq == 0 { + setClockSequence(-1) + } + return int(clockSeq & 0x3fff) +} + +// SetClockSequence sets the clock sequence to the lower 14 bits of seq. Setting to +// -1 causes a new sequence to be generated. +func SetClockSequence(seq int) { + defer timeMu.Unlock() + timeMu.Lock() + setClockSequence(seq) +} + +func setClockSequence(seq int) { + if seq == -1 { + var b [2]byte + randomBits(b[:]) // clock sequence + seq = int(b[0])<<8 | int(b[1]) + } + oldSeq := clockSeq + clockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant + if oldSeq != clockSeq { + lasttime = 0 + } +} + +// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in +// uuid. The time is only defined for version 1 and 2 UUIDs. +func (uuid UUID) Time() Time { + time := int64(binary.BigEndian.Uint32(uuid[0:4])) + time |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32 + time |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48 + return Time(time) +} + +// ClockSequence returns the clock sequence encoded in uuid. +// The clock sequence is only well defined for version 1 and 2 UUIDs. +func (uuid UUID) ClockSequence() int { + return int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff +} diff --git a/vendor/github.com/google/uuid/util.go b/vendor/github.com/google/uuid/util.go new file mode 100644 index 00000000..5ea6c737 --- /dev/null +++ b/vendor/github.com/google/uuid/util.go @@ -0,0 +1,43 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "io" +) + +// randomBits completely fills slice b with random data. +func randomBits(b []byte) { + if _, err := io.ReadFull(rander, b); err != nil { + panic(err.Error()) // rand should never fail + } +} + +// xvalues returns the value of a byte as a hexadecimal digit or 255. +var xvalues = [256]byte{ + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, + 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +} + +// xtob converts hex characters x1 and x2 into a byte. +func xtob(x1, x2 byte) (byte, bool) { + b1 := xvalues[x1] + b2 := xvalues[x2] + return (b1 << 4) | b2, b1 != 255 && b2 != 255 +} diff --git a/vendor/github.com/google/uuid/uuid.go b/vendor/github.com/google/uuid/uuid.go new file mode 100644 index 00000000..a57207ae --- /dev/null +++ b/vendor/github.com/google/uuid/uuid.go @@ -0,0 +1,294 @@ +// Copyright 2018 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "bytes" + "crypto/rand" + "encoding/hex" + "errors" + "fmt" + "io" + "strings" + "sync" +) + +// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC +// 4122. +type UUID [16]byte + +// A Version represents a UUID's version. +type Version byte + +// A Variant represents a UUID's variant. +type Variant byte + +// Constants returned by Variant. +const ( + Invalid = Variant(iota) // Invalid UUID + RFC4122 // The variant specified in RFC4122 + Reserved // Reserved, NCS backward compatibility. + Microsoft // Reserved, Microsoft Corporation backward compatibility. + Future // Reserved for future definition. +) + +const randPoolSize = 16 * 16 + +var ( + rander = rand.Reader // random function + poolEnabled = false + poolMu sync.Mutex + poolPos = randPoolSize // protected with poolMu + pool [randPoolSize]byte // protected with poolMu +) + +type invalidLengthError struct{ len int } + +func (err invalidLengthError) Error() string { + return fmt.Sprintf("invalid UUID length: %d", err.len) +} + +// IsInvalidLengthError is matcher function for custom error invalidLengthError +func IsInvalidLengthError(err error) bool { + _, ok := err.(invalidLengthError) + return ok +} + +// Parse decodes s into a UUID or returns an error. Both the standard UUID +// forms of xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and +// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded as well as the +// Microsoft encoding {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} and the raw hex +// encoding: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. +func Parse(s string) (UUID, error) { + var uuid UUID + switch len(s) { + // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36: + + // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36 + 9: + if strings.ToLower(s[:9]) != "urn:uuid:" { + return uuid, fmt.Errorf("invalid urn prefix: %q", s[:9]) + } + s = s[9:] + + // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} + case 36 + 2: + s = s[1:] + + // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + case 32: + var ok bool + for i := range uuid { + uuid[i], ok = xtob(s[i*2], s[i*2+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + } + return uuid, nil + default: + return uuid, invalidLengthError{len(s)} + } + // s is now at least 36 bytes long + // it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { + return uuid, errors.New("invalid UUID format") + } + for i, x := range [16]int{ + 0, 2, 4, 6, + 9, 11, + 14, 16, + 19, 21, + 24, 26, 28, 30, 32, 34} { + v, ok := xtob(s[x], s[x+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + uuid[i] = v + } + return uuid, nil +} + +// ParseBytes is like Parse, except it parses a byte slice instead of a string. +func ParseBytes(b []byte) (UUID, error) { + var uuid UUID + switch len(b) { + case 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + if !bytes.Equal(bytes.ToLower(b[:9]), []byte("urn:uuid:")) { + return uuid, fmt.Errorf("invalid urn prefix: %q", b[:9]) + } + b = b[9:] + case 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} + b = b[1:] + case 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + var ok bool + for i := 0; i < 32; i += 2 { + uuid[i/2], ok = xtob(b[i], b[i+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + } + return uuid, nil + default: + return uuid, invalidLengthError{len(b)} + } + // s is now at least 36 bytes long + // it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + if b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' { + return uuid, errors.New("invalid UUID format") + } + for i, x := range [16]int{ + 0, 2, 4, 6, + 9, 11, + 14, 16, + 19, 21, + 24, 26, 28, 30, 32, 34} { + v, ok := xtob(b[x], b[x+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + uuid[i] = v + } + return uuid, nil +} + +// MustParse is like Parse but panics if the string cannot be parsed. +// It simplifies safe initialization of global variables holding compiled UUIDs. +func MustParse(s string) UUID { + uuid, err := Parse(s) + if err != nil { + panic(`uuid: Parse(` + s + `): ` + err.Error()) + } + return uuid +} + +// FromBytes creates a new UUID from a byte slice. Returns an error if the slice +// does not have a length of 16. The bytes are copied from the slice. +func FromBytes(b []byte) (uuid UUID, err error) { + err = uuid.UnmarshalBinary(b) + return uuid, err +} + +// Must returns uuid if err is nil and panics otherwise. +func Must(uuid UUID, err error) UUID { + if err != nil { + panic(err) + } + return uuid +} + +// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx +// , or "" if uuid is invalid. +func (uuid UUID) String() string { + var buf [36]byte + encodeHex(buf[:], uuid) + return string(buf[:]) +} + +// URN returns the RFC 2141 URN form of uuid, +// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, or "" if uuid is invalid. +func (uuid UUID) URN() string { + var buf [36 + 9]byte + copy(buf[:], "urn:uuid:") + encodeHex(buf[9:], uuid) + return string(buf[:]) +} + +func encodeHex(dst []byte, uuid UUID) { + hex.Encode(dst, uuid[:4]) + dst[8] = '-' + hex.Encode(dst[9:13], uuid[4:6]) + dst[13] = '-' + hex.Encode(dst[14:18], uuid[6:8]) + dst[18] = '-' + hex.Encode(dst[19:23], uuid[8:10]) + dst[23] = '-' + hex.Encode(dst[24:], uuid[10:]) +} + +// Variant returns the variant encoded in uuid. +func (uuid UUID) Variant() Variant { + switch { + case (uuid[8] & 0xc0) == 0x80: + return RFC4122 + case (uuid[8] & 0xe0) == 0xc0: + return Microsoft + case (uuid[8] & 0xe0) == 0xe0: + return Future + default: + return Reserved + } +} + +// Version returns the version of uuid. +func (uuid UUID) Version() Version { + return Version(uuid[6] >> 4) +} + +func (v Version) String() string { + if v > 15 { + return fmt.Sprintf("BAD_VERSION_%d", v) + } + return fmt.Sprintf("VERSION_%d", v) +} + +func (v Variant) String() string { + switch v { + case RFC4122: + return "RFC4122" + case Reserved: + return "Reserved" + case Microsoft: + return "Microsoft" + case Future: + return "Future" + case Invalid: + return "Invalid" + } + return fmt.Sprintf("BadVariant%d", int(v)) +} + +// SetRand sets the random number generator to r, which implements io.Reader. +// If r.Read returns an error when the package requests random data then +// a panic will be issued. +// +// Calling SetRand with nil sets the random number generator to the default +// generator. +func SetRand(r io.Reader) { + if r == nil { + rander = rand.Reader + return + } + rander = r +} + +// EnableRandPool enables internal randomness pool used for Random +// (Version 4) UUID generation. The pool contains random bytes read from +// the random number generator on demand in batches. Enabling the pool +// may improve the UUID generation throughput significantly. +// +// Since the pool is stored on the Go heap, this feature may be a bad fit +// for security sensitive applications. +// +// Both EnableRandPool and DisableRandPool are not thread-safe and should +// only be called when there is no possibility that New or any other +// UUID Version 4 generation function will be called concurrently. +func EnableRandPool() { + poolEnabled = true +} + +// DisableRandPool disables the randomness pool if it was previously +// enabled with EnableRandPool. +// +// Both EnableRandPool and DisableRandPool are not thread-safe and should +// only be called when there is no possibility that New or any other +// UUID Version 4 generation function will be called concurrently. +func DisableRandPool() { + poolEnabled = false + defer poolMu.Unlock() + poolMu.Lock() + poolPos = randPoolSize +} diff --git a/vendor/github.com/google/uuid/version1.go b/vendor/github.com/google/uuid/version1.go new file mode 100644 index 00000000..46310962 --- /dev/null +++ b/vendor/github.com/google/uuid/version1.go @@ -0,0 +1,44 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "encoding/binary" +) + +// NewUUID returns a Version 1 UUID based on the current NodeID and clock +// sequence, and the current time. If the NodeID has not been set by SetNodeID +// or SetNodeInterface then it will be set automatically. If the NodeID cannot +// be set NewUUID returns nil. If clock sequence has not been set by +// SetClockSequence then it will be set automatically. If GetTime fails to +// return the current NewUUID returns nil and an error. +// +// In most cases, New should be used. +func NewUUID() (UUID, error) { + var uuid UUID + now, seq, err := GetTime() + if err != nil { + return uuid, err + } + + timeLow := uint32(now & 0xffffffff) + timeMid := uint16((now >> 32) & 0xffff) + timeHi := uint16((now >> 48) & 0x0fff) + timeHi |= 0x1000 // Version 1 + + binary.BigEndian.PutUint32(uuid[0:], timeLow) + binary.BigEndian.PutUint16(uuid[4:], timeMid) + binary.BigEndian.PutUint16(uuid[6:], timeHi) + binary.BigEndian.PutUint16(uuid[8:], seq) + + nodeMu.Lock() + if nodeID == zeroID { + setNodeInterface("") + } + copy(uuid[10:], nodeID[:]) + nodeMu.Unlock() + + return uuid, nil +} diff --git a/vendor/github.com/google/uuid/version4.go b/vendor/github.com/google/uuid/version4.go new file mode 100644 index 00000000..7697802e --- /dev/null +++ b/vendor/github.com/google/uuid/version4.go @@ -0,0 +1,76 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import "io" + +// New creates a new random UUID or panics. New is equivalent to +// the expression +// +// uuid.Must(uuid.NewRandom()) +func New() UUID { + return Must(NewRandom()) +} + +// NewString creates a new random UUID and returns it as a string or panics. +// NewString is equivalent to the expression +// +// uuid.New().String() +func NewString() string { + return Must(NewRandom()).String() +} + +// NewRandom returns a Random (Version 4) UUID. +// +// The strength of the UUIDs is based on the strength of the crypto/rand +// package. +// +// Uses the randomness pool if it was enabled with EnableRandPool. +// +// A note about uniqueness derived from the UUID Wikipedia entry: +// +// Randomly generated UUIDs have 122 random bits. One's annual risk of being +// hit by a meteorite is estimated to be one chance in 17 billion, that +// means the probability is about 0.00000000006 (6 × 10−11), +// equivalent to the odds of creating a few tens of trillions of UUIDs in a +// year and having one duplicate. +func NewRandom() (UUID, error) { + if !poolEnabled { + return NewRandomFromReader(rander) + } + return newRandomFromPool() +} + +// NewRandomFromReader returns a UUID based on bytes read from a given io.Reader. +func NewRandomFromReader(r io.Reader) (UUID, error) { + var uuid UUID + _, err := io.ReadFull(r, uuid[:]) + if err != nil { + return Nil, err + } + uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4 + uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10 + return uuid, nil +} + +func newRandomFromPool() (UUID, error) { + var uuid UUID + poolMu.Lock() + if poolPos == randPoolSize { + _, err := io.ReadFull(rander, pool[:]) + if err != nil { + poolMu.Unlock() + return Nil, err + } + poolPos = 0 + } + copy(uuid[:], pool[poolPos:(poolPos+16)]) + poolPos += 16 + poolMu.Unlock() + + uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4 + uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10 + return uuid, nil +} diff --git a/vendor/github.com/kylelemons/godebug/LICENSE b/vendor/github.com/kylelemons/godebug/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/kylelemons/godebug/diff/diff.go b/vendor/github.com/kylelemons/godebug/diff/diff.go new file mode 100644 index 00000000..200e596c --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/diff/diff.go @@ -0,0 +1,186 @@ +// Copyright 2013 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package diff implements a linewise diff algorithm. +package diff + +import ( + "bytes" + "fmt" + "strings" +) + +// Chunk represents a piece of the diff. A chunk will not have both added and +// deleted lines. Equal lines are always after any added or deleted lines. +// A Chunk may or may not have any lines in it, especially for the first or last +// chunk in a computation. +type Chunk struct { + Added []string + Deleted []string + Equal []string +} + +func (c *Chunk) empty() bool { + return len(c.Added) == 0 && len(c.Deleted) == 0 && len(c.Equal) == 0 +} + +// Diff returns a string containing a line-by-line unified diff of the linewise +// changes required to make A into B. Each line is prefixed with '+', '-', or +// ' ' to indicate if it should be added, removed, or is correct respectively. +func Diff(A, B string) string { + aLines := strings.Split(A, "\n") + bLines := strings.Split(B, "\n") + + chunks := DiffChunks(aLines, bLines) + + buf := new(bytes.Buffer) + for _, c := range chunks { + for _, line := range c.Added { + fmt.Fprintf(buf, "+%s\n", line) + } + for _, line := range c.Deleted { + fmt.Fprintf(buf, "-%s\n", line) + } + for _, line := range c.Equal { + fmt.Fprintf(buf, " %s\n", line) + } + } + return strings.TrimRight(buf.String(), "\n") +} + +// DiffChunks uses an O(D(N+M)) shortest-edit-script algorithm +// to compute the edits required from A to B and returns the +// edit chunks. +func DiffChunks(a, b []string) []Chunk { + // algorithm: http://www.xmailserver.org/diff2.pdf + + // We'll need these quantities a lot. + alen, blen := len(a), len(b) // M, N + + // At most, it will require len(a) deletions and len(b) additions + // to transform a into b. + maxPath := alen + blen // MAX + if maxPath == 0 { + // degenerate case: two empty lists are the same + return nil + } + + // Store the endpoint of the path for diagonals. + // We store only the a index, because the b index on any diagonal + // (which we know during the loop below) is aidx-diag. + // endpoint[maxPath] represents the 0 diagonal. + // + // Stated differently: + // endpoint[d] contains the aidx of a furthest reaching path in diagonal d + endpoint := make([]int, 2*maxPath+1) // V + + saved := make([][]int, 0, 8) // Vs + save := func() { + dup := make([]int, len(endpoint)) + copy(dup, endpoint) + saved = append(saved, dup) + } + + var editDistance int // D +dLoop: + for editDistance = 0; editDistance <= maxPath; editDistance++ { + // The 0 diag(onal) represents equality of a and b. Each diagonal to + // the left is numbered one lower, to the right is one higher, from + // -alen to +blen. Negative diagonals favor differences from a, + // positive diagonals favor differences from b. The edit distance to a + // diagonal d cannot be shorter than d itself. + // + // The iterations of this loop cover either odds or evens, but not both, + // If odd indices are inputs, even indices are outputs and vice versa. + for diag := -editDistance; diag <= editDistance; diag += 2 { // k + var aidx int // x + switch { + case diag == -editDistance: + // This is a new diagonal; copy from previous iter + aidx = endpoint[maxPath-editDistance+1] + 0 + case diag == editDistance: + // This is a new diagonal; copy from previous iter + aidx = endpoint[maxPath+editDistance-1] + 1 + case endpoint[maxPath+diag+1] > endpoint[maxPath+diag-1]: + // diagonal d+1 was farther along, so use that + aidx = endpoint[maxPath+diag+1] + 0 + default: + // diagonal d-1 was farther (or the same), so use that + aidx = endpoint[maxPath+diag-1] + 1 + } + // On diagonal d, we can compute bidx from aidx. + bidx := aidx - diag // y + // See how far we can go on this diagonal before we find a difference. + for aidx < alen && bidx < blen && a[aidx] == b[bidx] { + aidx++ + bidx++ + } + // Store the end of the current edit chain. + endpoint[maxPath+diag] = aidx + // If we've found the end of both inputs, we're done! + if aidx >= alen && bidx >= blen { + save() // save the final path + break dLoop + } + } + save() // save the current path + } + if editDistance == 0 { + return nil + } + chunks := make([]Chunk, editDistance+1) + + x, y := alen, blen + for d := editDistance; d > 0; d-- { + endpoint := saved[d] + diag := x - y + insert := diag == -d || (diag != d && endpoint[maxPath+diag-1] < endpoint[maxPath+diag+1]) + + x1 := endpoint[maxPath+diag] + var x0, xM, kk int + if insert { + kk = diag + 1 + x0 = endpoint[maxPath+kk] + xM = x0 + } else { + kk = diag - 1 + x0 = endpoint[maxPath+kk] + xM = x0 + 1 + } + y0 := x0 - kk + + var c Chunk + if insert { + c.Added = b[y0:][:1] + } else { + c.Deleted = a[x0:][:1] + } + if xM < x1 { + c.Equal = a[xM:][:x1-xM] + } + + x, y = x0, y0 + chunks[d] = c + } + if x > 0 { + chunks[0].Equal = a[:x] + } + if chunks[0].empty() { + chunks = chunks[1:] + } + if len(chunks) == 0 { + return nil + } + return chunks +} diff --git a/vendor/github.com/kylelemons/godebug/pretty/.gitignore b/vendor/github.com/kylelemons/godebug/pretty/.gitignore new file mode 100644 index 00000000..fa9a735d --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/pretty/.gitignore @@ -0,0 +1,5 @@ +*.test +*.bench +*.golden +*.txt +*.prof diff --git a/vendor/github.com/kylelemons/godebug/pretty/doc.go b/vendor/github.com/kylelemons/godebug/pretty/doc.go new file mode 100644 index 00000000..03b5718a --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/pretty/doc.go @@ -0,0 +1,25 @@ +// Copyright 2013 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package pretty pretty-prints Go structures. +// +// This package uses reflection to examine a Go value and can +// print out in a nice, aligned fashion. It supports three +// modes (normal, compact, and extended) for advanced use. +// +// See the Reflect and Print examples for what the output looks like. +package pretty + +// TODO: +// - Catch cycles diff --git a/vendor/github.com/kylelemons/godebug/pretty/public.go b/vendor/github.com/kylelemons/godebug/pretty/public.go new file mode 100644 index 00000000..fbc5d7ab --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/pretty/public.go @@ -0,0 +1,188 @@ +// Copyright 2013 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pretty + +import ( + "bytes" + "fmt" + "io" + "net" + "reflect" + "time" + + "github.com/kylelemons/godebug/diff" +) + +// A Config represents optional configuration parameters for formatting. +// +// Some options, notably ShortList, dramatically increase the overhead +// of pretty-printing a value. +type Config struct { + // Verbosity options + Compact bool // One-line output. Overrides Diffable. + Diffable bool // Adds extra newlines for more easily diffable output. + + // Field and value options + IncludeUnexported bool // Include unexported fields in output + PrintStringers bool // Call String on a fmt.Stringer + PrintTextMarshalers bool // Call MarshalText on an encoding.TextMarshaler + SkipZeroFields bool // Skip struct fields that have a zero value. + + // Output transforms + ShortList int // Maximum character length for short lists if nonzero. + + // Type-specific overrides + // + // Formatter maps a type to a function that will provide a one-line string + // representation of the input value. Conceptually: + // Formatter[reflect.TypeOf(v)](v) = "v as a string" + // + // Note that the first argument need not explicitly match the type, it must + // merely be callable with it. + // + // When processing an input value, if its type exists as a key in Formatter: + // 1) If the value is nil, no stringification is performed. + // This allows overriding of PrintStringers and PrintTextMarshalers. + // 2) The value will be called with the input as its only argument. + // The function must return a string as its first return value. + // + // In addition to func literals, two common values for this will be: + // fmt.Sprint (function) func Sprint(...interface{}) string + // Type.String (method) func (Type) String() string + // + // Note that neither of these work if the String method is a pointer + // method and the input will be provided as a value. In that case, + // use a function that calls .String on the formal value parameter. + Formatter map[reflect.Type]interface{} + + // If TrackCycles is enabled, pretty will detect and track + // self-referential structures. If a self-referential structure (aka a + // "recursive" value) is detected, numbered placeholders will be emitted. + // + // Pointer tracking is disabled by default for performance reasons. + TrackCycles bool +} + +// Default Config objects +var ( + // DefaultFormatter is the default set of overrides for stringification. + DefaultFormatter = map[reflect.Type]interface{}{ + reflect.TypeOf(time.Time{}): fmt.Sprint, + reflect.TypeOf(net.IP{}): fmt.Sprint, + reflect.TypeOf((*error)(nil)).Elem(): fmt.Sprint, + } + + // CompareConfig is the default configuration used for Compare. + CompareConfig = &Config{ + Diffable: true, + IncludeUnexported: true, + Formatter: DefaultFormatter, + } + + // DefaultConfig is the default configuration used for all other top-level functions. + DefaultConfig = &Config{ + Formatter: DefaultFormatter, + } + + // CycleTracker is a convenience config for formatting and comparing recursive structures. + CycleTracker = &Config{ + Diffable: true, + Formatter: DefaultFormatter, + TrackCycles: true, + } +) + +func (cfg *Config) fprint(buf *bytes.Buffer, vals ...interface{}) { + ref := &reflector{ + Config: cfg, + } + if cfg.TrackCycles { + ref.pointerTracker = new(pointerTracker) + } + for i, val := range vals { + if i > 0 { + buf.WriteByte('\n') + } + newFormatter(cfg, buf).write(ref.val2node(reflect.ValueOf(val))) + } +} + +// Print writes the DefaultConfig representation of the given values to standard output. +func Print(vals ...interface{}) { + DefaultConfig.Print(vals...) +} + +// Print writes the configured presentation of the given values to standard output. +func (cfg *Config) Print(vals ...interface{}) { + fmt.Println(cfg.Sprint(vals...)) +} + +// Sprint returns a string representation of the given value according to the DefaultConfig. +func Sprint(vals ...interface{}) string { + return DefaultConfig.Sprint(vals...) +} + +// Sprint returns a string representation of the given value according to cfg. +func (cfg *Config) Sprint(vals ...interface{}) string { + buf := new(bytes.Buffer) + cfg.fprint(buf, vals...) + return buf.String() +} + +// Fprint writes the representation of the given value to the writer according to the DefaultConfig. +func Fprint(w io.Writer, vals ...interface{}) (n int64, err error) { + return DefaultConfig.Fprint(w, vals...) +} + +// Fprint writes the representation of the given value to the writer according to the cfg. +func (cfg *Config) Fprint(w io.Writer, vals ...interface{}) (n int64, err error) { + buf := new(bytes.Buffer) + cfg.fprint(buf, vals...) + return buf.WriteTo(w) +} + +// Compare returns a string containing a line-by-line unified diff of the +// values in a and b, using the CompareConfig. +// +// Each line in the output is prefixed with '+', '-', or ' ' to indicate which +// side it's from. Lines from the a side are marked with '-', lines from the +// b side are marked with '+' and lines that are the same on both sides are +// marked with ' '. +// +// The comparison is based on the intentionally-untyped output of Print, and as +// such this comparison is pretty forviving. In particular, if the types of or +// types within in a and b are different but have the same representation, +// Compare will not indicate any differences between them. +func Compare(a, b interface{}) string { + return CompareConfig.Compare(a, b) +} + +// Compare returns a string containing a line-by-line unified diff of the +// values in got and want according to the cfg. +// +// Each line in the output is prefixed with '+', '-', or ' ' to indicate which +// side it's from. Lines from the a side are marked with '-', lines from the +// b side are marked with '+' and lines that are the same on both sides are +// marked with ' '. +// +// The comparison is based on the intentionally-untyped output of Print, and as +// such this comparison is pretty forviving. In particular, if the types of or +// types within in a and b are different but have the same representation, +// Compare will not indicate any differences between them. +func (cfg *Config) Compare(a, b interface{}) string { + diffCfg := *cfg + diffCfg.Diffable = true + return diff.Diff(cfg.Sprint(a), cfg.Sprint(b)) +} diff --git a/vendor/github.com/kylelemons/godebug/pretty/reflect.go b/vendor/github.com/kylelemons/godebug/pretty/reflect.go new file mode 100644 index 00000000..5cd30b7f --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/pretty/reflect.go @@ -0,0 +1,241 @@ +// Copyright 2013 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pretty + +import ( + "encoding" + "fmt" + "reflect" + "sort" +) + +func isZeroVal(val reflect.Value) bool { + if !val.CanInterface() { + return false + } + z := reflect.Zero(val.Type()).Interface() + return reflect.DeepEqual(val.Interface(), z) +} + +// pointerTracker is a helper for tracking pointer chasing to detect cycles. +type pointerTracker struct { + addrs map[uintptr]int // addr[address] = seen count + + lastID int + ids map[uintptr]int // ids[address] = id +} + +// track tracks following a reference (pointer, slice, map, etc). Every call to +// track should be paired with a call to untrack. +func (p *pointerTracker) track(ptr uintptr) { + if p.addrs == nil { + p.addrs = make(map[uintptr]int) + } + p.addrs[ptr]++ +} + +// untrack registers that we have backtracked over the reference to the pointer. +func (p *pointerTracker) untrack(ptr uintptr) { + p.addrs[ptr]-- + if p.addrs[ptr] == 0 { + delete(p.addrs, ptr) + } +} + +// seen returns whether the pointer was previously seen along this path. +func (p *pointerTracker) seen(ptr uintptr) bool { + _, ok := p.addrs[ptr] + return ok +} + +// keep allocates an ID for the given address and returns it. +func (p *pointerTracker) keep(ptr uintptr) int { + if p.ids == nil { + p.ids = make(map[uintptr]int) + } + if _, ok := p.ids[ptr]; !ok { + p.lastID++ + p.ids[ptr] = p.lastID + } + return p.ids[ptr] +} + +// id returns the ID for the given address. +func (p *pointerTracker) id(ptr uintptr) (int, bool) { + if p.ids == nil { + p.ids = make(map[uintptr]int) + } + id, ok := p.ids[ptr] + return id, ok +} + +// reflector adds local state to the recursive reflection logic. +type reflector struct { + *Config + *pointerTracker +} + +// follow handles following a possiblly-recursive reference to the given value +// from the given ptr address. +func (r *reflector) follow(ptr uintptr, val reflect.Value) node { + if r.pointerTracker == nil { + // Tracking disabled + return r.val2node(val) + } + + // If a parent already followed this, emit a reference marker + if r.seen(ptr) { + id := r.keep(ptr) + return ref{id} + } + + // Track the pointer we're following while on this recursive branch + r.track(ptr) + defer r.untrack(ptr) + n := r.val2node(val) + + // If the recursion used this ptr, wrap it with a target marker + if id, ok := r.id(ptr); ok { + return target{id, n} + } + + // Otherwise, return the node unadulterated + return n +} + +func (r *reflector) val2node(val reflect.Value) node { + if !val.IsValid() { + return rawVal("nil") + } + + if val.CanInterface() { + v := val.Interface() + if formatter, ok := r.Formatter[val.Type()]; ok { + if formatter != nil { + res := reflect.ValueOf(formatter).Call([]reflect.Value{val}) + return rawVal(res[0].Interface().(string)) + } + } else { + if s, ok := v.(fmt.Stringer); ok && r.PrintStringers { + return stringVal(s.String()) + } + if t, ok := v.(encoding.TextMarshaler); ok && r.PrintTextMarshalers { + if raw, err := t.MarshalText(); err == nil { // if NOT an error + return stringVal(string(raw)) + } + } + } + } + + switch kind := val.Kind(); kind { + case reflect.Ptr: + if val.IsNil() { + return rawVal("nil") + } + return r.follow(val.Pointer(), val.Elem()) + case reflect.Interface: + if val.IsNil() { + return rawVal("nil") + } + return r.val2node(val.Elem()) + case reflect.String: + return stringVal(val.String()) + case reflect.Slice: + n := list{} + length := val.Len() + ptr := val.Pointer() + for i := 0; i < length; i++ { + n = append(n, r.follow(ptr, val.Index(i))) + } + return n + case reflect.Array: + n := list{} + length := val.Len() + for i := 0; i < length; i++ { + n = append(n, r.val2node(val.Index(i))) + } + return n + case reflect.Map: + // Extract the keys and sort them for stable iteration + keys := val.MapKeys() + pairs := make([]mapPair, 0, len(keys)) + for _, key := range keys { + pairs = append(pairs, mapPair{ + key: new(formatter).compactString(r.val2node(key)), // can't be cyclic + value: val.MapIndex(key), + }) + } + sort.Sort(byKey(pairs)) + + // Process the keys into the final representation + ptr, n := val.Pointer(), keyvals{} + for _, pair := range pairs { + n = append(n, keyval{ + key: pair.key, + val: r.follow(ptr, pair.value), + }) + } + return n + case reflect.Struct: + n := keyvals{} + typ := val.Type() + fields := typ.NumField() + for i := 0; i < fields; i++ { + sf := typ.Field(i) + if !r.IncludeUnexported && sf.PkgPath != "" { + continue + } + field := val.Field(i) + if r.SkipZeroFields && isZeroVal(field) { + continue + } + n = append(n, keyval{sf.Name, r.val2node(field)}) + } + return n + case reflect.Bool: + if val.Bool() { + return rawVal("true") + } + return rawVal("false") + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return rawVal(fmt.Sprintf("%d", val.Int())) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return rawVal(fmt.Sprintf("%d", val.Uint())) + case reflect.Uintptr: + return rawVal(fmt.Sprintf("0x%X", val.Uint())) + case reflect.Float32, reflect.Float64: + return rawVal(fmt.Sprintf("%v", val.Float())) + case reflect.Complex64, reflect.Complex128: + return rawVal(fmt.Sprintf("%v", val.Complex())) + } + + // Fall back to the default %#v if we can + if val.CanInterface() { + return rawVal(fmt.Sprintf("%#v", val.Interface())) + } + + return rawVal(val.String()) +} + +type mapPair struct { + key string + value reflect.Value +} + +type byKey []mapPair + +func (v byKey) Len() int { return len(v) } +func (v byKey) Swap(i, j int) { v[i], v[j] = v[j], v[i] } +func (v byKey) Less(i, j int) bool { return v[i].key < v[j].key } diff --git a/vendor/github.com/kylelemons/godebug/pretty/structure.go b/vendor/github.com/kylelemons/godebug/pretty/structure.go new file mode 100644 index 00000000..d876f60c --- /dev/null +++ b/vendor/github.com/kylelemons/godebug/pretty/structure.go @@ -0,0 +1,223 @@ +// Copyright 2013 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pretty + +import ( + "bufio" + "bytes" + "fmt" + "io" + "strconv" + "strings" +) + +// a formatter stores stateful formatting information as well as being +// an io.Writer for simplicity. +type formatter struct { + *bufio.Writer + *Config + + // Self-referential structure tracking + tagNumbers map[int]int // tagNumbers[id] = <#n> +} + +// newFormatter creates a new buffered formatter. For the output to be written +// to the given writer, this must be accompanied by a call to write (or Flush). +func newFormatter(cfg *Config, w io.Writer) *formatter { + return &formatter{ + Writer: bufio.NewWriter(w), + Config: cfg, + tagNumbers: make(map[int]int), + } +} + +func (f *formatter) write(n node) { + defer f.Flush() + n.format(f, "") +} + +func (f *formatter) tagFor(id int) int { + if tag, ok := f.tagNumbers[id]; ok { + return tag + } + if f.tagNumbers == nil { + return 0 + } + tag := len(f.tagNumbers) + 1 + f.tagNumbers[id] = tag + return tag +} + +type node interface { + format(f *formatter, indent string) +} + +func (f *formatter) compactString(n node) string { + switch k := n.(type) { + case stringVal: + return string(k) + case rawVal: + return string(k) + } + + buf := new(bytes.Buffer) + f2 := newFormatter(&Config{Compact: true}, buf) + f2.tagNumbers = f.tagNumbers // reuse tagNumbers just in case + f2.write(n) + return buf.String() +} + +type stringVal string + +func (str stringVal) format(f *formatter, indent string) { + f.WriteString(strconv.Quote(string(str))) +} + +type rawVal string + +func (r rawVal) format(f *formatter, indent string) { + f.WriteString(string(r)) +} + +type keyval struct { + key string + val node +} + +type keyvals []keyval + +func (l keyvals) format(f *formatter, indent string) { + f.WriteByte('{') + + switch { + case f.Compact: + // All on one line: + for i, kv := range l { + if i > 0 { + f.WriteByte(',') + } + f.WriteString(kv.key) + f.WriteByte(':') + kv.val.format(f, indent) + } + case f.Diffable: + f.WriteByte('\n') + inner := indent + " " + // Each value gets its own line: + for _, kv := range l { + f.WriteString(inner) + f.WriteString(kv.key) + f.WriteString(": ") + kv.val.format(f, inner) + f.WriteString(",\n") + } + f.WriteString(indent) + default: + keyWidth := 0 + for _, kv := range l { + if kw := len(kv.key); kw > keyWidth { + keyWidth = kw + } + } + alignKey := indent + " " + alignValue := strings.Repeat(" ", keyWidth) + inner := alignKey + alignValue + " " + // First and last line shared with bracket: + for i, kv := range l { + if i > 0 { + f.WriteString(",\n") + f.WriteString(alignKey) + } + f.WriteString(kv.key) + f.WriteString(": ") + f.WriteString(alignValue[len(kv.key):]) + kv.val.format(f, inner) + } + } + + f.WriteByte('}') +} + +type list []node + +func (l list) format(f *formatter, indent string) { + if max := f.ShortList; max > 0 { + short := f.compactString(l) + if len(short) <= max { + f.WriteString(short) + return + } + } + + f.WriteByte('[') + + switch { + case f.Compact: + // All on one line: + for i, v := range l { + if i > 0 { + f.WriteByte(',') + } + v.format(f, indent) + } + case f.Diffable: + f.WriteByte('\n') + inner := indent + " " + // Each value gets its own line: + for _, v := range l { + f.WriteString(inner) + v.format(f, inner) + f.WriteString(",\n") + } + f.WriteString(indent) + default: + inner := indent + " " + // First and last line shared with bracket: + for i, v := range l { + if i > 0 { + f.WriteString(",\n") + f.WriteString(inner) + } + v.format(f, inner) + } + } + + f.WriteByte(']') +} + +type ref struct { + id int +} + +func (r ref) format(f *formatter, indent string) { + fmt.Fprintf(f, "", f.tagFor(r.id)) +} + +type target struct { + id int + value node +} + +func (t target) format(f *formatter, indent string) { + tag := fmt.Sprintf("<#%d> ", f.tagFor(t.id)) + switch { + case f.Diffable, f.Compact: + // no indent changes + default: + indent += strings.Repeat(" ", len(tag)) + } + f.WriteString(tag) + t.value.format(f, indent) +} diff --git a/vendor/github.com/pkg/browser/LICENSE b/vendor/github.com/pkg/browser/LICENSE new file mode 100644 index 00000000..65f78fb6 --- /dev/null +++ b/vendor/github.com/pkg/browser/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2014, Dave Cheney +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/pkg/browser/README.md b/vendor/github.com/pkg/browser/README.md new file mode 100644 index 00000000..72b1976e --- /dev/null +++ b/vendor/github.com/pkg/browser/README.md @@ -0,0 +1,55 @@ + +# browser + import "github.com/pkg/browser" + +Package browser provides helpers to open files, readers, and urls in a browser window. + +The choice of which browser is started is entirely client dependant. + + + + + +## Variables +``` go +var Stderr io.Writer = os.Stderr +``` +Stderr is the io.Writer to which executed commands write standard error. + +``` go +var Stdout io.Writer = os.Stdout +``` +Stdout is the io.Writer to which executed commands write standard output. + + +## func OpenFile +``` go +func OpenFile(path string) error +``` +OpenFile opens new browser window for the file path. + + +## func OpenReader +``` go +func OpenReader(r io.Reader) error +``` +OpenReader consumes the contents of r and presents the +results in a new browser window. + + +## func OpenURL +``` go +func OpenURL(url string) error +``` +OpenURL opens a new browser window pointing to url. + + + + + + + + + +- - - +Generated by [godoc2md](http://godoc.org/github.com/davecheney/godoc2md) diff --git a/vendor/github.com/pkg/browser/browser.go b/vendor/github.com/pkg/browser/browser.go new file mode 100644 index 00000000..d7969d74 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser.go @@ -0,0 +1,57 @@ +// Package browser provides helpers to open files, readers, and urls in a browser window. +// +// The choice of which browser is started is entirely client dependant. +package browser + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "os/exec" + "path/filepath" +) + +// Stdout is the io.Writer to which executed commands write standard output. +var Stdout io.Writer = os.Stdout + +// Stderr is the io.Writer to which executed commands write standard error. +var Stderr io.Writer = os.Stderr + +// OpenFile opens new browser window for the file path. +func OpenFile(path string) error { + path, err := filepath.Abs(path) + if err != nil { + return err + } + return OpenURL("file://" + path) +} + +// OpenReader consumes the contents of r and presents the +// results in a new browser window. +func OpenReader(r io.Reader) error { + f, err := ioutil.TempFile("", "browser.*.html") + if err != nil { + return fmt.Errorf("browser: could not create temporary file: %v", err) + } + if _, err := io.Copy(f, r); err != nil { + f.Close() + return fmt.Errorf("browser: caching temporary file failed: %v", err) + } + if err := f.Close(); err != nil { + return fmt.Errorf("browser: caching temporary file failed: %v", err) + } + return OpenFile(f.Name()) +} + +// OpenURL opens a new browser window pointing to url. +func OpenURL(url string) error { + return openBrowser(url) +} + +func runCmd(prog string, args ...string) error { + cmd := exec.Command(prog, args...) + cmd.Stdout = Stdout + cmd.Stderr = Stderr + return cmd.Run() +} diff --git a/vendor/github.com/pkg/browser/browser_darwin.go b/vendor/github.com/pkg/browser/browser_darwin.go new file mode 100644 index 00000000..8507cf7c --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_darwin.go @@ -0,0 +1,5 @@ +package browser + +func openBrowser(url string) error { + return runCmd("open", url) +} diff --git a/vendor/github.com/pkg/browser/browser_freebsd.go b/vendor/github.com/pkg/browser/browser_freebsd.go new file mode 100644 index 00000000..4fc7ff07 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_freebsd.go @@ -0,0 +1,14 @@ +package browser + +import ( + "errors" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { + return errors.New("xdg-open: command not found - install xdg-utils from ports(8)") + } + return err +} diff --git a/vendor/github.com/pkg/browser/browser_linux.go b/vendor/github.com/pkg/browser/browser_linux.go new file mode 100644 index 00000000..d26cdddf --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_linux.go @@ -0,0 +1,21 @@ +package browser + +import ( + "os/exec" + "strings" +) + +func openBrowser(url string) error { + providers := []string{"xdg-open", "x-www-browser", "www-browser"} + + // There are multiple possible providers to open a browser on linux + // One of them is xdg-open, another is x-www-browser, then there's www-browser, etc. + // Look for one that exists and run it + for _, provider := range providers { + if _, err := exec.LookPath(provider); err == nil { + return runCmd(provider, url) + } + } + + return &exec.Error{Name: strings.Join(providers, ","), Err: exec.ErrNotFound} +} diff --git a/vendor/github.com/pkg/browser/browser_netbsd.go b/vendor/github.com/pkg/browser/browser_netbsd.go new file mode 100644 index 00000000..65a5e5a2 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_netbsd.go @@ -0,0 +1,14 @@ +package browser + +import ( + "errors" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { + return errors.New("xdg-open: command not found - install xdg-utils from pkgsrc(7)") + } + return err +} diff --git a/vendor/github.com/pkg/browser/browser_openbsd.go b/vendor/github.com/pkg/browser/browser_openbsd.go new file mode 100644 index 00000000..4fc7ff07 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_openbsd.go @@ -0,0 +1,14 @@ +package browser + +import ( + "errors" + "os/exec" +) + +func openBrowser(url string) error { + err := runCmd("xdg-open", url) + if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { + return errors.New("xdg-open: command not found - install xdg-utils from ports(8)") + } + return err +} diff --git a/vendor/github.com/pkg/browser/browser_unsupported.go b/vendor/github.com/pkg/browser/browser_unsupported.go new file mode 100644 index 00000000..7c5c17d3 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_unsupported.go @@ -0,0 +1,12 @@ +// +build !linux,!windows,!darwin,!openbsd,!freebsd,!netbsd + +package browser + +import ( + "fmt" + "runtime" +) + +func openBrowser(url string) error { + return fmt.Errorf("openBrowser: unsupported operating system: %v", runtime.GOOS) +} diff --git a/vendor/github.com/pkg/browser/browser_windows.go b/vendor/github.com/pkg/browser/browser_windows.go new file mode 100644 index 00000000..63e19295 --- /dev/null +++ b/vendor/github.com/pkg/browser/browser_windows.go @@ -0,0 +1,7 @@ +package browser + +import "golang.org/x/sys/windows" + +func openBrowser(url string) error { + return windows.ShellExecute(0, nil, windows.StringToUTF16Ptr(url), nil, nil, windows.SW_SHOWNORMAL) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/.gitignore b/vendor/github.com/pulumi/pulumi-azure-native-sdk/.gitignore deleted file mode 100644 index 7c747b85..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/.gitignore +++ /dev/null @@ -1,318 +0,0 @@ -# Created by https://www.toptal.com/developers/gitignore/api/go,windows,macos,linux,visualstudiocode,goland,intellij -# Edit at https://www.toptal.com/developers/gitignore?templates=go,windows,macos,linux,visualstudiocode,goland,intellij - -### Go ### -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# Go workspace file -go.work - -### Go Patch ### -/vendor/ -/Godeps/ - -### GoLand ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# AWS User-specific -.idea/**/aws.xml - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake -cmake-build-*/ - -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - -# File-based project format -*.iws - -# IntelliJ -out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml - -# SonarLint plugin -.idea/sonarlint/ - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - -### GoLand Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - -# Sonarlint plugin -# https://plugins.jetbrains.com/plugin/7973-sonarlint -.idea/**/sonarlint/ - -# SonarQube Plugin -# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin -.idea/**/sonarIssues.xml - -# Markdown Navigator plugin -# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced -.idea/**/markdown-navigator.xml -.idea/**/markdown-navigator-enh.xml -.idea/**/markdown-navigator/ - -# Cache file creation bug -# See https://youtrack.jetbrains.com/issue/JBR-2257 -.idea/$CACHE_FILE$ - -# CodeStream plugin -# https://plugins.jetbrains.com/plugin/12206-codestream -.idea/codestream.xml - -# Azure Toolkit for IntelliJ plugin -# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij -.idea/**/azureSettings.xml - -### Intellij ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff - -# AWS User-specific - -# Generated files - -# Sensitive or high-churn files - -# Gradle - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake - -# Mongo Explorer plugin - -# File-based project format - -# IntelliJ - -# mpeltonen/sbt-idea plugin - -# JIRA plugin - -# Cursive Clojure plugin - -# SonarLint plugin - -# Crashlytics plugin (for Android Studio and IntelliJ) - -# Editor-based Rest Client - -# Android studio 3.1+ serialized cache file - -### Intellij Patch ### -# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 - -# *.iml -# modules.xml -# .idea/misc.xml -# *.ipr - -# Sonarlint plugin -# https://plugins.jetbrains.com/plugin/7973-sonarlint - -# SonarQube Plugin -# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin - -# Markdown Navigator plugin -# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced - -# Cache file creation bug -# See https://youtrack.jetbrains.com/issue/JBR-2257 - -# CodeStream plugin -# https://plugins.jetbrains.com/plugin/12206-codestream - -# Azure Toolkit for IntelliJ plugin -# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### macOS Patch ### -# iCloud generated files -*.icloud - -### VisualStudioCode ### -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -!.vscode/*.code-snippets - -# Local History for Visual Studio Code -.history/ - -# Built Visual Studio Code Extensions -*.vsix - -### VisualStudioCode Patch ### -# Ignore all local history of files -.history -.ionide - -# Support for Project snippet scope -.vscode/*.code-snippets - -# Ignore code-workspaces -*.code-workspace - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# End of https://www.toptal.com/developers/gitignore/api/go,windows,macos,linux,visualstudiocode,goland,intellij \ No newline at end of file diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/README.md b/vendor/github.com/pulumi/pulumi-azure-native-sdk/README.md deleted file mode 100644 index c6c6e87d..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/README.md +++ /dev/null @@ -1,70 +0,0 @@ -[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com) -[![NPM version](https://badge.fury.io/js/%40pulumi%2Fazure-native.svg)](https://npmjs.com/package/@pulumi/azure-native) -[![Python version](https://badge.fury.io/py/pulumi-azure-native.svg)](https://pypi.org/project/pulumi-azure-native) -[![NuGet version](https://badge.fury.io/nu/pulumi.azurenative.svg)](https://badge.fury.io/nu/pulumi.azurenative) -[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-azure-native/sdk/go)](https://pkg.go.dev/github.com/pulumi/pulumi-azure-native/sdk/go) -[![License](https://img.shields.io/npm/l/%40pulumi%2Fazure-native.svg)](https://github.com/pulumi/pulumi-azure-native/blob/master/LICENSE) - -# Native Azure Pulumi Provider - -The [Azure Native](https://www.pulumi.com/docs/intro/cloud-providers/azure/) provider for Pulumi lets you use Azure resources in your cloud programs. -This provider uses the Azure Resource Manager REST API directly and therefore provides full access to the ARM API. - -The Azure Native provider is the recommended provider for projects targeting Azure. - -To use this package, [install the Pulumi CLI](https://www.pulumi.com/docs/get-started/install/). - -## Installing - -This package is available in many languages in the standard packaging formats. - -### Node.js (Java/TypeScript) - -To use from JavaScript or TypeScript in Node.js, install using either `npm`: - - npm install @pulumi/azure-native - -or `yarn`: - - yarn add @pulumi/azure-native - -### Python - -To use from Python, install using `pip`: - - pip install pulumi_azure_native - -### Go - -To use from Go, use `go get` to grab the latest version of the library - - go get github.com/pulumi/pulumi-azure-native/sdk - -### .NET - -To use from .NET, install using `dotnet add package`: - - dotnet add package Pulumi.AzureNative - -## Concepts - -The `@pulumi/azure-native` package provides a strongly-typed means to build cloud applications that create -and interact closely with Azure resources. Resources are exposed for the entire Azure surface area, -including (but not limited to) 'compute', 'keyvault', 'network', 'storage', and more. - -The Azure Native provider works directly with the Azure Resource Manager (ARM) platform instead of depending on a -handwritten layer as with the [classic provider](https://github.com/pulumi/pulumi-azure). This approach ensures higher -quality and higher fidelity with the Azure platform. - -## Configuring credentials - -To learn how to configure credentials refer to the [Azure configuration options](https://www.pulumi.com/registry/packages/azure-native/installation-configuration/#configuration-options). - -## Building - -See [contributing](CONTRIBUTING.md) for details on how to build and contribute to this provider. - -## Reference - -For further information, visit [Azure Native in the Pulumi Registry](https://www.pulumi.com/registry/packages/azure-native/) -or for detailed API reference documentation, visit [Azure Native API Docs in the Pulumi Registry](https://www.pulumi.com/registry/packages/azure-native/api-docs/). diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiUtilities.go deleted file mode 100644 index c3d82938..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiUtilities.go +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package compute - -import ( - "fmt" - "os" - "reflect" - "regexp" - "strconv" - "strings" - - "github.com/blang/semver" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -type envParser func(v string) interface{} - -func parseEnvBool(v string) interface{} { - b, err := strconv.ParseBool(v) - if err != nil { - return nil - } - return b -} - -func parseEnvInt(v string) interface{} { - i, err := strconv.ParseInt(v, 0, 0) - if err != nil { - return nil - } - return int(i) -} - -func parseEnvFloat(v string) interface{} { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - return nil - } - return f -} - -func parseEnvStringArray(v string) interface{} { - var result pulumi.StringArray - for _, item := range strings.Split(v, ";") { - result = append(result, pulumi.String(item)) - } - return result -} - -func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { - for _, v := range vars { - if value := os.Getenv(v); value != "" { - if parser != nil { - return parser(value) - } - return value - } - } - return def -} - -// PkgVersion uses reflection to determine the version of the current package. -// If a version cannot be determined, v1 will be assumed. The second return -// value is always nil. -func PkgVersion() (semver.Version, error) { - type sentinal struct{} - pkgPath := reflect.TypeOf(sentinal{}).PkgPath() - re := regexp.MustCompile("^.*/pulumi-azure-native/sdk(/v\\d+)?") - if match := re.FindStringSubmatch(pkgPath); match != nil { - vStr := match[1] - if len(vStr) == 0 { // If the version capture group was empty, default to v1. - return semver.Version{Major: 1}, nil - } - return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil - } - return semver.Version{Major: 1}, nil -} - -// isZero is a null safe check for if a value is it's types zero value. -func isZero(v interface{}) bool { - if v == nil { - return true - } - return reflect.ValueOf(v).IsZero() -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/LICENSE b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/LICENSE similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/LICENSE rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/LICENSE diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/availabilitySet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/availabilitySet.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/availabilitySet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/availabilitySet.go index 096bd114..debcf630 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/availabilitySet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/availabilitySet.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).

    For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. -// API Version: 2020-12-01. +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to an availability set at creation time. An existing VM cannot be added to an availability set. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type AvailabilitySet struct { pulumi.CustomResourceState @@ -24,7 +25,7 @@ type AvailabilitySet struct { PlatformFaultDomainCount pulumi.IntPtrOutput `pulumi:"platformFaultDomainCount"` // Update Domain count. PlatformUpdateDomainCount pulumi.IntPtrOutput `pulumi:"platformUpdateDomainCount"` - // Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourceResponsePtrOutput `pulumi:"proximityPlacementGroup"` // Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. Sku SkuResponsePtrOutput `pulumi:"sku"` @@ -109,8 +110,15 @@ func NewAvailabilitySet(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:AvailabilitySet"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:AvailabilitySet"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:AvailabilitySet"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource AvailabilitySet err := ctx.RegisterResource("azure-native:compute:AvailabilitySet", name, args, &resource, opts...) if err != nil { @@ -151,7 +159,7 @@ type availabilitySetArgs struct { PlatformFaultDomainCount *int `pulumi:"platformFaultDomainCount"` // Update Domain count. PlatformUpdateDomainCount *int `pulumi:"platformUpdateDomainCount"` - // Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResource `pulumi:"proximityPlacementGroup"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -173,7 +181,7 @@ type AvailabilitySetArgs struct { PlatformFaultDomainCount pulumi.IntPtrInput // Update Domain count. PlatformUpdateDomainCount pulumi.IntPtrInput - // Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourcePtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput @@ -242,7 +250,7 @@ func (o AvailabilitySetOutput) PlatformUpdateDomainCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *AvailabilitySet) pulumi.IntPtrOutput { return v.PlatformUpdateDomainCount }).(pulumi.IntPtrOutput) } -// Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. func (o AvailabilitySetOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v *AvailabilitySet) SubResourceResponsePtrOutput { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservation.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservation.go index 69f2b1b7..0f398aea 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservation.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the capacity reservation. -// API Version: 2021-04-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-04-01 type CapacityReservation struct { pulumi.CustomResourceState @@ -22,6 +23,8 @@ type CapacityReservation struct { Location pulumi.StringOutput `pulumi:"location"` // Resource name Name pulumi.StringOutput `pulumi:"name"` + // Specifies the value of fault domain count that Capacity Reservation supports for requested VM size. **Note:** The fault domain count specified for a resource (like virtual machines scale set) must be less than or equal to this value if it deploys using capacity reservation. Minimum api-version: 2022-08-01. + PlatformFaultDomainCount pulumi.IntOutput `pulumi:"platformFaultDomainCount"` // The provisioning state, which only appears in the response. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The date time when the capacity reservation was last updated. @@ -32,6 +35,8 @@ type CapacityReservation struct { Sku SkuResponseOutput `pulumi:"sku"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` + // Specifies the time at which the Capacity Reservation resource was created. Minimum api-version: 2021-11-01. + TimeCreated pulumi.StringOutput `pulumi:"timeCreated"` // Resource type Type pulumi.StringOutput `pulumi:"type"` // A list of all virtual machine resource ids that are associated with the capacity reservation. @@ -75,8 +80,15 @@ func NewCapacityReservation(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:CapacityReservation"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:CapacityReservation"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:CapacityReservation"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource CapacityReservation err := ctx.RegisterResource("azure-native:compute:CapacityReservation", name, args, &resource, opts...) if err != nil { @@ -195,6 +207,11 @@ func (o CapacityReservationOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *CapacityReservation) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// Specifies the value of fault domain count that Capacity Reservation supports for requested VM size. **Note:** The fault domain count specified for a resource (like virtual machines scale set) must be less than or equal to this value if it deploys using capacity reservation. Minimum api-version: 2022-08-01. +func (o CapacityReservationOutput) PlatformFaultDomainCount() pulumi.IntOutput { + return o.ApplyT(func(v *CapacityReservation) pulumi.IntOutput { return v.PlatformFaultDomainCount }).(pulumi.IntOutput) +} + // The provisioning state, which only appears in the response. func (o CapacityReservationOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *CapacityReservation) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) @@ -220,6 +237,11 @@ func (o CapacityReservationOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *CapacityReservation) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Capacity Reservation resource was created. Minimum api-version: 2021-11-01. +func (o CapacityReservationOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v *CapacityReservation) pulumi.StringOutput { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o CapacityReservationOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *CapacityReservation) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservationGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservationGroup.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservationGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservationGroup.go index 32407c96..b2e04ce7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/capacityReservationGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/capacityReservationGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies information about the capacity reservation group that the capacity reservations should be assigned to.

    Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. -// API Version: 2021-04-01. +// Specifies information about the capacity reservation group that the capacity reservations should be assigned to. Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-04-01 type CapacityReservationGroup struct { pulumi.CustomResourceState @@ -63,8 +64,15 @@ func NewCapacityReservationGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:CapacityReservationGroup"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:CapacityReservationGroup"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:CapacityReservationGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource CapacityReservationGroup err := ctx.RegisterResource("azure-native:compute:CapacityReservationGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/cloudService.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/cloudService.go similarity index 78% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/cloudService.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/cloudService.go index 8be9fb62..bdfe2848 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/cloudService.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/cloudService.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes the cloud service. -// API Version: 2021-03-01. +// Azure REST API version: 2022-09-04. Prior API version in Azure Native 1.x: 2021-03-01 type CloudService struct { pulumi.CustomResourceState @@ -22,10 +23,14 @@ type CloudService struct { Name pulumi.StringOutput `pulumi:"name"` // Cloud service properties Properties CloudServicePropertiesResponseOutput `pulumi:"properties"` + // The system meta data relating to this resource. + SystemData SystemDataResponsePtrOutput `pulumi:"systemData"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type. Type pulumi.StringOutput `pulumi:"type"` + // List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. + Zones pulumi.StringArrayOutput `pulumi:"zones"` } // NewCloudService registers a new resource with the given unique name, arguments, and options. @@ -53,6 +58,7 @@ func NewCloudService(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource CloudService err := ctx.RegisterResource("azure-native:compute:CloudService", name, args, &resource, opts...) if err != nil { @@ -95,6 +101,8 @@ type cloudServiceArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags. Tags map[string]string `pulumi:"tags"` + // List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. + Zones []string `pulumi:"zones"` } // The set of arguments for constructing a CloudService resource. @@ -109,6 +117,8 @@ type CloudServiceArgs struct { ResourceGroupName pulumi.StringInput // Resource tags. Tags pulumi.StringMapInput + // List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. + Zones pulumi.StringArrayInput } func (CloudServiceArgs) ElementType() reflect.Type { @@ -163,6 +173,11 @@ func (o CloudServiceOutput) Properties() CloudServicePropertiesResponseOutput { return o.ApplyT(func(v *CloudService) CloudServicePropertiesResponseOutput { return v.Properties }).(CloudServicePropertiesResponseOutput) } +// The system meta data relating to this resource. +func (o CloudServiceOutput) SystemData() SystemDataResponsePtrOutput { + return o.ApplyT(func(v *CloudService) SystemDataResponsePtrOutput { return v.SystemData }).(SystemDataResponsePtrOutput) +} + // Resource tags. func (o CloudServiceOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *CloudService) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) @@ -173,6 +188,11 @@ func (o CloudServiceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *CloudService) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } +// List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. +func (o CloudServiceOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CloudService) pulumi.StringArrayOutput { return v.Zones }).(pulumi.StringArrayOutput) +} + func init() { pulumi.RegisterOutputType(CloudServiceOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHost.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHost.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHost.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHost.go index 1ff04951..8c3843e1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHost.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHost.go @@ -7,22 +7,23 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the Dedicated host. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type DedicatedHost struct { pulumi.CustomResourceState // Specifies whether the dedicated host should be replaced automatically in case of a failure. The value is defaulted to 'true' when not provided. AutoReplaceOnFailure pulumi.BoolPtrOutput `pulumi:"autoReplaceOnFailure"` - // A unique id generated and assigned to the dedicated host by the platform.

    Does not change throughout the lifetime of the host. + // A unique id generated and assigned to the dedicated host by the platform. Does not change throughout the lifetime of the host. HostId pulumi.StringOutput `pulumi:"hostId"` // The dedicated host instance view. InstanceView DedicatedHostInstanceViewResponseOutput `pulumi:"instanceView"` - // Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** + // Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** LicenseType pulumi.StringPtrOutput `pulumi:"licenseType"` // Resource location Location pulumi.StringOutput `pulumi:"location"` @@ -38,6 +39,8 @@ type DedicatedHost struct { Sku SkuResponseOutput `pulumi:"sku"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` + // Specifies the time at which the Dedicated Host resource was created. Minimum api-version: 2021-11-01. + TimeCreated pulumi.StringOutput `pulumi:"timeCreated"` // Resource type Type pulumi.StringOutput `pulumi:"type"` // A list of references to all virtual machines in the Dedicated Host. @@ -97,8 +100,15 @@ func NewDedicatedHost(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:DedicatedHost"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:DedicatedHost"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:DedicatedHost"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DedicatedHost err := ctx.RegisterResource("azure-native:compute:DedicatedHost", name, args, &resource, opts...) if err != nil { @@ -137,7 +147,7 @@ type dedicatedHostArgs struct { HostGroupName string `pulumi:"hostGroupName"` // The name of the dedicated host . HostName *string `pulumi:"hostName"` - // Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** + // Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** LicenseType *DedicatedHostLicenseTypes `pulumi:"licenseType"` // Resource location Location *string `pulumi:"location"` @@ -159,7 +169,7 @@ type DedicatedHostArgs struct { HostGroupName pulumi.StringInput // The name of the dedicated host . HostName pulumi.StringPtrInput - // Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** + // Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** LicenseType DedicatedHostLicenseTypesPtrInput // Resource location Location pulumi.StringPtrInput @@ -215,7 +225,7 @@ func (o DedicatedHostOutput) AutoReplaceOnFailure() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DedicatedHost) pulumi.BoolPtrOutput { return v.AutoReplaceOnFailure }).(pulumi.BoolPtrOutput) } -// A unique id generated and assigned to the dedicated host by the platform.

    Does not change throughout the lifetime of the host. +// A unique id generated and assigned to the dedicated host by the platform. Does not change throughout the lifetime of the host. func (o DedicatedHostOutput) HostId() pulumi.StringOutput { return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.HostId }).(pulumi.StringOutput) } @@ -225,7 +235,7 @@ func (o DedicatedHostOutput) InstanceView() DedicatedHostInstanceViewResponseOut return o.ApplyT(func(v *DedicatedHost) DedicatedHostInstanceViewResponseOutput { return v.InstanceView }).(DedicatedHostInstanceViewResponseOutput) } -// Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** +// Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** func (o DedicatedHostOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v *DedicatedHost) pulumi.StringPtrOutput { return v.LicenseType }).(pulumi.StringPtrOutput) } @@ -265,6 +275,11 @@ func (o DedicatedHostOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *DedicatedHost) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Dedicated Host resource was created. Minimum api-version: 2021-11-01. +func (o DedicatedHostOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o DedicatedHostOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *DedicatedHost) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHostGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHostGroup.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHostGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHostGroup.go index 6433a0bc..a5ebd8b9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/dedicatedHostGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/dedicatedHostGroup.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies information about the dedicated host group that the dedicated hosts should be assigned to.

    Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. -// API Version: 2020-12-01. +// Specifies information about the dedicated host group that the dedicated hosts should be assigned to. Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type DedicatedHostGroup struct { pulumi.CustomResourceState + // Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. + AdditionalCapabilities DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput `pulumi:"additionalCapabilities"` // A list of references to all dedicated hosts in the dedicated host group. Hosts SubResourceReadOnlyResponseArrayOutput `pulumi:"hosts"` // The dedicated host group instance view, which has the list of instance view of the dedicated hosts under the dedicated host group. @@ -26,7 +29,7 @@ type DedicatedHostGroup struct { Name pulumi.StringOutput `pulumi:"name"` // Number of fault domains that the host group can span. PlatformFaultDomainCount pulumi.IntOutput `pulumi:"platformFaultDomainCount"` - // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. + // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. SupportAutomaticPlacement pulumi.BoolPtrOutput `pulumi:"supportAutomaticPlacement"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` @@ -86,8 +89,15 @@ func NewDedicatedHostGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:DedicatedHostGroup"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:DedicatedHostGroup"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:DedicatedHostGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DedicatedHostGroup err := ctx.RegisterResource("azure-native:compute:DedicatedHostGroup", name, args, &resource, opts...) if err != nil { @@ -120,6 +130,8 @@ func (DedicatedHostGroupState) ElementType() reflect.Type { } type dedicatedHostGroupArgs struct { + // Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. + AdditionalCapabilities *DedicatedHostGroupPropertiesAdditionalCapabilities `pulumi:"additionalCapabilities"` // The name of the dedicated host group. HostGroupName *string `pulumi:"hostGroupName"` // Resource location @@ -128,7 +140,7 @@ type dedicatedHostGroupArgs struct { PlatformFaultDomainCount int `pulumi:"platformFaultDomainCount"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` - // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. + // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. SupportAutomaticPlacement *bool `pulumi:"supportAutomaticPlacement"` // Resource tags Tags map[string]string `pulumi:"tags"` @@ -138,6 +150,8 @@ type dedicatedHostGroupArgs struct { // The set of arguments for constructing a DedicatedHostGroup resource. type DedicatedHostGroupArgs struct { + // Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. + AdditionalCapabilities DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrInput // The name of the dedicated host group. HostGroupName pulumi.StringPtrInput // Resource location @@ -146,7 +160,7 @@ type DedicatedHostGroupArgs struct { PlatformFaultDomainCount pulumi.IntInput // The name of the resource group. ResourceGroupName pulumi.StringInput - // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. + // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. SupportAutomaticPlacement pulumi.BoolPtrInput // Resource tags Tags pulumi.StringMapInput @@ -191,6 +205,13 @@ func (o DedicatedHostGroupOutput) ToDedicatedHostGroupOutputWithContext(ctx cont return o } +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +func (o DedicatedHostGroupOutput) AdditionalCapabilities() DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput { + return o.ApplyT(func(v *DedicatedHostGroup) DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput { + return v.AdditionalCapabilities + }).(DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) +} + // A list of references to all dedicated hosts in the dedicated host group. func (o DedicatedHostGroupOutput) Hosts() SubResourceReadOnlyResponseArrayOutput { return o.ApplyT(func(v *DedicatedHostGroup) SubResourceReadOnlyResponseArrayOutput { return v.Hosts }).(SubResourceReadOnlyResponseArrayOutput) @@ -216,7 +237,7 @@ func (o DedicatedHostGroupOutput) PlatformFaultDomainCount() pulumi.IntOutput { return o.ApplyT(func(v *DedicatedHostGroup) pulumi.IntOutput { return v.PlatformFaultDomainCount }).(pulumi.IntOutput) } -// Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. +// Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. func (o DedicatedHostGroupOutput) SupportAutomaticPlacement() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DedicatedHostGroup) pulumi.BoolPtrOutput { return v.SupportAutomaticPlacement }).(pulumi.BoolPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/disk.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/disk.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/disk.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/disk.go index aadb2ccc..ef75a744 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/disk.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/disk.go @@ -7,19 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Disk resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01 type Disk struct { pulumi.CustomResourceState // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. BurstingEnabled pulumi.BoolPtrOutput `pulumi:"burstingEnabled"` + // Latest time when bursting was last enabled on a disk. + BurstingEnabledTime pulumi.StringOutput `pulumi:"burstingEnabledTime"` + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent pulumi.Float64PtrOutput `pulumi:"completionPercent"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataResponseOutput `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode pulumi.StringPtrOutput `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId pulumi.StringPtrOutput `pulumi:"diskAccessId"` // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. @@ -56,20 +63,26 @@ type Disk struct { Name pulumi.StringOutput `pulumi:"name"` // Policy for accessing the disk via network. NetworkAccessPolicy pulumi.StringPtrOutput `pulumi:"networkAccessPolicy"` + // Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. + OptimizedForFrequentAttach pulumi.BoolPtrOutput `pulumi:"optimizedForFrequentAttach"` // The Operating System type. OsType pulumi.StringPtrOutput `pulumi:"osType"` // Properties of the disk for which update is pending. PropertyUpdatesInProgress PropertyUpdatesInProgressResponseOutput `pulumi:"propertyUpdatesInProgress"` // The disk provisioning state. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Policy for controlling export on the disk. + PublicNetworkAccess pulumi.StringPtrOutput `pulumi:"publicNetworkAccess"` // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} PurchasePlan PurchasePlanResponsePtrOutput `pulumi:"purchasePlan"` // Contains the security related information for the resource. SecurityProfile DiskSecurityProfileResponsePtrOutput `pulumi:"securityProfile"` // Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs. ShareInfo ShareInfoElementResponseArrayOutput `pulumi:"shareInfo"` - // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. + // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. Sku DiskSkuResponsePtrOutput `pulumi:"sku"` + // List of supported capabilities for the image from which the OS disk was created. + SupportedCapabilities SupportedCapabilitiesResponsePtrOutput `pulumi:"supportedCapabilities"` // Indicates the OS on a disk supports hibernation. SupportsHibernation pulumi.BoolPtrOutput `pulumi:"supportsHibernation"` // Resource tags @@ -151,8 +164,15 @@ func NewDisk(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20220702:Disk"), }, + { + Type: pulumi.String("azure-native:compute/v20230102:Disk"), + }, + { + Type: pulumi.String("azure-native:compute/v20230402:Disk"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Disk err := ctx.RegisterResource("azure-native:compute:Disk", name, args, &resource, opts...) if err != nil { @@ -187,8 +207,12 @@ func (DiskState) ElementType() reflect.Type { type diskArgs struct { // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. BurstingEnabled *bool `pulumi:"burstingEnabled"` + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent *float64 `pulumi:"completionPercent"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationData `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode *string `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId *string `pulumi:"diskAccessId"` // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. @@ -199,7 +223,7 @@ type diskArgs struct { DiskMBpsReadOnly *float64 `pulumi:"diskMBpsReadOnly"` // The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10. DiskMBpsReadWrite *float64 `pulumi:"diskMBpsReadWrite"` - // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskName *string `pulumi:"diskName"` // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. DiskSizeGB *int `pulumi:"diskSizeGB"` @@ -217,16 +241,22 @@ type diskArgs struct { MaxShares *int `pulumi:"maxShares"` // Policy for accessing the disk via network. NetworkAccessPolicy *string `pulumi:"networkAccessPolicy"` + // Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. + OptimizedForFrequentAttach *bool `pulumi:"optimizedForFrequentAttach"` // The Operating System type. OsType *OperatingSystemTypes `pulumi:"osType"` + // Policy for controlling export on the disk. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} PurchasePlan *PurchasePlan `pulumi:"purchasePlan"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Contains the security related information for the resource. SecurityProfile *DiskSecurityProfile `pulumi:"securityProfile"` - // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. + // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. Sku *DiskSku `pulumi:"sku"` + // List of supported capabilities for the image from which the OS disk was created. + SupportedCapabilities *SupportedCapabilities `pulumi:"supportedCapabilities"` // Indicates the OS on a disk supports hibernation. SupportsHibernation *bool `pulumi:"supportsHibernation"` // Resource tags @@ -241,8 +271,12 @@ type diskArgs struct { type DiskArgs struct { // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. BurstingEnabled pulumi.BoolPtrInput + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent pulumi.Float64PtrInput // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataInput + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode pulumi.StringPtrInput // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId pulumi.StringPtrInput // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. @@ -253,7 +287,7 @@ type DiskArgs struct { DiskMBpsReadOnly pulumi.Float64PtrInput // The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10. DiskMBpsReadWrite pulumi.Float64PtrInput - // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskName pulumi.StringPtrInput // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. DiskSizeGB pulumi.IntPtrInput @@ -271,16 +305,22 @@ type DiskArgs struct { MaxShares pulumi.IntPtrInput // Policy for accessing the disk via network. NetworkAccessPolicy pulumi.StringPtrInput + // Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. + OptimizedForFrequentAttach pulumi.BoolPtrInput // The Operating System type. OsType OperatingSystemTypesPtrInput + // Policy for controlling export on the disk. + PublicNetworkAccess pulumi.StringPtrInput // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} PurchasePlan PurchasePlanPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Contains the security related information for the resource. SecurityProfile DiskSecurityProfilePtrInput - // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. + // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. Sku DiskSkuPtrInput + // List of supported capabilities for the image from which the OS disk was created. + SupportedCapabilities SupportedCapabilitiesPtrInput // Indicates the OS on a disk supports hibernation. SupportsHibernation pulumi.BoolPtrInput // Resource tags @@ -333,11 +373,26 @@ func (o DiskOutput) BurstingEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Disk) pulumi.BoolPtrOutput { return v.BurstingEnabled }).(pulumi.BoolPtrOutput) } +// Latest time when bursting was last enabled on a disk. +func (o DiskOutput) BurstingEnabledTime() pulumi.StringOutput { + return o.ApplyT(func(v *Disk) pulumi.StringOutput { return v.BurstingEnabledTime }).(pulumi.StringOutput) +} + +// Percentage complete for the background copy when a resource is created via the CopyStart operation. +func (o DiskOutput) CompletionPercent() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *Disk) pulumi.Float64PtrOutput { return v.CompletionPercent }).(pulumi.Float64PtrOutput) +} + // Disk source information. CreationData information cannot be changed after the disk has been created. func (o DiskOutput) CreationData() CreationDataResponseOutput { return o.ApplyT(func(v *Disk) CreationDataResponseOutput { return v.CreationData }).(CreationDataResponseOutput) } +// Additional authentication requirements when exporting or uploading to a disk or snapshot. +func (o DiskOutput) DataAccessAuthMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Disk) pulumi.StringPtrOutput { return v.DataAccessAuthMode }).(pulumi.StringPtrOutput) +} + // ARM id of the DiskAccess resource for using private endpoints on disks. func (o DiskOutput) DiskAccessId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Disk) pulumi.StringPtrOutput { return v.DiskAccessId }).(pulumi.StringPtrOutput) @@ -428,6 +483,11 @@ func (o DiskOutput) NetworkAccessPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *Disk) pulumi.StringPtrOutput { return v.NetworkAccessPolicy }).(pulumi.StringPtrOutput) } +// Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. +func (o DiskOutput) OptimizedForFrequentAttach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Disk) pulumi.BoolPtrOutput { return v.OptimizedForFrequentAttach }).(pulumi.BoolPtrOutput) +} + // The Operating System type. func (o DiskOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *Disk) pulumi.StringPtrOutput { return v.OsType }).(pulumi.StringPtrOutput) @@ -443,6 +503,11 @@ func (o DiskOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *Disk) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Policy for controlling export on the disk. +func (o DiskOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Disk) pulumi.StringPtrOutput { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} func (o DiskOutput) PurchasePlan() PurchasePlanResponsePtrOutput { return o.ApplyT(func(v *Disk) PurchasePlanResponsePtrOutput { return v.PurchasePlan }).(PurchasePlanResponsePtrOutput) @@ -458,11 +523,16 @@ func (o DiskOutput) ShareInfo() ShareInfoElementResponseArrayOutput { return o.ApplyT(func(v *Disk) ShareInfoElementResponseArrayOutput { return v.ShareInfo }).(ShareInfoElementResponseArrayOutput) } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. func (o DiskOutput) Sku() DiskSkuResponsePtrOutput { return o.ApplyT(func(v *Disk) DiskSkuResponsePtrOutput { return v.Sku }).(DiskSkuResponsePtrOutput) } +// List of supported capabilities for the image from which the OS disk was created. +func (o DiskOutput) SupportedCapabilities() SupportedCapabilitiesResponsePtrOutput { + return o.ApplyT(func(v *Disk) SupportedCapabilitiesResponsePtrOutput { return v.SupportedCapabilities }).(SupportedCapabilitiesResponsePtrOutput) +} + // Indicates the OS on a disk supports hibernation. func (o DiskOutput) SupportsHibernation() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Disk) pulumi.BoolPtrOutput { return v.SupportsHibernation }).(pulumi.BoolPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccess.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccess.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccess.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccess.go index 18af34a5..3f639f89 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccess.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccess.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // disk access resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01 type DiskAccess struct { pulumi.CustomResourceState + // The extended location where the disk access will be created. Extended location cannot be changed. + ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` // Resource location Location pulumi.StringOutput `pulumi:"location"` // Resource name @@ -70,8 +73,15 @@ func NewDiskAccess(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20220702:DiskAccess"), }, + { + Type: pulumi.String("azure-native:compute/v20230102:DiskAccess"), + }, + { + Type: pulumi.String("azure-native:compute/v20230402:DiskAccess"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DiskAccess err := ctx.RegisterResource("azure-native:compute:DiskAccess", name, args, &resource, opts...) if err != nil { @@ -104,8 +114,10 @@ func (DiskAccessState) ElementType() reflect.Type { } type diskAccessArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName *string `pulumi:"diskAccessName"` + // The extended location where the disk access will be created. Extended location cannot be changed. + ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` // Resource location Location *string `pulumi:"location"` // The name of the resource group. @@ -116,8 +128,10 @@ type diskAccessArgs struct { // The set of arguments for constructing a DiskAccess resource. type DiskAccessArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName pulumi.StringPtrInput + // The extended location where the disk access will be created. Extended location cannot be changed. + ExtendedLocation ExtendedLocationPtrInput // Resource location Location pulumi.StringPtrInput // The name of the resource group. @@ -163,6 +177,11 @@ func (o DiskAccessOutput) ToDiskAccessOutputWithContext(ctx context.Context) Dis return o } +// The extended location where the disk access will be created. Extended location cannot be changed. +func (o DiskAccessOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v *DiskAccess) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +} + // Resource location func (o DiskAccessOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *DiskAccess) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccessAPrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccessAPrivateEndpointConnection.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccessAPrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccessAPrivateEndpointConnection.go index 13150841..7873517c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskAccessAPrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskAccessAPrivateEndpointConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Private Endpoint Connection resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01 type DiskAccessAPrivateEndpointConnection struct { pulumi.CustomResourceState @@ -66,8 +67,15 @@ func NewDiskAccessAPrivateEndpointConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20220702:DiskAccessAPrivateEndpointConnection"), }, + { + Type: pulumi.String("azure-native:compute/v20230102:DiskAccessAPrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:compute/v20230402:DiskAccessAPrivateEndpointConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DiskAccessAPrivateEndpointConnection err := ctx.RegisterResource("azure-native:compute:DiskAccessAPrivateEndpointConnection", name, args, &resource, opts...) if err != nil { @@ -100,9 +108,9 @@ func (DiskAccessAPrivateEndpointConnectionState) ElementType() reflect.Type { } type diskAccessAPrivateEndpointConnectionArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName string `pulumi:"diskAccessName"` - // The name of the private endpoint connection + // The name of the private endpoint connection. PrivateEndpointConnectionName *string `pulumi:"privateEndpointConnectionName"` // A collection of information about the state of the connection between DiskAccess and Virtual Network. PrivateLinkServiceConnectionState PrivateLinkServiceConnectionState `pulumi:"privateLinkServiceConnectionState"` @@ -112,9 +120,9 @@ type diskAccessAPrivateEndpointConnectionArgs struct { // The set of arguments for constructing a DiskAccessAPrivateEndpointConnection resource. type DiskAccessAPrivateEndpointConnectionArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName pulumi.StringInput - // The name of the private endpoint connection + // The name of the private endpoint connection. PrivateEndpointConnectionName pulumi.StringPtrInput // A collection of information about the state of the connection between DiskAccess and Virtual Network. PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStateInput diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskEncryptionSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskEncryptionSet.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskEncryptionSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskEncryptionSet.go index 2bf1590b..7fa83fbb 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/diskEncryptionSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/diskEncryptionSet.go @@ -7,19 +7,24 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // disk encryption set resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01 type DiskEncryptionSet struct { pulumi.CustomResourceState // The key vault key which is currently used by this disk encryption set. ActiveKey KeyForDiskEncryptionSetResponsePtrOutput `pulumi:"activeKey"` + // The error that was encountered during auto-key rotation. If an error is present, then auto-key rotation will not be attempted until the error on this disk encryption set is fixed. + AutoKeyRotationError ApiErrorResponseOutput `pulumi:"autoKeyRotationError"` // The type of key used to encrypt the data of the disk. EncryptionType pulumi.StringPtrOutput `pulumi:"encryptionType"` + // Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. + FederatedClientId pulumi.StringPtrOutput `pulumi:"federatedClientId"` // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. Identity EncryptionSetIdentityResponsePtrOutput `pulumi:"identity"` // The time when the active key of this disk encryption set was updated. @@ -84,8 +89,15 @@ func NewDiskEncryptionSet(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20220702:DiskEncryptionSet"), }, + { + Type: pulumi.String("azure-native:compute/v20230102:DiskEncryptionSet"), + }, + { + Type: pulumi.String("azure-native:compute/v20230402:DiskEncryptionSet"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DiskEncryptionSet err := ctx.RegisterResource("azure-native:compute:DiskEncryptionSet", name, args, &resource, opts...) if err != nil { @@ -120,10 +132,12 @@ func (DiskEncryptionSetState) ElementType() reflect.Type { type diskEncryptionSetArgs struct { // The key vault key which is currently used by this disk encryption set. ActiveKey *KeyForDiskEncryptionSet `pulumi:"activeKey"` - // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskEncryptionSetName *string `pulumi:"diskEncryptionSetName"` // The type of key used to encrypt the data of the disk. EncryptionType *string `pulumi:"encryptionType"` + // Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. + FederatedClientId *string `pulumi:"federatedClientId"` // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. Identity *EncryptionSetIdentity `pulumi:"identity"` // Resource location @@ -140,10 +154,12 @@ type diskEncryptionSetArgs struct { type DiskEncryptionSetArgs struct { // The key vault key which is currently used by this disk encryption set. ActiveKey KeyForDiskEncryptionSetPtrInput - // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskEncryptionSetName pulumi.StringPtrInput // The type of key used to encrypt the data of the disk. EncryptionType pulumi.StringPtrInput + // Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. + FederatedClientId pulumi.StringPtrInput // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. Identity EncryptionSetIdentityPtrInput // Resource location @@ -198,11 +214,21 @@ func (o DiskEncryptionSetOutput) ActiveKey() KeyForDiskEncryptionSetResponsePtrO return o.ApplyT(func(v *DiskEncryptionSet) KeyForDiskEncryptionSetResponsePtrOutput { return v.ActiveKey }).(KeyForDiskEncryptionSetResponsePtrOutput) } +// The error that was encountered during auto-key rotation. If an error is present, then auto-key rotation will not be attempted until the error on this disk encryption set is fixed. +func (o DiskEncryptionSetOutput) AutoKeyRotationError() ApiErrorResponseOutput { + return o.ApplyT(func(v *DiskEncryptionSet) ApiErrorResponseOutput { return v.AutoKeyRotationError }).(ApiErrorResponseOutput) +} + // The type of key used to encrypt the data of the disk. func (o DiskEncryptionSetOutput) EncryptionType() pulumi.StringPtrOutput { return o.ApplyT(func(v *DiskEncryptionSet) pulumi.StringPtrOutput { return v.EncryptionType }).(pulumi.StringPtrOutput) } +// Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. +func (o DiskEncryptionSetOutput) FederatedClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiskEncryptionSet) pulumi.StringPtrOutput { return v.FederatedClientId }).(pulumi.StringPtrOutput) +} + // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. func (o DiskEncryptionSetOutput) Identity() EncryptionSetIdentityResponsePtrOutput { return o.ApplyT(func(v *DiskEncryptionSet) EncryptionSetIdentityResponsePtrOutput { return v.Identity }).(EncryptionSetIdentityResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/gallery.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/gallery.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/gallery.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/gallery.go index 391b8c4d..6ad4ba08 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/gallery.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/gallery.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the Shared Image Gallery that you want to create or update. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. Prior API version in Azure Native 1.x: 2020-09-30 type Gallery struct { pulumi.CustomResourceState @@ -28,6 +29,10 @@ type Gallery struct { ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Profile for gallery sharing to subscription or tenant SharingProfile SharingProfileResponsePtrOutput `pulumi:"sharingProfile"` + // Sharing status of current gallery. + SharingStatus SharingStatusResponseOutput `pulumi:"sharingStatus"` + // Contains information about the soft deletion policy of the gallery. + SoftDeletePolicy SoftDeletePolicyResponsePtrOutput `pulumi:"softDeletePolicy"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type @@ -74,6 +79,7 @@ func NewGallery(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Gallery err := ctx.RegisterResource("azure-native:compute:Gallery", name, args, &resource, opts...) if err != nil { @@ -116,6 +122,8 @@ type galleryArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Profile for gallery sharing to subscription or tenant SharingProfile *SharingProfile `pulumi:"sharingProfile"` + // Contains information about the soft deletion policy of the gallery. + SoftDeletePolicy *SoftDeletePolicy `pulumi:"softDeletePolicy"` // Resource tags Tags map[string]string `pulumi:"tags"` } @@ -132,6 +140,8 @@ type GalleryArgs struct { ResourceGroupName pulumi.StringInput // Profile for gallery sharing to subscription or tenant SharingProfile SharingProfilePtrInput + // Contains information about the soft deletion policy of the gallery. + SoftDeletePolicy SoftDeletePolicyPtrInput // Resource tags Tags pulumi.StringMapInput } @@ -203,6 +213,16 @@ func (o GalleryOutput) SharingProfile() SharingProfileResponsePtrOutput { return o.ApplyT(func(v *Gallery) SharingProfileResponsePtrOutput { return v.SharingProfile }).(SharingProfileResponsePtrOutput) } +// Sharing status of current gallery. +func (o GalleryOutput) SharingStatus() SharingStatusResponseOutput { + return o.ApplyT(func(v *Gallery) SharingStatusResponseOutput { return v.SharingStatus }).(SharingStatusResponseOutput) +} + +// Contains information about the soft deletion policy of the gallery. +func (o GalleryOutput) SoftDeletePolicy() SoftDeletePolicyResponsePtrOutput { + return o.ApplyT(func(v *Gallery) SoftDeletePolicyResponsePtrOutput { return v.SoftDeletePolicy }).(SoftDeletePolicyResponsePtrOutput) +} + // Resource tags func (o GalleryOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *Gallery) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplication.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplication.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplication.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplication.go index 69156d9c..35a93d5e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplication.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplication.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the gallery Application Definition that you want to create or update. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. Prior API version in Azure Native 1.x: 2020-09-30 type GalleryApplication struct { pulumi.CustomResourceState + // A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. + CustomActions GalleryApplicationCustomActionResponseArrayOutput `pulumi:"customActions"` // The description of this gallery Application Definition resource. This property is updatable. Description pulumi.StringPtrOutput `pulumi:"description"` // The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable. @@ -81,6 +84,7 @@ func NewGalleryApplication(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource GalleryApplication err := ctx.RegisterResource("azure-native:compute:GalleryApplication", name, args, &resource, opts...) if err != nil { @@ -113,6 +117,8 @@ func (GalleryApplicationState) ElementType() reflect.Type { } type galleryApplicationArgs struct { + // A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. + CustomActions []GalleryApplicationCustomAction `pulumi:"customActions"` // The description of this gallery Application Definition resource. This property is updatable. Description *string `pulumi:"description"` // The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable. @@ -139,6 +145,8 @@ type galleryApplicationArgs struct { // The set of arguments for constructing a GalleryApplication resource. type GalleryApplicationArgs struct { + // A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. + CustomActions GalleryApplicationCustomActionArrayInput // The description of this gallery Application Definition resource. This property is updatable. Description pulumi.StringPtrInput // The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable. @@ -200,6 +208,11 @@ func (o GalleryApplicationOutput) ToGalleryApplicationOutputWithContext(ctx cont return o } +// A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. +func (o GalleryApplicationOutput) CustomActions() GalleryApplicationCustomActionResponseArrayOutput { + return o.ApplyT(func(v *GalleryApplication) GalleryApplicationCustomActionResponseArrayOutput { return v.CustomActions }).(GalleryApplicationCustomActionResponseArrayOutput) +} + // The description of this gallery Application Definition resource. This property is updatable. func (o GalleryApplicationOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *GalleryApplication) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplicationVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplicationVersion.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplicationVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplicationVersion.go index 460e8b60..7a0ed979 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryApplicationVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryApplicationVersion.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the gallery Application Version that you want to create or update. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. Prior API version in Azure Native 1.x: 2020-09-30 type GalleryApplicationVersion struct { pulumi.CustomResourceState @@ -26,6 +27,8 @@ type GalleryApplicationVersion struct { PublishingProfile GalleryApplicationVersionPublishingProfileResponseOutput `pulumi:"publishingProfile"` // This is the replication status of the gallery image version. ReplicationStatus ReplicationStatusResponseOutput `pulumi:"replicationStatus"` + // The safety profile of the Gallery Application Version. + SafetyProfile GalleryApplicationVersionSafetyProfileResponsePtrOutput `pulumi:"safetyProfile"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type @@ -78,6 +81,7 @@ func NewGalleryApplicationVersion(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource GalleryApplicationVersion err := ctx.RegisterResource("azure-native:compute:GalleryApplicationVersion", name, args, &resource, opts...) if err != nil { @@ -122,6 +126,8 @@ type galleryApplicationVersionArgs struct { PublishingProfile GalleryApplicationVersionPublishingProfile `pulumi:"publishingProfile"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // The safety profile of the Gallery Application Version. + SafetyProfile *GalleryApplicationVersionSafetyProfile `pulumi:"safetyProfile"` // Resource tags Tags map[string]string `pulumi:"tags"` } @@ -140,6 +146,8 @@ type GalleryApplicationVersionArgs struct { PublishingProfile GalleryApplicationVersionPublishingProfileInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // The safety profile of the Gallery Application Version. + SafetyProfile GalleryApplicationVersionSafetyProfilePtrInput // Resource tags Tags pulumi.StringMapInput } @@ -208,6 +216,13 @@ func (o GalleryApplicationVersionOutput) ReplicationStatus() ReplicationStatusRe return o.ApplyT(func(v *GalleryApplicationVersion) ReplicationStatusResponseOutput { return v.ReplicationStatus }).(ReplicationStatusResponseOutput) } +// The safety profile of the Gallery Application Version. +func (o GalleryApplicationVersionOutput) SafetyProfile() GalleryApplicationVersionSafetyProfileResponsePtrOutput { + return o.ApplyT(func(v *GalleryApplicationVersion) GalleryApplicationVersionSafetyProfileResponsePtrOutput { + return v.SafetyProfile + }).(GalleryApplicationVersionSafetyProfileResponsePtrOutput) +} + // Resource tags func (o GalleryApplicationVersionOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *GalleryApplicationVersion) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImage.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImage.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImage.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImage.go index 2da29f7e..8e13cfd8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImage.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImage.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the gallery image definition that you want to create or update. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. Prior API version in Azure Native 1.x: 2020-09-30 type GalleryImage struct { pulumi.CustomResourceState + // The architecture of the image. Applicable to OS disks only. + Architecture pulumi.StringPtrOutput `pulumi:"architecture"` // The description of this gallery image definition resource. This property is updatable. Description pulumi.StringPtrOutput `pulumi:"description"` // Describes the disallowed disk types. @@ -106,6 +109,7 @@ func NewGalleryImage(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource GalleryImage err := ctx.RegisterResource("azure-native:compute:GalleryImage", name, args, &resource, opts...) if err != nil { @@ -138,6 +142,8 @@ func (GalleryImageState) ElementType() reflect.Type { } type galleryImageArgs struct { + // The architecture of the image. Applicable to OS disks only. + Architecture *string `pulumi:"architecture"` // The description of this gallery image definition resource. This property is updatable. Description *string `pulumi:"description"` // Describes the disallowed disk types. @@ -178,6 +184,8 @@ type galleryImageArgs struct { // The set of arguments for constructing a GalleryImage resource. type GalleryImageArgs struct { + // The architecture of the image. Applicable to OS disks only. + Architecture pulumi.StringPtrInput // The description of this gallery image definition resource. This property is updatable. Description pulumi.StringPtrInput // Describes the disallowed disk types. @@ -253,6 +261,11 @@ func (o GalleryImageOutput) ToGalleryImageOutputWithContext(ctx context.Context) return o } +// The architecture of the image. Applicable to OS disks only. +func (o GalleryImageOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryImage) pulumi.StringPtrOutput { return v.Architecture }).(pulumi.StringPtrOutput) +} + // The description of this gallery image definition resource. This property is updatable. func (o GalleryImageOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *GalleryImage) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImageVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImageVersion.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImageVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImageVersion.go index e65d2057..1aa02c84 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/galleryImageVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/galleryImageVersion.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the gallery image version that you want to create or update. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. Prior API version in Azure Native 1.x: 2020-09-30 type GalleryImageVersion struct { pulumi.CustomResourceState @@ -26,6 +27,8 @@ type GalleryImageVersion struct { PublishingProfile GalleryImageVersionPublishingProfileResponsePtrOutput `pulumi:"publishingProfile"` // This is the replication status of the gallery image version. ReplicationStatus ReplicationStatusResponseOutput `pulumi:"replicationStatus"` + // This is the safety profile of the Gallery Image Version. + SafetyProfile GalleryImageVersionSafetyProfileResponsePtrOutput `pulumi:"safetyProfile"` // This is the storage profile of a Gallery Image Version. StorageProfile GalleryImageVersionStorageProfileResponseOutput `pulumi:"storageProfile"` // Resource tags @@ -83,6 +86,7 @@ func NewGalleryImageVersion(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource GalleryImageVersion err := ctx.RegisterResource("azure-native:compute:GalleryImageVersion", name, args, &resource, opts...) if err != nil { @@ -127,6 +131,8 @@ type galleryImageVersionArgs struct { PublishingProfile *GalleryImageVersionPublishingProfile `pulumi:"publishingProfile"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // This is the safety profile of the Gallery Image Version. + SafetyProfile *GalleryImageVersionSafetyProfile `pulumi:"safetyProfile"` // This is the storage profile of a Gallery Image Version. StorageProfile GalleryImageVersionStorageProfile `pulumi:"storageProfile"` // Resource tags @@ -147,6 +153,8 @@ type GalleryImageVersionArgs struct { PublishingProfile GalleryImageVersionPublishingProfilePtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // This is the safety profile of the Gallery Image Version. + SafetyProfile GalleryImageVersionSafetyProfilePtrInput // This is the storage profile of a Gallery Image Version. StorageProfile GalleryImageVersionStorageProfileInput // Resource tags @@ -217,6 +225,11 @@ func (o GalleryImageVersionOutput) ReplicationStatus() ReplicationStatusResponse return o.ApplyT(func(v *GalleryImageVersion) ReplicationStatusResponseOutput { return v.ReplicationStatus }).(ReplicationStatusResponseOutput) } +// This is the safety profile of the Gallery Image Version. +func (o GalleryImageVersionOutput) SafetyProfile() GalleryImageVersionSafetyProfileResponsePtrOutput { + return o.ApplyT(func(v *GalleryImageVersion) GalleryImageVersionSafetyProfileResponsePtrOutput { return v.SafetyProfile }).(GalleryImageVersionSafetyProfileResponsePtrOutput) +} + // This is the storage profile of a Gallery Image Version. func (o GalleryImageVersionOutput) StorageProfile() GalleryImageVersionStorageProfileResponseOutput { return o.ApplyT(func(v *GalleryImageVersion) GalleryImageVersionStorageProfileResponseOutput { return v.StorageProfile }).(GalleryImageVersionStorageProfileResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getAvailabilitySet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getAvailabilitySet.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getAvailabilitySet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getAvailabilitySet.go index 821fdc32..c82b7212 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getAvailabilitySet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getAvailabilitySet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about an availability set. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupAvailabilitySet(ctx *pulumi.Context, args *LookupAvailabilitySetArgs, opts ...pulumi.InvokeOption) (*LookupAvailabilitySetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAvailabilitySetResult err := ctx.Invoke("azure-native:compute:getAvailabilitySet", args, &rv, opts...) if err != nil { @@ -28,7 +30,7 @@ type LookupAvailabilitySetArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).

    For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to an availability set at creation time. An existing VM cannot be added to an availability set. type LookupAvailabilitySetResult struct { // Resource Id Id string `pulumi:"id"` @@ -40,7 +42,7 @@ type LookupAvailabilitySetResult struct { PlatformFaultDomainCount *int `pulumi:"platformFaultDomainCount"` // Update Domain count. PlatformUpdateDomainCount *int `pulumi:"platformUpdateDomainCount"` - // Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResourceResponse `pulumi:"proximityPlacementGroup"` // Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. Sku *SkuResponse `pulumi:"sku"` @@ -78,7 +80,7 @@ func (LookupAvailabilitySetOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupAvailabilitySetArgs)(nil)).Elem() } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json).

    For more information on Azure planned maintenance, see [Planned maintenance for virtual machines in Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to an availability set at creation time. An existing VM cannot be added to an availability set. type LookupAvailabilitySetResultOutput struct{ *pulumi.OutputState } func (LookupAvailabilitySetResultOutput) ElementType() reflect.Type { @@ -118,7 +120,7 @@ func (o LookupAvailabilitySetResultOutput) PlatformUpdateDomainCount() pulumi.In return o.ApplyT(func(v LookupAvailabilitySetResult) *int { return v.PlatformUpdateDomainCount }).(pulumi.IntPtrOutput) } -// Specifies information about the proximity placement group that the availability set should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. func (o LookupAvailabilitySetResultOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupAvailabilitySetResult) *SubResourceResponse { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservation.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservation.go index f5ef02ce..7d1e49c3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservation.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation that retrieves information about the capacity reservation. -// API Version: 2021-04-01. +// Azure REST API version: 2023-03-01. func LookupCapacityReservation(ctx *pulumi.Context, args *LookupCapacityReservationArgs, opts ...pulumi.InvokeOption) (*LookupCapacityReservationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupCapacityReservationResult err := ctx.Invoke("azure-native:compute:getCapacityReservation", args, &rv, opts...) if err != nil { @@ -42,6 +44,8 @@ type LookupCapacityReservationResult struct { Location string `pulumi:"location"` // Resource name Name string `pulumi:"name"` + // Specifies the value of fault domain count that Capacity Reservation supports for requested VM size. **Note:** The fault domain count specified for a resource (like virtual machines scale set) must be less than or equal to this value if it deploys using capacity reservation. Minimum api-version: 2022-08-01. + PlatformFaultDomainCount int `pulumi:"platformFaultDomainCount"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` // The date time when the capacity reservation was last updated. @@ -52,6 +56,8 @@ type LookupCapacityReservationResult struct { Sku SkuResponse `pulumi:"sku"` // Resource tags Tags map[string]string `pulumi:"tags"` + // Specifies the time at which the Capacity Reservation resource was created. Minimum api-version: 2021-11-01. + TimeCreated string `pulumi:"timeCreated"` // Resource type Type string `pulumi:"type"` // A list of all virtual machine resource ids that are associated with the capacity reservation. @@ -123,6 +129,11 @@ func (o LookupCapacityReservationResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupCapacityReservationResult) string { return v.Name }).(pulumi.StringOutput) } +// Specifies the value of fault domain count that Capacity Reservation supports for requested VM size. **Note:** The fault domain count specified for a resource (like virtual machines scale set) must be less than or equal to this value if it deploys using capacity reservation. Minimum api-version: 2022-08-01. +func (o LookupCapacityReservationResultOutput) PlatformFaultDomainCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupCapacityReservationResult) int { return v.PlatformFaultDomainCount }).(pulumi.IntOutput) +} + // The provisioning state, which only appears in the response. func (o LookupCapacityReservationResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupCapacityReservationResult) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -148,6 +159,11 @@ func (o LookupCapacityReservationResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupCapacityReservationResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Capacity Reservation resource was created. Minimum api-version: 2021-11-01. +func (o LookupCapacityReservationResultOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v LookupCapacityReservationResult) string { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o LookupCapacityReservationResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupCapacityReservationResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservationGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservationGroup.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservationGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservationGroup.go index e561fecf..1c8dd4e5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCapacityReservationGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCapacityReservationGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation that retrieves information about a capacity reservation group. -// API Version: 2021-04-01. +// Azure REST API version: 2023-03-01. func LookupCapacityReservationGroup(ctx *pulumi.Context, args *LookupCapacityReservationGroupArgs, opts ...pulumi.InvokeOption) (*LookupCapacityReservationGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupCapacityReservationGroupResult err := ctx.Invoke("azure-native:compute:getCapacityReservationGroup", args, &rv, opts...) if err != nil { @@ -30,7 +32,7 @@ type LookupCapacityReservationGroupArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// Specifies information about the capacity reservation group that the capacity reservations should be assigned to.

    Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. +// Specifies information about the capacity reservation group that the capacity reservations should be assigned to. Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. type LookupCapacityReservationGroupResult struct { // A list of all capacity reservation resource ids that belong to capacity reservation group. CapacityReservations []SubResourceReadOnlyResponse `pulumi:"capacityReservations"` @@ -78,7 +80,7 @@ func (LookupCapacityReservationGroupOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupCapacityReservationGroupArgs)(nil)).Elem() } -// Specifies information about the capacity reservation group that the capacity reservations should be assigned to.

    Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. +// Specifies information about the capacity reservation group that the capacity reservations should be assigned to. Currently, a capacity reservation can only be added to a capacity reservation group at creation time. An existing capacity reservation cannot be added or moved to another capacity reservation group. type LookupCapacityReservationGroupResultOutput struct{ *pulumi.OutputState } func (LookupCapacityReservationGroupResultOutput) ElementType() reflect.Type { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCloudService.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCloudService.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCloudService.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCloudService.go index 19089584..78e4a184 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getCloudService.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getCloudService.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Display information about a cloud service. -// API Version: 2021-03-01. +// Azure REST API version: 2022-09-04. func LookupCloudService(ctx *pulumi.Context, args *LookupCloudServiceArgs, opts ...pulumi.InvokeOption) (*LookupCloudServiceResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupCloudServiceResult err := ctx.Invoke("azure-native:compute:getCloudService", args, &rv, opts...) if err != nil { @@ -38,10 +40,14 @@ type LookupCloudServiceResult struct { Name string `pulumi:"name"` // Cloud service properties Properties CloudServicePropertiesResponse `pulumi:"properties"` + // The system meta data relating to this resource. + SystemData *SystemDataResponse `pulumi:"systemData"` // Resource tags. Tags map[string]string `pulumi:"tags"` // Resource type. Type string `pulumi:"type"` + // List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. + Zones []string `pulumi:"zones"` } func LookupCloudServiceOutput(ctx *pulumi.Context, args LookupCloudServiceOutputArgs, opts ...pulumi.InvokeOption) LookupCloudServiceResultOutput { @@ -103,6 +109,11 @@ func (o LookupCloudServiceResultOutput) Properties() CloudServicePropertiesRespo return o.ApplyT(func(v LookupCloudServiceResult) CloudServicePropertiesResponse { return v.Properties }).(CloudServicePropertiesResponseOutput) } +// The system meta data relating to this resource. +func (o LookupCloudServiceResultOutput) SystemData() SystemDataResponsePtrOutput { + return o.ApplyT(func(v LookupCloudServiceResult) *SystemDataResponse { return v.SystemData }).(SystemDataResponsePtrOutput) +} + // Resource tags. func (o LookupCloudServiceResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupCloudServiceResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) @@ -113,6 +124,11 @@ func (o LookupCloudServiceResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupCloudServiceResult) string { return v.Type }).(pulumi.StringOutput) } +// List of logical availability zone of the resource. List should contain only 1 zone where cloud service should be provisioned. This field is optional. +func (o LookupCloudServiceResultOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupCloudServiceResult) []string { return v.Zones }).(pulumi.StringArrayOutput) +} + func init() { pulumi.RegisterOutputType(LookupCloudServiceResultOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHost.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHost.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHost.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHost.go index 31833b1c..c1e8b784 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHost.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHost.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a dedicated host. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupDedicatedHost(ctx *pulumi.Context, args *LookupDedicatedHostArgs, opts ...pulumi.InvokeOption) (*LookupDedicatedHostResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDedicatedHostResult err := ctx.Invoke("azure-native:compute:getDedicatedHost", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDedicatedHost(ctx *pulumi.Context, args *LookupDedicatedHostArgs, opt } type LookupDedicatedHostArgs struct { - // The expand expression to apply on the operation. + // The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated host. 'UserData' is not supported for dedicated host. Expand *string `pulumi:"expand"` // The name of the dedicated host group. HostGroupName string `pulumi:"hostGroupName"` @@ -36,13 +38,13 @@ type LookupDedicatedHostArgs struct { type LookupDedicatedHostResult struct { // Specifies whether the dedicated host should be replaced automatically in case of a failure. The value is defaulted to 'true' when not provided. AutoReplaceOnFailure *bool `pulumi:"autoReplaceOnFailure"` - // A unique id generated and assigned to the dedicated host by the platform.

    Does not change throughout the lifetime of the host. + // A unique id generated and assigned to the dedicated host by the platform. Does not change throughout the lifetime of the host. HostId string `pulumi:"hostId"` // Resource Id Id string `pulumi:"id"` // The dedicated host instance view. InstanceView DedicatedHostInstanceViewResponse `pulumi:"instanceView"` - // Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** + // Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** LicenseType *string `pulumi:"licenseType"` // Resource location Location string `pulumi:"location"` @@ -58,6 +60,8 @@ type LookupDedicatedHostResult struct { Sku SkuResponse `pulumi:"sku"` // Resource tags Tags map[string]string `pulumi:"tags"` + // Specifies the time at which the Dedicated Host resource was created. Minimum api-version: 2021-11-01. + TimeCreated string `pulumi:"timeCreated"` // Resource type Type string `pulumi:"type"` // A list of references to all virtual machines in the Dedicated Host. @@ -78,7 +82,7 @@ func LookupDedicatedHostOutput(ctx *pulumi.Context, args LookupDedicatedHostOutp } type LookupDedicatedHostOutputArgs struct { - // The expand expression to apply on the operation. + // The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated host. 'UserData' is not supported for dedicated host. Expand pulumi.StringPtrInput `pulumi:"expand"` // The name of the dedicated host group. HostGroupName pulumi.StringInput `pulumi:"hostGroupName"` @@ -112,7 +116,7 @@ func (o LookupDedicatedHostResultOutput) AutoReplaceOnFailure() pulumi.BoolPtrOu return o.ApplyT(func(v LookupDedicatedHostResult) *bool { return v.AutoReplaceOnFailure }).(pulumi.BoolPtrOutput) } -// A unique id generated and assigned to the dedicated host by the platform.

    Does not change throughout the lifetime of the host. +// A unique id generated and assigned to the dedicated host by the platform. Does not change throughout the lifetime of the host. func (o LookupDedicatedHostResultOutput) HostId() pulumi.StringOutput { return o.ApplyT(func(v LookupDedicatedHostResult) string { return v.HostId }).(pulumi.StringOutput) } @@ -127,7 +131,7 @@ func (o LookupDedicatedHostResultOutput) InstanceView() DedicatedHostInstanceVie return o.ApplyT(func(v LookupDedicatedHostResult) DedicatedHostInstanceViewResponse { return v.InstanceView }).(DedicatedHostInstanceViewResponseOutput) } -// Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** +// Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** func (o LookupDedicatedHostResultOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDedicatedHostResult) *string { return v.LicenseType }).(pulumi.StringPtrOutput) } @@ -167,6 +171,11 @@ func (o LookupDedicatedHostResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupDedicatedHostResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Dedicated Host resource was created. Minimum api-version: 2021-11-01. +func (o LookupDedicatedHostResultOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v LookupDedicatedHostResult) string { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o LookupDedicatedHostResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupDedicatedHostResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHostGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHostGroup.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHostGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHostGroup.go index 1241ba56..de04faf9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDedicatedHostGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDedicatedHostGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a dedicated host group. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupDedicatedHostGroup(ctx *pulumi.Context, args *LookupDedicatedHostGroupArgs, opts ...pulumi.InvokeOption) (*LookupDedicatedHostGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDedicatedHostGroupResult err := ctx.Invoke("azure-native:compute:getDedicatedHostGroup", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDedicatedHostGroup(ctx *pulumi.Context, args *LookupDedicatedHostGrou } type LookupDedicatedHostGroupArgs struct { - // The expand expression to apply on the operation. The response shows the list of instance view of the dedicated hosts under the dedicated host group. + // The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated hosts under the dedicated host group. 'UserData' is not supported for dedicated host group. Expand *string `pulumi:"expand"` // The name of the dedicated host group. HostGroupName string `pulumi:"hostGroupName"` @@ -30,8 +32,10 @@ type LookupDedicatedHostGroupArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// Specifies information about the dedicated host group that the dedicated hosts should be assigned to.

    Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. +// Specifies information about the dedicated host group that the dedicated hosts should be assigned to. Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. type LookupDedicatedHostGroupResult struct { + // Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. + AdditionalCapabilities *DedicatedHostGroupPropertiesResponseAdditionalCapabilities `pulumi:"additionalCapabilities"` // A list of references to all dedicated hosts in the dedicated host group. Hosts []SubResourceReadOnlyResponse `pulumi:"hosts"` // Resource Id @@ -44,7 +48,7 @@ type LookupDedicatedHostGroupResult struct { Name string `pulumi:"name"` // Number of fault domains that the host group can span. PlatformFaultDomainCount int `pulumi:"platformFaultDomainCount"` - // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. + // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. SupportAutomaticPlacement *bool `pulumi:"supportAutomaticPlacement"` // Resource tags Tags map[string]string `pulumi:"tags"` @@ -68,7 +72,7 @@ func LookupDedicatedHostGroupOutput(ctx *pulumi.Context, args LookupDedicatedHos } type LookupDedicatedHostGroupOutputArgs struct { - // The expand expression to apply on the operation. The response shows the list of instance view of the dedicated hosts under the dedicated host group. + // The expand expression to apply on the operation. 'InstanceView' will retrieve the list of instance views of the dedicated hosts under the dedicated host group. 'UserData' is not supported for dedicated host group. Expand pulumi.StringPtrInput `pulumi:"expand"` // The name of the dedicated host group. HostGroupName pulumi.StringInput `pulumi:"hostGroupName"` @@ -80,7 +84,7 @@ func (LookupDedicatedHostGroupOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupDedicatedHostGroupArgs)(nil)).Elem() } -// Specifies information about the dedicated host group that the dedicated hosts should be assigned to.

    Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. +// Specifies information about the dedicated host group that the dedicated hosts should be assigned to. Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. type LookupDedicatedHostGroupResultOutput struct{ *pulumi.OutputState } func (LookupDedicatedHostGroupResultOutput) ElementType() reflect.Type { @@ -95,6 +99,13 @@ func (o LookupDedicatedHostGroupResultOutput) ToLookupDedicatedHostGroupResultOu return o } +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +func (o LookupDedicatedHostGroupResultOutput) AdditionalCapabilities() DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput { + return o.ApplyT(func(v LookupDedicatedHostGroupResult) *DedicatedHostGroupPropertiesResponseAdditionalCapabilities { + return v.AdditionalCapabilities + }).(DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) +} + // A list of references to all dedicated hosts in the dedicated host group. func (o LookupDedicatedHostGroupResultOutput) Hosts() SubResourceReadOnlyResponseArrayOutput { return o.ApplyT(func(v LookupDedicatedHostGroupResult) []SubResourceReadOnlyResponse { return v.Hosts }).(SubResourceReadOnlyResponseArrayOutput) @@ -125,7 +136,7 @@ func (o LookupDedicatedHostGroupResultOutput) PlatformFaultDomainCount() pulumi. return o.ApplyT(func(v LookupDedicatedHostGroupResult) int { return v.PlatformFaultDomainCount }).(pulumi.IntOutput) } -// Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided.

    Minimum api-version: 2020-06-01. +// Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. Minimum api-version: 2020-06-01. func (o LookupDedicatedHostGroupResultOutput) SupportAutomaticPlacement() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupDedicatedHostGroupResult) *bool { return v.SupportAutomaticPlacement }).(pulumi.BoolPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDisk.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDisk.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDisk.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDisk.go index dcbe6e8c..5cfb371b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDisk.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDisk.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about a disk. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. func LookupDisk(ctx *pulumi.Context, args *LookupDiskArgs, opts ...pulumi.InvokeOption) (*LookupDiskResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDiskResult err := ctx.Invoke("azure-native:compute:getDisk", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDisk(ctx *pulumi.Context, args *LookupDiskArgs, opts ...pulumi.Invoke } type LookupDiskArgs struct { - // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskName string `pulumi:"diskName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -32,8 +34,14 @@ type LookupDiskArgs struct { type LookupDiskResult struct { // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. BurstingEnabled *bool `pulumi:"burstingEnabled"` + // Latest time when bursting was last enabled on a disk. + BurstingEnabledTime string `pulumi:"burstingEnabledTime"` + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent *float64 `pulumi:"completionPercent"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataResponse `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode *string `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId *string `pulumi:"diskAccessId"` // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. @@ -72,20 +80,26 @@ type LookupDiskResult struct { Name string `pulumi:"name"` // Policy for accessing the disk via network. NetworkAccessPolicy *string `pulumi:"networkAccessPolicy"` + // Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. + OptimizedForFrequentAttach *bool `pulumi:"optimizedForFrequentAttach"` // The Operating System type. OsType *string `pulumi:"osType"` // Properties of the disk for which update is pending. PropertyUpdatesInProgress PropertyUpdatesInProgressResponse `pulumi:"propertyUpdatesInProgress"` // The disk provisioning state. ProvisioningState string `pulumi:"provisioningState"` + // Policy for controlling export on the disk. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} PurchasePlan *PurchasePlanResponse `pulumi:"purchasePlan"` // Contains the security related information for the resource. SecurityProfile *DiskSecurityProfileResponse `pulumi:"securityProfile"` // Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching them to multiple VMs. ShareInfo []ShareInfoElementResponse `pulumi:"shareInfo"` - // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. + // The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. Sku *DiskSkuResponse `pulumi:"sku"` + // List of supported capabilities for the image from which the OS disk was created. + SupportedCapabilities *SupportedCapabilitiesResponse `pulumi:"supportedCapabilities"` // Indicates the OS on a disk supports hibernation. SupportsHibernation *bool `pulumi:"supportsHibernation"` // Resource tags @@ -116,7 +130,7 @@ func LookupDiskOutput(ctx *pulumi.Context, args LookupDiskOutputArgs, opts ...pu } type LookupDiskOutputArgs struct { - // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the managed disk that is being created. The name can't be changed after the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskName pulumi.StringInput `pulumi:"diskName"` // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` @@ -146,11 +160,26 @@ func (o LookupDiskResultOutput) BurstingEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupDiskResult) *bool { return v.BurstingEnabled }).(pulumi.BoolPtrOutput) } +// Latest time when bursting was last enabled on a disk. +func (o LookupDiskResultOutput) BurstingEnabledTime() pulumi.StringOutput { + return o.ApplyT(func(v LookupDiskResult) string { return v.BurstingEnabledTime }).(pulumi.StringOutput) +} + +// Percentage complete for the background copy when a resource is created via the CopyStart operation. +func (o LookupDiskResultOutput) CompletionPercent() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupDiskResult) *float64 { return v.CompletionPercent }).(pulumi.Float64PtrOutput) +} + // Disk source information. CreationData information cannot be changed after the disk has been created. func (o LookupDiskResultOutput) CreationData() CreationDataResponseOutput { return o.ApplyT(func(v LookupDiskResult) CreationDataResponse { return v.CreationData }).(CreationDataResponseOutput) } +// Additional authentication requirements when exporting or uploading to a disk or snapshot. +func (o LookupDiskResultOutput) DataAccessAuthMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDiskResult) *string { return v.DataAccessAuthMode }).(pulumi.StringPtrOutput) +} + // ARM id of the DiskAccess resource for using private endpoints on disks. func (o LookupDiskResultOutput) DiskAccessId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDiskResult) *string { return v.DiskAccessId }).(pulumi.StringPtrOutput) @@ -246,6 +275,11 @@ func (o LookupDiskResultOutput) NetworkAccessPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDiskResult) *string { return v.NetworkAccessPolicy }).(pulumi.StringPtrOutput) } +// Setting this property to true improves reliability and performance of data disks that are frequently (more than 5 times a day) by detached from one virtual machine and attached to another. This property should not be set for disks that are not detached and attached frequently as it causes the disks to not align with the fault domain of the virtual machine. +func (o LookupDiskResultOutput) OptimizedForFrequentAttach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupDiskResult) *bool { return v.OptimizedForFrequentAttach }).(pulumi.BoolPtrOutput) +} + // The Operating System type. func (o LookupDiskResultOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDiskResult) *string { return v.OsType }).(pulumi.StringPtrOutput) @@ -261,6 +295,11 @@ func (o LookupDiskResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupDiskResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Policy for controlling export on the disk. +func (o LookupDiskResultOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDiskResult) *string { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: WindowsServer} func (o LookupDiskResultOutput) PurchasePlan() PurchasePlanResponsePtrOutput { return o.ApplyT(func(v LookupDiskResult) *PurchasePlanResponse { return v.PurchasePlan }).(PurchasePlanResponsePtrOutput) @@ -276,11 +315,16 @@ func (o LookupDiskResultOutput) ShareInfo() ShareInfoElementResponseArrayOutput return o.ApplyT(func(v LookupDiskResult) []ShareInfoElementResponse { return v.ShareInfo }).(ShareInfoElementResponseArrayOutput) } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. func (o LookupDiskResultOutput) Sku() DiskSkuResponsePtrOutput { return o.ApplyT(func(v LookupDiskResult) *DiskSkuResponse { return v.Sku }).(DiskSkuResponsePtrOutput) } +// List of supported capabilities for the image from which the OS disk was created. +func (o LookupDiskResultOutput) SupportedCapabilities() SupportedCapabilitiesResponsePtrOutput { + return o.ApplyT(func(v LookupDiskResult) *SupportedCapabilitiesResponse { return v.SupportedCapabilities }).(SupportedCapabilitiesResponsePtrOutput) +} + // Indicates the OS on a disk supports hibernation. func (o LookupDiskResultOutput) SupportsHibernation() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupDiskResult) *bool { return v.SupportsHibernation }).(pulumi.BoolPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccess.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccess.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccess.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccess.go index 62053c7b..c07de4e9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccess.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccess.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about a disk access resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. func LookupDiskAccess(ctx *pulumi.Context, args *LookupDiskAccessArgs, opts ...pulumi.InvokeOption) (*LookupDiskAccessResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDiskAccessResult err := ctx.Invoke("azure-native:compute:getDiskAccess", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDiskAccess(ctx *pulumi.Context, args *LookupDiskAccessArgs, opts ...p } type LookupDiskAccessArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName string `pulumi:"diskAccessName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -30,6 +32,8 @@ type LookupDiskAccessArgs struct { // disk access resource. type LookupDiskAccessResult struct { + // The extended location where the disk access will be created. Extended location cannot be changed. + ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` // Resource Id Id string `pulumi:"id"` // Resource location @@ -62,7 +66,7 @@ func LookupDiskAccessOutput(ctx *pulumi.Context, args LookupDiskAccessOutputArgs } type LookupDiskAccessOutputArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName pulumi.StringInput `pulumi:"diskAccessName"` // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` @@ -87,6 +91,11 @@ func (o LookupDiskAccessResultOutput) ToLookupDiskAccessResultOutputWithContext( return o } +// The extended location where the disk access will be created. Extended location cannot be changed. +func (o LookupDiskAccessResultOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v LookupDiskAccessResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +} + // Resource Id func (o LookupDiskAccessResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupDiskAccessResult) string { return v.Id }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccessAPrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccessAPrivateEndpointConnection.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccessAPrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccessAPrivateEndpointConnection.go index 36a9f613..d42bfed9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskAccessAPrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskAccessAPrivateEndpointConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about a private endpoint connection under a disk access resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. func LookupDiskAccessAPrivateEndpointConnection(ctx *pulumi.Context, args *LookupDiskAccessAPrivateEndpointConnectionArgs, opts ...pulumi.InvokeOption) (*LookupDiskAccessAPrivateEndpointConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDiskAccessAPrivateEndpointConnectionResult err := ctx.Invoke("azure-native:compute:getDiskAccessAPrivateEndpointConnection", args, &rv, opts...) if err != nil { @@ -22,9 +24,9 @@ func LookupDiskAccessAPrivateEndpointConnection(ctx *pulumi.Context, args *Looku } type LookupDiskAccessAPrivateEndpointConnectionArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName string `pulumi:"diskAccessName"` - // The name of the private endpoint connection + // The name of the private endpoint connection. PrivateEndpointConnectionName string `pulumi:"privateEndpointConnectionName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -60,9 +62,9 @@ func LookupDiskAccessAPrivateEndpointConnectionOutput(ctx *pulumi.Context, args } type LookupDiskAccessAPrivateEndpointConnectionOutputArgs struct { - // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk access resource that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskAccessName pulumi.StringInput `pulumi:"diskAccessName"` - // The name of the private endpoint connection + // The name of the private endpoint connection. PrivateEndpointConnectionName pulumi.StringInput `pulumi:"privateEndpointConnectionName"` // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskEncryptionSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskEncryptionSet.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskEncryptionSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskEncryptionSet.go index 60e9eae4..6a49f591 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getDiskEncryptionSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getDiskEncryptionSet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about a disk encryption set. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. func LookupDiskEncryptionSet(ctx *pulumi.Context, args *LookupDiskEncryptionSetArgs, opts ...pulumi.InvokeOption) (*LookupDiskEncryptionSetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDiskEncryptionSetResult err := ctx.Invoke("azure-native:compute:getDiskEncryptionSet", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDiskEncryptionSet(ctx *pulumi.Context, args *LookupDiskEncryptionSetA } type LookupDiskEncryptionSetArgs struct { - // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskEncryptionSetName string `pulumi:"diskEncryptionSetName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -32,8 +34,12 @@ type LookupDiskEncryptionSetArgs struct { type LookupDiskEncryptionSetResult struct { // The key vault key which is currently used by this disk encryption set. ActiveKey *KeyForDiskEncryptionSetResponse `pulumi:"activeKey"` + // The error that was encountered during auto-key rotation. If an error is present, then auto-key rotation will not be attempted until the error on this disk encryption set is fixed. + AutoKeyRotationError ApiErrorResponse `pulumi:"autoKeyRotationError"` // The type of key used to encrypt the data of the disk. EncryptionType *string `pulumi:"encryptionType"` + // Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. + FederatedClientId *string `pulumi:"federatedClientId"` // Resource Id Id string `pulumi:"id"` // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. @@ -70,7 +76,7 @@ func LookupDiskEncryptionSetOutput(ctx *pulumi.Context, args LookupDiskEncryptio } type LookupDiskEncryptionSetOutputArgs struct { - // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The maximum name length is 80 characters. + // The name of the disk encryption set that is being created. The name can't be changed after the disk encryption set is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters. DiskEncryptionSetName pulumi.StringInput `pulumi:"diskEncryptionSetName"` // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` @@ -100,11 +106,21 @@ func (o LookupDiskEncryptionSetResultOutput) ActiveKey() KeyForDiskEncryptionSet return o.ApplyT(func(v LookupDiskEncryptionSetResult) *KeyForDiskEncryptionSetResponse { return v.ActiveKey }).(KeyForDiskEncryptionSetResponsePtrOutput) } +// The error that was encountered during auto-key rotation. If an error is present, then auto-key rotation will not be attempted until the error on this disk encryption set is fixed. +func (o LookupDiskEncryptionSetResultOutput) AutoKeyRotationError() ApiErrorResponseOutput { + return o.ApplyT(func(v LookupDiskEncryptionSetResult) ApiErrorResponse { return v.AutoKeyRotationError }).(ApiErrorResponseOutput) +} + // The type of key used to encrypt the data of the disk. func (o LookupDiskEncryptionSetResultOutput) EncryptionType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupDiskEncryptionSetResult) *string { return v.EncryptionType }).(pulumi.StringPtrOutput) } +// Multi-tenant application client id to access key vault in a different tenant. Setting the value to 'None' will clear the property. +func (o LookupDiskEncryptionSetResultOutput) FederatedClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDiskEncryptionSetResult) *string { return v.FederatedClientId }).(pulumi.StringPtrOutput) +} + // Resource Id func (o LookupDiskEncryptionSetResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupDiskEncryptionSetResult) string { return v.Id }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGallery.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGallery.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGallery.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGallery.go index ae1d65cd..4bcc7dcd 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGallery.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGallery.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a Shared Image Gallery. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. func LookupGallery(ctx *pulumi.Context, args *LookupGalleryArgs, opts ...pulumi.InvokeOption) (*LookupGalleryResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupGalleryResult err := ctx.Invoke("azure-native:compute:getGallery", args, &rv, opts...) if err != nil { @@ -22,6 +24,8 @@ func LookupGallery(ctx *pulumi.Context, args *LookupGalleryArgs, opts ...pulumi. } type LookupGalleryArgs struct { + // The expand query option to apply on the operation. + Expand *string `pulumi:"expand"` // The name of the Shared Image Gallery. GalleryName string `pulumi:"galleryName"` // The name of the resource group. @@ -46,6 +50,10 @@ type LookupGalleryResult struct { ProvisioningState string `pulumi:"provisioningState"` // Profile for gallery sharing to subscription or tenant SharingProfile *SharingProfileResponse `pulumi:"sharingProfile"` + // Sharing status of current gallery. + SharingStatus SharingStatusResponse `pulumi:"sharingStatus"` + // Contains information about the soft deletion policy of the gallery. + SoftDeletePolicy *SoftDeletePolicyResponse `pulumi:"softDeletePolicy"` // Resource tags Tags map[string]string `pulumi:"tags"` // Resource type @@ -66,6 +74,8 @@ func LookupGalleryOutput(ctx *pulumi.Context, args LookupGalleryOutputArgs, opts } type LookupGalleryOutputArgs struct { + // The expand query option to apply on the operation. + Expand pulumi.StringPtrInput `pulumi:"expand"` // The name of the Shared Image Gallery. GalleryName pulumi.StringInput `pulumi:"galleryName"` // The name of the resource group. @@ -128,6 +138,16 @@ func (o LookupGalleryResultOutput) SharingProfile() SharingProfileResponsePtrOut return o.ApplyT(func(v LookupGalleryResult) *SharingProfileResponse { return v.SharingProfile }).(SharingProfileResponsePtrOutput) } +// Sharing status of current gallery. +func (o LookupGalleryResultOutput) SharingStatus() SharingStatusResponseOutput { + return o.ApplyT(func(v LookupGalleryResult) SharingStatusResponse { return v.SharingStatus }).(SharingStatusResponseOutput) +} + +// Contains information about the soft deletion policy of the gallery. +func (o LookupGalleryResultOutput) SoftDeletePolicy() SoftDeletePolicyResponsePtrOutput { + return o.ApplyT(func(v LookupGalleryResult) *SoftDeletePolicyResponse { return v.SoftDeletePolicy }).(SoftDeletePolicyResponsePtrOutput) +} + // Resource tags func (o LookupGalleryResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupGalleryResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplication.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplication.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplication.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplication.go index 88d7fb4e..b50c7b12 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplication.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplication.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a gallery Application Definition. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. func LookupGalleryApplication(ctx *pulumi.Context, args *LookupGalleryApplicationArgs, opts ...pulumi.InvokeOption) (*LookupGalleryApplicationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupGalleryApplicationResult err := ctx.Invoke("azure-native:compute:getGalleryApplication", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type LookupGalleryApplicationArgs struct { // Specifies information about the gallery Application Definition that you want to create or update. type LookupGalleryApplicationResult struct { + // A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. + CustomActions []GalleryApplicationCustomActionResponse `pulumi:"customActions"` // The description of this gallery Application Definition resource. This property is updatable. Description *string `pulumi:"description"` // The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable. @@ -97,6 +101,13 @@ func (o LookupGalleryApplicationResultOutput) ToLookupGalleryApplicationResultOu return o } +// A list of custom actions that can be performed with all of the Gallery Application Versions within this Gallery Application. +func (o LookupGalleryApplicationResultOutput) CustomActions() GalleryApplicationCustomActionResponseArrayOutput { + return o.ApplyT(func(v LookupGalleryApplicationResult) []GalleryApplicationCustomActionResponse { + return v.CustomActions + }).(GalleryApplicationCustomActionResponseArrayOutput) +} + // The description of this gallery Application Definition resource. This property is updatable. func (o LookupGalleryApplicationResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupGalleryApplicationResult) *string { return v.Description }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplicationVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplicationVersion.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplicationVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplicationVersion.go index d706eebc..fe145773 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryApplicationVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryApplicationVersion.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a gallery Application Version. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. func LookupGalleryApplicationVersion(ctx *pulumi.Context, args *LookupGalleryApplicationVersionArgs, opts ...pulumi.InvokeOption) (*LookupGalleryApplicationVersionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupGalleryApplicationVersionResult err := ctx.Invoke("azure-native:compute:getGalleryApplicationVersion", args, &rv, opts...) if err != nil { @@ -48,6 +50,8 @@ type LookupGalleryApplicationVersionResult struct { PublishingProfile GalleryApplicationVersionPublishingProfileResponse `pulumi:"publishingProfile"` // This is the replication status of the gallery image version. ReplicationStatus ReplicationStatusResponse `pulumi:"replicationStatus"` + // The safety profile of the Gallery Application Version. + SafetyProfile *GalleryApplicationVersionSafetyProfileResponse `pulumi:"safetyProfile"` // Resource tags Tags map[string]string `pulumi:"tags"` // Resource type @@ -131,6 +135,13 @@ func (o LookupGalleryApplicationVersionResultOutput) ReplicationStatus() Replica return o.ApplyT(func(v LookupGalleryApplicationVersionResult) ReplicationStatusResponse { return v.ReplicationStatus }).(ReplicationStatusResponseOutput) } +// The safety profile of the Gallery Application Version. +func (o LookupGalleryApplicationVersionResultOutput) SafetyProfile() GalleryApplicationVersionSafetyProfileResponsePtrOutput { + return o.ApplyT(func(v LookupGalleryApplicationVersionResult) *GalleryApplicationVersionSafetyProfileResponse { + return v.SafetyProfile + }).(GalleryApplicationVersionSafetyProfileResponsePtrOutput) +} + // Resource tags func (o LookupGalleryApplicationVersionResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupGalleryApplicationVersionResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImage.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImage.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImage.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImage.go index 8ad49cb1..7ead8774 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImage.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImage.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a gallery image definition. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. func LookupGalleryImage(ctx *pulumi.Context, args *LookupGalleryImageArgs, opts ...pulumi.InvokeOption) (*LookupGalleryImageResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupGalleryImageResult err := ctx.Invoke("azure-native:compute:getGalleryImage", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type LookupGalleryImageArgs struct { // Specifies information about the gallery image definition that you want to create or update. type LookupGalleryImageResult struct { + // The architecture of the image. Applicable to OS disks only. + Architecture *string `pulumi:"architecture"` // The description of this gallery image definition resource. This property is updatable. Description *string `pulumi:"description"` // Describes the disallowed disk types. @@ -113,6 +117,11 @@ func (o LookupGalleryImageResultOutput) ToLookupGalleryImageResultOutputWithCont return o } +// The architecture of the image. Applicable to OS disks only. +func (o LookupGalleryImageResultOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupGalleryImageResult) *string { return v.Architecture }).(pulumi.StringPtrOutput) +} + // The description of this gallery image definition resource. This property is updatable. func (o LookupGalleryImageResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupGalleryImageResult) *string { return v.Description }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImageVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImageVersion.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImageVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImageVersion.go index a2d5077b..91569924 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getGalleryImageVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getGalleryImageVersion.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a gallery image version. -// API Version: 2020-09-30. +// Azure REST API version: 2022-03-03. func LookupGalleryImageVersion(ctx *pulumi.Context, args *LookupGalleryImageVersionArgs, opts ...pulumi.InvokeOption) (*LookupGalleryImageVersionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupGalleryImageVersionResult err := ctx.Invoke("azure-native:compute:getGalleryImageVersion", args, &rv, opts...) if err != nil { @@ -48,6 +50,8 @@ type LookupGalleryImageVersionResult struct { PublishingProfile *GalleryImageVersionPublishingProfileResponse `pulumi:"publishingProfile"` // This is the replication status of the gallery image version. ReplicationStatus ReplicationStatusResponse `pulumi:"replicationStatus"` + // This is the safety profile of the Gallery Image Version. + SafetyProfile *GalleryImageVersionSafetyProfileResponse `pulumi:"safetyProfile"` // This is the storage profile of a Gallery Image Version. StorageProfile GalleryImageVersionStorageProfileResponse `pulumi:"storageProfile"` // Resource tags @@ -133,6 +137,13 @@ func (o LookupGalleryImageVersionResultOutput) ReplicationStatus() ReplicationSt return o.ApplyT(func(v LookupGalleryImageVersionResult) ReplicationStatusResponse { return v.ReplicationStatus }).(ReplicationStatusResponseOutput) } +// This is the safety profile of the Gallery Image Version. +func (o LookupGalleryImageVersionResultOutput) SafetyProfile() GalleryImageVersionSafetyProfileResponsePtrOutput { + return o.ApplyT(func(v LookupGalleryImageVersionResult) *GalleryImageVersionSafetyProfileResponse { + return v.SafetyProfile + }).(GalleryImageVersionSafetyProfileResponsePtrOutput) +} + // This is the storage profile of a Gallery Image Version. func (o LookupGalleryImageVersionResultOutput) StorageProfile() GalleryImageVersionStorageProfileResponseOutput { return o.ApplyT(func(v LookupGalleryImageVersionResult) GalleryImageVersionStorageProfileResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getImage.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getImage.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getImage.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getImage.go index a747bacb..82dbe09d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getImage.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getImage.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets an image. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupImage(ctx *pulumi.Context, args *LookupImageArgs, opts ...pulumi.InvokeOption) (*LookupImageResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupImageResult err := ctx.Invoke("azure-native:compute:getImage", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportRequestRateByInterval.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportRequestRateByInterval.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportRequestRateByInterval.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportRequestRateByInterval.go index 5a826534..40f62834 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportRequestRateByInterval.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportRequestRateByInterval.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Export logs that show Api requests made by this subscription in the given time window to show throttling activities. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func GetLogAnalyticExportRequestRateByInterval(ctx *pulumi.Context, args *GetLogAnalyticExportRequestRateByIntervalArgs, opts ...pulumi.InvokeOption) (*GetLogAnalyticExportRequestRateByIntervalResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetLogAnalyticExportRequestRateByIntervalResult err := ctx.Invoke("azure-native:compute:getLogAnalyticExportRequestRateByInterval", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportThrottledRequests.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportThrottledRequests.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportThrottledRequests.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportThrottledRequests.go index f9e2d79a..df90f4d2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getLogAnalyticExportThrottledRequests.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getLogAnalyticExportThrottledRequests.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Export logs that show total throttled Api requests for this subscription in the given time window. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func GetLogAnalyticExportThrottledRequests(ctx *pulumi.Context, args *GetLogAnalyticExportThrottledRequestsArgs, opts ...pulumi.InvokeOption) (*GetLogAnalyticExportThrottledRequestsResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetLogAnalyticExportThrottledRequestsResult err := ctx.Invoke("azure-native:compute:getLogAnalyticExportThrottledRequests", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getProximityPlacementGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getProximityPlacementGroup.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getProximityPlacementGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getProximityPlacementGroup.go index 31fad9d0..fc6e01c9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getProximityPlacementGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getProximityPlacementGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about a proximity placement group . -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupProximityPlacementGroup(ctx *pulumi.Context, args *LookupProximityPlacementGroupArgs, opts ...pulumi.InvokeOption) (*LookupProximityPlacementGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupProximityPlacementGroupResult err := ctx.Invoke("azure-native:compute:getProximityPlacementGroup", args, &rv, opts...) if err != nil { @@ -38,11 +40,13 @@ type LookupProximityPlacementGroupResult struct { ColocationStatus *InstanceViewStatusResponse `pulumi:"colocationStatus"` // Resource Id Id string `pulumi:"id"` + // Specifies the user intent of the proximity placement group. + Intent *ProximityPlacementGroupPropertiesResponseIntent `pulumi:"intent"` // Resource location Location string `pulumi:"location"` // Resource name Name string `pulumi:"name"` - // Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. + // Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. ProximityPlacementGroupType *string `pulumi:"proximityPlacementGroupType"` // Resource tags Tags map[string]string `pulumi:"tags"` @@ -52,6 +56,8 @@ type LookupProximityPlacementGroupResult struct { VirtualMachineScaleSets []SubResourceWithColocationStatusResponse `pulumi:"virtualMachineScaleSets"` // A list of references to all virtual machines in the proximity placement group. VirtualMachines []SubResourceWithColocationStatusResponse `pulumi:"virtualMachines"` + // Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. + Zones []string `pulumi:"zones"` } func LookupProximityPlacementGroupOutput(ctx *pulumi.Context, args LookupProximityPlacementGroupOutputArgs, opts ...pulumi.InvokeOption) LookupProximityPlacementGroupResultOutput { @@ -112,6 +118,13 @@ func (o LookupProximityPlacementGroupResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupProximityPlacementGroupResult) string { return v.Id }).(pulumi.StringOutput) } +// Specifies the user intent of the proximity placement group. +func (o LookupProximityPlacementGroupResultOutput) Intent() ProximityPlacementGroupPropertiesResponseIntentPtrOutput { + return o.ApplyT(func(v LookupProximityPlacementGroupResult) *ProximityPlacementGroupPropertiesResponseIntent { + return v.Intent + }).(ProximityPlacementGroupPropertiesResponseIntentPtrOutput) +} + // Resource location func (o LookupProximityPlacementGroupResultOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v LookupProximityPlacementGroupResult) string { return v.Location }).(pulumi.StringOutput) @@ -122,7 +135,7 @@ func (o LookupProximityPlacementGroupResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupProximityPlacementGroupResult) string { return v.Name }).(pulumi.StringOutput) } -// Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. +// Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. func (o LookupProximityPlacementGroupResultOutput) ProximityPlacementGroupType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupProximityPlacementGroupResult) *string { return v.ProximityPlacementGroupType }).(pulumi.StringPtrOutput) } @@ -151,6 +164,11 @@ func (o LookupProximityPlacementGroupResultOutput) VirtualMachines() SubResource }).(SubResourceWithColocationStatusResponseArrayOutput) } +// Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. +func (o LookupProximityPlacementGroupResultOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupProximityPlacementGroupResult) []string { return v.Zones }).(pulumi.StringArrayOutput) +} + func init() { pulumi.RegisterOutputType(LookupProximityPlacementGroupResultOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePoint.go similarity index 67% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePoint.go index 2d02ace0..fb905317 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePoint.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the restore point. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupRestorePoint(ctx *pulumi.Context, args *LookupRestorePointArgs, opts ...pulumi.InvokeOption) (*LookupRestorePointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRestorePointResult err := ctx.Invoke("azure-native:compute:getRestorePoint", args, &rv, opts...) if err != nil { @@ -22,6 +24,8 @@ func LookupRestorePoint(ctx *pulumi.Context, args *LookupRestorePointArgs, opts } type LookupRestorePointArgs struct { + // The expand expression to apply on the operation. 'InstanceView' retrieves information about the run-time state of a restore point. + Expand *string `pulumi:"expand"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // The name of the restore point collection. @@ -32,18 +36,22 @@ type LookupRestorePointArgs struct { // Restore Point details. type LookupRestorePointResult struct { - // Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. - ConsistencyMode string `pulumi:"consistencyMode"` + // ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. + ConsistencyMode *string `pulumi:"consistencyMode"` // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. ExcludeDisks []ApiEntityReferenceResponse `pulumi:"excludeDisks"` // Resource Id Id string `pulumi:"id"` + // The restore point instance view. + InstanceView RestorePointInstanceViewResponse `pulumi:"instanceView"` // Resource name Name string `pulumi:"name"` // Gets the provisioning state of the restore point. ProvisioningState string `pulumi:"provisioningState"` // Gets the details of the VM captured at the time of the restore point creation. - SourceMetadata RestorePointSourceMetadataResponse `pulumi:"sourceMetadata"` + SourceMetadata *RestorePointSourceMetadataResponse `pulumi:"sourceMetadata"` + // Resource Id of the source restore point from which a copy needs to be created. + SourceRestorePoint *ApiEntityReferenceResponse `pulumi:"sourceRestorePoint"` // Gets the creation time of the restore point. TimeCreated *string `pulumi:"timeCreated"` // Resource type @@ -64,6 +72,8 @@ func LookupRestorePointOutput(ctx *pulumi.Context, args LookupRestorePointOutput } type LookupRestorePointOutputArgs struct { + // The expand expression to apply on the operation. 'InstanceView' retrieves information about the run-time state of a restore point. + Expand pulumi.StringPtrInput `pulumi:"expand"` // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` // The name of the restore point collection. @@ -91,9 +101,9 @@ func (o LookupRestorePointResultOutput) ToLookupRestorePointResultOutputWithCont return o } -// Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. -func (o LookupRestorePointResultOutput) ConsistencyMode() pulumi.StringOutput { - return o.ApplyT(func(v LookupRestorePointResult) string { return v.ConsistencyMode }).(pulumi.StringOutput) +// ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. +func (o LookupRestorePointResultOutput) ConsistencyMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupRestorePointResult) *string { return v.ConsistencyMode }).(pulumi.StringPtrOutput) } // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. @@ -106,6 +116,11 @@ func (o LookupRestorePointResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupRestorePointResult) string { return v.Id }).(pulumi.StringOutput) } +// The restore point instance view. +func (o LookupRestorePointResultOutput) InstanceView() RestorePointInstanceViewResponseOutput { + return o.ApplyT(func(v LookupRestorePointResult) RestorePointInstanceViewResponse { return v.InstanceView }).(RestorePointInstanceViewResponseOutput) +} + // Resource name func (o LookupRestorePointResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupRestorePointResult) string { return v.Name }).(pulumi.StringOutput) @@ -117,8 +132,13 @@ func (o LookupRestorePointResultOutput) ProvisioningState() pulumi.StringOutput } // Gets the details of the VM captured at the time of the restore point creation. -func (o LookupRestorePointResultOutput) SourceMetadata() RestorePointSourceMetadataResponseOutput { - return o.ApplyT(func(v LookupRestorePointResult) RestorePointSourceMetadataResponse { return v.SourceMetadata }).(RestorePointSourceMetadataResponseOutput) +func (o LookupRestorePointResultOutput) SourceMetadata() RestorePointSourceMetadataResponsePtrOutput { + return o.ApplyT(func(v LookupRestorePointResult) *RestorePointSourceMetadataResponse { return v.SourceMetadata }).(RestorePointSourceMetadataResponsePtrOutput) +} + +// Resource Id of the source restore point from which a copy needs to be created. +func (o LookupRestorePointResultOutput) SourceRestorePoint() ApiEntityReferenceResponsePtrOutput { + return o.ApplyT(func(v LookupRestorePointResult) *ApiEntityReferenceResponse { return v.SourceRestorePoint }).(ApiEntityReferenceResponsePtrOutput) } // Gets the creation time of the restore point. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePointCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePointCollection.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePointCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePointCollection.go index 56a34904..ca77c70c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getRestorePointCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getRestorePointCollection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the restore point collection. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupRestorePointCollection(ctx *pulumi.Context, args *LookupRestorePointCollectionArgs, opts ...pulumi.InvokeOption) (*LookupRestorePointCollectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRestorePointCollectionResult err := ctx.Invoke("azure-native:compute:getRestorePointCollection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSnapshot.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSnapshot.go similarity index 75% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSnapshot.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSnapshot.go index 572b38b4..ec6c39de 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSnapshot.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSnapshot.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about a snapshot. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. func LookupSnapshot(ctx *pulumi.Context, args *LookupSnapshotArgs, opts ...pulumi.InvokeOption) (*LookupSnapshotResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSnapshotResult err := ctx.Invoke("azure-native:compute:getSnapshot", args, &rv, opts...) if err != nil { @@ -24,14 +26,20 @@ func LookupSnapshot(ctx *pulumi.Context, args *LookupSnapshotArgs, opts ...pulum type LookupSnapshotArgs struct { // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` - // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The max name length is 80 characters. + // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The max name length is 80 characters. SnapshotName string `pulumi:"snapshotName"` } // Snapshot resource. type LookupSnapshotResult struct { + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent *float64 `pulumi:"completionPercent"` + // Indicates the error details if the background copy of a resource created via the CopyStart operation fails. + CopyCompletionError *CopyCompletionErrorResponse `pulumi:"copyCompletionError"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataResponse `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode *string `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId *string `pulumi:"diskAccessId"` // The size of the disk in bytes. This field is read only. @@ -52,6 +60,8 @@ type LookupSnapshotResult struct { Id string `pulumi:"id"` // Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed. Incremental *bool `pulumi:"incremental"` + // Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id. + IncrementalSnapshotFamilyId string `pulumi:"incrementalSnapshotFamilyId"` // Resource location Location string `pulumi:"location"` // Unused. Always Null. @@ -64,10 +74,16 @@ type LookupSnapshotResult struct { OsType *string `pulumi:"osType"` // The disk provisioning state. ProvisioningState string `pulumi:"provisioningState"` + // Policy for controlling export on the disk. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // Purchase plan information for the image from which the source disk for the snapshot was originally created. PurchasePlan *PurchasePlanResponse `pulumi:"purchasePlan"` + // Contains the security related information for the resource. + SecurityProfile *DiskSecurityProfileResponse `pulumi:"securityProfile"` // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot Sku *SnapshotSkuResponse `pulumi:"sku"` + // List of supported capabilities for the image from which the source disk from the snapshot was originally created. + SupportedCapabilities *SupportedCapabilitiesResponse `pulumi:"supportedCapabilities"` // Indicates the OS on a snapshot supports hibernation. SupportsHibernation *bool `pulumi:"supportsHibernation"` // Resource tags @@ -96,7 +112,7 @@ func LookupSnapshotOutput(ctx *pulumi.Context, args LookupSnapshotOutputArgs, op type LookupSnapshotOutputArgs struct { // The name of the resource group. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` - // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The max name length is 80 characters. + // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The max name length is 80 characters. SnapshotName pulumi.StringInput `pulumi:"snapshotName"` } @@ -119,11 +135,26 @@ func (o LookupSnapshotResultOutput) ToLookupSnapshotResultOutputWithContext(ctx return o } +// Percentage complete for the background copy when a resource is created via the CopyStart operation. +func (o LookupSnapshotResultOutput) CompletionPercent() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *float64 { return v.CompletionPercent }).(pulumi.Float64PtrOutput) +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +func (o LookupSnapshotResultOutput) CopyCompletionError() CopyCompletionErrorResponsePtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *CopyCompletionErrorResponse { return v.CopyCompletionError }).(CopyCompletionErrorResponsePtrOutput) +} + // Disk source information. CreationData information cannot be changed after the disk has been created. func (o LookupSnapshotResultOutput) CreationData() CreationDataResponseOutput { return o.ApplyT(func(v LookupSnapshotResult) CreationDataResponse { return v.CreationData }).(CreationDataResponseOutput) } +// Additional authentication requirements when exporting or uploading to a disk or snapshot. +func (o LookupSnapshotResultOutput) DataAccessAuthMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *string { return v.DataAccessAuthMode }).(pulumi.StringPtrOutput) +} + // ARM id of the DiskAccess resource for using private endpoints on disks. func (o LookupSnapshotResultOutput) DiskAccessId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSnapshotResult) *string { return v.DiskAccessId }).(pulumi.StringPtrOutput) @@ -176,6 +207,11 @@ func (o LookupSnapshotResultOutput) Incremental() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupSnapshotResult) *bool { return v.Incremental }).(pulumi.BoolPtrOutput) } +// Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id. +func (o LookupSnapshotResultOutput) IncrementalSnapshotFamilyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupSnapshotResult) string { return v.IncrementalSnapshotFamilyId }).(pulumi.StringOutput) +} + // Resource location func (o LookupSnapshotResultOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v LookupSnapshotResult) string { return v.Location }).(pulumi.StringOutput) @@ -206,16 +242,31 @@ func (o LookupSnapshotResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupSnapshotResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Policy for controlling export on the disk. +func (o LookupSnapshotResultOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *string { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Purchase plan information for the image from which the source disk for the snapshot was originally created. func (o LookupSnapshotResultOutput) PurchasePlan() PurchasePlanResponsePtrOutput { return o.ApplyT(func(v LookupSnapshotResult) *PurchasePlanResponse { return v.PurchasePlan }).(PurchasePlanResponsePtrOutput) } +// Contains the security related information for the resource. +func (o LookupSnapshotResultOutput) SecurityProfile() DiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *DiskSecurityProfileResponse { return v.SecurityProfile }).(DiskSecurityProfileResponsePtrOutput) +} + // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot func (o LookupSnapshotResultOutput) Sku() SnapshotSkuResponsePtrOutput { return o.ApplyT(func(v LookupSnapshotResult) *SnapshotSkuResponse { return v.Sku }).(SnapshotSkuResponsePtrOutput) } +// List of supported capabilities for the image from which the source disk from the snapshot was originally created. +func (o LookupSnapshotResultOutput) SupportedCapabilities() SupportedCapabilitiesResponsePtrOutput { + return o.ApplyT(func(v LookupSnapshotResult) *SupportedCapabilitiesResponse { return v.SupportedCapabilities }).(SupportedCapabilitiesResponsePtrOutput) +} + // Indicates the OS on a snapshot supports hibernation. func (o LookupSnapshotResultOutput) SupportsHibernation() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupSnapshotResult) *bool { return v.SupportsHibernation }).(pulumi.BoolPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSshPublicKey.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSshPublicKey.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSshPublicKey.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSshPublicKey.go index 5c40eee6..94763e3e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getSshPublicKey.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getSshPublicKey.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about an SSH public key. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. func LookupSshPublicKey(ctx *pulumi.Context, args *LookupSshPublicKeyArgs, opts ...pulumi.InvokeOption) (*LookupSshPublicKeyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSshPublicKeyResult err := ctx.Invoke("azure-native:compute:getSshPublicKey", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachine.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachine.go index fb293f67..3798e305 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachine.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves information about the model view or the instance view of a virtual machine. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachine(ctx *pulumi.Context, args *LookupVirtualMachineArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineResult err := ctx.Invoke("azure-native:compute:getVirtualMachine", args, &rv, opts...) if err != nil { @@ -34,23 +36,27 @@ type LookupVirtualMachineArgs struct { type LookupVirtualMachineResult struct { // Specifies additional capabilities enabled or disabled on the virtual machine. AdditionalCapabilities *AdditionalCapabilitiesResponse `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. + // Specifies the gallery applications that should be made available to the VM/VMSS. + ApplicationProfile *ApplicationProfileResponse `pulumi:"applicationProfile"` + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. AvailabilitySet *SubResourceResponse `pulumi:"availabilitySet"` - // Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. + // Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. BillingProfile *BillingProfileResponse `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. + CapacityReservation *CapacityReservationProfileResponse `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfileResponse `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy *string `pulumi:"evictionPolicy"` // The extended location of the Virtual Machine. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget *string `pulumi:"extensionsTimeBudget"` // Specifies the hardware settings for the virtual machine. HardwareProfile *HardwareProfileResponse `pulumi:"hardwareProfile"` - // Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. + // Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. Host *SubResourceResponse `pulumi:"host"` - // Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. + // Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. HostGroup *SubResourceResponse `pulumi:"hostGroup"` // Resource Id Id string `pulumi:"id"` @@ -70,13 +76,13 @@ type LookupVirtualMachineResult struct { OsProfile *OSProfileResponse `pulumi:"osProfile"` // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. Plan *PlanResponse `pulumi:"plan"` - // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 + // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. PlatformFaultDomain *int `pulumi:"platformFaultDomain"` - // Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 + // Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 Priority *string `pulumi:"priority"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` - // Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResourceResponse `pulumi:"proximityPlacementGroup"` // The virtual machine child extension resources. Resources []VirtualMachineExtensionResponse `pulumi:"resources"` @@ -88,11 +94,13 @@ type LookupVirtualMachineResult struct { StorageProfile *StorageProfileResponse `pulumi:"storageProfile"` // Resource tags Tags map[string]string `pulumi:"tags"` + // Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01. + TimeCreated string `pulumi:"timeCreated"` // Resource type Type string `pulumi:"type"` - // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData *string `pulumi:"userData"` - // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 + // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. VirtualMachineScaleSet *SubResourceResponse `pulumi:"virtualMachineScaleSet"` // Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. VmId string `pulumi:"vmId"` @@ -146,22 +154,32 @@ func (o LookupVirtualMachineResultOutput) AdditionalCapabilities() AdditionalCap return o.ApplyT(func(v LookupVirtualMachineResult) *AdditionalCapabilitiesResponse { return v.AdditionalCapabilities }).(AdditionalCapabilitiesResponsePtrOutput) } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. +// Specifies the gallery applications that should be made available to the VM/VMSS. +func (o LookupVirtualMachineResultOutput) ApplicationProfile() ApplicationProfileResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineResult) *ApplicationProfileResponse { return v.ApplicationProfile }).(ApplicationProfileResponsePtrOutput) +} + +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. func (o LookupVirtualMachineResultOutput) AvailabilitySet() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *SubResourceResponse { return v.AvailabilitySet }).(SubResourceResponsePtrOutput) } -// Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. func (o LookupVirtualMachineResultOutput) BillingProfile() BillingProfileResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *BillingProfileResponse { return v.BillingProfile }).(BillingProfileResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. +func (o LookupVirtualMachineResultOutput) CapacityReservation() CapacityReservationProfileResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineResult) *CapacityReservationProfileResponse { return v.CapacityReservation }).(CapacityReservationProfileResponsePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o LookupVirtualMachineResultOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *DiagnosticsProfileResponse { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o LookupVirtualMachineResultOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *string { return v.EvictionPolicy }).(pulumi.StringPtrOutput) } @@ -171,7 +189,7 @@ func (o LookupVirtualMachineResultOutput) ExtendedLocation() ExtendedLocationRes return o.ApplyT(func(v LookupVirtualMachineResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o LookupVirtualMachineResultOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *string { return v.ExtensionsTimeBudget }).(pulumi.StringPtrOutput) } @@ -181,12 +199,12 @@ func (o LookupVirtualMachineResultOutput) HardwareProfile() HardwareProfileRespo return o.ApplyT(func(v LookupVirtualMachineResult) *HardwareProfileResponse { return v.HardwareProfile }).(HardwareProfileResponsePtrOutput) } -// Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. +// Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. func (o LookupVirtualMachineResultOutput) Host() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *SubResourceResponse { return v.Host }).(SubResourceResponsePtrOutput) } -// Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. +// Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. func (o LookupVirtualMachineResultOutput) HostGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *SubResourceResponse { return v.HostGroup }).(SubResourceResponsePtrOutput) } @@ -236,12 +254,12 @@ func (o LookupVirtualMachineResultOutput) Plan() PlanResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *PlanResponse { return v.Plan }).(PlanResponsePtrOutput) } -// Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 +// Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. func (o LookupVirtualMachineResultOutput) PlatformFaultDomain() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *int { return v.PlatformFaultDomain }).(pulumi.IntPtrOutput) } -// Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 +// Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 func (o LookupVirtualMachineResultOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *string { return v.Priority }).(pulumi.StringPtrOutput) } @@ -251,7 +269,7 @@ func (o LookupVirtualMachineResultOutput) ProvisioningState() pulumi.StringOutpu return o.ApplyT(func(v LookupVirtualMachineResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. func (o LookupVirtualMachineResultOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *SubResourceResponse { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } @@ -281,17 +299,22 @@ func (o LookupVirtualMachineResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupVirtualMachineResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01. +func (o LookupVirtualMachineResultOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v LookupVirtualMachineResult) string { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o LookupVirtualMachineResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineResult) string { return v.Type }).(pulumi.StringOutput) } -// UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o LookupVirtualMachineResultOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *string { return v.UserData }).(pulumi.StringPtrOutput) } -// Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 +// Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. func (o LookupVirtualMachineResultOutput) VirtualMachineScaleSet() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineResult) *SubResourceResponse { return v.VirtualMachineScaleSet }).(SubResourceResponsePtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineExtension.go similarity index 80% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineExtension.go index 4d96b82d..206398e6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineExtension.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineExtension(ctx *pulumi.Context, args *LookupVirtualMachineExtensionArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineExtensionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineExtensionResult err := ctx.Invoke("azure-native:compute:getVirtualMachineExtension", args, &rv, opts...) if err != nil { @@ -45,17 +47,23 @@ type LookupVirtualMachineExtensionResult struct { // The virtual machine extension instance view. InstanceView *VirtualMachineExtensionInstanceViewResponse `pulumi:"instanceView"` // Resource location - Location string `pulumi:"location"` + Location *string `pulumi:"location"` // Resource name Name string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource tags Tags map[string]string `pulumi:"tags"` // Resource type @@ -135,8 +143,8 @@ func (o LookupVirtualMachineExtensionResultOutput) InstanceView() VirtualMachine } // Resource location -func (o LookupVirtualMachineExtensionResultOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v LookupVirtualMachineExtensionResult) string { return v.Location }).(pulumi.StringOutput) +func (o LookupVirtualMachineExtensionResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineExtensionResult) *string { return v.Location }).(pulumi.StringPtrOutput) } // Resource name @@ -149,6 +157,18 @@ func (o LookupVirtualMachineExtensionResultOutput) ProtectedSettings() pulumi.An return o.ApplyT(func(v LookupVirtualMachineExtensionResult) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o LookupVirtualMachineExtensionResultOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineExtensionResult) *KeyVaultSecretReferenceResponse { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o LookupVirtualMachineExtensionResultOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupVirtualMachineExtensionResult) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + // The provisioning state, which only appears in the response. func (o LookupVirtualMachineExtensionResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineExtensionResult) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -164,6 +184,11 @@ func (o LookupVirtualMachineExtensionResultOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v LookupVirtualMachineExtensionResult) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o LookupVirtualMachineExtensionResultOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineExtensionResult) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource tags func (o LookupVirtualMachineExtensionResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupVirtualMachineExtensionResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineRunCommandByVirtualMachine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineRunCommandByVirtualMachine.go similarity index 62% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineRunCommandByVirtualMachine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineRunCommandByVirtualMachine.go index 0b14b7cf..850e0f6e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineRunCommandByVirtualMachine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineRunCommandByVirtualMachine.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the run command. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineRunCommandByVirtualMachine(ctx *pulumi.Context, args *LookupVirtualMachineRunCommandByVirtualMachineArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineRunCommandByVirtualMachineResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineRunCommandByVirtualMachineResult err := ctx.Invoke("azure-native:compute:getVirtualMachineRunCommandByVirtualMachine", args, &rv, opts...) if err != nil { @@ -36,7 +38,9 @@ type LookupVirtualMachineRunCommandByVirtualMachineArgs struct { type LookupVirtualMachineRunCommandByVirtualMachineResult struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution *bool `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity *RunCommandManagedIdentityResponse `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri *string `pulumi:"errorBlobUri"` // Resource Id Id string `pulumi:"id"` @@ -46,13 +50,15 @@ type LookupVirtualMachineRunCommandByVirtualMachineResult struct { Location string `pulumi:"location"` // Resource name Name string `pulumi:"name"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity *RunCommandManagedIdentityResponse `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri *string `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters []RunCommandInputParameterResponse `pulumi:"parameters"` // The parameters used by the script. ProtectedParameters []RunCommandInputParameterResponse `pulumi:"protectedParameters"` - // The provisioning state, which only appears in the response. + // The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results ProvisioningState string `pulumi:"provisioningState"` // Specifies the user account password on the VM when executing the run command. RunAsPassword *string `pulumi:"runAsPassword"` @@ -64,6 +70,8 @@ type LookupVirtualMachineRunCommandByVirtualMachineResult struct { Tags map[string]string `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds *int `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` // Resource type Type string `pulumi:"type"` } @@ -74,10 +82,14 @@ func (val *LookupVirtualMachineRunCommandByVirtualMachineResult) Defaults() *Loo return nil } tmp := *val - if isZero(tmp.AsyncExecution) { + if tmp.AsyncExecution == nil { asyncExecution_ := false tmp.AsyncExecution = &asyncExecution_ } + if tmp.TreatFailureAsDeploymentFailure == nil { + treatFailureAsDeploymentFailure_ := false + tmp.TreatFailureAsDeploymentFailure = &treatFailureAsDeploymentFailure_ + } return &tmp } @@ -129,7 +141,14 @@ func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) AsyncExecuti return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *bool { return v.AsyncExecution }).(pulumi.BoolPtrOutput) } -// Specifies the Azure storage blob where script error stream will be uploaded. +// User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) ErrorBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *RunCommandManagedIdentityResponse { + return v.ErrorBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) ErrorBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *string { return v.ErrorBlobUri }).(pulumi.StringPtrOutput) } @@ -156,7 +175,14 @@ func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) Name() pulum return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) string { return v.Name }).(pulumi.StringOutput) } -// Specifies the Azure storage blob where script output stream will be uploaded. +// User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) OutputBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *RunCommandManagedIdentityResponse { + return v.OutputBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) OutputBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *string { return v.OutputBlobUri }).(pulumi.StringPtrOutput) } @@ -175,7 +201,7 @@ func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) ProtectedPar }).(RunCommandInputParameterResponseArrayOutput) } -// The provisioning state, which only appears in the response. +// The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } @@ -207,6 +233,13 @@ func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) TimeoutInSec return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *int { return v.TimeoutInSeconds }).(pulumi.IntPtrOutput) } +// Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results +func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) *bool { + return v.TreatFailureAsDeploymentFailure + }).(pulumi.BoolPtrOutput) +} + // Resource type func (o LookupVirtualMachineRunCommandByVirtualMachineResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineRunCommandByVirtualMachineResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSet.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSet.go index 8d2cbd22..7e820e51 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Display information about a virtual machine scale set. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineScaleSet(ctx *pulumi.Context, args *LookupVirtualMachineScaleSetArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineScaleSetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineScaleSetResult err := ctx.Invoke("azure-native:compute:getVirtualMachineScaleSet", args, &rv, opts...) if err != nil { @@ -36,11 +38,13 @@ type LookupVirtualMachineScaleSetResult struct { AdditionalCapabilities *AdditionalCapabilitiesResponse `pulumi:"additionalCapabilities"` // Policy for automatic repairs. AutomaticRepairsPolicy *AutomaticRepairsPolicyResponse `pulumi:"automaticRepairsPolicy"` + // Optional property which must either be set to True or omitted. + ConstrainedMaximumCapacity *bool `pulumi:"constrainedMaximumCapacity"` // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. DoNotRunExtensionsOnOverprovisionedVMs *bool `pulumi:"doNotRunExtensionsOnOverprovisionedVMs"` // The extended location of the Virtual Machine Scale Set. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` - // Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. + // Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. HostGroup *SubResourceResponse `pulumi:"hostGroup"` // Resource Id Id string `pulumi:"id"` @@ -58,18 +62,24 @@ type LookupVirtualMachineScaleSetResult struct { Plan *PlanResponse `pulumi:"plan"` // Fault Domain count for each placement group. PlatformFaultDomainCount *int `pulumi:"platformFaultDomainCount"` + // Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. + PriorityMixPolicy *PriorityMixPolicyResponse `pulumi:"priorityMixPolicy"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` - // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResourceResponse `pulumi:"proximityPlacementGroup"` - // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. + // Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. ScaleInPolicy *ScaleInPolicyResponse `pulumi:"scaleInPolicy"` // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. SinglePlacementGroup *bool `pulumi:"singlePlacementGroup"` // The virtual machine scale set sku. Sku *SkuResponse `pulumi:"sku"` + // Specifies the Spot Restore properties for the virtual machine scale set. + SpotRestorePolicy *SpotRestorePolicyResponse `pulumi:"spotRestorePolicy"` // Resource tags Tags map[string]string `pulumi:"tags"` + // Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01. + TimeCreated string `pulumi:"timeCreated"` // Resource type Type string `pulumi:"type"` // Specifies the ID which uniquely identifies a Virtual Machine Scale Set. @@ -78,7 +88,7 @@ type LookupVirtualMachineScaleSetResult struct { UpgradePolicy *UpgradePolicyResponse `pulumi:"upgradePolicy"` // The virtual machine profile. VirtualMachineProfile *VirtualMachineScaleSetVMProfileResponse `pulumi:"virtualMachineProfile"` - // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. + // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. ZoneBalance *bool `pulumi:"zoneBalance"` // The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set Zones []string `pulumi:"zones"` @@ -139,6 +149,11 @@ func (o LookupVirtualMachineScaleSetResultOutput) AutomaticRepairsPolicy() Autom }).(AutomaticRepairsPolicyResponsePtrOutput) } +// Optional property which must either be set to True or omitted. +func (o LookupVirtualMachineScaleSetResultOutput) ConstrainedMaximumCapacity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *bool { return v.ConstrainedMaximumCapacity }).(pulumi.BoolPtrOutput) +} + // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. func (o LookupVirtualMachineScaleSetResultOutput) DoNotRunExtensionsOnOverprovisionedVMs() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *bool { return v.DoNotRunExtensionsOnOverprovisionedVMs }).(pulumi.BoolPtrOutput) @@ -149,7 +164,7 @@ func (o LookupVirtualMachineScaleSetResultOutput) ExtendedLocation() ExtendedLoc return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -// Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. +// Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. func (o LookupVirtualMachineScaleSetResultOutput) HostGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *SubResourceResponse { return v.HostGroup }).(SubResourceResponsePtrOutput) } @@ -194,17 +209,22 @@ func (o LookupVirtualMachineScaleSetResultOutput) PlatformFaultDomainCount() pul return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *int { return v.PlatformFaultDomainCount }).(pulumi.IntPtrOutput) } +// Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. +func (o LookupVirtualMachineScaleSetResultOutput) PriorityMixPolicy() PriorityMixPolicyResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *PriorityMixPolicyResponse { return v.PriorityMixPolicy }).(PriorityMixPolicyResponsePtrOutput) +} + // The provisioning state, which only appears in the response. func (o LookupVirtualMachineScaleSetResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. func (o LookupVirtualMachineScaleSetResultOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *SubResourceResponse { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } -// Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. +// Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. func (o LookupVirtualMachineScaleSetResultOutput) ScaleInPolicy() ScaleInPolicyResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *ScaleInPolicyResponse { return v.ScaleInPolicy }).(ScaleInPolicyResponsePtrOutput) } @@ -219,11 +239,21 @@ func (o LookupVirtualMachineScaleSetResultOutput) Sku() SkuResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *SkuResponse { return v.Sku }).(SkuResponsePtrOutput) } +// Specifies the Spot Restore properties for the virtual machine scale set. +func (o LookupVirtualMachineScaleSetResultOutput) SpotRestorePolicy() SpotRestorePolicyResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *SpotRestorePolicyResponse { return v.SpotRestorePolicy }).(SpotRestorePolicyResponsePtrOutput) +} + // Resource tags func (o LookupVirtualMachineScaleSetResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01. +func (o LookupVirtualMachineScaleSetResultOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) string { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o LookupVirtualMachineScaleSetResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) string { return v.Type }).(pulumi.StringOutput) @@ -246,7 +276,7 @@ func (o LookupVirtualMachineScaleSetResultOutput) VirtualMachineProfile() Virtua }).(VirtualMachineScaleSetVMProfileResponsePtrOutput) } -// Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. +// Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. func (o LookupVirtualMachineScaleSetResultOutput) ZoneBalance() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetResult) *bool { return v.ZoneBalance }).(pulumi.BoolPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetExtension.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetExtension.go index 2e3bd22f..368c0224 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetExtension.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineScaleSetExtension(ctx *pulumi.Context, args *LookupVirtualMachineScaleSetExtensionArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineScaleSetExtensionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineScaleSetExtensionResult err := ctx.Invoke("azure-native:compute:getVirtualMachineScaleSetExtension", args, &rv, opts...) if err != nil { @@ -46,6 +48,8 @@ type LookupVirtualMachineScaleSetExtensionResult struct { Name *string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. @@ -54,6 +58,8 @@ type LookupVirtualMachineScaleSetExtensionResult struct { Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource type Type string `pulumi:"type"` // Specifies the version of the script handler. @@ -133,6 +139,13 @@ func (o LookupVirtualMachineScaleSetExtensionResultOutput) ProtectedSettings() p return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o LookupVirtualMachineScaleSetExtensionResultOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) *KeyVaultSecretReferenceResponse { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + // Collection of extension names after which this extension needs to be provisioned. func (o LookupVirtualMachineScaleSetExtensionResultOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) @@ -153,6 +166,11 @@ func (o LookupVirtualMachineScaleSetExtensionResultOutput) Settings() pulumi.Any return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o LookupVirtualMachineScaleSetExtensionResultOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource type func (o LookupVirtualMachineScaleSetExtensionResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetExtensionResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVM.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVM.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVM.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVM.go index e3d024d2..0b3ecf28 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVM.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVM.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a virtual machine from a VM scale set. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineScaleSetVM(ctx *pulumi.Context, args *LookupVirtualMachineScaleSetVMArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineScaleSetVMResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineScaleSetVMResult err := ctx.Invoke("azure-native:compute:getVirtualMachineScaleSetVM", args, &rv, opts...) if err != nil { @@ -36,14 +38,16 @@ type LookupVirtualMachineScaleSetVMArgs struct { type LookupVirtualMachineScaleSetVMResult struct { // Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. AdditionalCapabilities *AdditionalCapabilitiesResponse `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. AvailabilitySet *SubResourceResponse `pulumi:"availabilitySet"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfileResponse `pulumi:"diagnosticsProfile"` // Specifies the hardware settings for the virtual machine. HardwareProfile *HardwareProfileResponse `pulumi:"hardwareProfile"` // Resource Id Id string `pulumi:"id"` + // The identity of the virtual machine, if configured. + Identity *VirtualMachineIdentityResponse `pulumi:"identity"` // The virtual machine instance ID. InstanceId string `pulumi:"instanceId"` // The virtual machine instance view. @@ -140,12 +144,12 @@ func (o LookupVirtualMachineScaleSetVMResultOutput) AdditionalCapabilities() Add }).(AdditionalCapabilitiesResponsePtrOutput) } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. func (o LookupVirtualMachineScaleSetVMResultOutput) AvailabilitySet() SubResourceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMResult) *SubResourceResponse { return v.AvailabilitySet }).(SubResourceResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o LookupVirtualMachineScaleSetVMResultOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMResult) *DiagnosticsProfileResponse { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) } @@ -160,6 +164,11 @@ func (o LookupVirtualMachineScaleSetVMResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMResult) string { return v.Id }).(pulumi.StringOutput) } +// The identity of the virtual machine, if configured. +func (o LookupVirtualMachineScaleSetVMResultOutput) Identity() VirtualMachineIdentityResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMResult) *VirtualMachineIdentityResponse { return v.Identity }).(VirtualMachineIdentityResponsePtrOutput) +} + // The virtual machine instance ID. func (o LookupVirtualMachineScaleSetVMResultOutput) InstanceId() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMResult) string { return v.InstanceId }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMExtension.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMExtension.go index bd38ce20..a7d16839 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMExtension.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the VMSS VM extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineScaleSetVMExtension(ctx *pulumi.Context, args *LookupVirtualMachineScaleSetVMExtensionArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineScaleSetVMExtensionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineScaleSetVMExtensionResult err := ctx.Invoke("azure-native:compute:getVirtualMachineScaleSetVMExtension", args, &rv, opts...) if err != nil { @@ -46,16 +48,24 @@ type LookupVirtualMachineScaleSetVMExtensionResult struct { Id string `pulumi:"id"` // The virtual machine extension instance view. InstanceView *VirtualMachineExtensionInstanceViewResponse `pulumi:"instanceView"` + // The location of the extension. + Location *string `pulumi:"location"` // The name of the extension. Name string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource type Type string `pulumi:"type"` // Specifies the version of the script handler. @@ -134,6 +144,11 @@ func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) InstanceView() Virt }).(VirtualMachineExtensionInstanceViewResponsePtrOutput) } +// The location of the extension. +func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the extension. func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) string { return v.Name }).(pulumi.StringOutput) @@ -144,6 +159,18 @@ func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) ProtectedSettings() return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) *KeyVaultSecretReferenceResponse { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + // The provisioning state, which only appears in the response. func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -159,6 +186,11 @@ func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) Settings() pulumi.A return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource type func (o LookupVirtualMachineScaleSetVMExtensionResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMExtensionResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMRunCommand.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMRunCommand.go similarity index 61% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMRunCommand.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMRunCommand.go index be518094..2841f11a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/getVirtualMachineScaleSetVMRunCommand.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/getVirtualMachineScaleSetVMRunCommand.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The operation to get the VMSS VM run command. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. func LookupVirtualMachineScaleSetVMRunCommand(ctx *pulumi.Context, args *LookupVirtualMachineScaleSetVMRunCommandArgs, opts ...pulumi.InvokeOption) (*LookupVirtualMachineScaleSetVMRunCommandResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualMachineScaleSetVMRunCommandResult err := ctx.Invoke("azure-native:compute:getVirtualMachineScaleSetVMRunCommand", args, &rv, opts...) if err != nil { @@ -38,7 +40,9 @@ type LookupVirtualMachineScaleSetVMRunCommandArgs struct { type LookupVirtualMachineScaleSetVMRunCommandResult struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution *bool `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity *RunCommandManagedIdentityResponse `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri *string `pulumi:"errorBlobUri"` // Resource Id Id string `pulumi:"id"` @@ -48,13 +52,15 @@ type LookupVirtualMachineScaleSetVMRunCommandResult struct { Location string `pulumi:"location"` // Resource name Name string `pulumi:"name"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity *RunCommandManagedIdentityResponse `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri *string `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters []RunCommandInputParameterResponse `pulumi:"parameters"` // The parameters used by the script. ProtectedParameters []RunCommandInputParameterResponse `pulumi:"protectedParameters"` - // The provisioning state, which only appears in the response. + // The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results ProvisioningState string `pulumi:"provisioningState"` // Specifies the user account password on the VM when executing the run command. RunAsPassword *string `pulumi:"runAsPassword"` @@ -66,6 +72,8 @@ type LookupVirtualMachineScaleSetVMRunCommandResult struct { Tags map[string]string `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds *int `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` // Resource type Type string `pulumi:"type"` } @@ -76,10 +84,14 @@ func (val *LookupVirtualMachineScaleSetVMRunCommandResult) Defaults() *LookupVir return nil } tmp := *val - if isZero(tmp.AsyncExecution) { + if tmp.AsyncExecution == nil { asyncExecution_ := false tmp.AsyncExecution = &asyncExecution_ } + if tmp.TreatFailureAsDeploymentFailure == nil { + treatFailureAsDeploymentFailure_ := false + tmp.TreatFailureAsDeploymentFailure = &treatFailureAsDeploymentFailure_ + } return &tmp } @@ -133,7 +145,14 @@ func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) AsyncExecution() p return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *bool { return v.AsyncExecution }).(pulumi.BoolPtrOutput) } -// Specifies the Azure storage blob where script error stream will be uploaded. +// User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) ErrorBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *RunCommandManagedIdentityResponse { + return v.ErrorBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) ErrorBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *string { return v.ErrorBlobUri }).(pulumi.StringPtrOutput) } @@ -160,7 +179,14 @@ func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) Name() pulumi.Stri return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) string { return v.Name }).(pulumi.StringOutput) } -// Specifies the Azure storage blob where script output stream will be uploaded. +// User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) OutputBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *RunCommandManagedIdentityResponse { + return v.OutputBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) OutputBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *string { return v.OutputBlobUri }).(pulumi.StringPtrOutput) } @@ -179,7 +205,7 @@ func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) ProtectedParameter }).(RunCommandInputParameterResponseArrayOutput) } -// The provisioning state, which only appears in the response. +// The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } @@ -211,6 +237,11 @@ func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) TimeoutInSeconds() return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *int { return v.TimeoutInSeconds }).(pulumi.IntPtrOutput) } +// Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results +func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) *bool { return v.TreatFailureAsDeploymentFailure }).(pulumi.BoolPtrOutput) +} + // Resource type func (o LookupVirtualMachineScaleSetVMRunCommandResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualMachineScaleSetVMRunCommandResult) string { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/image.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/image.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/image.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/image.go index 36fb4975..44499e4b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/image.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/image.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type Image struct { pulumi.CustomResourceState @@ -101,8 +102,15 @@ func NewImage(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:Image"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:Image"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:Image"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Image err := ctx.RegisterResource("azure-native:compute:Image", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/init.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/init.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/init.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/init.go index d388a574..a53d792e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/init.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-azure-native-sdk" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -88,7 +88,7 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi } func init() { - version, err := pulumiazurenativesdk.PkgVersion() + version, err := utilities.PkgVersion() if err != nil { version = semver.Version{Major: 1} } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/proximityPlacementGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/proximityPlacementGroup.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/proximityPlacementGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/proximityPlacementGroup.go index 6ae819a0..64625150 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/proximityPlacementGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/proximityPlacementGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the proximity placement group. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type ProximityPlacementGroup struct { pulumi.CustomResourceState @@ -20,11 +21,13 @@ type ProximityPlacementGroup struct { AvailabilitySets SubResourceWithColocationStatusResponseArrayOutput `pulumi:"availabilitySets"` // Describes colocation status of the Proximity Placement Group. ColocationStatus InstanceViewStatusResponsePtrOutput `pulumi:"colocationStatus"` + // Specifies the user intent of the proximity placement group. + Intent ProximityPlacementGroupPropertiesResponseIntentPtrOutput `pulumi:"intent"` // Resource location Location pulumi.StringOutput `pulumi:"location"` // Resource name Name pulumi.StringOutput `pulumi:"name"` - // Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. + // Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. ProximityPlacementGroupType pulumi.StringPtrOutput `pulumi:"proximityPlacementGroupType"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` @@ -34,6 +37,8 @@ type ProximityPlacementGroup struct { VirtualMachineScaleSets SubResourceWithColocationStatusResponseArrayOutput `pulumi:"virtualMachineScaleSets"` // A list of references to all virtual machines in the proximity placement group. VirtualMachines SubResourceWithColocationStatusResponseArrayOutput `pulumi:"virtualMachines"` + // Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. + Zones pulumi.StringArrayOutput `pulumi:"zones"` } // NewProximityPlacementGroup registers a new resource with the given unique name, arguments, and options. @@ -92,8 +97,15 @@ func NewProximityPlacementGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:ProximityPlacementGroup"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:ProximityPlacementGroup"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:ProximityPlacementGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ProximityPlacementGroup err := ctx.RegisterResource("azure-native:compute:ProximityPlacementGroup", name, args, &resource, opts...) if err != nil { @@ -128,32 +140,40 @@ func (ProximityPlacementGroupState) ElementType() reflect.Type { type proximityPlacementGroupArgs struct { // Describes colocation status of the Proximity Placement Group. ColocationStatus *InstanceViewStatus `pulumi:"colocationStatus"` + // Specifies the user intent of the proximity placement group. + Intent *ProximityPlacementGroupPropertiesIntent `pulumi:"intent"` // Resource location Location *string `pulumi:"location"` // The name of the proximity placement group. ProximityPlacementGroupName *string `pulumi:"proximityPlacementGroupName"` - // Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. + // Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. ProximityPlacementGroupType *string `pulumi:"proximityPlacementGroupType"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags Tags map[string]string `pulumi:"tags"` + // Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. + Zones []string `pulumi:"zones"` } // The set of arguments for constructing a ProximityPlacementGroup resource. type ProximityPlacementGroupArgs struct { // Describes colocation status of the Proximity Placement Group. ColocationStatus InstanceViewStatusPtrInput + // Specifies the user intent of the proximity placement group. + Intent ProximityPlacementGroupPropertiesIntentPtrInput // Resource location Location pulumi.StringPtrInput // The name of the proximity placement group. ProximityPlacementGroupName pulumi.StringPtrInput - // Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. + // Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. ProximityPlacementGroupType pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Resource tags Tags pulumi.StringMapInput + // Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. + Zones pulumi.StringArrayInput } func (ProximityPlacementGroupArgs) ElementType() reflect.Type { @@ -205,6 +225,13 @@ func (o ProximityPlacementGroupOutput) ColocationStatus() InstanceViewStatusResp return o.ApplyT(func(v *ProximityPlacementGroup) InstanceViewStatusResponsePtrOutput { return v.ColocationStatus }).(InstanceViewStatusResponsePtrOutput) } +// Specifies the user intent of the proximity placement group. +func (o ProximityPlacementGroupOutput) Intent() ProximityPlacementGroupPropertiesResponseIntentPtrOutput { + return o.ApplyT(func(v *ProximityPlacementGroup) ProximityPlacementGroupPropertiesResponseIntentPtrOutput { + return v.Intent + }).(ProximityPlacementGroupPropertiesResponseIntentPtrOutput) +} + // Resource location func (o ProximityPlacementGroupOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *ProximityPlacementGroup) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) @@ -215,7 +242,7 @@ func (o ProximityPlacementGroupOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *ProximityPlacementGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. +// Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. func (o ProximityPlacementGroupOutput) ProximityPlacementGroupType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ProximityPlacementGroup) pulumi.StringPtrOutput { return v.ProximityPlacementGroupType }).(pulumi.StringPtrOutput) } @@ -244,6 +271,11 @@ func (o ProximityPlacementGroupOutput) VirtualMachines() SubResourceWithColocati }).(SubResourceWithColocationStatusResponseArrayOutput) } +// Specifies the Availability Zone where virtual machine, virtual machine scale set or availability set associated with the proximity placement group can be created. +func (o ProximityPlacementGroupOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ProximityPlacementGroup) pulumi.StringArrayOutput { return v.Zones }).(pulumi.StringArrayOutput) +} + func init() { pulumi.RegisterOutputType(ProximityPlacementGroupOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumi-plugin.json similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumi-plugin.json rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumi-plugin.json diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiEnums.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiEnums.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiEnums.go index 0d4a3032..a917f788 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiEnums.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiEnums.go @@ -10,7 +10,15 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. +// CPU architecture supported by an OS disk. +type Architecture string + +const ( + ArchitectureX64 = Architecture("x64") + ArchitectureArm64 = Architecture("Arm64") +) + +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** type CachingTypes string const ( @@ -176,6 +184,16 @@ func (in *cachingTypesPtr) ToCachingTypesPtrOutputWithContext(ctx context.Contex return pulumi.ToOutputWithContext(ctx, in).(CachingTypesPtrOutput) } +// Slot type for the cloud service. +// Possible values are

    **Production**

    **Staging**

    +// If not specified, the default value is Production. +type CloudServiceSlotType string + +const ( + CloudServiceSlotTypeProduction = CloudServiceSlotType("Production") + CloudServiceSlotTypeStaging = CloudServiceSlotType("Staging") +) + // Update mode for the cloud service. Role instances are allocated to update domains when the service is deployed. Updates can be initiated manually in each update domain or initiated automatically in all update domains. // Possible Values are

    **Auto**

    **Manual**

    **Simultaneous**

    // If not specified, the default value is Auto. If set to Manual, PUT UpdateDomain must be called to apply the update. If set to Auto, the update is automatically applied to each update domain in sequence. @@ -351,7 +369,43 @@ func (in *componentNamesPtr) ToComponentNamesPtrOutputWithContext(ctx context.Co return pulumi.ToOutputWithContext(ctx, in).(ComponentNamesPtrOutput) } -// Specifies the software license type that will be applied to the VMs deployed on the dedicated host.

    Possible values are:

    **None**

    **Windows_Server_Hybrid**

    **Windows_Server_Perpetual**

    Default: **None** +// confidential VM encryption types +type ConfidentialVMEncryptionType string + +const ( + ConfidentialVMEncryptionTypeEncryptedVMGuestStateOnlyWithPmk = ConfidentialVMEncryptionType("EncryptedVMGuestStateOnlyWithPmk") + ConfidentialVMEncryptionTypeEncryptedWithPmk = ConfidentialVMEncryptionType("EncryptedWithPmk") + ConfidentialVMEncryptionTypeEncryptedWithCmk = ConfidentialVMEncryptionType("EncryptedWithCmk") +) + +// ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. +type ConsistencyModeTypes string + +const ( + ConsistencyModeTypesCrashConsistent = ConsistencyModeTypes("CrashConsistent") + ConsistencyModeTypesFileSystemConsistent = ConsistencyModeTypes("FileSystemConsistent") + ConsistencyModeTypesApplicationConsistent = ConsistencyModeTypes("ApplicationConsistent") +) + +// Indicates the error code if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionErrorReason string + +const ( + // Indicates that the source snapshot was deleted while the background copy of the resource created via CopyStart operation was in progress. + CopyCompletionErrorReasonCopySourceNotFound = CopyCompletionErrorReason("CopySourceNotFound") +) + +// Additional authentication requirements when exporting or uploading to a disk or snapshot. +type DataAccessAuthMode string + +const ( + // When export/upload URL is used, the system checks if the user has an identity in Azure Active Directory and has necessary permissions to export/upload the data. Please refer to aka.ms/DisksAzureADAuth. + DataAccessAuthModeAzureActiveDirectory = DataAccessAuthMode("AzureActiveDirectory") + // No additional authentication would be performed when accessing export/upload URL. + DataAccessAuthModeNone = DataAccessAuthMode("None") +) + +// Specifies the software license type that will be applied to the VMs deployed on the dedicated host. Possible values are: **None,** **Windows_Server_Hybrid,** **Windows_Server_Perpetual.** The default value is: **None.** type DedicatedHostLicenseTypes string const ( @@ -532,7 +586,7 @@ const ( DiffDiskOptionsLocal = DiffDiskOptions("Local") ) -// Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. +// Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. type DiffDiskPlacement string const ( @@ -540,6 +594,14 @@ const ( DiffDiskPlacementResourceDisk = DiffDiskPlacement("ResourceDisk") ) +// Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. +type DiskControllerTypes string + +const ( + DiskControllerTypesSCSI = DiskControllerTypes("SCSI") + DiskControllerTypesNVMe = DiskControllerTypes("NVMe") +) + // This enumerates the possible sources of a disk's creation. type DiskCreateOption string @@ -558,9 +620,15 @@ const ( DiskCreateOptionRestore = DiskCreateOption("Restore") // Create a new disk by obtaining a write token and using it to directly upload the contents of the disk. DiskCreateOptionUpload = DiskCreateOption("Upload") + // Create a new disk by using a deep copy process, where the resource creation is considered complete only after all data has been copied from the source. + DiskCreateOptionCopyStart = DiskCreateOption("CopyStart") + // Similar to Import create option. Create a new Trusted Launch VM or Confidential VM supported disk by importing additional blob for VM guest state specified by securityDataUri in storage account specified by storageAccountId + DiskCreateOptionImportSecure = DiskCreateOption("ImportSecure") + // Similar to Upload create option. Create a new Trusted Launch VM or Confidential VM supported disk and upload using write token in both disk and VM guest state + DiskCreateOptionUploadPreparedSecure = DiskCreateOption("UploadPreparedSecure") ) -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. type DiskCreateOptionTypes string const ( @@ -569,7 +637,7 @@ const ( DiskCreateOptionTypesAttach = DiskCreateOptionTypes("Attach") ) -// Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. +// Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. type DiskDeleteOptionTypes string const ( @@ -577,7 +645,7 @@ const ( DiskDeleteOptionTypesDetach = DiskDeleteOptionTypes("Detach") ) -// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. +// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. type DiskDetachOptionTypes string const ( @@ -588,8 +656,10 @@ const ( type DiskEncryptionSetIdentityType string const ( - DiskEncryptionSetIdentityTypeSystemAssigned = DiskEncryptionSetIdentityType("SystemAssigned") - DiskEncryptionSetIdentityTypeNone = DiskEncryptionSetIdentityType("None") + DiskEncryptionSetIdentityTypeSystemAssigned = DiskEncryptionSetIdentityType("SystemAssigned") + DiskEncryptionSetIdentityTypeUserAssigned = DiskEncryptionSetIdentityType("UserAssigned") + DiskEncryptionSetIdentityType_SystemAssigned_UserAssigned = DiskEncryptionSetIdentityType("SystemAssigned, UserAssigned") + DiskEncryptionSetIdentityTypeNone = DiskEncryptionSetIdentityType("None") ) // The type of key used to encrypt the data of the disk. @@ -600,6 +670,8 @@ const ( DiskEncryptionSetTypeEncryptionAtRestWithCustomerKey = DiskEncryptionSetType("EncryptionAtRestWithCustomerKey") // Resource using diskEncryptionSet would be encrypted at rest with two layers of encryption. One of the keys is Customer managed and the other key is Platform managed. DiskEncryptionSetTypeEncryptionAtRestWithPlatformAndCustomerKeys = DiskEncryptionSetType("EncryptionAtRestWithPlatformAndCustomerKeys") + // Confidential VM supported disk and VM guest state would be encrypted with customer managed key. + DiskEncryptionSetTypeConfidentialVmEncryptedWithCustomerKey = DiskEncryptionSetType("ConfidentialVmEncryptedWithCustomerKey") ) // Specifies the SecurityType of the VM. Applicable for OS disks only. @@ -608,6 +680,12 @@ type DiskSecurityTypes string const ( // Trusted Launch provides security features such as secure boot and virtual Trusted Platform Module (vTPM) DiskSecurityTypesTrustedLaunch = DiskSecurityTypes("TrustedLaunch") + // Indicates Confidential VM disk with only VM guest state encrypted + DiskSecurityTypes_ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey = DiskSecurityTypes("ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey") + // Indicates Confidential VM disk with both OS disk and VM guest state encrypted with a platform managed key + DiskSecurityTypes_ConfidentialVM_DiskEncryptedWithPlatformKey = DiskSecurityTypes("ConfidentialVM_DiskEncryptedWithPlatformKey") + // Indicates Confidential VM disk with both OS disk and VM guest state encrypted with a customer managed key + DiskSecurityTypes_ConfidentialVM_DiskEncryptedWithCustomerKey = DiskSecurityTypes("ConfidentialVM_DiskEncryptedWithCustomerKey") ) // The sku name. @@ -626,6 +704,18 @@ const ( DiskStorageAccountTypes_Premium_ZRS = DiskStorageAccountTypes("Premium_ZRS") // Standard SSD zone redundant storage. Best for web servers, lightly used enterprise applications and dev/test that need storage resiliency against zone failures. DiskStorageAccountTypes_StandardSSD_ZRS = DiskStorageAccountTypes("StandardSSD_ZRS") + // Premium SSD v2 locally redundant storage. Best for production and performance-sensitive workloads that consistently require low latency and high IOPS and throughput. + DiskStorageAccountTypes_PremiumV2_LRS = DiskStorageAccountTypes("PremiumV2_LRS") +) + +// Specifies the storage account type to be used to store the image. This property is not updatable. +type EdgeZoneStorageAccountType string + +const ( + EdgeZoneStorageAccountType_Standard_LRS = EdgeZoneStorageAccountType("Standard_LRS") + EdgeZoneStorageAccountType_Standard_ZRS = EdgeZoneStorageAccountType("Standard_ZRS") + EdgeZoneStorageAccountType_StandardSSD_LRS = EdgeZoneStorageAccountType("StandardSSD_LRS") + EdgeZoneStorageAccountType_Premium_LRS = EdgeZoneStorageAccountType("Premium_LRS") ) // The type of key used to encrypt the data of the disk. @@ -647,12 +737,187 @@ const ( ExtendedLocationTypesEdgeZone = ExtendedLocationTypes("EdgeZone") ) -// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** +// Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob +type GalleryApplicationCustomActionParameterType string + +const ( + GalleryApplicationCustomActionParameterTypeString = GalleryApplicationCustomActionParameterType("String") + GalleryApplicationCustomActionParameterTypeConfigurationDataBlob = GalleryApplicationCustomActionParameterType("ConfigurationDataBlob") + GalleryApplicationCustomActionParameterTypeLogOutputBlob = GalleryApplicationCustomActionParameterType("LogOutputBlob") +) + +func (GalleryApplicationCustomActionParameterType) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionParameterType)(nil)).Elem() +} + +func (e GalleryApplicationCustomActionParameterType) ToGalleryApplicationCustomActionParameterTypeOutput() GalleryApplicationCustomActionParameterTypeOutput { + return pulumi.ToOutput(e).(GalleryApplicationCustomActionParameterTypeOutput) +} + +func (e GalleryApplicationCustomActionParameterType) ToGalleryApplicationCustomActionParameterTypeOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(GalleryApplicationCustomActionParameterTypeOutput) +} + +func (e GalleryApplicationCustomActionParameterType) ToGalleryApplicationCustomActionParameterTypePtrOutput() GalleryApplicationCustomActionParameterTypePtrOutput { + return e.ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(context.Background()) +} + +func (e GalleryApplicationCustomActionParameterType) ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypePtrOutput { + return GalleryApplicationCustomActionParameterType(e).ToGalleryApplicationCustomActionParameterTypeOutputWithContext(ctx).ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(ctx) +} + +func (e GalleryApplicationCustomActionParameterType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e GalleryApplicationCustomActionParameterType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e GalleryApplicationCustomActionParameterType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e GalleryApplicationCustomActionParameterType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type GalleryApplicationCustomActionParameterTypeOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionParameterType)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToGalleryApplicationCustomActionParameterTypeOutput() GalleryApplicationCustomActionParameterTypeOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToGalleryApplicationCustomActionParameterTypeOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypeOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToGalleryApplicationCustomActionParameterTypePtrOutput() GalleryApplicationCustomActionParameterTypePtrOutput { + return o.ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(context.Background()) +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryApplicationCustomActionParameterType) *GalleryApplicationCustomActionParameterType { + return &v + }).(GalleryApplicationCustomActionParameterTypePtrOutput) +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e GalleryApplicationCustomActionParameterType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o GalleryApplicationCustomActionParameterTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e GalleryApplicationCustomActionParameterType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type GalleryApplicationCustomActionParameterTypePtrOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryApplicationCustomActionParameterType)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterTypePtrOutput) ToGalleryApplicationCustomActionParameterTypePtrOutput() GalleryApplicationCustomActionParameterTypePtrOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterTypePtrOutput) ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypePtrOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterTypePtrOutput) Elem() GalleryApplicationCustomActionParameterTypeOutput { + return o.ApplyT(func(v *GalleryApplicationCustomActionParameterType) GalleryApplicationCustomActionParameterType { + if v != nil { + return *v + } + var ret GalleryApplicationCustomActionParameterType + return ret + }).(GalleryApplicationCustomActionParameterTypeOutput) +} + +func (o GalleryApplicationCustomActionParameterTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o GalleryApplicationCustomActionParameterTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *GalleryApplicationCustomActionParameterType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// GalleryApplicationCustomActionParameterTypeInput is an input type that accepts GalleryApplicationCustomActionParameterTypeArgs and GalleryApplicationCustomActionParameterTypeOutput values. +// You can construct a concrete instance of `GalleryApplicationCustomActionParameterTypeInput` via: +// +// GalleryApplicationCustomActionParameterTypeArgs{...} +type GalleryApplicationCustomActionParameterTypeInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionParameterTypeOutput() GalleryApplicationCustomActionParameterTypeOutput + ToGalleryApplicationCustomActionParameterTypeOutputWithContext(context.Context) GalleryApplicationCustomActionParameterTypeOutput +} + +var galleryApplicationCustomActionParameterTypePtrType = reflect.TypeOf((**GalleryApplicationCustomActionParameterType)(nil)).Elem() + +type GalleryApplicationCustomActionParameterTypePtrInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionParameterTypePtrOutput() GalleryApplicationCustomActionParameterTypePtrOutput + ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(context.Context) GalleryApplicationCustomActionParameterTypePtrOutput +} + +type galleryApplicationCustomActionParameterTypePtr string + +func GalleryApplicationCustomActionParameterTypePtr(v string) GalleryApplicationCustomActionParameterTypePtrInput { + return (*galleryApplicationCustomActionParameterTypePtr)(&v) +} + +func (*galleryApplicationCustomActionParameterTypePtr) ElementType() reflect.Type { + return galleryApplicationCustomActionParameterTypePtrType +} + +func (in *galleryApplicationCustomActionParameterTypePtr) ToGalleryApplicationCustomActionParameterTypePtrOutput() GalleryApplicationCustomActionParameterTypePtrOutput { + return pulumi.ToOutput(in).(GalleryApplicationCustomActionParameterTypePtrOutput) +} + +func (in *galleryApplicationCustomActionParameterTypePtr) ToGalleryApplicationCustomActionParameterTypePtrOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(GalleryApplicationCustomActionParameterTypePtrOutput) +} + +// It is type of the extended location. +type GalleryExtendedLocationType string + +const ( + GalleryExtendedLocationTypeEdgeZone = GalleryExtendedLocationType("EdgeZone") + GalleryExtendedLocationTypeUnknown = GalleryExtendedLocationType("Unknown") +) + +// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** type GallerySharingPermissionTypes string const ( - GallerySharingPermissionTypesPrivate = GallerySharingPermissionTypes("Private") - GallerySharingPermissionTypesGroups = GallerySharingPermissionTypes("Groups") + GallerySharingPermissionTypesPrivate = GallerySharingPermissionTypes("Private") + GallerySharingPermissionTypesGroups = GallerySharingPermissionTypes("Groups") + GallerySharingPermissionTypesCommunity = GallerySharingPermissionTypes("Community") ) // The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite' @@ -1028,6 +1293,16 @@ const ( LinuxPatchAssessmentModeAutomaticByPlatform = LinuxPatchAssessmentMode("AutomaticByPlatform") ) +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +type LinuxVMGuestPatchAutomaticByPlatformRebootSetting string + +const ( + LinuxVMGuestPatchAutomaticByPlatformRebootSettingUnknown = LinuxVMGuestPatchAutomaticByPlatformRebootSetting("Unknown") + LinuxVMGuestPatchAutomaticByPlatformRebootSettingIfRequired = LinuxVMGuestPatchAutomaticByPlatformRebootSetting("IfRequired") + LinuxVMGuestPatchAutomaticByPlatformRebootSettingNever = LinuxVMGuestPatchAutomaticByPlatformRebootSetting("Never") + LinuxVMGuestPatchAutomaticByPlatformRebootSettingAlways = LinuxVMGuestPatchAutomaticByPlatformRebootSetting("Always") +) + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true type LinuxVMGuestPatchMode string @@ -1055,7 +1330,7 @@ const ( NetworkApiVersion_2020_11_01 = NetworkApiVersion("2020-11-01") ) -// The OS State. +// The OS State. For managed images, use Generalized. type OperatingSystemStateTypes string const ( @@ -1222,7 +1497,7 @@ func (in *operatingSystemStateTypesPtr) ToOperatingSystemStateTypesPtrOutputWith return pulumi.ToOutputWithContext(ctx, in).(OperatingSystemStateTypesPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** type OperatingSystemTypes string const ( @@ -1568,7 +1843,7 @@ const ( PrivateEndpointServiceConnectionStatusRejected = PrivateEndpointServiceConnectionStatus("Rejected") ) -// Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** +// Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** type ProtocolTypes string const ( @@ -1733,7 +2008,7 @@ func (in *protocolTypesPtr) ToProtocolTypesPtrOutputWithContext(ctx context.Cont return pulumi.ToOutputWithContext(ctx, in).(ProtocolTypesPtrOutput) } -// Specifies the type of the proximity placement group.

    Possible values are:

    **Standard** : Co-locate resources within an Azure region or Availability Zone.

    **Ultra** : For future use. +// Specifies the type of the proximity placement group. Possible values are: **Standard** : Co-locate resources within an Azure region or Availability Zone. **Ultra** : For future use. type ProximityPlacementGroupType string const ( @@ -1765,7 +2040,34 @@ const ( PublicIPAllocationMethodStatic = PublicIPAllocationMethod("Static") ) -// The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. +// Policy for controlling export on the disk. +type PublicNetworkAccess string + +const ( + // You can generate a SAS URI to access the underlying data of the disk publicly on the internet when NetworkAccessPolicy is set to AllowAll. You can access the data via the SAS URI only from your trusted Azure VNET when NetworkAccessPolicy is set to AllowPrivate. + PublicNetworkAccessEnabled = PublicNetworkAccess("Enabled") + // You cannot access the underlying data of the disk publicly on the internet even when NetworkAccessPolicy is set to AllowAll. You can access the data via the SAS URI only from your trusted Azure VNET when NetworkAccessPolicy is set to AllowPrivate. + PublicNetworkAccessDisabled = PublicNetworkAccess("Disabled") +) + +// Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. +type RepairAction string + +const ( + RepairActionReplace = RepairAction("Replace") + RepairActionRestart = RepairAction("Restart") + RepairActionReimage = RepairAction("Reimage") +) + +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +type ReplicationMode string + +const ( + ReplicationModeFull = ReplicationMode("Full") + ReplicationModeShallow = ReplicationMode("Shallow") +) + +// The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. type ResourceIdentityType string const ( @@ -1932,11 +2234,32 @@ func (in *resourceIdentityTypePtr) ToResourceIdentityTypePtrOutputWithContext(ct return pulumi.ToOutputWithContext(ctx, in).(ResourceIdentityTypePtrOutput) } -// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. +// The type of key used to encrypt the data of the disk restore point. +type RestorePointEncryptionType string + +const ( + // Disk Restore Point is encrypted at rest with Platform managed key. + RestorePointEncryptionTypeEncryptionAtRestWithPlatformKey = RestorePointEncryptionType("EncryptionAtRestWithPlatformKey") + // Disk Restore Point is encrypted at rest with Customer managed key that can be changed and revoked by a customer. + RestorePointEncryptionTypeEncryptionAtRestWithCustomerKey = RestorePointEncryptionType("EncryptionAtRestWithCustomerKey") + // Disk Restore Point is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and the other key is Platform managed. + RestorePointEncryptionTypeEncryptionAtRestWithPlatformAndCustomerKeys = RestorePointEncryptionType("EncryptionAtRestWithPlatformAndCustomerKeys") +) + +// Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. +type SecurityEncryptionTypes string + +const ( + SecurityEncryptionTypesVMGuestStateOnly = SecurityEncryptionTypes("VMGuestStateOnly") + SecurityEncryptionTypesDiskWithVMGuestState = SecurityEncryptionTypes("DiskWithVMGuestState") +) + +// Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. type SecurityTypes string const ( - SecurityTypesTrustedLaunch = SecurityTypes("TrustedLaunch") + SecurityTypesTrustedLaunch = SecurityTypes("TrustedLaunch") + SecurityTypesConfidentialVM = SecurityTypes("ConfidentialVM") ) // Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon. @@ -2291,7 +2614,7 @@ const ( StorageAccountType_Premium_LRS = StorageAccountType("Premium_LRS") ) -// Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. +// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. type StorageAccountTypes string const ( @@ -2301,6 +2624,7 @@ const ( StorageAccountTypes_UltraSSD_LRS = StorageAccountTypes("UltraSSD_LRS") StorageAccountTypes_Premium_ZRS = StorageAccountTypes("Premium_ZRS") StorageAccountTypes_StandardSSD_ZRS = StorageAccountTypes("StandardSSD_ZRS") + StorageAccountTypes_PremiumV2_LRS = StorageAccountTypes("PremiumV2_LRS") ) // Specifies the mode of an upgrade to virtual machines in the scale set.

    Possible values are:

    **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.

    **Automatic** - All virtual machines in the scale set are automatically updated at the same time. @@ -2469,7 +2793,7 @@ func (in *upgradeModePtr) ToUpgradeModePtrOutputWithContext(ctx context.Context) return pulumi.ToOutputWithContext(ctx, in).(UpgradeModePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. type VirtualMachineEvictionPolicyTypes string const ( @@ -2477,7 +2801,7 @@ const ( VirtualMachineEvictionPolicyTypesDelete = VirtualMachineEvictionPolicyTypes("Delete") ) -// Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview +// Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. type VirtualMachinePriorityTypes string const ( @@ -2494,7 +2818,7 @@ const ( VirtualMachineScaleSetScaleInRulesNewestVM = VirtualMachineScaleSetScaleInRules("NewestVM") ) -// Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. +// Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. type VirtualMachineSizeTypes string const ( @@ -2674,6 +2998,16 @@ const ( WindowsPatchAssessmentModeAutomaticByPlatform = WindowsPatchAssessmentMode("AutomaticByPlatform") ) +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +type WindowsVMGuestPatchAutomaticByPlatformRebootSetting string + +const ( + WindowsVMGuestPatchAutomaticByPlatformRebootSettingUnknown = WindowsVMGuestPatchAutomaticByPlatformRebootSetting("Unknown") + WindowsVMGuestPatchAutomaticByPlatformRebootSettingIfRequired = WindowsVMGuestPatchAutomaticByPlatformRebootSetting("IfRequired") + WindowsVMGuestPatchAutomaticByPlatformRebootSettingNever = WindowsVMGuestPatchAutomaticByPlatformRebootSetting("Never") + WindowsVMGuestPatchAutomaticByPlatformRebootSettingAlways = WindowsVMGuestPatchAutomaticByPlatformRebootSetting("Always") +) + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **Manual** - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false

    **AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.

    **AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true type WindowsVMGuestPatchMode string @@ -2690,6 +3024,8 @@ func init() { pulumi.RegisterOutputType(ComponentNamesPtrOutput{}) pulumi.RegisterOutputType(DedicatedHostLicenseTypesOutput{}) pulumi.RegisterOutputType(DedicatedHostLicenseTypesPtrOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterTypeOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterTypePtrOutput{}) pulumi.RegisterOutputType(HostCachingOutput{}) pulumi.RegisterOutputType(HostCachingPtrOutput{}) pulumi.RegisterOutputType(IntervalInMinsOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiTypes.go similarity index 71% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiTypes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiTypes.go index 9bd2a5ae..2ba30531 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/pulumiTypes.go @@ -7,11 +7,16 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +var _ = utilities.GetEnvOrDefault + // Enables or disables a capability on the virtual machine or virtual machine scale set. type AdditionalCapabilities struct { + // The flag that enables or disables hibernation capability on the VM. + HibernationEnabled *bool `pulumi:"hibernationEnabled"` // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. UltraSSDEnabled *bool `pulumi:"ultraSSDEnabled"` } @@ -29,6 +34,8 @@ type AdditionalCapabilitiesInput interface { // Enables or disables a capability on the virtual machine or virtual machine scale set. type AdditionalCapabilitiesArgs struct { + // The flag that enables or disables hibernation capability on the VM. + HibernationEnabled pulumi.BoolPtrInput `pulumi:"hibernationEnabled"` // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. UltraSSDEnabled pulumi.BoolPtrInput `pulumi:"ultraSSDEnabled"` } @@ -111,6 +118,11 @@ func (o AdditionalCapabilitiesOutput) ToAdditionalCapabilitiesPtrOutputWithConte }).(AdditionalCapabilitiesPtrOutput) } +// The flag that enables or disables hibernation capability on the VM. +func (o AdditionalCapabilitiesOutput) HibernationEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AdditionalCapabilities) *bool { return v.HibernationEnabled }).(pulumi.BoolPtrOutput) +} + // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. func (o AdditionalCapabilitiesOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v AdditionalCapabilities) *bool { return v.UltraSSDEnabled }).(pulumi.BoolPtrOutput) @@ -140,6 +152,16 @@ func (o AdditionalCapabilitiesPtrOutput) Elem() AdditionalCapabilitiesOutput { }).(AdditionalCapabilitiesOutput) } +// The flag that enables or disables hibernation capability on the VM. +func (o AdditionalCapabilitiesPtrOutput) HibernationEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AdditionalCapabilities) *bool { + if v == nil { + return nil + } + return v.HibernationEnabled + }).(pulumi.BoolPtrOutput) +} + // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. func (o AdditionalCapabilitiesPtrOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AdditionalCapabilities) *bool { @@ -152,6 +174,8 @@ func (o AdditionalCapabilitiesPtrOutput) UltraSSDEnabled() pulumi.BoolPtrOutput // Enables or disables a capability on the virtual machine or virtual machine scale set. type AdditionalCapabilitiesResponse struct { + // The flag that enables or disables hibernation capability on the VM. + HibernationEnabled *bool `pulumi:"hibernationEnabled"` // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. UltraSSDEnabled *bool `pulumi:"ultraSSDEnabled"` } @@ -171,6 +195,11 @@ func (o AdditionalCapabilitiesResponseOutput) ToAdditionalCapabilitiesResponseOu return o } +// The flag that enables or disables hibernation capability on the VM. +func (o AdditionalCapabilitiesResponseOutput) HibernationEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AdditionalCapabilitiesResponse) *bool { return v.HibernationEnabled }).(pulumi.BoolPtrOutput) +} + // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. func (o AdditionalCapabilitiesResponseOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v AdditionalCapabilitiesResponse) *bool { return v.UltraSSDEnabled }).(pulumi.BoolPtrOutput) @@ -200,6 +229,16 @@ func (o AdditionalCapabilitiesResponsePtrOutput) Elem() AdditionalCapabilitiesRe }).(AdditionalCapabilitiesResponseOutput) } +// The flag that enables or disables hibernation capability on the VM. +func (o AdditionalCapabilitiesResponsePtrOutput) HibernationEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AdditionalCapabilitiesResponse) *bool { + if v == nil { + return nil + } + return v.HibernationEnabled + }).(pulumi.BoolPtrOutput) +} + // The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. func (o AdditionalCapabilitiesResponsePtrOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AdditionalCapabilitiesResponse) *bool { @@ -857,12 +896,214 @@ func (o ApiErrorResponsePtrOutput) Target() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Contains the list of gallery applications that should be made available to the VM/VMSS +type ApplicationProfile struct { + // Specifies the gallery applications that should be made available to the VM/VMSS + GalleryApplications []VMGalleryApplication `pulumi:"galleryApplications"` +} + +// ApplicationProfileInput is an input type that accepts ApplicationProfileArgs and ApplicationProfileOutput values. +// You can construct a concrete instance of `ApplicationProfileInput` via: +// +// ApplicationProfileArgs{...} +type ApplicationProfileInput interface { + pulumi.Input + + ToApplicationProfileOutput() ApplicationProfileOutput + ToApplicationProfileOutputWithContext(context.Context) ApplicationProfileOutput +} + +// Contains the list of gallery applications that should be made available to the VM/VMSS +type ApplicationProfileArgs struct { + // Specifies the gallery applications that should be made available to the VM/VMSS + GalleryApplications VMGalleryApplicationArrayInput `pulumi:"galleryApplications"` +} + +func (ApplicationProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationProfile)(nil)).Elem() +} + +func (i ApplicationProfileArgs) ToApplicationProfileOutput() ApplicationProfileOutput { + return i.ToApplicationProfileOutputWithContext(context.Background()) +} + +func (i ApplicationProfileArgs) ToApplicationProfileOutputWithContext(ctx context.Context) ApplicationProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationProfileOutput) +} + +func (i ApplicationProfileArgs) ToApplicationProfilePtrOutput() ApplicationProfilePtrOutput { + return i.ToApplicationProfilePtrOutputWithContext(context.Background()) +} + +func (i ApplicationProfileArgs) ToApplicationProfilePtrOutputWithContext(ctx context.Context) ApplicationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationProfileOutput).ToApplicationProfilePtrOutputWithContext(ctx) +} + +// ApplicationProfilePtrInput is an input type that accepts ApplicationProfileArgs, ApplicationProfilePtr and ApplicationProfilePtrOutput values. +// You can construct a concrete instance of `ApplicationProfilePtrInput` via: +// +// ApplicationProfileArgs{...} +// +// or: +// +// nil +type ApplicationProfilePtrInput interface { + pulumi.Input + + ToApplicationProfilePtrOutput() ApplicationProfilePtrOutput + ToApplicationProfilePtrOutputWithContext(context.Context) ApplicationProfilePtrOutput +} + +type applicationProfilePtrType ApplicationProfileArgs + +func ApplicationProfilePtr(v *ApplicationProfileArgs) ApplicationProfilePtrInput { + return (*applicationProfilePtrType)(v) +} + +func (*applicationProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationProfile)(nil)).Elem() +} + +func (i *applicationProfilePtrType) ToApplicationProfilePtrOutput() ApplicationProfilePtrOutput { + return i.ToApplicationProfilePtrOutputWithContext(context.Background()) +} + +func (i *applicationProfilePtrType) ToApplicationProfilePtrOutputWithContext(ctx context.Context) ApplicationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationProfilePtrOutput) +} + +// Contains the list of gallery applications that should be made available to the VM/VMSS +type ApplicationProfileOutput struct{ *pulumi.OutputState } + +func (ApplicationProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationProfile)(nil)).Elem() +} + +func (o ApplicationProfileOutput) ToApplicationProfileOutput() ApplicationProfileOutput { + return o +} + +func (o ApplicationProfileOutput) ToApplicationProfileOutputWithContext(ctx context.Context) ApplicationProfileOutput { + return o +} + +func (o ApplicationProfileOutput) ToApplicationProfilePtrOutput() ApplicationProfilePtrOutput { + return o.ToApplicationProfilePtrOutputWithContext(context.Background()) +} + +func (o ApplicationProfileOutput) ToApplicationProfilePtrOutputWithContext(ctx context.Context) ApplicationProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationProfile) *ApplicationProfile { + return &v + }).(ApplicationProfilePtrOutput) +} + +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o ApplicationProfileOutput) GalleryApplications() VMGalleryApplicationArrayOutput { + return o.ApplyT(func(v ApplicationProfile) []VMGalleryApplication { return v.GalleryApplications }).(VMGalleryApplicationArrayOutput) +} + +type ApplicationProfilePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationProfile)(nil)).Elem() +} + +func (o ApplicationProfilePtrOutput) ToApplicationProfilePtrOutput() ApplicationProfilePtrOutput { + return o +} + +func (o ApplicationProfilePtrOutput) ToApplicationProfilePtrOutputWithContext(ctx context.Context) ApplicationProfilePtrOutput { + return o +} + +func (o ApplicationProfilePtrOutput) Elem() ApplicationProfileOutput { + return o.ApplyT(func(v *ApplicationProfile) ApplicationProfile { + if v != nil { + return *v + } + var ret ApplicationProfile + return ret + }).(ApplicationProfileOutput) +} + +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o ApplicationProfilePtrOutput) GalleryApplications() VMGalleryApplicationArrayOutput { + return o.ApplyT(func(v *ApplicationProfile) []VMGalleryApplication { + if v == nil { + return nil + } + return v.GalleryApplications + }).(VMGalleryApplicationArrayOutput) +} + +// Contains the list of gallery applications that should be made available to the VM/VMSS +type ApplicationProfileResponse struct { + // Specifies the gallery applications that should be made available to the VM/VMSS + GalleryApplications []VMGalleryApplicationResponse `pulumi:"galleryApplications"` +} + +// Contains the list of gallery applications that should be made available to the VM/VMSS +type ApplicationProfileResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationProfileResponse)(nil)).Elem() +} + +func (o ApplicationProfileResponseOutput) ToApplicationProfileResponseOutput() ApplicationProfileResponseOutput { + return o +} + +func (o ApplicationProfileResponseOutput) ToApplicationProfileResponseOutputWithContext(ctx context.Context) ApplicationProfileResponseOutput { + return o +} + +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o ApplicationProfileResponseOutput) GalleryApplications() VMGalleryApplicationResponseArrayOutput { + return o.ApplyT(func(v ApplicationProfileResponse) []VMGalleryApplicationResponse { return v.GalleryApplications }).(VMGalleryApplicationResponseArrayOutput) +} + +type ApplicationProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationProfileResponse)(nil)).Elem() +} + +func (o ApplicationProfileResponsePtrOutput) ToApplicationProfileResponsePtrOutput() ApplicationProfileResponsePtrOutput { + return o +} + +func (o ApplicationProfileResponsePtrOutput) ToApplicationProfileResponsePtrOutputWithContext(ctx context.Context) ApplicationProfileResponsePtrOutput { + return o +} + +func (o ApplicationProfileResponsePtrOutput) Elem() ApplicationProfileResponseOutput { + return o.ApplyT(func(v *ApplicationProfileResponse) ApplicationProfileResponse { + if v != nil { + return *v + } + var ret ApplicationProfileResponse + return ret + }).(ApplicationProfileResponseOutput) +} + +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o ApplicationProfileResponsePtrOutput) GalleryApplications() VMGalleryApplicationResponseArrayOutput { + return o.ApplyT(func(v *ApplicationProfileResponse) []VMGalleryApplicationResponse { + if v == nil { + return nil + } + return v.GalleryApplications + }).(VMGalleryApplicationResponseArrayOutput) +} + // The configuration parameters used for performing automatic OS upgrade. type AutomaticOSUpgradePolicy struct { // Whether OS image rollback feature should be disabled. Default value is false. DisableAutomaticRollback *bool `pulumi:"disableAutomaticRollback"` - // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. + // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. EnableAutomaticOSUpgrade *bool `pulumi:"enableAutomaticOSUpgrade"` + // Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. + UseRollingUpgradePolicy *bool `pulumi:"useRollingUpgradePolicy"` } // AutomaticOSUpgradePolicyInput is an input type that accepts AutomaticOSUpgradePolicyArgs and AutomaticOSUpgradePolicyOutput values. @@ -880,8 +1121,10 @@ type AutomaticOSUpgradePolicyInput interface { type AutomaticOSUpgradePolicyArgs struct { // Whether OS image rollback feature should be disabled. Default value is false. DisableAutomaticRollback pulumi.BoolPtrInput `pulumi:"disableAutomaticRollback"` - // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. + // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. EnableAutomaticOSUpgrade pulumi.BoolPtrInput `pulumi:"enableAutomaticOSUpgrade"` + // Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. + UseRollingUpgradePolicy pulumi.BoolPtrInput `pulumi:"useRollingUpgradePolicy"` } func (AutomaticOSUpgradePolicyArgs) ElementType() reflect.Type { @@ -967,11 +1210,16 @@ func (o AutomaticOSUpgradePolicyOutput) DisableAutomaticRollback() pulumi.BoolPt return o.ApplyT(func(v AutomaticOSUpgradePolicy) *bool { return v.DisableAutomaticRollback }).(pulumi.BoolPtrOutput) } -// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. +// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. func (o AutomaticOSUpgradePolicyOutput) EnableAutomaticOSUpgrade() pulumi.BoolPtrOutput { return o.ApplyT(func(v AutomaticOSUpgradePolicy) *bool { return v.EnableAutomaticOSUpgrade }).(pulumi.BoolPtrOutput) } +// Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. +func (o AutomaticOSUpgradePolicyOutput) UseRollingUpgradePolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AutomaticOSUpgradePolicy) *bool { return v.UseRollingUpgradePolicy }).(pulumi.BoolPtrOutput) +} + type AutomaticOSUpgradePolicyPtrOutput struct{ *pulumi.OutputState } func (AutomaticOSUpgradePolicyPtrOutput) ElementType() reflect.Type { @@ -1006,7 +1254,7 @@ func (o AutomaticOSUpgradePolicyPtrOutput) DisableAutomaticRollback() pulumi.Boo }).(pulumi.BoolPtrOutput) } -// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. +// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. func (o AutomaticOSUpgradePolicyPtrOutput) EnableAutomaticOSUpgrade() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AutomaticOSUpgradePolicy) *bool { if v == nil { @@ -1016,12 +1264,24 @@ func (o AutomaticOSUpgradePolicyPtrOutput) EnableAutomaticOSUpgrade() pulumi.Boo }).(pulumi.BoolPtrOutput) } +// Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. +func (o AutomaticOSUpgradePolicyPtrOutput) UseRollingUpgradePolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AutomaticOSUpgradePolicy) *bool { + if v == nil { + return nil + } + return v.UseRollingUpgradePolicy + }).(pulumi.BoolPtrOutput) +} + // The configuration parameters used for performing automatic OS upgrade. type AutomaticOSUpgradePolicyResponse struct { // Whether OS image rollback feature should be disabled. Default value is false. DisableAutomaticRollback *bool `pulumi:"disableAutomaticRollback"` - // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. + // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. EnableAutomaticOSUpgrade *bool `pulumi:"enableAutomaticOSUpgrade"` + // Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. + UseRollingUpgradePolicy *bool `pulumi:"useRollingUpgradePolicy"` } // The configuration parameters used for performing automatic OS upgrade. @@ -1044,11 +1304,16 @@ func (o AutomaticOSUpgradePolicyResponseOutput) DisableAutomaticRollback() pulum return o.ApplyT(func(v AutomaticOSUpgradePolicyResponse) *bool { return v.DisableAutomaticRollback }).(pulumi.BoolPtrOutput) } -// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. +// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. func (o AutomaticOSUpgradePolicyResponseOutput) EnableAutomaticOSUpgrade() pulumi.BoolPtrOutput { return o.ApplyT(func(v AutomaticOSUpgradePolicyResponse) *bool { return v.EnableAutomaticOSUpgrade }).(pulumi.BoolPtrOutput) } +// Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. +func (o AutomaticOSUpgradePolicyResponseOutput) UseRollingUpgradePolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AutomaticOSUpgradePolicyResponse) *bool { return v.UseRollingUpgradePolicy }).(pulumi.BoolPtrOutput) +} + type AutomaticOSUpgradePolicyResponsePtrOutput struct{ *pulumi.OutputState } func (AutomaticOSUpgradePolicyResponsePtrOutput) ElementType() reflect.Type { @@ -1083,7 +1348,7 @@ func (o AutomaticOSUpgradePolicyResponsePtrOutput) DisableAutomaticRollback() pu }).(pulumi.BoolPtrOutput) } -// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false.

    If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. +// Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. Default value is false. If this is set to true for Windows based scale sets, [enableAutomaticUpdates](https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet) is automatically set to false and cannot be set to true. func (o AutomaticOSUpgradePolicyResponsePtrOutput) EnableAutomaticOSUpgrade() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AutomaticOSUpgradePolicyResponse) *bool { if v == nil { @@ -1093,12 +1358,24 @@ func (o AutomaticOSUpgradePolicyResponsePtrOutput) EnableAutomaticOSUpgrade() pu }).(pulumi.BoolPtrOutput) } +// Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Default value is false. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. +func (o AutomaticOSUpgradePolicyResponsePtrOutput) UseRollingUpgradePolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AutomaticOSUpgradePolicyResponse) *bool { + if v == nil { + return nil + } + return v.UseRollingUpgradePolicy + }).(pulumi.BoolPtrOutput) +} + // Specifies the configuration parameters for automatic repairs on the virtual machine scale set. type AutomaticRepairsPolicy struct { // Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false. Enabled *bool `pulumi:"enabled"` - // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). + // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). GracePeriod *string `pulumi:"gracePeriod"` + // Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. + RepairAction *string `pulumi:"repairAction"` } // AutomaticRepairsPolicyInput is an input type that accepts AutomaticRepairsPolicyArgs and AutomaticRepairsPolicyOutput values. @@ -1116,8 +1393,10 @@ type AutomaticRepairsPolicyInput interface { type AutomaticRepairsPolicyArgs struct { // Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). + // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). GracePeriod pulumi.StringPtrInput `pulumi:"gracePeriod"` + // Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. + RepairAction pulumi.StringPtrInput `pulumi:"repairAction"` } func (AutomaticRepairsPolicyArgs) ElementType() reflect.Type { @@ -1203,11 +1482,16 @@ func (o AutomaticRepairsPolicyOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v AutomaticRepairsPolicy) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). +// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). func (o AutomaticRepairsPolicyOutput) GracePeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v AutomaticRepairsPolicy) *string { return v.GracePeriod }).(pulumi.StringPtrOutput) } +// Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. +func (o AutomaticRepairsPolicyOutput) RepairAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v AutomaticRepairsPolicy) *string { return v.RepairAction }).(pulumi.StringPtrOutput) +} + type AutomaticRepairsPolicyPtrOutput struct{ *pulumi.OutputState } func (AutomaticRepairsPolicyPtrOutput) ElementType() reflect.Type { @@ -1242,7 +1526,7 @@ func (o AutomaticRepairsPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). +// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). func (o AutomaticRepairsPolicyPtrOutput) GracePeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v *AutomaticRepairsPolicy) *string { if v == nil { @@ -1252,12 +1536,24 @@ func (o AutomaticRepairsPolicyPtrOutput) GracePeriod() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. +func (o AutomaticRepairsPolicyPtrOutput) RepairAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AutomaticRepairsPolicy) *string { + if v == nil { + return nil + } + return v.RepairAction + }).(pulumi.StringPtrOutput) +} + // Specifies the configuration parameters for automatic repairs on the virtual machine scale set. type AutomaticRepairsPolicyResponse struct { // Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false. Enabled *bool `pulumi:"enabled"` - // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). + // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). GracePeriod *string `pulumi:"gracePeriod"` + // Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. + RepairAction *string `pulumi:"repairAction"` } // Specifies the configuration parameters for automatic repairs on the virtual machine scale set. @@ -1280,11 +1576,16 @@ func (o AutomaticRepairsPolicyResponseOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v AutomaticRepairsPolicyResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). +// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). func (o AutomaticRepairsPolicyResponseOutput) GracePeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v AutomaticRepairsPolicyResponse) *string { return v.GracePeriod }).(pulumi.StringPtrOutput) } +// Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. +func (o AutomaticRepairsPolicyResponseOutput) RepairAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v AutomaticRepairsPolicyResponse) *string { return v.RepairAction }).(pulumi.StringPtrOutput) +} + type AutomaticRepairsPolicyResponsePtrOutput struct{ *pulumi.OutputState } func (AutomaticRepairsPolicyResponsePtrOutput) ElementType() reflect.Type { @@ -1319,7 +1620,7 @@ func (o AutomaticRepairsPolicyResponsePtrOutput) Enabled() pulumi.BoolPtrOutput }).(pulumi.BoolPtrOutput) } -// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). +// The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. This helps avoid premature or accidental repairs. The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 10 minutes (PT10M), which is also the default value. The maximum allowed grace period is 90 minutes (PT90M). func (o AutomaticRepairsPolicyResponsePtrOutput) GracePeriod() pulumi.StringPtrOutput { return o.ApplyT(func(v *AutomaticRepairsPolicyResponse) *string { if v == nil { @@ -1329,6 +1630,16 @@ func (o AutomaticRepairsPolicyResponsePtrOutput) GracePeriod() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } +// Type of repair action (replace, restart, reimage) that will be used for repairing unhealthy virtual machines in the scale set. Default value is replace. +func (o AutomaticRepairsPolicyResponsePtrOutput) RepairAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AutomaticRepairsPolicyResponse) *string { + if v == nil { + return nil + } + return v.RepairAction + }).(pulumi.StringPtrOutput) +} + // Describes the properties of an virtual machine instance view for available patch summary. type AvailablePatchSummaryResponse struct { // The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs. @@ -1508,7 +1819,7 @@ func (o AvailablePatchSummaryResponsePtrOutput) Status() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// Specifies the billing related details of a Azure Spot VM or VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01. type BillingProfile struct { // Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars.

    This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price.

    The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS.

    Possible values are:

    - Any decimal value greater than zero. Example: 0.01538

    -1 – indicates default price to be up-to on-demand.

    You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you.

    Minimum api-version: 2019-03-01. MaxPrice *float64 `pulumi:"maxPrice"` @@ -1525,7 +1836,7 @@ type BillingProfileInput interface { ToBillingProfileOutputWithContext(context.Context) BillingProfileOutput } -// Specifies the billing related details of a Azure Spot VM or VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01. type BillingProfileArgs struct { // Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars.

    This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price.

    The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS.

    Possible values are:

    - Any decimal value greater than zero. Example: 0.01538

    -1 – indicates default price to be up-to on-demand.

    You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you.

    Minimum api-version: 2019-03-01. MaxPrice pulumi.Float64PtrInput `pulumi:"maxPrice"` @@ -1584,7 +1895,7 @@ func (i *billingProfilePtrType) ToBillingProfilePtrOutputWithContext(ctx context return pulumi.ToOutputWithContext(ctx, i).(BillingProfilePtrOutput) } -// Specifies the billing related details of a Azure Spot VM or VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01. type BillingProfileOutput struct{ *pulumi.OutputState } func (BillingProfileOutput) ElementType() reflect.Type { @@ -1648,13 +1959,13 @@ func (o BillingProfilePtrOutput) MaxPrice() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } -// Specifies the billing related details of a Azure Spot VM or VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01. type BillingProfileResponse struct { // Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars.

    This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is greater than the current Azure Spot price.

    The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS.

    Possible values are:

    - Any decimal value greater than zero. Example: 0.01538

    -1 – indicates default price to be up-to on-demand.

    You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if it is not provided by you.

    Minimum api-version: 2019-03-01. MaxPrice *float64 `pulumi:"maxPrice"` } -// Specifies the billing related details of a Azure Spot VM or VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot VM or VMSS. Minimum api-version: 2019-03-01. type BillingProfileResponseOutput struct{ *pulumi.OutputState } func (BillingProfileResponseOutput) ElementType() reflect.Type { @@ -1708,11 +2019,11 @@ func (o BillingProfileResponsePtrOutput) MaxPrice() pulumi.Float64PtrOutput { }).(pulumi.Float64PtrOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. type BootDiagnostics struct { // Whether boot diagnostics should be enabled on the Virtual Machine. Enabled *bool `pulumi:"enabled"` - // Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. + // Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. StorageUri *string `pulumi:"storageUri"` } @@ -1727,11 +2038,11 @@ type BootDiagnosticsInput interface { ToBootDiagnosticsOutputWithContext(context.Context) BootDiagnosticsOutput } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. type BootDiagnosticsArgs struct { // Whether boot diagnostics should be enabled on the Virtual Machine. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. + // Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. StorageUri pulumi.StringPtrInput `pulumi:"storageUri"` } @@ -1788,7 +2099,7 @@ func (i *bootDiagnosticsPtrType) ToBootDiagnosticsPtrOutputWithContext(ctx conte return pulumi.ToOutputWithContext(ctx, i).(BootDiagnosticsPtrOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. type BootDiagnosticsOutput struct{ *pulumi.OutputState } func (BootDiagnosticsOutput) ElementType() reflect.Type { @@ -1818,7 +2129,7 @@ func (o BootDiagnosticsOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v BootDiagnostics) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. +// Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. func (o BootDiagnosticsOutput) StorageUri() pulumi.StringPtrOutput { return o.ApplyT(func(v BootDiagnostics) *string { return v.StorageUri }).(pulumi.StringPtrOutput) } @@ -1857,7 +2168,7 @@ func (o BootDiagnosticsPtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. +// Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. func (o BootDiagnosticsPtrOutput) StorageUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BootDiagnostics) *string { if v == nil { @@ -1869,11 +2180,11 @@ func (o BootDiagnosticsPtrOutput) StorageUri() pulumi.StringPtrOutput { // The instance view of a virtual machine boot diagnostics. type BootDiagnosticsInstanceViewResponse struct { - // The console screenshot blob URI.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. + // The console screenshot blob URI. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. ConsoleScreenshotBlobUri string `pulumi:"consoleScreenshotBlobUri"` - // The serial console log blob Uri.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. + // The serial console log blob Uri. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. SerialConsoleLogBlobUri string `pulumi:"serialConsoleLogBlobUri"` - // The boot diagnostics status information for the VM.

    NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. + // The boot diagnostics status information for the VM. **Note:** It will be set only if there are errors encountered in enabling boot diagnostics. Status InstanceViewStatusResponse `pulumi:"status"` } @@ -1892,17 +2203,17 @@ func (o BootDiagnosticsInstanceViewResponseOutput) ToBootDiagnosticsInstanceView return o } -// The console screenshot blob URI.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. +// The console screenshot blob URI. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. func (o BootDiagnosticsInstanceViewResponseOutput) ConsoleScreenshotBlobUri() pulumi.StringOutput { return o.ApplyT(func(v BootDiagnosticsInstanceViewResponse) string { return v.ConsoleScreenshotBlobUri }).(pulumi.StringOutput) } -// The serial console log blob Uri.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. +// The serial console log blob Uri. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. func (o BootDiagnosticsInstanceViewResponseOutput) SerialConsoleLogBlobUri() pulumi.StringOutput { return o.ApplyT(func(v BootDiagnosticsInstanceViewResponse) string { return v.SerialConsoleLogBlobUri }).(pulumi.StringOutput) } -// The boot diagnostics status information for the VM.

    NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. +// The boot diagnostics status information for the VM. **Note:** It will be set only if there are errors encountered in enabling boot diagnostics. func (o BootDiagnosticsInstanceViewResponseOutput) Status() InstanceViewStatusResponseOutput { return o.ApplyT(func(v BootDiagnosticsInstanceViewResponse) InstanceViewStatusResponse { return v.Status }).(InstanceViewStatusResponseOutput) } @@ -1931,7 +2242,7 @@ func (o BootDiagnosticsInstanceViewResponsePtrOutput) Elem() BootDiagnosticsInst }).(BootDiagnosticsInstanceViewResponseOutput) } -// The console screenshot blob URI.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. +// The console screenshot blob URI. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. func (o BootDiagnosticsInstanceViewResponsePtrOutput) ConsoleScreenshotBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BootDiagnosticsInstanceViewResponse) *string { if v == nil { @@ -1941,7 +2252,7 @@ func (o BootDiagnosticsInstanceViewResponsePtrOutput) ConsoleScreenshotBlobUri() }).(pulumi.StringPtrOutput) } -// The serial console log blob Uri.

    NOTE: This will **not** be set if boot diagnostics is currently enabled with managed storage. +// The serial console log blob Uri. **Note:** This will **not** be set if boot diagnostics is currently enabled with managed storage. func (o BootDiagnosticsInstanceViewResponsePtrOutput) SerialConsoleLogBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BootDiagnosticsInstanceViewResponse) *string { if v == nil { @@ -1951,7 +2262,7 @@ func (o BootDiagnosticsInstanceViewResponsePtrOutput) SerialConsoleLogBlobUri() }).(pulumi.StringPtrOutput) } -// The boot diagnostics status information for the VM.

    NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. +// The boot diagnostics status information for the VM. **Note:** It will be set only if there are errors encountered in enabling boot diagnostics. func (o BootDiagnosticsInstanceViewResponsePtrOutput) Status() InstanceViewStatusResponsePtrOutput { return o.ApplyT(func(v *BootDiagnosticsInstanceViewResponse) *InstanceViewStatusResponse { if v == nil { @@ -1961,15 +2272,15 @@ func (o BootDiagnosticsInstanceViewResponsePtrOutput) Status() InstanceViewStatu }).(InstanceViewStatusResponsePtrOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. type BootDiagnosticsResponse struct { // Whether boot diagnostics should be enabled on the Virtual Machine. Enabled *bool `pulumi:"enabled"` - // Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. + // Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. StorageUri *string `pulumi:"storageUri"` } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. type BootDiagnosticsResponseOutput struct{ *pulumi.OutputState } func (BootDiagnosticsResponseOutput) ElementType() reflect.Type { @@ -1989,7 +2300,7 @@ func (o BootDiagnosticsResponseOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v BootDiagnosticsResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. +// Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. func (o BootDiagnosticsResponseOutput) StorageUri() pulumi.StringPtrOutput { return o.ApplyT(func(v BootDiagnosticsResponse) *string { return v.StorageUri }).(pulumi.StringPtrOutput) } @@ -2028,7 +2339,7 @@ func (o BootDiagnosticsResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Uri of the storage account to use for placing the console output and screenshot.

    If storageUri is not specified while enabling boot diagnostics, managed storage will be used. +// Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used. func (o BootDiagnosticsResponsePtrOutput) StorageUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BootDiagnosticsResponse) *string { if v == nil { @@ -2163,8 +2474,210 @@ func (o CapacityReservationInstanceViewWithNameResponseArrayOutput) Index(i pulu }).(CapacityReservationInstanceViewWithNameResponseOutput) } +// The parameters of a capacity reservation Profile. +type CapacityReservationProfile struct { + // Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. + CapacityReservationGroup *SubResource `pulumi:"capacityReservationGroup"` +} + +// CapacityReservationProfileInput is an input type that accepts CapacityReservationProfileArgs and CapacityReservationProfileOutput values. +// You can construct a concrete instance of `CapacityReservationProfileInput` via: +// +// CapacityReservationProfileArgs{...} +type CapacityReservationProfileInput interface { + pulumi.Input + + ToCapacityReservationProfileOutput() CapacityReservationProfileOutput + ToCapacityReservationProfileOutputWithContext(context.Context) CapacityReservationProfileOutput +} + +// The parameters of a capacity reservation Profile. +type CapacityReservationProfileArgs struct { + // Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. + CapacityReservationGroup SubResourcePtrInput `pulumi:"capacityReservationGroup"` +} + +func (CapacityReservationProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityReservationProfile)(nil)).Elem() +} + +func (i CapacityReservationProfileArgs) ToCapacityReservationProfileOutput() CapacityReservationProfileOutput { + return i.ToCapacityReservationProfileOutputWithContext(context.Background()) +} + +func (i CapacityReservationProfileArgs) ToCapacityReservationProfileOutputWithContext(ctx context.Context) CapacityReservationProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityReservationProfileOutput) +} + +func (i CapacityReservationProfileArgs) ToCapacityReservationProfilePtrOutput() CapacityReservationProfilePtrOutput { + return i.ToCapacityReservationProfilePtrOutputWithContext(context.Background()) +} + +func (i CapacityReservationProfileArgs) ToCapacityReservationProfilePtrOutputWithContext(ctx context.Context) CapacityReservationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityReservationProfileOutput).ToCapacityReservationProfilePtrOutputWithContext(ctx) +} + +// CapacityReservationProfilePtrInput is an input type that accepts CapacityReservationProfileArgs, CapacityReservationProfilePtr and CapacityReservationProfilePtrOutput values. +// You can construct a concrete instance of `CapacityReservationProfilePtrInput` via: +// +// CapacityReservationProfileArgs{...} +// +// or: +// +// nil +type CapacityReservationProfilePtrInput interface { + pulumi.Input + + ToCapacityReservationProfilePtrOutput() CapacityReservationProfilePtrOutput + ToCapacityReservationProfilePtrOutputWithContext(context.Context) CapacityReservationProfilePtrOutput +} + +type capacityReservationProfilePtrType CapacityReservationProfileArgs + +func CapacityReservationProfilePtr(v *CapacityReservationProfileArgs) CapacityReservationProfilePtrInput { + return (*capacityReservationProfilePtrType)(v) +} + +func (*capacityReservationProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityReservationProfile)(nil)).Elem() +} + +func (i *capacityReservationProfilePtrType) ToCapacityReservationProfilePtrOutput() CapacityReservationProfilePtrOutput { + return i.ToCapacityReservationProfilePtrOutputWithContext(context.Background()) +} + +func (i *capacityReservationProfilePtrType) ToCapacityReservationProfilePtrOutputWithContext(ctx context.Context) CapacityReservationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityReservationProfilePtrOutput) +} + +// The parameters of a capacity reservation Profile. +type CapacityReservationProfileOutput struct{ *pulumi.OutputState } + +func (CapacityReservationProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityReservationProfile)(nil)).Elem() +} + +func (o CapacityReservationProfileOutput) ToCapacityReservationProfileOutput() CapacityReservationProfileOutput { + return o +} + +func (o CapacityReservationProfileOutput) ToCapacityReservationProfileOutputWithContext(ctx context.Context) CapacityReservationProfileOutput { + return o +} + +func (o CapacityReservationProfileOutput) ToCapacityReservationProfilePtrOutput() CapacityReservationProfilePtrOutput { + return o.ToCapacityReservationProfilePtrOutputWithContext(context.Background()) +} + +func (o CapacityReservationProfileOutput) ToCapacityReservationProfilePtrOutputWithContext(ctx context.Context) CapacityReservationProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityReservationProfile) *CapacityReservationProfile { + return &v + }).(CapacityReservationProfilePtrOutput) +} + +// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. +func (o CapacityReservationProfileOutput) CapacityReservationGroup() SubResourcePtrOutput { + return o.ApplyT(func(v CapacityReservationProfile) *SubResource { return v.CapacityReservationGroup }).(SubResourcePtrOutput) +} + +type CapacityReservationProfilePtrOutput struct{ *pulumi.OutputState } + +func (CapacityReservationProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityReservationProfile)(nil)).Elem() +} + +func (o CapacityReservationProfilePtrOutput) ToCapacityReservationProfilePtrOutput() CapacityReservationProfilePtrOutput { + return o +} + +func (o CapacityReservationProfilePtrOutput) ToCapacityReservationProfilePtrOutputWithContext(ctx context.Context) CapacityReservationProfilePtrOutput { + return o +} + +func (o CapacityReservationProfilePtrOutput) Elem() CapacityReservationProfileOutput { + return o.ApplyT(func(v *CapacityReservationProfile) CapacityReservationProfile { + if v != nil { + return *v + } + var ret CapacityReservationProfile + return ret + }).(CapacityReservationProfileOutput) +} + +// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. +func (o CapacityReservationProfilePtrOutput) CapacityReservationGroup() SubResourcePtrOutput { + return o.ApplyT(func(v *CapacityReservationProfile) *SubResource { + if v == nil { + return nil + } + return v.CapacityReservationGroup + }).(SubResourcePtrOutput) +} + +// The parameters of a capacity reservation Profile. +type CapacityReservationProfileResponse struct { + // Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. + CapacityReservationGroup *SubResourceResponse `pulumi:"capacityReservationGroup"` +} + +// The parameters of a capacity reservation Profile. +type CapacityReservationProfileResponseOutput struct{ *pulumi.OutputState } + +func (CapacityReservationProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityReservationProfileResponse)(nil)).Elem() +} + +func (o CapacityReservationProfileResponseOutput) ToCapacityReservationProfileResponseOutput() CapacityReservationProfileResponseOutput { + return o +} + +func (o CapacityReservationProfileResponseOutput) ToCapacityReservationProfileResponseOutputWithContext(ctx context.Context) CapacityReservationProfileResponseOutput { + return o +} + +// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. +func (o CapacityReservationProfileResponseOutput) CapacityReservationGroup() SubResourceResponsePtrOutput { + return o.ApplyT(func(v CapacityReservationProfileResponse) *SubResourceResponse { return v.CapacityReservationGroup }).(SubResourceResponsePtrOutput) +} + +type CapacityReservationProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (CapacityReservationProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityReservationProfileResponse)(nil)).Elem() +} + +func (o CapacityReservationProfileResponsePtrOutput) ToCapacityReservationProfileResponsePtrOutput() CapacityReservationProfileResponsePtrOutput { + return o +} + +func (o CapacityReservationProfileResponsePtrOutput) ToCapacityReservationProfileResponsePtrOutputWithContext(ctx context.Context) CapacityReservationProfileResponsePtrOutput { + return o +} + +func (o CapacityReservationProfileResponsePtrOutput) Elem() CapacityReservationProfileResponseOutput { + return o.ApplyT(func(v *CapacityReservationProfileResponse) CapacityReservationProfileResponse { + if v != nil { + return *v + } + var ret CapacityReservationProfileResponse + return ret + }).(CapacityReservationProfileResponseOutput) +} + +// Specifies the capacity reservation group resource id that should be used for allocating the virtual machine or scaleset vm instances provided enough capacity has been reserved. Please refer to https://aka.ms/CapacityReservation for more details. +func (o CapacityReservationProfileResponsePtrOutput) CapacityReservationGroup() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *CapacityReservationProfileResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.CapacityReservationGroup + }).(SubResourceResponsePtrOutput) +} + // Represents the capacity reservation utilization in terms of resources allocated. type CapacityReservationUtilizationResponse struct { + // The value provides the current capacity of the VM size which was reserved successfully and for which the customer is getting billed. Minimum api-version: 2022-08-01. + CurrentCapacity int `pulumi:"currentCapacity"` // A list of all virtual machines resource ids allocated against the capacity reservation. VirtualMachinesAllocated []SubResourceReadOnlyResponse `pulumi:"virtualMachinesAllocated"` } @@ -2184,6 +2697,11 @@ func (o CapacityReservationUtilizationResponseOutput) ToCapacityReservationUtili return o } +// The value provides the current capacity of the VM size which was reserved successfully and for which the customer is getting billed. Minimum api-version: 2022-08-01. +func (o CapacityReservationUtilizationResponseOutput) CurrentCapacity() pulumi.IntOutput { + return o.ApplyT(func(v CapacityReservationUtilizationResponse) int { return v.CurrentCapacity }).(pulumi.IntOutput) +} + // A list of all virtual machines resource ids allocated against the capacity reservation. func (o CapacityReservationUtilizationResponseOutput) VirtualMachinesAllocated() SubResourceReadOnlyResponseArrayOutput { return o.ApplyT(func(v CapacityReservationUtilizationResponse) []SubResourceReadOnlyResponse { @@ -2215,6 +2733,16 @@ func (o CapacityReservationUtilizationResponsePtrOutput) Elem() CapacityReservat }).(CapacityReservationUtilizationResponseOutput) } +// The value provides the current capacity of the VM size which was reserved successfully and for which the customer is getting billed. Minimum api-version: 2022-08-01. +func (o CapacityReservationUtilizationResponsePtrOutput) CurrentCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CapacityReservationUtilizationResponse) *int { + if v == nil { + return nil + } + return &v.CurrentCapacity + }).(pulumi.IntPtrOutput) +} + // A list of all virtual machines resource ids allocated against the capacity reservation. func (o CapacityReservationUtilizationResponsePtrOutput) VirtualMachinesAllocated() SubResourceReadOnlyResponseArrayOutput { return o.ApplyT(func(v *CapacityReservationUtilizationResponse) []SubResourceReadOnlyResponse { @@ -2436,14 +2964,15 @@ type CloudServiceExtensionProperties struct { // it is up to handler implementation whether to re-run it or not ForceUpdateTag *string `pulumi:"forceUpdateTag"` // Protected settings for the extension which are encrypted before sent to the role instance. - ProtectedSettings *string `pulumi:"protectedSettings"` + ProtectedSettings interface{} `pulumi:"protectedSettings"` + // Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. ProtectedSettingsFromKeyVault *CloudServiceVaultAndSecretReference `pulumi:"protectedSettingsFromKeyVault"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // Optional list of roles to apply this extension. If property is not specified or '*' is specified, extension is applied to all roles in the cloud service. RolesAppliedTo []string `pulumi:"rolesAppliedTo"` // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. - Settings *string `pulumi:"settings"` + Settings interface{} `pulumi:"settings"` // Specifies the type of the extension. Type *string `pulumi:"type"` // Specifies the version of the extension. Specifies the version of the extension. If this element is not specified or an asterisk (*) is used as the value, the latest version of the extension is used. If the value is specified with a major version number and an asterisk as the minor version number (X.), the latest minor version of the specified major version is selected. If a major version number and a minor version number are specified (X.Y), the specific extension version is selected. If a version is specified, an auto-upgrade is performed on the role instance. @@ -2472,14 +3001,15 @@ type CloudServiceExtensionPropertiesArgs struct { // it is up to handler implementation whether to re-run it or not ForceUpdateTag pulumi.StringPtrInput `pulumi:"forceUpdateTag"` // Protected settings for the extension which are encrypted before sent to the role instance. - ProtectedSettings pulumi.StringPtrInput `pulumi:"protectedSettings"` + ProtectedSettings pulumi.Input `pulumi:"protectedSettings"` + // Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. ProtectedSettingsFromKeyVault CloudServiceVaultAndSecretReferencePtrInput `pulumi:"protectedSettingsFromKeyVault"` // The name of the extension handler publisher. Publisher pulumi.StringPtrInput `pulumi:"publisher"` // Optional list of roles to apply this extension. If property is not specified or '*' is specified, extension is applied to all roles in the cloud service. RolesAppliedTo pulumi.StringArrayInput `pulumi:"rolesAppliedTo"` // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. - Settings pulumi.StringPtrInput `pulumi:"settings"` + Settings pulumi.Input `pulumi:"settings"` // Specifies the type of the extension. Type pulumi.StringPtrInput `pulumi:"type"` // Specifies the version of the extension. Specifies the version of the extension. If this element is not specified or an asterisk (*) is used as the value, the latest version of the extension is used. If the value is specified with a major version number and an asterisk as the minor version number (X.), the latest minor version of the specified major version is selected. If a major version number and a minor version number are specified (X.Y), the specific extension version is selected. If a version is specified, an auto-upgrade is performed on the role instance. @@ -2579,10 +3109,11 @@ func (o CloudServiceExtensionPropertiesOutput) ForceUpdateTag() pulumi.StringPtr } // Protected settings for the extension which are encrypted before sent to the role instance. -func (o CloudServiceExtensionPropertiesOutput) ProtectedSettings() pulumi.StringPtrOutput { - return o.ApplyT(func(v CloudServiceExtensionProperties) *string { return v.ProtectedSettings }).(pulumi.StringPtrOutput) +func (o CloudServiceExtensionPropertiesOutput) ProtectedSettings() pulumi.AnyOutput { + return o.ApplyT(func(v CloudServiceExtensionProperties) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. func (o CloudServiceExtensionPropertiesOutput) ProtectedSettingsFromKeyVault() CloudServiceVaultAndSecretReferencePtrOutput { return o.ApplyT(func(v CloudServiceExtensionProperties) *CloudServiceVaultAndSecretReference { return v.ProtectedSettingsFromKeyVault @@ -2600,8 +3131,8 @@ func (o CloudServiceExtensionPropertiesOutput) RolesAppliedTo() pulumi.StringArr } // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. -func (o CloudServiceExtensionPropertiesOutput) Settings() pulumi.StringPtrOutput { - return o.ApplyT(func(v CloudServiceExtensionProperties) *string { return v.Settings }).(pulumi.StringPtrOutput) +func (o CloudServiceExtensionPropertiesOutput) Settings() pulumi.AnyOutput { + return o.ApplyT(func(v CloudServiceExtensionProperties) interface{} { return v.Settings }).(pulumi.AnyOutput) } // Specifies the type of the extension. @@ -2663,15 +3194,16 @@ func (o CloudServiceExtensionPropertiesPtrOutput) ForceUpdateTag() pulumi.String } // Protected settings for the extension which are encrypted before sent to the role instance. -func (o CloudServiceExtensionPropertiesPtrOutput) ProtectedSettings() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CloudServiceExtensionProperties) *string { +func (o CloudServiceExtensionPropertiesPtrOutput) ProtectedSettings() pulumi.AnyOutput { + return o.ApplyT(func(v *CloudServiceExtensionProperties) interface{} { if v == nil { return nil } return v.ProtectedSettings - }).(pulumi.StringPtrOutput) + }).(pulumi.AnyOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. func (o CloudServiceExtensionPropertiesPtrOutput) ProtectedSettingsFromKeyVault() CloudServiceVaultAndSecretReferencePtrOutput { return o.ApplyT(func(v *CloudServiceExtensionProperties) *CloudServiceVaultAndSecretReference { if v == nil { @@ -2702,13 +3234,13 @@ func (o CloudServiceExtensionPropertiesPtrOutput) RolesAppliedTo() pulumi.String } // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. -func (o CloudServiceExtensionPropertiesPtrOutput) Settings() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CloudServiceExtensionProperties) *string { +func (o CloudServiceExtensionPropertiesPtrOutput) Settings() pulumi.AnyOutput { + return o.ApplyT(func(v *CloudServiceExtensionProperties) interface{} { if v == nil { return nil } return v.Settings - }).(pulumi.StringPtrOutput) + }).(pulumi.AnyOutput) } // Specifies the type of the extension. @@ -2742,7 +3274,8 @@ type CloudServiceExtensionPropertiesResponse struct { // it is up to handler implementation whether to re-run it or not ForceUpdateTag *string `pulumi:"forceUpdateTag"` // Protected settings for the extension which are encrypted before sent to the role instance. - ProtectedSettings *string `pulumi:"protectedSettings"` + ProtectedSettings interface{} `pulumi:"protectedSettings"` + // Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. ProtectedSettingsFromKeyVault *CloudServiceVaultAndSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` @@ -2751,7 +3284,7 @@ type CloudServiceExtensionPropertiesResponse struct { // Optional list of roles to apply this extension. If property is not specified or '*' is specified, extension is applied to all roles in the cloud service. RolesAppliedTo []string `pulumi:"rolesAppliedTo"` // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. - Settings *string `pulumi:"settings"` + Settings interface{} `pulumi:"settings"` // Specifies the type of the extension. Type *string `pulumi:"type"` // Specifies the version of the extension. Specifies the version of the extension. If this element is not specified or an asterisk (*) is used as the value, the latest version of the extension is used. If the value is specified with a major version number and an asterisk as the minor version number (X.), the latest minor version of the specified major version is selected. If a major version number and a minor version number are specified (X.Y), the specific extension version is selected. If a version is specified, an auto-upgrade is performed on the role instance. @@ -2788,10 +3321,11 @@ func (o CloudServiceExtensionPropertiesResponseOutput) ForceUpdateTag() pulumi.S } // Protected settings for the extension which are encrypted before sent to the role instance. -func (o CloudServiceExtensionPropertiesResponseOutput) ProtectedSettings() pulumi.StringPtrOutput { - return o.ApplyT(func(v CloudServiceExtensionPropertiesResponse) *string { return v.ProtectedSettings }).(pulumi.StringPtrOutput) +func (o CloudServiceExtensionPropertiesResponseOutput) ProtectedSettings() pulumi.AnyOutput { + return o.ApplyT(func(v CloudServiceExtensionPropertiesResponse) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. func (o CloudServiceExtensionPropertiesResponseOutput) ProtectedSettingsFromKeyVault() CloudServiceVaultAndSecretReferenceResponsePtrOutput { return o.ApplyT(func(v CloudServiceExtensionPropertiesResponse) *CloudServiceVaultAndSecretReferenceResponse { return v.ProtectedSettingsFromKeyVault @@ -2814,8 +3348,8 @@ func (o CloudServiceExtensionPropertiesResponseOutput) RolesAppliedTo() pulumi.S } // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. -func (o CloudServiceExtensionPropertiesResponseOutput) Settings() pulumi.StringPtrOutput { - return o.ApplyT(func(v CloudServiceExtensionPropertiesResponse) *string { return v.Settings }).(pulumi.StringPtrOutput) +func (o CloudServiceExtensionPropertiesResponseOutput) Settings() pulumi.AnyOutput { + return o.ApplyT(func(v CloudServiceExtensionPropertiesResponse) interface{} { return v.Settings }).(pulumi.AnyOutput) } // Specifies the type of the extension. @@ -2877,15 +3411,16 @@ func (o CloudServiceExtensionPropertiesResponsePtrOutput) ForceUpdateTag() pulum } // Protected settings for the extension which are encrypted before sent to the role instance. -func (o CloudServiceExtensionPropertiesResponsePtrOutput) ProtectedSettings() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CloudServiceExtensionPropertiesResponse) *string { +func (o CloudServiceExtensionPropertiesResponsePtrOutput) ProtectedSettings() pulumi.AnyOutput { + return o.ApplyT(func(v *CloudServiceExtensionPropertiesResponse) interface{} { if v == nil { return nil } return v.ProtectedSettings - }).(pulumi.StringPtrOutput) + }).(pulumi.AnyOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. func (o CloudServiceExtensionPropertiesResponsePtrOutput) ProtectedSettingsFromKeyVault() CloudServiceVaultAndSecretReferenceResponsePtrOutput { return o.ApplyT(func(v *CloudServiceExtensionPropertiesResponse) *CloudServiceVaultAndSecretReferenceResponse { if v == nil { @@ -2926,13 +3461,13 @@ func (o CloudServiceExtensionPropertiesResponsePtrOutput) RolesAppliedTo() pulum } // Public settings for the extension. For JSON extensions, this is the JSON settings for the extension. For XML Extension (like RDP), this is the XML setting for the extension. -func (o CloudServiceExtensionPropertiesResponsePtrOutput) Settings() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CloudServiceExtensionPropertiesResponse) *string { +func (o CloudServiceExtensionPropertiesResponsePtrOutput) Settings() pulumi.AnyOutput { + return o.ApplyT(func(v *CloudServiceExtensionPropertiesResponse) interface{} { if v == nil { return nil } return v.Settings - }).(pulumi.StringPtrOutput) + }).(pulumi.AnyOutput) } // Specifies the type of the extension. @@ -2959,6 +3494,10 @@ func (o CloudServiceExtensionPropertiesResponsePtrOutput) TypeHandlerVersion() p type CloudServiceNetworkProfile struct { // List of Load balancer configurations. Cloud service can have up to two load balancer configurations, corresponding to a Public Load Balancer and an Internal Load Balancer. LoadBalancerConfigurations []LoadBalancerConfiguration `pulumi:"loadBalancerConfigurations"` + // Slot type for the cloud service. + // Possible values are

    **Production**

    **Staging**

    + // If not specified, the default value is Production. + SlotType *string `pulumi:"slotType"` // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. SwappableCloudService *SubResource `pulumi:"swappableCloudService"` } @@ -2978,6 +3517,10 @@ type CloudServiceNetworkProfileInput interface { type CloudServiceNetworkProfileArgs struct { // List of Load balancer configurations. Cloud service can have up to two load balancer configurations, corresponding to a Public Load Balancer and an Internal Load Balancer. LoadBalancerConfigurations LoadBalancerConfigurationArrayInput `pulumi:"loadBalancerConfigurations"` + // Slot type for the cloud service. + // Possible values are

    **Production**

    **Staging**

    + // If not specified, the default value is Production. + SlotType pulumi.StringPtrInput `pulumi:"slotType"` // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. SwappableCloudService SubResourcePtrInput `pulumi:"swappableCloudService"` } @@ -3065,6 +3608,13 @@ func (o CloudServiceNetworkProfileOutput) LoadBalancerConfigurations() LoadBalan return o.ApplyT(func(v CloudServiceNetworkProfile) []LoadBalancerConfiguration { return v.LoadBalancerConfigurations }).(LoadBalancerConfigurationArrayOutput) } +// Slot type for the cloud service. +// Possible values are

    **Production**

    **Staging**

    +// If not specified, the default value is Production. +func (o CloudServiceNetworkProfileOutput) SlotType() pulumi.StringPtrOutput { + return o.ApplyT(func(v CloudServiceNetworkProfile) *string { return v.SlotType }).(pulumi.StringPtrOutput) +} + // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. func (o CloudServiceNetworkProfileOutput) SwappableCloudService() SubResourcePtrOutput { return o.ApplyT(func(v CloudServiceNetworkProfile) *SubResource { return v.SwappableCloudService }).(SubResourcePtrOutput) @@ -3104,6 +3654,18 @@ func (o CloudServiceNetworkProfilePtrOutput) LoadBalancerConfigurations() LoadBa }).(LoadBalancerConfigurationArrayOutput) } +// Slot type for the cloud service. +// Possible values are

    **Production**

    **Staging**

    +// If not specified, the default value is Production. +func (o CloudServiceNetworkProfilePtrOutput) SlotType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudServiceNetworkProfile) *string { + if v == nil { + return nil + } + return v.SlotType + }).(pulumi.StringPtrOutput) +} + // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. func (o CloudServiceNetworkProfilePtrOutput) SwappableCloudService() SubResourcePtrOutput { return o.ApplyT(func(v *CloudServiceNetworkProfile) *SubResource { @@ -3118,6 +3680,10 @@ func (o CloudServiceNetworkProfilePtrOutput) SwappableCloudService() SubResource type CloudServiceNetworkProfileResponse struct { // List of Load balancer configurations. Cloud service can have up to two load balancer configurations, corresponding to a Public Load Balancer and an Internal Load Balancer. LoadBalancerConfigurations []LoadBalancerConfigurationResponse `pulumi:"loadBalancerConfigurations"` + // Slot type for the cloud service. + // Possible values are

    **Production**

    **Staging**

    + // If not specified, the default value is Production. + SlotType *string `pulumi:"slotType"` // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. SwappableCloudService *SubResourceResponse `pulumi:"swappableCloudService"` } @@ -3144,6 +3710,13 @@ func (o CloudServiceNetworkProfileResponseOutput) LoadBalancerConfigurations() L }).(LoadBalancerConfigurationResponseArrayOutput) } +// Slot type for the cloud service. +// Possible values are

    **Production**

    **Staging**

    +// If not specified, the default value is Production. +func (o CloudServiceNetworkProfileResponseOutput) SlotType() pulumi.StringPtrOutput { + return o.ApplyT(func(v CloudServiceNetworkProfileResponse) *string { return v.SlotType }).(pulumi.StringPtrOutput) +} + // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. func (o CloudServiceNetworkProfileResponseOutput) SwappableCloudService() SubResourceResponsePtrOutput { return o.ApplyT(func(v CloudServiceNetworkProfileResponse) *SubResourceResponse { return v.SwappableCloudService }).(SubResourceResponsePtrOutput) @@ -3183,6 +3756,18 @@ func (o CloudServiceNetworkProfileResponsePtrOutput) LoadBalancerConfigurations( }).(LoadBalancerConfigurationResponseArrayOutput) } +// Slot type for the cloud service. +// Possible values are

    **Production**

    **Staging**

    +// If not specified, the default value is Production. +func (o CloudServiceNetworkProfileResponsePtrOutput) SlotType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudServiceNetworkProfileResponse) *string { + if v == nil { + return nil + } + return v.SlotType + }).(pulumi.StringPtrOutput) +} + // The id reference of the cloud service containing the target IP with which the subject cloud service can perform a swap. This property cannot be updated once it is set. The swappable cloud service referred by this id must be present otherwise an error will be thrown. func (o CloudServiceNetworkProfileResponsePtrOutput) SwappableCloudService() SubResourceResponsePtrOutput { return o.ApplyT(func(v *CloudServiceNetworkProfileResponse) *SubResourceResponse { @@ -4479,8 +5064,11 @@ func (o CloudServiceRoleSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. type CloudServiceVaultAndSecretReference struct { - SecretUrl *string `pulumi:"secretUrl"` + // Secret URL which contains the protected settings of the extension + SecretUrl *string `pulumi:"secretUrl"` + // The ARM Resource ID of the Key Vault SourceVault *SubResource `pulumi:"sourceVault"` } @@ -4495,9 +5083,12 @@ type CloudServiceVaultAndSecretReferenceInput interface { ToCloudServiceVaultAndSecretReferenceOutputWithContext(context.Context) CloudServiceVaultAndSecretReferenceOutput } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. type CloudServiceVaultAndSecretReferenceArgs struct { - SecretUrl pulumi.StringPtrInput `pulumi:"secretUrl"` - SourceVault SubResourcePtrInput `pulumi:"sourceVault"` + // Secret URL which contains the protected settings of the extension + SecretUrl pulumi.StringPtrInput `pulumi:"secretUrl"` + // The ARM Resource ID of the Key Vault + SourceVault SubResourcePtrInput `pulumi:"sourceVault"` } func (CloudServiceVaultAndSecretReferenceArgs) ElementType() reflect.Type { @@ -4553,6 +5144,7 @@ func (i *cloudServiceVaultAndSecretReferencePtrType) ToCloudServiceVaultAndSecre return pulumi.ToOutputWithContext(ctx, i).(CloudServiceVaultAndSecretReferencePtrOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. type CloudServiceVaultAndSecretReferenceOutput struct{ *pulumi.OutputState } func (CloudServiceVaultAndSecretReferenceOutput) ElementType() reflect.Type { @@ -4577,10 +5169,12 @@ func (o CloudServiceVaultAndSecretReferenceOutput) ToCloudServiceVaultAndSecretR }).(CloudServiceVaultAndSecretReferencePtrOutput) } +// Secret URL which contains the protected settings of the extension func (o CloudServiceVaultAndSecretReferenceOutput) SecretUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v CloudServiceVaultAndSecretReference) *string { return v.SecretUrl }).(pulumi.StringPtrOutput) } +// The ARM Resource ID of the Key Vault func (o CloudServiceVaultAndSecretReferenceOutput) SourceVault() SubResourcePtrOutput { return o.ApplyT(func(v CloudServiceVaultAndSecretReference) *SubResource { return v.SourceVault }).(SubResourcePtrOutput) } @@ -4609,6 +5203,7 @@ func (o CloudServiceVaultAndSecretReferencePtrOutput) Elem() CloudServiceVaultAn }).(CloudServiceVaultAndSecretReferenceOutput) } +// Secret URL which contains the protected settings of the extension func (o CloudServiceVaultAndSecretReferencePtrOutput) SecretUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v *CloudServiceVaultAndSecretReference) *string { if v == nil { @@ -4618,6 +5213,7 @@ func (o CloudServiceVaultAndSecretReferencePtrOutput) SecretUrl() pulumi.StringP }).(pulumi.StringPtrOutput) } +// The ARM Resource ID of the Key Vault func (o CloudServiceVaultAndSecretReferencePtrOutput) SourceVault() SubResourcePtrOutput { return o.ApplyT(func(v *CloudServiceVaultAndSecretReference) *SubResource { if v == nil { @@ -4627,11 +5223,15 @@ func (o CloudServiceVaultAndSecretReferencePtrOutput) SourceVault() SubResourceP }).(SubResourcePtrOutput) } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. type CloudServiceVaultAndSecretReferenceResponse struct { - SecretUrl *string `pulumi:"secretUrl"` + // Secret URL which contains the protected settings of the extension + SecretUrl *string `pulumi:"secretUrl"` + // The ARM Resource ID of the Key Vault SourceVault *SubResourceResponse `pulumi:"sourceVault"` } +// Protected settings for the extension, referenced using KeyVault which are encrypted before sent to the role instance. type CloudServiceVaultAndSecretReferenceResponseOutput struct{ *pulumi.OutputState } func (CloudServiceVaultAndSecretReferenceResponseOutput) ElementType() reflect.Type { @@ -4646,10 +5246,12 @@ func (o CloudServiceVaultAndSecretReferenceResponseOutput) ToCloudServiceVaultAn return o } +// Secret URL which contains the protected settings of the extension func (o CloudServiceVaultAndSecretReferenceResponseOutput) SecretUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v CloudServiceVaultAndSecretReferenceResponse) *string { return v.SecretUrl }).(pulumi.StringPtrOutput) } +// The ARM Resource ID of the Key Vault func (o CloudServiceVaultAndSecretReferenceResponseOutput) SourceVault() SubResourceResponsePtrOutput { return o.ApplyT(func(v CloudServiceVaultAndSecretReferenceResponse) *SubResourceResponse { return v.SourceVault }).(SubResourceResponsePtrOutput) } @@ -4678,6 +5280,7 @@ func (o CloudServiceVaultAndSecretReferenceResponsePtrOutput) Elem() CloudServic }).(CloudServiceVaultAndSecretReferenceResponseOutput) } +// Secret URL which contains the protected settings of the extension func (o CloudServiceVaultAndSecretReferenceResponsePtrOutput) SecretUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v *CloudServiceVaultAndSecretReferenceResponse) *string { if v == nil { @@ -4687,6 +5290,7 @@ func (o CloudServiceVaultAndSecretReferenceResponsePtrOutput) SecretUrl() pulumi }).(pulumi.StringPtrOutput) } +// The ARM Resource ID of the Key Vault func (o CloudServiceVaultAndSecretReferenceResponsePtrOutput) SourceVault() SubResourceResponsePtrOutput { return o.ApplyT(func(v *CloudServiceVaultAndSecretReferenceResponse) *SubResourceResponse { if v == nil { @@ -5006,16 +5610,598 @@ func (o CloudServiceVaultSecretGroupResponseArrayOutput) Index(i pulumi.IntInput }).(CloudServiceVaultSecretGroupResponseOutput) } +// Information of community gallery if current gallery is shared to community +type CommunityGalleryInfo struct { + // End-user license agreement for community gallery image. + Eula *string `pulumi:"eula"` + // The prefix of the gallery name that will be displayed publicly. Visible to all users. + PublicNamePrefix *string `pulumi:"publicNamePrefix"` + // Community gallery publisher support email. The email address of the publisher. Visible to all users. + PublisherContact *string `pulumi:"publisherContact"` + // The link to the publisher website. Visible to all users. + PublisherUri *string `pulumi:"publisherUri"` +} + +// CommunityGalleryInfoInput is an input type that accepts CommunityGalleryInfoArgs and CommunityGalleryInfoOutput values. +// You can construct a concrete instance of `CommunityGalleryInfoInput` via: +// +// CommunityGalleryInfoArgs{...} +type CommunityGalleryInfoInput interface { + pulumi.Input + + ToCommunityGalleryInfoOutput() CommunityGalleryInfoOutput + ToCommunityGalleryInfoOutputWithContext(context.Context) CommunityGalleryInfoOutput +} + +// Information of community gallery if current gallery is shared to community +type CommunityGalleryInfoArgs struct { + // End-user license agreement for community gallery image. + Eula pulumi.StringPtrInput `pulumi:"eula"` + // The prefix of the gallery name that will be displayed publicly. Visible to all users. + PublicNamePrefix pulumi.StringPtrInput `pulumi:"publicNamePrefix"` + // Community gallery publisher support email. The email address of the publisher. Visible to all users. + PublisherContact pulumi.StringPtrInput `pulumi:"publisherContact"` + // The link to the publisher website. Visible to all users. + PublisherUri pulumi.StringPtrInput `pulumi:"publisherUri"` +} + +func (CommunityGalleryInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CommunityGalleryInfo)(nil)).Elem() +} + +func (i CommunityGalleryInfoArgs) ToCommunityGalleryInfoOutput() CommunityGalleryInfoOutput { + return i.ToCommunityGalleryInfoOutputWithContext(context.Background()) +} + +func (i CommunityGalleryInfoArgs) ToCommunityGalleryInfoOutputWithContext(ctx context.Context) CommunityGalleryInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(CommunityGalleryInfoOutput) +} + +func (i CommunityGalleryInfoArgs) ToCommunityGalleryInfoPtrOutput() CommunityGalleryInfoPtrOutput { + return i.ToCommunityGalleryInfoPtrOutputWithContext(context.Background()) +} + +func (i CommunityGalleryInfoArgs) ToCommunityGalleryInfoPtrOutputWithContext(ctx context.Context) CommunityGalleryInfoPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CommunityGalleryInfoOutput).ToCommunityGalleryInfoPtrOutputWithContext(ctx) +} + +// CommunityGalleryInfoPtrInput is an input type that accepts CommunityGalleryInfoArgs, CommunityGalleryInfoPtr and CommunityGalleryInfoPtrOutput values. +// You can construct a concrete instance of `CommunityGalleryInfoPtrInput` via: +// +// CommunityGalleryInfoArgs{...} +// +// or: +// +// nil +type CommunityGalleryInfoPtrInput interface { + pulumi.Input + + ToCommunityGalleryInfoPtrOutput() CommunityGalleryInfoPtrOutput + ToCommunityGalleryInfoPtrOutputWithContext(context.Context) CommunityGalleryInfoPtrOutput +} + +type communityGalleryInfoPtrType CommunityGalleryInfoArgs + +func CommunityGalleryInfoPtr(v *CommunityGalleryInfoArgs) CommunityGalleryInfoPtrInput { + return (*communityGalleryInfoPtrType)(v) +} + +func (*communityGalleryInfoPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CommunityGalleryInfo)(nil)).Elem() +} + +func (i *communityGalleryInfoPtrType) ToCommunityGalleryInfoPtrOutput() CommunityGalleryInfoPtrOutput { + return i.ToCommunityGalleryInfoPtrOutputWithContext(context.Background()) +} + +func (i *communityGalleryInfoPtrType) ToCommunityGalleryInfoPtrOutputWithContext(ctx context.Context) CommunityGalleryInfoPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CommunityGalleryInfoPtrOutput) +} + +// Information of community gallery if current gallery is shared to community +type CommunityGalleryInfoOutput struct{ *pulumi.OutputState } + +func (CommunityGalleryInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CommunityGalleryInfo)(nil)).Elem() +} + +func (o CommunityGalleryInfoOutput) ToCommunityGalleryInfoOutput() CommunityGalleryInfoOutput { + return o +} + +func (o CommunityGalleryInfoOutput) ToCommunityGalleryInfoOutputWithContext(ctx context.Context) CommunityGalleryInfoOutput { + return o +} + +func (o CommunityGalleryInfoOutput) ToCommunityGalleryInfoPtrOutput() CommunityGalleryInfoPtrOutput { + return o.ToCommunityGalleryInfoPtrOutputWithContext(context.Background()) +} + +func (o CommunityGalleryInfoOutput) ToCommunityGalleryInfoPtrOutputWithContext(ctx context.Context) CommunityGalleryInfoPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CommunityGalleryInfo) *CommunityGalleryInfo { + return &v + }).(CommunityGalleryInfoPtrOutput) +} + +// End-user license agreement for community gallery image. +func (o CommunityGalleryInfoOutput) Eula() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfo) *string { return v.Eula }).(pulumi.StringPtrOutput) +} + +// The prefix of the gallery name that will be displayed publicly. Visible to all users. +func (o CommunityGalleryInfoOutput) PublicNamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfo) *string { return v.PublicNamePrefix }).(pulumi.StringPtrOutput) +} + +// Community gallery publisher support email. The email address of the publisher. Visible to all users. +func (o CommunityGalleryInfoOutput) PublisherContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfo) *string { return v.PublisherContact }).(pulumi.StringPtrOutput) +} + +// The link to the publisher website. Visible to all users. +func (o CommunityGalleryInfoOutput) PublisherUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfo) *string { return v.PublisherUri }).(pulumi.StringPtrOutput) +} + +type CommunityGalleryInfoPtrOutput struct{ *pulumi.OutputState } + +func (CommunityGalleryInfoPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CommunityGalleryInfo)(nil)).Elem() +} + +func (o CommunityGalleryInfoPtrOutput) ToCommunityGalleryInfoPtrOutput() CommunityGalleryInfoPtrOutput { + return o +} + +func (o CommunityGalleryInfoPtrOutput) ToCommunityGalleryInfoPtrOutputWithContext(ctx context.Context) CommunityGalleryInfoPtrOutput { + return o +} + +func (o CommunityGalleryInfoPtrOutput) Elem() CommunityGalleryInfoOutput { + return o.ApplyT(func(v *CommunityGalleryInfo) CommunityGalleryInfo { + if v != nil { + return *v + } + var ret CommunityGalleryInfo + return ret + }).(CommunityGalleryInfoOutput) +} + +// End-user license agreement for community gallery image. +func (o CommunityGalleryInfoPtrOutput) Eula() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfo) *string { + if v == nil { + return nil + } + return v.Eula + }).(pulumi.StringPtrOutput) +} + +// The prefix of the gallery name that will be displayed publicly. Visible to all users. +func (o CommunityGalleryInfoPtrOutput) PublicNamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfo) *string { + if v == nil { + return nil + } + return v.PublicNamePrefix + }).(pulumi.StringPtrOutput) +} + +// Community gallery publisher support email. The email address of the publisher. Visible to all users. +func (o CommunityGalleryInfoPtrOutput) PublisherContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfo) *string { + if v == nil { + return nil + } + return v.PublisherContact + }).(pulumi.StringPtrOutput) +} + +// The link to the publisher website. Visible to all users. +func (o CommunityGalleryInfoPtrOutput) PublisherUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfo) *string { + if v == nil { + return nil + } + return v.PublisherUri + }).(pulumi.StringPtrOutput) +} + +// Information of community gallery if current gallery is shared to community +type CommunityGalleryInfoResponse struct { + // Contains info about whether community gallery sharing is enabled. + CommunityGalleryEnabled bool `pulumi:"communityGalleryEnabled"` + // End-user license agreement for community gallery image. + Eula *string `pulumi:"eula"` + // The prefix of the gallery name that will be displayed publicly. Visible to all users. + PublicNamePrefix *string `pulumi:"publicNamePrefix"` + // Community gallery public name list. + PublicNames []string `pulumi:"publicNames"` + // Community gallery publisher support email. The email address of the publisher. Visible to all users. + PublisherContact *string `pulumi:"publisherContact"` + // The link to the publisher website. Visible to all users. + PublisherUri *string `pulumi:"publisherUri"` +} + +// Information of community gallery if current gallery is shared to community +type CommunityGalleryInfoResponseOutput struct{ *pulumi.OutputState } + +func (CommunityGalleryInfoResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CommunityGalleryInfoResponse)(nil)).Elem() +} + +func (o CommunityGalleryInfoResponseOutput) ToCommunityGalleryInfoResponseOutput() CommunityGalleryInfoResponseOutput { + return o +} + +func (o CommunityGalleryInfoResponseOutput) ToCommunityGalleryInfoResponseOutputWithContext(ctx context.Context) CommunityGalleryInfoResponseOutput { + return o +} + +// Contains info about whether community gallery sharing is enabled. +func (o CommunityGalleryInfoResponseOutput) CommunityGalleryEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) bool { return v.CommunityGalleryEnabled }).(pulumi.BoolOutput) +} + +// End-user license agreement for community gallery image. +func (o CommunityGalleryInfoResponseOutput) Eula() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) *string { return v.Eula }).(pulumi.StringPtrOutput) +} + +// The prefix of the gallery name that will be displayed publicly. Visible to all users. +func (o CommunityGalleryInfoResponseOutput) PublicNamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) *string { return v.PublicNamePrefix }).(pulumi.StringPtrOutput) +} + +// Community gallery public name list. +func (o CommunityGalleryInfoResponseOutput) PublicNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) []string { return v.PublicNames }).(pulumi.StringArrayOutput) +} + +// Community gallery publisher support email. The email address of the publisher. Visible to all users. +func (o CommunityGalleryInfoResponseOutput) PublisherContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) *string { return v.PublisherContact }).(pulumi.StringPtrOutput) +} + +// The link to the publisher website. Visible to all users. +func (o CommunityGalleryInfoResponseOutput) PublisherUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v CommunityGalleryInfoResponse) *string { return v.PublisherUri }).(pulumi.StringPtrOutput) +} + +type CommunityGalleryInfoResponsePtrOutput struct{ *pulumi.OutputState } + +func (CommunityGalleryInfoResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CommunityGalleryInfoResponse)(nil)).Elem() +} + +func (o CommunityGalleryInfoResponsePtrOutput) ToCommunityGalleryInfoResponsePtrOutput() CommunityGalleryInfoResponsePtrOutput { + return o +} + +func (o CommunityGalleryInfoResponsePtrOutput) ToCommunityGalleryInfoResponsePtrOutputWithContext(ctx context.Context) CommunityGalleryInfoResponsePtrOutput { + return o +} + +func (o CommunityGalleryInfoResponsePtrOutput) Elem() CommunityGalleryInfoResponseOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) CommunityGalleryInfoResponse { + if v != nil { + return *v + } + var ret CommunityGalleryInfoResponse + return ret + }).(CommunityGalleryInfoResponseOutput) +} + +// Contains info about whether community gallery sharing is enabled. +func (o CommunityGalleryInfoResponsePtrOutput) CommunityGalleryEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) *bool { + if v == nil { + return nil + } + return &v.CommunityGalleryEnabled + }).(pulumi.BoolPtrOutput) +} + +// End-user license agreement for community gallery image. +func (o CommunityGalleryInfoResponsePtrOutput) Eula() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) *string { + if v == nil { + return nil + } + return v.Eula + }).(pulumi.StringPtrOutput) +} + +// The prefix of the gallery name that will be displayed publicly. Visible to all users. +func (o CommunityGalleryInfoResponsePtrOutput) PublicNamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) *string { + if v == nil { + return nil + } + return v.PublicNamePrefix + }).(pulumi.StringPtrOutput) +} + +// Community gallery public name list. +func (o CommunityGalleryInfoResponsePtrOutput) PublicNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) []string { + if v == nil { + return nil + } + return v.PublicNames + }).(pulumi.StringArrayOutput) +} + +// Community gallery publisher support email. The email address of the publisher. Visible to all users. +func (o CommunityGalleryInfoResponsePtrOutput) PublisherContact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) *string { + if v == nil { + return nil + } + return v.PublisherContact + }).(pulumi.StringPtrOutput) +} + +// The link to the publisher website. Visible to all users. +func (o CommunityGalleryInfoResponsePtrOutput) PublisherUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CommunityGalleryInfoResponse) *string { + if v == nil { + return nil + } + return v.PublisherUri + }).(pulumi.StringPtrOutput) +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionError struct { + // Indicates the error code if the background copy of a resource created via the CopyStart operation fails. + ErrorCode string `pulumi:"errorCode"` + // Indicates the error message if the background copy of a resource created via the CopyStart operation fails. + ErrorMessage string `pulumi:"errorMessage"` +} + +// CopyCompletionErrorInput is an input type that accepts CopyCompletionErrorArgs and CopyCompletionErrorOutput values. +// You can construct a concrete instance of `CopyCompletionErrorInput` via: +// +// CopyCompletionErrorArgs{...} +type CopyCompletionErrorInput interface { + pulumi.Input + + ToCopyCompletionErrorOutput() CopyCompletionErrorOutput + ToCopyCompletionErrorOutputWithContext(context.Context) CopyCompletionErrorOutput +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionErrorArgs struct { + // Indicates the error code if the background copy of a resource created via the CopyStart operation fails. + ErrorCode pulumi.StringInput `pulumi:"errorCode"` + // Indicates the error message if the background copy of a resource created via the CopyStart operation fails. + ErrorMessage pulumi.StringInput `pulumi:"errorMessage"` +} + +func (CopyCompletionErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CopyCompletionError)(nil)).Elem() +} + +func (i CopyCompletionErrorArgs) ToCopyCompletionErrorOutput() CopyCompletionErrorOutput { + return i.ToCopyCompletionErrorOutputWithContext(context.Background()) +} + +func (i CopyCompletionErrorArgs) ToCopyCompletionErrorOutputWithContext(ctx context.Context) CopyCompletionErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(CopyCompletionErrorOutput) +} + +func (i CopyCompletionErrorArgs) ToCopyCompletionErrorPtrOutput() CopyCompletionErrorPtrOutput { + return i.ToCopyCompletionErrorPtrOutputWithContext(context.Background()) +} + +func (i CopyCompletionErrorArgs) ToCopyCompletionErrorPtrOutputWithContext(ctx context.Context) CopyCompletionErrorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CopyCompletionErrorOutput).ToCopyCompletionErrorPtrOutputWithContext(ctx) +} + +// CopyCompletionErrorPtrInput is an input type that accepts CopyCompletionErrorArgs, CopyCompletionErrorPtr and CopyCompletionErrorPtrOutput values. +// You can construct a concrete instance of `CopyCompletionErrorPtrInput` via: +// +// CopyCompletionErrorArgs{...} +// +// or: +// +// nil +type CopyCompletionErrorPtrInput interface { + pulumi.Input + + ToCopyCompletionErrorPtrOutput() CopyCompletionErrorPtrOutput + ToCopyCompletionErrorPtrOutputWithContext(context.Context) CopyCompletionErrorPtrOutput +} + +type copyCompletionErrorPtrType CopyCompletionErrorArgs + +func CopyCompletionErrorPtr(v *CopyCompletionErrorArgs) CopyCompletionErrorPtrInput { + return (*copyCompletionErrorPtrType)(v) +} + +func (*copyCompletionErrorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CopyCompletionError)(nil)).Elem() +} + +func (i *copyCompletionErrorPtrType) ToCopyCompletionErrorPtrOutput() CopyCompletionErrorPtrOutput { + return i.ToCopyCompletionErrorPtrOutputWithContext(context.Background()) +} + +func (i *copyCompletionErrorPtrType) ToCopyCompletionErrorPtrOutputWithContext(ctx context.Context) CopyCompletionErrorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CopyCompletionErrorPtrOutput) +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionErrorOutput struct{ *pulumi.OutputState } + +func (CopyCompletionErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CopyCompletionError)(nil)).Elem() +} + +func (o CopyCompletionErrorOutput) ToCopyCompletionErrorOutput() CopyCompletionErrorOutput { + return o +} + +func (o CopyCompletionErrorOutput) ToCopyCompletionErrorOutputWithContext(ctx context.Context) CopyCompletionErrorOutput { + return o +} + +func (o CopyCompletionErrorOutput) ToCopyCompletionErrorPtrOutput() CopyCompletionErrorPtrOutput { + return o.ToCopyCompletionErrorPtrOutputWithContext(context.Background()) +} + +func (o CopyCompletionErrorOutput) ToCopyCompletionErrorPtrOutputWithContext(ctx context.Context) CopyCompletionErrorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CopyCompletionError) *CopyCompletionError { + return &v + }).(CopyCompletionErrorPtrOutput) +} + +// Indicates the error code if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorOutput) ErrorCode() pulumi.StringOutput { + return o.ApplyT(func(v CopyCompletionError) string { return v.ErrorCode }).(pulumi.StringOutput) +} + +// Indicates the error message if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorOutput) ErrorMessage() pulumi.StringOutput { + return o.ApplyT(func(v CopyCompletionError) string { return v.ErrorMessage }).(pulumi.StringOutput) +} + +type CopyCompletionErrorPtrOutput struct{ *pulumi.OutputState } + +func (CopyCompletionErrorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CopyCompletionError)(nil)).Elem() +} + +func (o CopyCompletionErrorPtrOutput) ToCopyCompletionErrorPtrOutput() CopyCompletionErrorPtrOutput { + return o +} + +func (o CopyCompletionErrorPtrOutput) ToCopyCompletionErrorPtrOutputWithContext(ctx context.Context) CopyCompletionErrorPtrOutput { + return o +} + +func (o CopyCompletionErrorPtrOutput) Elem() CopyCompletionErrorOutput { + return o.ApplyT(func(v *CopyCompletionError) CopyCompletionError { + if v != nil { + return *v + } + var ret CopyCompletionError + return ret + }).(CopyCompletionErrorOutput) +} + +// Indicates the error code if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorPtrOutput) ErrorCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CopyCompletionError) *string { + if v == nil { + return nil + } + return &v.ErrorCode + }).(pulumi.StringPtrOutput) +} + +// Indicates the error message if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorPtrOutput) ErrorMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CopyCompletionError) *string { + if v == nil { + return nil + } + return &v.ErrorMessage + }).(pulumi.StringPtrOutput) +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionErrorResponse struct { + // Indicates the error code if the background copy of a resource created via the CopyStart operation fails. + ErrorCode string `pulumi:"errorCode"` + // Indicates the error message if the background copy of a resource created via the CopyStart operation fails. + ErrorMessage string `pulumi:"errorMessage"` +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +type CopyCompletionErrorResponseOutput struct{ *pulumi.OutputState } + +func (CopyCompletionErrorResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CopyCompletionErrorResponse)(nil)).Elem() +} + +func (o CopyCompletionErrorResponseOutput) ToCopyCompletionErrorResponseOutput() CopyCompletionErrorResponseOutput { + return o +} + +func (o CopyCompletionErrorResponseOutput) ToCopyCompletionErrorResponseOutputWithContext(ctx context.Context) CopyCompletionErrorResponseOutput { + return o +} + +// Indicates the error code if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorResponseOutput) ErrorCode() pulumi.StringOutput { + return o.ApplyT(func(v CopyCompletionErrorResponse) string { return v.ErrorCode }).(pulumi.StringOutput) +} + +// Indicates the error message if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorResponseOutput) ErrorMessage() pulumi.StringOutput { + return o.ApplyT(func(v CopyCompletionErrorResponse) string { return v.ErrorMessage }).(pulumi.StringOutput) +} + +type CopyCompletionErrorResponsePtrOutput struct{ *pulumi.OutputState } + +func (CopyCompletionErrorResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CopyCompletionErrorResponse)(nil)).Elem() +} + +func (o CopyCompletionErrorResponsePtrOutput) ToCopyCompletionErrorResponsePtrOutput() CopyCompletionErrorResponsePtrOutput { + return o +} + +func (o CopyCompletionErrorResponsePtrOutput) ToCopyCompletionErrorResponsePtrOutputWithContext(ctx context.Context) CopyCompletionErrorResponsePtrOutput { + return o +} + +func (o CopyCompletionErrorResponsePtrOutput) Elem() CopyCompletionErrorResponseOutput { + return o.ApplyT(func(v *CopyCompletionErrorResponse) CopyCompletionErrorResponse { + if v != nil { + return *v + } + var ret CopyCompletionErrorResponse + return ret + }).(CopyCompletionErrorResponseOutput) +} + +// Indicates the error code if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorResponsePtrOutput) ErrorCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CopyCompletionErrorResponse) *string { + if v == nil { + return nil + } + return &v.ErrorCode + }).(pulumi.StringPtrOutput) +} + +// Indicates the error message if the background copy of a resource created via the CopyStart operation fails. +func (o CopyCompletionErrorResponsePtrOutput) ErrorMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CopyCompletionErrorResponse) *string { + if v == nil { + return nil + } + return &v.ErrorMessage + }).(pulumi.StringPtrOutput) +} + // Data used when creating a disk. type CreationData struct { // This enumerates the possible sources of a disk's creation. CreateOption string `pulumi:"createOption"` - // Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. + // Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. GalleryImageReference *ImageDiskReference `pulumi:"galleryImageReference"` - // Disk source information. + // Disk source information for PIR or user images. ImageReference *ImageDiskReference `pulumi:"imageReference"` // Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default. LogicalSectorSize *int `pulumi:"logicalSectorSize"` + // Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled. + PerformancePlus *bool `pulumi:"performancePlus"` + // If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state. + SecurityDataUri *string `pulumi:"securityDataUri"` // If createOption is Copy, this is the ARM id of the source snapshot or disk. SourceResourceId *string `pulumi:"sourceResourceId"` // If createOption is Import, this is the URI of a blob to be imported into a managed disk. @@ -5041,12 +6227,16 @@ type CreationDataInput interface { type CreationDataArgs struct { // This enumerates the possible sources of a disk's creation. CreateOption pulumi.StringInput `pulumi:"createOption"` - // Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. + // Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. GalleryImageReference ImageDiskReferencePtrInput `pulumi:"galleryImageReference"` - // Disk source information. + // Disk source information for PIR or user images. ImageReference ImageDiskReferencePtrInput `pulumi:"imageReference"` // Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default. LogicalSectorSize pulumi.IntPtrInput `pulumi:"logicalSectorSize"` + // Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled. + PerformancePlus pulumi.BoolPtrInput `pulumi:"performancePlus"` + // If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state. + SecurityDataUri pulumi.StringPtrInput `pulumi:"securityDataUri"` // If createOption is Copy, this is the ARM id of the source snapshot or disk. SourceResourceId pulumi.StringPtrInput `pulumi:"sourceResourceId"` // If createOption is Import, this is the URI of a blob to be imported into a managed disk. @@ -5089,12 +6279,12 @@ func (o CreationDataOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v CreationData) string { return v.CreateOption }).(pulumi.StringOutput) } -// Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. +// Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. func (o CreationDataOutput) GalleryImageReference() ImageDiskReferencePtrOutput { return o.ApplyT(func(v CreationData) *ImageDiskReference { return v.GalleryImageReference }).(ImageDiskReferencePtrOutput) } -// Disk source information. +// Disk source information for PIR or user images. func (o CreationDataOutput) ImageReference() ImageDiskReferencePtrOutput { return o.ApplyT(func(v CreationData) *ImageDiskReference { return v.ImageReference }).(ImageDiskReferencePtrOutput) } @@ -5104,6 +6294,16 @@ func (o CreationDataOutput) LogicalSectorSize() pulumi.IntPtrOutput { return o.ApplyT(func(v CreationData) *int { return v.LogicalSectorSize }).(pulumi.IntPtrOutput) } +// Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled. +func (o CreationDataOutput) PerformancePlus() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CreationData) *bool { return v.PerformancePlus }).(pulumi.BoolPtrOutput) +} + +// If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state. +func (o CreationDataOutput) SecurityDataUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v CreationData) *string { return v.SecurityDataUri }).(pulumi.StringPtrOutput) +} + // If createOption is Copy, this is the ARM id of the source snapshot or disk. func (o CreationDataOutput) SourceResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v CreationData) *string { return v.SourceResourceId }).(pulumi.StringPtrOutput) @@ -5128,12 +6328,16 @@ func (o CreationDataOutput) UploadSizeBytes() pulumi.Float64PtrOutput { type CreationDataResponse struct { // This enumerates the possible sources of a disk's creation. CreateOption string `pulumi:"createOption"` - // Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. + // Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. GalleryImageReference *ImageDiskReferenceResponse `pulumi:"galleryImageReference"` - // Disk source information. + // Disk source information for PIR or user images. ImageReference *ImageDiskReferenceResponse `pulumi:"imageReference"` // Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default. LogicalSectorSize *int `pulumi:"logicalSectorSize"` + // Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled. + PerformancePlus *bool `pulumi:"performancePlus"` + // If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state. + SecurityDataUri *string `pulumi:"securityDataUri"` // If createOption is Copy, this is the ARM id of the source snapshot or disk. SourceResourceId *string `pulumi:"sourceResourceId"` // If this field is set, this is the unique id identifying the source of this resource. @@ -5166,12 +6370,12 @@ func (o CreationDataResponseOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v CreationDataResponse) string { return v.CreateOption }).(pulumi.StringOutput) } -// Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. +// Required if creating from a Gallery Image. The id/sharedGalleryImageId/communityGalleryImageId of the ImageDiskReference will be the ARM id of the shared galley image version from which to create a disk. func (o CreationDataResponseOutput) GalleryImageReference() ImageDiskReferenceResponsePtrOutput { return o.ApplyT(func(v CreationDataResponse) *ImageDiskReferenceResponse { return v.GalleryImageReference }).(ImageDiskReferenceResponsePtrOutput) } -// Disk source information. +// Disk source information for PIR or user images. func (o CreationDataResponseOutput) ImageReference() ImageDiskReferenceResponsePtrOutput { return o.ApplyT(func(v CreationDataResponse) *ImageDiskReferenceResponse { return v.ImageReference }).(ImageDiskReferenceResponsePtrOutput) } @@ -5181,6 +6385,16 @@ func (o CreationDataResponseOutput) LogicalSectorSize() pulumi.IntPtrOutput { return o.ApplyT(func(v CreationDataResponse) *int { return v.LogicalSectorSize }).(pulumi.IntPtrOutput) } +// Set this flag to true to get a boost on the performance target of the disk deployed, see here on the respective performance target. This flag can only be set on disk creation time and cannot be disabled after enabled. +func (o CreationDataResponseOutput) PerformancePlus() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CreationDataResponse) *bool { return v.PerformancePlus }).(pulumi.BoolPtrOutput) +} + +// If createOption is ImportSecure, this is the URI of a blob to be imported into VM guest state. +func (o CreationDataResponseOutput) SecurityDataUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v CreationDataResponse) *string { return v.SecurityDataUri }).(pulumi.StringPtrOutput) +} + // If createOption is Copy, this is the ARM id of the source snapshot or disk. func (o CreationDataResponseOutput) SourceResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v CreationDataResponse) *string { return v.SourceResourceId }).(pulumi.StringPtrOutput) @@ -5208,15 +6422,15 @@ func (o CreationDataResponseOutput) UploadSizeBytes() pulumi.Float64PtrOutput { // Describes a data disk. type DataDisk struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption string `pulumi:"createOption"` - // Specifies whether data disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the data disk is deleted when VM is deleted.

    **Detach** If this value is used, the data disk is retained after VM is deleted.

    The default value is set to **detach** + // Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the data disk is deleted when VM is deleted. **Detach.** If this value is used, the data disk is retained after VM is deleted. The default value is set to **Detach**. DeleteOption *string `pulumi:"deleteOption"` - // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. + // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. DetachOption *string `pulumi:"detachOption"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image *VirtualHardDisk `pulumi:"image"` @@ -5247,15 +6461,15 @@ type DataDiskInput interface { // Describes a data disk. type DataDiskArgs struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption pulumi.StringInput `pulumi:"createOption"` - // Specifies whether data disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the data disk is deleted when VM is deleted.

    **Detach** If this value is used, the data disk is retained after VM is deleted.

    The default value is set to **detach** + // Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the data disk is deleted when VM is deleted. **Detach.** If this value is used, the data disk is retained after VM is deleted. The default value is set to **Detach**. DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` - // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. + // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. DetachOption pulumi.StringPtrInput `pulumi:"detachOption"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image VirtualHardDiskPtrInput `pulumi:"image"` @@ -5325,27 +6539,27 @@ func (o DataDiskOutput) ToDataDiskOutputWithContext(ctx context.Context) DataDis return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o DataDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v DataDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o DataDiskOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v DataDisk) string { return v.CreateOption }).(pulumi.StringOutput) } -// Specifies whether data disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the data disk is deleted when VM is deleted.

    **Detach** If this value is used, the data disk is retained after VM is deleted.

    The default value is set to **detach** +// Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the data disk is deleted when VM is deleted. **Detach.** If this value is used, the data disk is retained after VM is deleted. The default value is set to **Detach**. func (o DataDiskOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v DataDisk) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } -// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. +// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. func (o DataDiskOutput) DetachOption() pulumi.StringPtrOutput { return o.ApplyT(func(v DataDisk) *string { return v.DetachOption }).(pulumi.StringPtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o DataDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v DataDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -5569,19 +6783,19 @@ func (o DataDiskImageEncryptionResponseArrayOutput) Index(i pulumi.IntInput) Dat // Describes a data disk. type DataDiskResponse struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption string `pulumi:"createOption"` - // Specifies whether data disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the data disk is deleted when VM is deleted.

    **Detach** If this value is used, the data disk is retained after VM is deleted.

    The default value is set to **detach** + // Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the data disk is deleted when VM is deleted. **Detach.** If this value is used, the data disk is retained after VM is deleted. The default value is set to **Detach**. DeleteOption *string `pulumi:"deleteOption"` - // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. + // Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. DetachOption *string `pulumi:"detachOption"` // Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set. DiskIOPSReadWrite float64 `pulumi:"diskIOPSReadWrite"` // Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be updated only via updates to the VirtualMachine Scale Set. DiskMBpsReadWrite float64 `pulumi:"diskMBpsReadWrite"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image *VirtualHardDiskResponse `pulumi:"image"` @@ -5614,22 +6828,22 @@ func (o DataDiskResponseOutput) ToDataDiskResponseOutputWithContext(ctx context. return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o DataDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v DataDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o DataDiskResponseOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v DataDiskResponse) string { return v.CreateOption }).(pulumi.StringOutput) } -// Specifies whether data disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the data disk is deleted when VM is deleted.

    **Detach** If this value is used, the data disk is retained after VM is deleted.

    The default value is set to **detach** +// Specifies whether data disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the data disk is deleted when VM is deleted. **Detach.** If this value is used, the data disk is retained after VM is deleted. The default value is set to **Detach**. func (o DataDiskResponseOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v DataDiskResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } -// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach**.

    detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior.

    This feature is still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. +// Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview** mode and is not supported for VirtualMachineScaleSet. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. func (o DataDiskResponseOutput) DetachOption() pulumi.StringPtrOutput { return o.ApplyT(func(v DataDiskResponse) *string { return v.DetachOption }).(pulumi.StringPtrOutput) } @@ -5644,7 +6858,7 @@ func (o DataDiskResponseOutput) DiskMBpsReadWrite() pulumi.Float64Output { return o.ApplyT(func(v DataDiskResponse) float64 { return v.DiskMBpsReadWrite }).(pulumi.Float64Output) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o DataDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v DataDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -5845,6 +7059,206 @@ func (o DedicatedHostGroupInstanceViewResponseOutput) Hosts() DedicatedHostInsta }).(DedicatedHostInstanceViewWithNameResponseArrayOutput) } +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +type DedicatedHostGroupPropertiesAdditionalCapabilities struct { + // The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. + UltraSSDEnabled *bool `pulumi:"ultraSSDEnabled"` +} + +// DedicatedHostGroupPropertiesAdditionalCapabilitiesInput is an input type that accepts DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs and DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput values. +// You can construct a concrete instance of `DedicatedHostGroupPropertiesAdditionalCapabilitiesInput` via: +// +// DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs{...} +type DedicatedHostGroupPropertiesAdditionalCapabilitiesInput interface { + pulumi.Input + + ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput + ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutputWithContext(context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput +} + +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +type DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs struct { + // The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. + UltraSSDEnabled pulumi.BoolPtrInput `pulumi:"ultraSSDEnabled"` +} + +func (DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DedicatedHostGroupPropertiesAdditionalCapabilities)(nil)).Elem() +} + +func (i DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput { + return i.ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutputWithContext(context.Background()) +} + +func (i DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) +} + +func (i DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return i.ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput).ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(ctx) +} + +// DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrInput is an input type that accepts DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs, DedicatedHostGroupPropertiesAdditionalCapabilitiesPtr and DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput values. +// You can construct a concrete instance of `DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrInput` via: +// +// DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs{...} +// +// or: +// +// nil +type DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrInput interface { + pulumi.Input + + ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput + ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput +} + +type dedicatedHostGroupPropertiesAdditionalCapabilitiesPtrType DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs + +func DedicatedHostGroupPropertiesAdditionalCapabilitiesPtr(v *DedicatedHostGroupPropertiesAdditionalCapabilitiesArgs) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrInput { + return (*dedicatedHostGroupPropertiesAdditionalCapabilitiesPtrType)(v) +} + +func (*dedicatedHostGroupPropertiesAdditionalCapabilitiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DedicatedHostGroupPropertiesAdditionalCapabilities)(nil)).Elem() +} + +func (i *dedicatedHostGroupPropertiesAdditionalCapabilitiesPtrType) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return i.ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i *dedicatedHostGroupPropertiesAdditionalCapabilitiesPtrType) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) +} + +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +type DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput struct{ *pulumi.OutputState } + +func (DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DedicatedHostGroupPropertiesAdditionalCapabilities)(nil)).Elem() +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput { + return o +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput { + return o +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return o.ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DedicatedHostGroupPropertiesAdditionalCapabilities) *DedicatedHostGroupPropertiesAdditionalCapabilities { + return &v + }).(DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) +} + +// The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DedicatedHostGroupPropertiesAdditionalCapabilities) *bool { return v.UltraSSDEnabled }).(pulumi.BoolPtrOutput) +} + +type DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DedicatedHostGroupPropertiesAdditionalCapabilities)(nil)).Elem() +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return o +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) ToDedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput { + return o +} + +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) Elem() DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput { + return o.ApplyT(func(v *DedicatedHostGroupPropertiesAdditionalCapabilities) DedicatedHostGroupPropertiesAdditionalCapabilities { + if v != nil { + return *v + } + var ret DedicatedHostGroupPropertiesAdditionalCapabilities + return ret + }).(DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput) +} + +// The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. +func (o DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DedicatedHostGroupPropertiesAdditionalCapabilities) *bool { + if v == nil { + return nil + } + return v.UltraSSDEnabled + }).(pulumi.BoolPtrOutput) +} + +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +type DedicatedHostGroupPropertiesResponseAdditionalCapabilities struct { + // The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. + UltraSSDEnabled *bool `pulumi:"ultraSSDEnabled"` +} + +// Enables or disables a capability on the dedicated host group. Minimum api-version: 2022-03-01. +type DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput struct{ *pulumi.OutputState } + +func (DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DedicatedHostGroupPropertiesResponseAdditionalCapabilities)(nil)).Elem() +} + +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput() DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput { + return o +} + +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput) ToDedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput { + return o +} + +// The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DedicatedHostGroupPropertiesResponseAdditionalCapabilities) *bool { return v.UltraSSDEnabled }).(pulumi.BoolPtrOutput) +} + +type DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DedicatedHostGroupPropertiesResponseAdditionalCapabilities)(nil)).Elem() +} + +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) ToDedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput() DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput { + return o +} + +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) ToDedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutputWithContext(ctx context.Context) DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput { + return o +} + +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) Elem() DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput { + return o.ApplyT(func(v *DedicatedHostGroupPropertiesResponseAdditionalCapabilities) DedicatedHostGroupPropertiesResponseAdditionalCapabilities { + if v != nil { + return *v + } + var ret DedicatedHostGroupPropertiesResponseAdditionalCapabilities + return ret + }).(DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput) +} + +// The flag that enables or disables a capability to have UltraSSD Enabled Virtual Machines on Dedicated Hosts of the Dedicated Host Group. For the Virtual Machines to be UltraSSD Enabled, UltraSSDEnabled flag for the resource needs to be set true as well. The value is defaulted to 'false' when not provided. Please refer to https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd for more details on Ultra SSD feature. **Note:** The ultraSSDEnabled setting can only be enabled for Host Groups that are created as zonal. Minimum api-version: 2022-03-01. +func (o DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput) UltraSSDEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DedicatedHostGroupPropertiesResponseAdditionalCapabilities) *bool { + if v == nil { + return nil + } + return v.UltraSSDEnabled + }).(pulumi.BoolPtrOutput) +} + // The instance view of a dedicated host. type DedicatedHostInstanceViewResponse struct { // Specifies the unique id of the dedicated physical machine on which the dedicated host resides. @@ -5956,9 +7370,9 @@ func (o DedicatedHostInstanceViewWithNameResponseArrayOutput) Index(i pulumi.Int }).(DedicatedHostInstanceViewWithNameResponseOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. type DiagnosticsProfile struct { - // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. + // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. BootDiagnostics *BootDiagnostics `pulumi:"bootDiagnostics"` } @@ -5973,9 +7387,9 @@ type DiagnosticsProfileInput interface { ToDiagnosticsProfileOutputWithContext(context.Context) DiagnosticsProfileOutput } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. type DiagnosticsProfileArgs struct { - // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. + // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. BootDiagnostics BootDiagnosticsPtrInput `pulumi:"bootDiagnostics"` } @@ -6032,7 +7446,7 @@ func (i *diagnosticsProfilePtrType) ToDiagnosticsProfilePtrOutputWithContext(ctx return pulumi.ToOutputWithContext(ctx, i).(DiagnosticsProfilePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. type DiagnosticsProfileOutput struct{ *pulumi.OutputState } func (DiagnosticsProfileOutput) ElementType() reflect.Type { @@ -6057,7 +7471,7 @@ func (o DiagnosticsProfileOutput) ToDiagnosticsProfilePtrOutputWithContext(ctx c }).(DiagnosticsProfilePtrOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o DiagnosticsProfileOutput) BootDiagnostics() BootDiagnosticsPtrOutput { return o.ApplyT(func(v DiagnosticsProfile) *BootDiagnostics { return v.BootDiagnostics }).(BootDiagnosticsPtrOutput) } @@ -6086,7 +7500,7 @@ func (o DiagnosticsProfilePtrOutput) Elem() DiagnosticsProfileOutput { }).(DiagnosticsProfileOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o DiagnosticsProfilePtrOutput) BootDiagnostics() BootDiagnosticsPtrOutput { return o.ApplyT(func(v *DiagnosticsProfile) *BootDiagnostics { if v == nil { @@ -6096,13 +7510,13 @@ func (o DiagnosticsProfilePtrOutput) BootDiagnostics() BootDiagnosticsPtrOutput }).(BootDiagnosticsPtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. type DiagnosticsProfileResponse struct { - // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. + // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. BootDiagnostics *BootDiagnosticsResponse `pulumi:"bootDiagnostics"` } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. type DiagnosticsProfileResponseOutput struct{ *pulumi.OutputState } func (DiagnosticsProfileResponseOutput) ElementType() reflect.Type { @@ -6117,7 +7531,7 @@ func (o DiagnosticsProfileResponseOutput) ToDiagnosticsProfileResponseOutputWith return o } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o DiagnosticsProfileResponseOutput) BootDiagnostics() BootDiagnosticsResponsePtrOutput { return o.ApplyT(func(v DiagnosticsProfileResponse) *BootDiagnosticsResponse { return v.BootDiagnostics }).(BootDiagnosticsResponsePtrOutput) } @@ -6146,7 +7560,7 @@ func (o DiagnosticsProfileResponsePtrOutput) Elem() DiagnosticsProfileResponseOu }).(DiagnosticsProfileResponseOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. **NOTE**: If storageUri is being specified then ensure that the storage account is in the same region and subscription as the VM. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o DiagnosticsProfileResponsePtrOutput) BootDiagnostics() BootDiagnosticsResponsePtrOutput { return o.ApplyT(func(v *DiagnosticsProfileResponse) *BootDiagnosticsResponse { if v == nil { @@ -6156,11 +7570,11 @@ func (o DiagnosticsProfileResponsePtrOutput) BootDiagnostics() BootDiagnosticsRe }).(BootDiagnosticsResponsePtrOutput) } -// Describes the parameters of ephemeral disk settings that can be specified for operating system disk.

    NOTE: The ephemeral disk settings can only be specified for managed disk. +// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. **Note:** The ephemeral disk settings can only be specified for managed disk. type DiffDiskSettings struct { // Specifies the ephemeral disk settings for operating system disk. Option *string `pulumi:"option"` - // Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. + // Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Placement *string `pulumi:"placement"` } @@ -6175,11 +7589,11 @@ type DiffDiskSettingsInput interface { ToDiffDiskSettingsOutputWithContext(context.Context) DiffDiskSettingsOutput } -// Describes the parameters of ephemeral disk settings that can be specified for operating system disk.

    NOTE: The ephemeral disk settings can only be specified for managed disk. +// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. **Note:** The ephemeral disk settings can only be specified for managed disk. type DiffDiskSettingsArgs struct { // Specifies the ephemeral disk settings for operating system disk. Option pulumi.StringPtrInput `pulumi:"option"` - // Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. + // Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Placement pulumi.StringPtrInput `pulumi:"placement"` } @@ -6236,7 +7650,7 @@ func (i *diffDiskSettingsPtrType) ToDiffDiskSettingsPtrOutputWithContext(ctx con return pulumi.ToOutputWithContext(ctx, i).(DiffDiskSettingsPtrOutput) } -// Describes the parameters of ephemeral disk settings that can be specified for operating system disk.

    NOTE: The ephemeral disk settings can only be specified for managed disk. +// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. **Note:** The ephemeral disk settings can only be specified for managed disk. type DiffDiskSettingsOutput struct{ *pulumi.OutputState } func (DiffDiskSettingsOutput) ElementType() reflect.Type { @@ -6266,7 +7680,7 @@ func (o DiffDiskSettingsOutput) Option() pulumi.StringPtrOutput { return o.ApplyT(func(v DiffDiskSettings) *string { return v.Option }).(pulumi.StringPtrOutput) } -// Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. +// Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. func (o DiffDiskSettingsOutput) Placement() pulumi.StringPtrOutput { return o.ApplyT(func(v DiffDiskSettings) *string { return v.Placement }).(pulumi.StringPtrOutput) } @@ -6305,7 +7719,7 @@ func (o DiffDiskSettingsPtrOutput) Option() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. +// Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. func (o DiffDiskSettingsPtrOutput) Placement() pulumi.StringPtrOutput { return o.ApplyT(func(v *DiffDiskSettings) *string { if v == nil { @@ -6315,15 +7729,15 @@ func (o DiffDiskSettingsPtrOutput) Placement() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Describes the parameters of ephemeral disk settings that can be specified for operating system disk.

    NOTE: The ephemeral disk settings can only be specified for managed disk. +// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. **Note:** The ephemeral disk settings can only be specified for managed disk. type DiffDiskSettingsResponse struct { // Specifies the ephemeral disk settings for operating system disk. Option *string `pulumi:"option"` - // Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. + // Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. Placement *string `pulumi:"placement"` } -// Describes the parameters of ephemeral disk settings that can be specified for operating system disk.

    NOTE: The ephemeral disk settings can only be specified for managed disk. +// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. **Note:** The ephemeral disk settings can only be specified for managed disk. type DiffDiskSettingsResponseOutput struct{ *pulumi.OutputState } func (DiffDiskSettingsResponseOutput) ElementType() reflect.Type { @@ -6343,7 +7757,7 @@ func (o DiffDiskSettingsResponseOutput) Option() pulumi.StringPtrOutput { return o.ApplyT(func(v DiffDiskSettingsResponse) *string { return v.Option }).(pulumi.StringPtrOutput) } -// Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. +// Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. func (o DiffDiskSettingsResponseOutput) Placement() pulumi.StringPtrOutput { return o.ApplyT(func(v DiffDiskSettingsResponse) *string { return v.Placement }).(pulumi.StringPtrOutput) } @@ -6382,7 +7796,7 @@ func (o DiffDiskSettingsResponsePtrOutput) Option() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the ephemeral disk placement for operating system disk.

    Possible values are:

    **CacheDisk**

    **ResourceDisk**

    Default: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used.

    Refer to VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. +// Specifies the ephemeral disk placement for operating system disk. Possible values are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is: **CacheDisk** if one is configured for the VM size otherwise **ResourceDisk** is used. Refer to the VM size documentation for Windows VM at https://docs.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at https://docs.microsoft.com/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. func (o DiffDiskSettingsResponsePtrOutput) Placement() pulumi.StringPtrOutput { return o.ApplyT(func(v *DiffDiskSettingsResponse) *string { if v == nil { @@ -6592,7 +8006,7 @@ func (o DisallowedResponsePtrOutput) DiskTypes() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } -// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.

    NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. type DiskEncryptionSetParameters struct { // Resource Id Id *string `pulumi:"id"` @@ -6609,7 +8023,7 @@ type DiskEncryptionSetParametersInput interface { ToDiskEncryptionSetParametersOutputWithContext(context.Context) DiskEncryptionSetParametersOutput } -// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.

    NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. type DiskEncryptionSetParametersArgs struct { // Resource Id Id pulumi.StringPtrInput `pulumi:"id"` @@ -6668,7 +8082,7 @@ func (i *diskEncryptionSetParametersPtrType) ToDiskEncryptionSetParametersPtrOut return pulumi.ToOutputWithContext(ctx, i).(DiskEncryptionSetParametersPtrOutput) } -// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.

    NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. type DiskEncryptionSetParametersOutput struct{ *pulumi.OutputState } func (DiskEncryptionSetParametersOutput) ElementType() reflect.Type { @@ -6732,13 +8146,13 @@ func (o DiskEncryptionSetParametersPtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.

    NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. type DiskEncryptionSetParametersResponse struct { // Resource Id Id *string `pulumi:"id"` } -// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk.

    NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. type DiskEncryptionSetParametersResponseOutput struct{ *pulumi.OutputState } func (DiskEncryptionSetParametersResponseOutput) ElementType() reflect.Type { @@ -7144,8 +8558,397 @@ func (o DiskInstanceViewResponseArrayOutput) Index(i pulumi.IntInput) DiskInstan }).(DiskInstanceViewResponseOutput) } +// Disk Restore Point details. +type DiskRestorePointAttributes struct { + // Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. + Encryption *RestorePointEncryption `pulumi:"encryption"` + // Resource Id of the source disk restore point. + SourceDiskRestorePoint *ApiEntityReference `pulumi:"sourceDiskRestorePoint"` +} + +// DiskRestorePointAttributesInput is an input type that accepts DiskRestorePointAttributesArgs and DiskRestorePointAttributesOutput values. +// You can construct a concrete instance of `DiskRestorePointAttributesInput` via: +// +// DiskRestorePointAttributesArgs{...} +type DiskRestorePointAttributesInput interface { + pulumi.Input + + ToDiskRestorePointAttributesOutput() DiskRestorePointAttributesOutput + ToDiskRestorePointAttributesOutputWithContext(context.Context) DiskRestorePointAttributesOutput +} + +// Disk Restore Point details. +type DiskRestorePointAttributesArgs struct { + // Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. + Encryption RestorePointEncryptionPtrInput `pulumi:"encryption"` + // Resource Id of the source disk restore point. + SourceDiskRestorePoint ApiEntityReferencePtrInput `pulumi:"sourceDiskRestorePoint"` +} + +func (DiskRestorePointAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DiskRestorePointAttributes)(nil)).Elem() +} + +func (i DiskRestorePointAttributesArgs) ToDiskRestorePointAttributesOutput() DiskRestorePointAttributesOutput { + return i.ToDiskRestorePointAttributesOutputWithContext(context.Background()) +} + +func (i DiskRestorePointAttributesArgs) ToDiskRestorePointAttributesOutputWithContext(ctx context.Context) DiskRestorePointAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiskRestorePointAttributesOutput) +} + +func (i DiskRestorePointAttributesArgs) ToDiskRestorePointAttributesPtrOutput() DiskRestorePointAttributesPtrOutput { + return i.ToDiskRestorePointAttributesPtrOutputWithContext(context.Background()) +} + +func (i DiskRestorePointAttributesArgs) ToDiskRestorePointAttributesPtrOutputWithContext(ctx context.Context) DiskRestorePointAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiskRestorePointAttributesOutput).ToDiskRestorePointAttributesPtrOutputWithContext(ctx) +} + +// DiskRestorePointAttributesPtrInput is an input type that accepts DiskRestorePointAttributesArgs, DiskRestorePointAttributesPtr and DiskRestorePointAttributesPtrOutput values. +// You can construct a concrete instance of `DiskRestorePointAttributesPtrInput` via: +// +// DiskRestorePointAttributesArgs{...} +// +// or: +// +// nil +type DiskRestorePointAttributesPtrInput interface { + pulumi.Input + + ToDiskRestorePointAttributesPtrOutput() DiskRestorePointAttributesPtrOutput + ToDiskRestorePointAttributesPtrOutputWithContext(context.Context) DiskRestorePointAttributesPtrOutput +} + +type diskRestorePointAttributesPtrType DiskRestorePointAttributesArgs + +func DiskRestorePointAttributesPtr(v *DiskRestorePointAttributesArgs) DiskRestorePointAttributesPtrInput { + return (*diskRestorePointAttributesPtrType)(v) +} + +func (*diskRestorePointAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DiskRestorePointAttributes)(nil)).Elem() +} + +func (i *diskRestorePointAttributesPtrType) ToDiskRestorePointAttributesPtrOutput() DiskRestorePointAttributesPtrOutput { + return i.ToDiskRestorePointAttributesPtrOutputWithContext(context.Background()) +} + +func (i *diskRestorePointAttributesPtrType) ToDiskRestorePointAttributesPtrOutputWithContext(ctx context.Context) DiskRestorePointAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiskRestorePointAttributesPtrOutput) +} + +// Disk Restore Point details. +type DiskRestorePointAttributesOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DiskRestorePointAttributes)(nil)).Elem() +} + +func (o DiskRestorePointAttributesOutput) ToDiskRestorePointAttributesOutput() DiskRestorePointAttributesOutput { + return o +} + +func (o DiskRestorePointAttributesOutput) ToDiskRestorePointAttributesOutputWithContext(ctx context.Context) DiskRestorePointAttributesOutput { + return o +} + +func (o DiskRestorePointAttributesOutput) ToDiskRestorePointAttributesPtrOutput() DiskRestorePointAttributesPtrOutput { + return o.ToDiskRestorePointAttributesPtrOutputWithContext(context.Background()) +} + +func (o DiskRestorePointAttributesOutput) ToDiskRestorePointAttributesPtrOutputWithContext(ctx context.Context) DiskRestorePointAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DiskRestorePointAttributes) *DiskRestorePointAttributes { + return &v + }).(DiskRestorePointAttributesPtrOutput) +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +func (o DiskRestorePointAttributesOutput) Encryption() RestorePointEncryptionPtrOutput { + return o.ApplyT(func(v DiskRestorePointAttributes) *RestorePointEncryption { return v.Encryption }).(RestorePointEncryptionPtrOutput) +} + +// Resource Id of the source disk restore point. +func (o DiskRestorePointAttributesOutput) SourceDiskRestorePoint() ApiEntityReferencePtrOutput { + return o.ApplyT(func(v DiskRestorePointAttributes) *ApiEntityReference { return v.SourceDiskRestorePoint }).(ApiEntityReferencePtrOutput) +} + +type DiskRestorePointAttributesPtrOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DiskRestorePointAttributes)(nil)).Elem() +} + +func (o DiskRestorePointAttributesPtrOutput) ToDiskRestorePointAttributesPtrOutput() DiskRestorePointAttributesPtrOutput { + return o +} + +func (o DiskRestorePointAttributesPtrOutput) ToDiskRestorePointAttributesPtrOutputWithContext(ctx context.Context) DiskRestorePointAttributesPtrOutput { + return o +} + +func (o DiskRestorePointAttributesPtrOutput) Elem() DiskRestorePointAttributesOutput { + return o.ApplyT(func(v *DiskRestorePointAttributes) DiskRestorePointAttributes { + if v != nil { + return *v + } + var ret DiskRestorePointAttributes + return ret + }).(DiskRestorePointAttributesOutput) +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +func (o DiskRestorePointAttributesPtrOutput) Encryption() RestorePointEncryptionPtrOutput { + return o.ApplyT(func(v *DiskRestorePointAttributes) *RestorePointEncryption { + if v == nil { + return nil + } + return v.Encryption + }).(RestorePointEncryptionPtrOutput) +} + +// Resource Id of the source disk restore point. +func (o DiskRestorePointAttributesPtrOutput) SourceDiskRestorePoint() ApiEntityReferencePtrOutput { + return o.ApplyT(func(v *DiskRestorePointAttributes) *ApiEntityReference { + if v == nil { + return nil + } + return v.SourceDiskRestorePoint + }).(ApiEntityReferencePtrOutput) +} + +// Disk Restore Point details. +type DiskRestorePointAttributesResponse struct { + // Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. + Encryption *RestorePointEncryptionResponse `pulumi:"encryption"` + // Resource Id + Id string `pulumi:"id"` + // Resource Id of the source disk restore point. + SourceDiskRestorePoint *ApiEntityReferenceResponse `pulumi:"sourceDiskRestorePoint"` +} + +// Disk Restore Point details. +type DiskRestorePointAttributesResponseOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointAttributesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DiskRestorePointAttributesResponse)(nil)).Elem() +} + +func (o DiskRestorePointAttributesResponseOutput) ToDiskRestorePointAttributesResponseOutput() DiskRestorePointAttributesResponseOutput { + return o +} + +func (o DiskRestorePointAttributesResponseOutput) ToDiskRestorePointAttributesResponseOutputWithContext(ctx context.Context) DiskRestorePointAttributesResponseOutput { + return o +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +func (o DiskRestorePointAttributesResponseOutput) Encryption() RestorePointEncryptionResponsePtrOutput { + return o.ApplyT(func(v DiskRestorePointAttributesResponse) *RestorePointEncryptionResponse { return v.Encryption }).(RestorePointEncryptionResponsePtrOutput) +} + +// Resource Id +func (o DiskRestorePointAttributesResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v DiskRestorePointAttributesResponse) string { return v.Id }).(pulumi.StringOutput) +} + +// Resource Id of the source disk restore point. +func (o DiskRestorePointAttributesResponseOutput) SourceDiskRestorePoint() ApiEntityReferenceResponsePtrOutput { + return o.ApplyT(func(v DiskRestorePointAttributesResponse) *ApiEntityReferenceResponse { + return v.SourceDiskRestorePoint + }).(ApiEntityReferenceResponsePtrOutput) +} + +type DiskRestorePointAttributesResponsePtrOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointAttributesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DiskRestorePointAttributesResponse)(nil)).Elem() +} + +func (o DiskRestorePointAttributesResponsePtrOutput) ToDiskRestorePointAttributesResponsePtrOutput() DiskRestorePointAttributesResponsePtrOutput { + return o +} + +func (o DiskRestorePointAttributesResponsePtrOutput) ToDiskRestorePointAttributesResponsePtrOutputWithContext(ctx context.Context) DiskRestorePointAttributesResponsePtrOutput { + return o +} + +func (o DiskRestorePointAttributesResponsePtrOutput) Elem() DiskRestorePointAttributesResponseOutput { + return o.ApplyT(func(v *DiskRestorePointAttributesResponse) DiskRestorePointAttributesResponse { + if v != nil { + return *v + } + var ret DiskRestorePointAttributesResponse + return ret + }).(DiskRestorePointAttributesResponseOutput) +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +func (o DiskRestorePointAttributesResponsePtrOutput) Encryption() RestorePointEncryptionResponsePtrOutput { + return o.ApplyT(func(v *DiskRestorePointAttributesResponse) *RestorePointEncryptionResponse { + if v == nil { + return nil + } + return v.Encryption + }).(RestorePointEncryptionResponsePtrOutput) +} + +// Resource Id +func (o DiskRestorePointAttributesResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiskRestorePointAttributesResponse) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + +// Resource Id of the source disk restore point. +func (o DiskRestorePointAttributesResponsePtrOutput) SourceDiskRestorePoint() ApiEntityReferenceResponsePtrOutput { + return o.ApplyT(func(v *DiskRestorePointAttributesResponse) *ApiEntityReferenceResponse { + if v == nil { + return nil + } + return v.SourceDiskRestorePoint + }).(ApiEntityReferenceResponsePtrOutput) +} + +// The instance view of a disk restore point. +type DiskRestorePointInstanceViewResponse struct { + // Disk restore point Id. + Id *string `pulumi:"id"` + // The disk restore point replication status information. + ReplicationStatus *DiskRestorePointReplicationStatusResponse `pulumi:"replicationStatus"` +} + +// The instance view of a disk restore point. +type DiskRestorePointInstanceViewResponseOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointInstanceViewResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DiskRestorePointInstanceViewResponse)(nil)).Elem() +} + +func (o DiskRestorePointInstanceViewResponseOutput) ToDiskRestorePointInstanceViewResponseOutput() DiskRestorePointInstanceViewResponseOutput { + return o +} + +func (o DiskRestorePointInstanceViewResponseOutput) ToDiskRestorePointInstanceViewResponseOutputWithContext(ctx context.Context) DiskRestorePointInstanceViewResponseOutput { + return o +} + +// Disk restore point Id. +func (o DiskRestorePointInstanceViewResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DiskRestorePointInstanceViewResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The disk restore point replication status information. +func (o DiskRestorePointInstanceViewResponseOutput) ReplicationStatus() DiskRestorePointReplicationStatusResponsePtrOutput { + return o.ApplyT(func(v DiskRestorePointInstanceViewResponse) *DiskRestorePointReplicationStatusResponse { + return v.ReplicationStatus + }).(DiskRestorePointReplicationStatusResponsePtrOutput) +} + +type DiskRestorePointInstanceViewResponseArrayOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointInstanceViewResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DiskRestorePointInstanceViewResponse)(nil)).Elem() +} + +func (o DiskRestorePointInstanceViewResponseArrayOutput) ToDiskRestorePointInstanceViewResponseArrayOutput() DiskRestorePointInstanceViewResponseArrayOutput { + return o +} + +func (o DiskRestorePointInstanceViewResponseArrayOutput) ToDiskRestorePointInstanceViewResponseArrayOutputWithContext(ctx context.Context) DiskRestorePointInstanceViewResponseArrayOutput { + return o +} + +func (o DiskRestorePointInstanceViewResponseArrayOutput) Index(i pulumi.IntInput) DiskRestorePointInstanceViewResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DiskRestorePointInstanceViewResponse { + return vs[0].([]DiskRestorePointInstanceViewResponse)[vs[1].(int)] + }).(DiskRestorePointInstanceViewResponseOutput) +} + +// The instance view of a disk restore point. +type DiskRestorePointReplicationStatusResponse struct { + // Replication completion percentage. + CompletionPercent *int `pulumi:"completionPercent"` + // The resource status information. + Status *InstanceViewStatusResponse `pulumi:"status"` +} + +// The instance view of a disk restore point. +type DiskRestorePointReplicationStatusResponseOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointReplicationStatusResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DiskRestorePointReplicationStatusResponse)(nil)).Elem() +} + +func (o DiskRestorePointReplicationStatusResponseOutput) ToDiskRestorePointReplicationStatusResponseOutput() DiskRestorePointReplicationStatusResponseOutput { + return o +} + +func (o DiskRestorePointReplicationStatusResponseOutput) ToDiskRestorePointReplicationStatusResponseOutputWithContext(ctx context.Context) DiskRestorePointReplicationStatusResponseOutput { + return o +} + +// Replication completion percentage. +func (o DiskRestorePointReplicationStatusResponseOutput) CompletionPercent() pulumi.IntPtrOutput { + return o.ApplyT(func(v DiskRestorePointReplicationStatusResponse) *int { return v.CompletionPercent }).(pulumi.IntPtrOutput) +} + +// The resource status information. +func (o DiskRestorePointReplicationStatusResponseOutput) Status() InstanceViewStatusResponsePtrOutput { + return o.ApplyT(func(v DiskRestorePointReplicationStatusResponse) *InstanceViewStatusResponse { return v.Status }).(InstanceViewStatusResponsePtrOutput) +} + +type DiskRestorePointReplicationStatusResponsePtrOutput struct{ *pulumi.OutputState } + +func (DiskRestorePointReplicationStatusResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DiskRestorePointReplicationStatusResponse)(nil)).Elem() +} + +func (o DiskRestorePointReplicationStatusResponsePtrOutput) ToDiskRestorePointReplicationStatusResponsePtrOutput() DiskRestorePointReplicationStatusResponsePtrOutput { + return o +} + +func (o DiskRestorePointReplicationStatusResponsePtrOutput) ToDiskRestorePointReplicationStatusResponsePtrOutputWithContext(ctx context.Context) DiskRestorePointReplicationStatusResponsePtrOutput { + return o +} + +func (o DiskRestorePointReplicationStatusResponsePtrOutput) Elem() DiskRestorePointReplicationStatusResponseOutput { + return o.ApplyT(func(v *DiskRestorePointReplicationStatusResponse) DiskRestorePointReplicationStatusResponse { + if v != nil { + return *v + } + var ret DiskRestorePointReplicationStatusResponse + return ret + }).(DiskRestorePointReplicationStatusResponseOutput) +} + +// Replication completion percentage. +func (o DiskRestorePointReplicationStatusResponsePtrOutput) CompletionPercent() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DiskRestorePointReplicationStatusResponse) *int { + if v == nil { + return nil + } + return v.CompletionPercent + }).(pulumi.IntPtrOutput) +} + +// The resource status information. +func (o DiskRestorePointReplicationStatusResponsePtrOutput) Status() InstanceViewStatusResponsePtrOutput { + return o.ApplyT(func(v *DiskRestorePointReplicationStatusResponse) *InstanceViewStatusResponse { + if v == nil { + return nil + } + return v.Status + }).(InstanceViewStatusResponsePtrOutput) +} + // Contains the security related information for the resource. type DiskSecurityProfile struct { + // ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key + SecureVMDiskEncryptionSetId *string `pulumi:"secureVMDiskEncryptionSetId"` // Specifies the SecurityType of the VM. Applicable for OS disks only. SecurityType *string `pulumi:"securityType"` } @@ -7163,6 +8966,8 @@ type DiskSecurityProfileInput interface { // Contains the security related information for the resource. type DiskSecurityProfileArgs struct { + // ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key + SecureVMDiskEncryptionSetId pulumi.StringPtrInput `pulumi:"secureVMDiskEncryptionSetId"` // Specifies the SecurityType of the VM. Applicable for OS disks only. SecurityType pulumi.StringPtrInput `pulumi:"securityType"` } @@ -7245,6 +9050,11 @@ func (o DiskSecurityProfileOutput) ToDiskSecurityProfilePtrOutputWithContext(ctx }).(DiskSecurityProfilePtrOutput) } +// ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key +func (o DiskSecurityProfileOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DiskSecurityProfile) *string { return v.SecureVMDiskEncryptionSetId }).(pulumi.StringPtrOutput) +} + // Specifies the SecurityType of the VM. Applicable for OS disks only. func (o DiskSecurityProfileOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v DiskSecurityProfile) *string { return v.SecurityType }).(pulumi.StringPtrOutput) @@ -7274,6 +9084,16 @@ func (o DiskSecurityProfilePtrOutput) Elem() DiskSecurityProfileOutput { }).(DiskSecurityProfileOutput) } +// ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key +func (o DiskSecurityProfilePtrOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiskSecurityProfile) *string { + if v == nil { + return nil + } + return v.SecureVMDiskEncryptionSetId + }).(pulumi.StringPtrOutput) +} + // Specifies the SecurityType of the VM. Applicable for OS disks only. func (o DiskSecurityProfilePtrOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v *DiskSecurityProfile) *string { @@ -7286,6 +9106,8 @@ func (o DiskSecurityProfilePtrOutput) SecurityType() pulumi.StringPtrOutput { // Contains the security related information for the resource. type DiskSecurityProfileResponse struct { + // ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key + SecureVMDiskEncryptionSetId *string `pulumi:"secureVMDiskEncryptionSetId"` // Specifies the SecurityType of the VM. Applicable for OS disks only. SecurityType *string `pulumi:"securityType"` } @@ -7305,6 +9127,11 @@ func (o DiskSecurityProfileResponseOutput) ToDiskSecurityProfileResponseOutputWi return o } +// ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key +func (o DiskSecurityProfileResponseOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DiskSecurityProfileResponse) *string { return v.SecureVMDiskEncryptionSetId }).(pulumi.StringPtrOutput) +} + // Specifies the SecurityType of the VM. Applicable for OS disks only. func (o DiskSecurityProfileResponseOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v DiskSecurityProfileResponse) *string { return v.SecurityType }).(pulumi.StringPtrOutput) @@ -7334,6 +9161,16 @@ func (o DiskSecurityProfileResponsePtrOutput) Elem() DiskSecurityProfileResponse }).(DiskSecurityProfileResponseOutput) } +// ResourceId of the disk encryption set associated to Confidential VM supported disk encrypted with customer managed key +func (o DiskSecurityProfileResponsePtrOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiskSecurityProfileResponse) *string { + if v == nil { + return nil + } + return v.SecureVMDiskEncryptionSetId + }).(pulumi.StringPtrOutput) +} + // Specifies the SecurityType of the VM. Applicable for OS disks only. func (o DiskSecurityProfileResponsePtrOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v *DiskSecurityProfileResponse) *string { @@ -7344,7 +9181,7 @@ func (o DiskSecurityProfileResponsePtrOutput) SecurityType() pulumi.StringPtrOut }).(pulumi.StringPtrOutput) } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. type DiskSku struct { // The sku name. Name *string `pulumi:"name"` @@ -7361,7 +9198,7 @@ type DiskSkuInput interface { ToDiskSkuOutputWithContext(context.Context) DiskSkuOutput } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. type DiskSkuArgs struct { // The sku name. Name pulumi.StringPtrInput `pulumi:"name"` @@ -7420,7 +9257,7 @@ func (i *diskSkuPtrType) ToDiskSkuPtrOutputWithContext(ctx context.Context) Disk return pulumi.ToOutputWithContext(ctx, i).(DiskSkuPtrOutput) } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. type DiskSkuOutput struct{ *pulumi.OutputState } func (DiskSkuOutput) ElementType() reflect.Type { @@ -7484,7 +9321,7 @@ func (o DiskSkuPtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. type DiskSkuResponse struct { // The sku name. Name *string `pulumi:"name"` @@ -7492,7 +9329,7 @@ type DiskSkuResponse struct { Tier string `pulumi:"tier"` } -// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. +// The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, StandardSSD_ZRS, or PremiumV2_LRS. type DiskSkuResponseOutput struct{ *pulumi.OutputState } func (DiskSkuResponseOutput) ElementType() reflect.Type { @@ -8037,6 +9874,8 @@ func (o EncryptionResponsePtrOutput) Type() pulumi.StringPtrOutput { type EncryptionSetIdentity struct { // The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported for new creations. Disk Encryption Sets can be updated with Identity type None during migration of subscription to a new Azure Active Directory tenant; it will cause the encrypted resources to lose access to the keys. Type *string `pulumi:"type"` + // The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // EncryptionSetIdentityInput is an input type that accepts EncryptionSetIdentityArgs and EncryptionSetIdentityOutput values. @@ -8054,6 +9893,8 @@ type EncryptionSetIdentityInput interface { type EncryptionSetIdentityArgs struct { // The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported for new creations. Disk Encryption Sets can be updated with Identity type None during migration of subscription to a new Azure Active Directory tenant; it will cause the encrypted resources to lose access to the keys. Type pulumi.StringPtrInput `pulumi:"type"` + // The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (EncryptionSetIdentityArgs) ElementType() reflect.Type { @@ -8139,6 +9980,11 @@ func (o EncryptionSetIdentityOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionSetIdentity) *string { return v.Type }).(pulumi.StringPtrOutput) } +// The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. +func (o EncryptionSetIdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v EncryptionSetIdentity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) +} + type EncryptionSetIdentityPtrOutput struct{ *pulumi.OutputState } func (EncryptionSetIdentityPtrOutput) ElementType() reflect.Type { @@ -8173,6 +10019,16 @@ func (o EncryptionSetIdentityPtrOutput) Type() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. +func (o EncryptionSetIdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *EncryptionSetIdentity) []string { + if v == nil { + return nil + } + return v.UserAssignedIdentities + }).(pulumi.StringArrayOutput) +} + // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. type EncryptionSetIdentityResponse struct { // The object id of the Managed Identity Resource. This will be sent to the RP from ARM via the x-ms-identity-principal-id header in the PUT request if the resource has a systemAssigned(implicit) identity @@ -8181,6 +10037,8 @@ type EncryptionSetIdentityResponse struct { TenantId string `pulumi:"tenantId"` // The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported for new creations. Disk Encryption Sets can be updated with Identity type None during migration of subscription to a new Azure Active Directory tenant; it will cause the encrypted resources to lose access to the keys. Type *string `pulumi:"type"` + // The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities map[string]UserAssignedIdentitiesResponseUserAssignedIdentities `pulumi:"userAssignedIdentities"` } // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. @@ -8213,6 +10071,13 @@ func (o EncryptionSetIdentityResponseOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v EncryptionSetIdentityResponse) *string { return v.Type }).(pulumi.StringPtrOutput) } +// The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. +func (o EncryptionSetIdentityResponseOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v EncryptionSetIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { + return v.UserAssignedIdentities + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) +} + type EncryptionSetIdentityResponsePtrOutput struct{ *pulumi.OutputState } func (EncryptionSetIdentityResponsePtrOutput) ElementType() reflect.Type { @@ -8267,6 +10132,16 @@ func (o EncryptionSetIdentityResponsePtrOutput) Type() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// The list of user identities associated with the disk encryption set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. +func (o EncryptionSetIdentityResponsePtrOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v *EncryptionSetIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { + if v == nil { + return nil + } + return v.UserAssignedIdentities + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) +} + // Encryption settings for disk or snapshot type EncryptionSettingsCollection struct { // Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged. @@ -9103,8 +10978,420 @@ func (o ExtensionResponseArrayOutput) Index(i pulumi.IntInput) ExtensionResponse }).(ExtensionResponseOutput) } +// A custom action that can be performed with a Gallery Application Version. +type GalleryApplicationCustomAction struct { + // Description to help the users understand what this custom action does. + Description *string `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name string `pulumi:"name"` + // The parameters that this custom action uses + Parameters []GalleryApplicationCustomActionParameter `pulumi:"parameters"` + // The script to run when executing this custom action. + Script string `pulumi:"script"` +} + +// GalleryApplicationCustomActionInput is an input type that accepts GalleryApplicationCustomActionArgs and GalleryApplicationCustomActionOutput values. +// You can construct a concrete instance of `GalleryApplicationCustomActionInput` via: +// +// GalleryApplicationCustomActionArgs{...} +type GalleryApplicationCustomActionInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionOutput() GalleryApplicationCustomActionOutput + ToGalleryApplicationCustomActionOutputWithContext(context.Context) GalleryApplicationCustomActionOutput +} + +// A custom action that can be performed with a Gallery Application Version. +type GalleryApplicationCustomActionArgs struct { + // Description to help the users understand what this custom action does. + Description pulumi.StringPtrInput `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name pulumi.StringInput `pulumi:"name"` + // The parameters that this custom action uses + Parameters GalleryApplicationCustomActionParameterArrayInput `pulumi:"parameters"` + // The script to run when executing this custom action. + Script pulumi.StringInput `pulumi:"script"` +} + +func (GalleryApplicationCustomActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomAction)(nil)).Elem() +} + +func (i GalleryApplicationCustomActionArgs) ToGalleryApplicationCustomActionOutput() GalleryApplicationCustomActionOutput { + return i.ToGalleryApplicationCustomActionOutputWithContext(context.Background()) +} + +func (i GalleryApplicationCustomActionArgs) ToGalleryApplicationCustomActionOutputWithContext(ctx context.Context) GalleryApplicationCustomActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationCustomActionOutput) +} + +// GalleryApplicationCustomActionArrayInput is an input type that accepts GalleryApplicationCustomActionArray and GalleryApplicationCustomActionArrayOutput values. +// You can construct a concrete instance of `GalleryApplicationCustomActionArrayInput` via: +// +// GalleryApplicationCustomActionArray{ GalleryApplicationCustomActionArgs{...} } +type GalleryApplicationCustomActionArrayInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionArrayOutput() GalleryApplicationCustomActionArrayOutput + ToGalleryApplicationCustomActionArrayOutputWithContext(context.Context) GalleryApplicationCustomActionArrayOutput +} + +type GalleryApplicationCustomActionArray []GalleryApplicationCustomActionInput + +func (GalleryApplicationCustomActionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomAction)(nil)).Elem() +} + +func (i GalleryApplicationCustomActionArray) ToGalleryApplicationCustomActionArrayOutput() GalleryApplicationCustomActionArrayOutput { + return i.ToGalleryApplicationCustomActionArrayOutputWithContext(context.Background()) +} + +func (i GalleryApplicationCustomActionArray) ToGalleryApplicationCustomActionArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationCustomActionArrayOutput) +} + +// A custom action that can be performed with a Gallery Application Version. +type GalleryApplicationCustomActionOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomAction)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionOutput) ToGalleryApplicationCustomActionOutput() GalleryApplicationCustomActionOutput { + return o +} + +func (o GalleryApplicationCustomActionOutput) ToGalleryApplicationCustomActionOutputWithContext(ctx context.Context) GalleryApplicationCustomActionOutput { + return o +} + +// Description to help the users understand what this custom action does. +func (o GalleryApplicationCustomActionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomAction) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the custom action. Must be unique within the Gallery Application Version. +func (o GalleryApplicationCustomActionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomAction) string { return v.Name }).(pulumi.StringOutput) +} + +// The parameters that this custom action uses +func (o GalleryApplicationCustomActionOutput) Parameters() GalleryApplicationCustomActionParameterArrayOutput { + return o.ApplyT(func(v GalleryApplicationCustomAction) []GalleryApplicationCustomActionParameter { return v.Parameters }).(GalleryApplicationCustomActionParameterArrayOutput) +} + +// The script to run when executing this custom action. +func (o GalleryApplicationCustomActionOutput) Script() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomAction) string { return v.Script }).(pulumi.StringOutput) +} + +type GalleryApplicationCustomActionArrayOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomAction)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionArrayOutput) ToGalleryApplicationCustomActionArrayOutput() GalleryApplicationCustomActionArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionArrayOutput) ToGalleryApplicationCustomActionArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionArrayOutput) Index(i pulumi.IntInput) GalleryApplicationCustomActionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryApplicationCustomAction { + return vs[0].([]GalleryApplicationCustomAction)[vs[1].(int)] + }).(GalleryApplicationCustomActionOutput) +} + +// The definition of a parameter that can be passed to a custom action of a Gallery Application Version. +type GalleryApplicationCustomActionParameter struct { + // The default value of the parameter. Only applies to string types + DefaultValue *string `pulumi:"defaultValue"` + // A description to help users understand what this parameter means + Description *string `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name string `pulumi:"name"` + // Indicates whether this parameter must be passed when running the custom action. + Required *bool `pulumi:"required"` + // Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob + Type *GalleryApplicationCustomActionParameterType `pulumi:"type"` +} + +// GalleryApplicationCustomActionParameterInput is an input type that accepts GalleryApplicationCustomActionParameterArgs and GalleryApplicationCustomActionParameterOutput values. +// You can construct a concrete instance of `GalleryApplicationCustomActionParameterInput` via: +// +// GalleryApplicationCustomActionParameterArgs{...} +type GalleryApplicationCustomActionParameterInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionParameterOutput() GalleryApplicationCustomActionParameterOutput + ToGalleryApplicationCustomActionParameterOutputWithContext(context.Context) GalleryApplicationCustomActionParameterOutput +} + +// The definition of a parameter that can be passed to a custom action of a Gallery Application Version. +type GalleryApplicationCustomActionParameterArgs struct { + // The default value of the parameter. Only applies to string types + DefaultValue pulumi.StringPtrInput `pulumi:"defaultValue"` + // A description to help users understand what this parameter means + Description pulumi.StringPtrInput `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name pulumi.StringInput `pulumi:"name"` + // Indicates whether this parameter must be passed when running the custom action. + Required pulumi.BoolPtrInput `pulumi:"required"` + // Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob + Type GalleryApplicationCustomActionParameterTypePtrInput `pulumi:"type"` +} + +func (GalleryApplicationCustomActionParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionParameter)(nil)).Elem() +} + +func (i GalleryApplicationCustomActionParameterArgs) ToGalleryApplicationCustomActionParameterOutput() GalleryApplicationCustomActionParameterOutput { + return i.ToGalleryApplicationCustomActionParameterOutputWithContext(context.Background()) +} + +func (i GalleryApplicationCustomActionParameterArgs) ToGalleryApplicationCustomActionParameterOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationCustomActionParameterOutput) +} + +// GalleryApplicationCustomActionParameterArrayInput is an input type that accepts GalleryApplicationCustomActionParameterArray and GalleryApplicationCustomActionParameterArrayOutput values. +// You can construct a concrete instance of `GalleryApplicationCustomActionParameterArrayInput` via: +// +// GalleryApplicationCustomActionParameterArray{ GalleryApplicationCustomActionParameterArgs{...} } +type GalleryApplicationCustomActionParameterArrayInput interface { + pulumi.Input + + ToGalleryApplicationCustomActionParameterArrayOutput() GalleryApplicationCustomActionParameterArrayOutput + ToGalleryApplicationCustomActionParameterArrayOutputWithContext(context.Context) GalleryApplicationCustomActionParameterArrayOutput +} + +type GalleryApplicationCustomActionParameterArray []GalleryApplicationCustomActionParameterInput + +func (GalleryApplicationCustomActionParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomActionParameter)(nil)).Elem() +} + +func (i GalleryApplicationCustomActionParameterArray) ToGalleryApplicationCustomActionParameterArrayOutput() GalleryApplicationCustomActionParameterArrayOutput { + return i.ToGalleryApplicationCustomActionParameterArrayOutputWithContext(context.Background()) +} + +func (i GalleryApplicationCustomActionParameterArray) ToGalleryApplicationCustomActionParameterArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationCustomActionParameterArrayOutput) +} + +// The definition of a parameter that can be passed to a custom action of a Gallery Application Version. +type GalleryApplicationCustomActionParameterOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionParameter)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterOutput) ToGalleryApplicationCustomActionParameterOutput() GalleryApplicationCustomActionParameterOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterOutput) ToGalleryApplicationCustomActionParameterOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterOutput { + return o +} + +// The default value of the parameter. Only applies to string types +func (o GalleryApplicationCustomActionParameterOutput) DefaultValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameter) *string { return v.DefaultValue }).(pulumi.StringPtrOutput) +} + +// A description to help users understand what this parameter means +func (o GalleryApplicationCustomActionParameterOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameter) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the custom action. Must be unique within the Gallery Application Version. +func (o GalleryApplicationCustomActionParameterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameter) string { return v.Name }).(pulumi.StringOutput) +} + +// Indicates whether this parameter must be passed when running the custom action. +func (o GalleryApplicationCustomActionParameterOutput) Required() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameter) *bool { return v.Required }).(pulumi.BoolPtrOutput) +} + +// Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob +func (o GalleryApplicationCustomActionParameterOutput) Type() GalleryApplicationCustomActionParameterTypePtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameter) *GalleryApplicationCustomActionParameterType { + return v.Type + }).(GalleryApplicationCustomActionParameterTypePtrOutput) +} + +type GalleryApplicationCustomActionParameterArrayOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomActionParameter)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterArrayOutput) ToGalleryApplicationCustomActionParameterArrayOutput() GalleryApplicationCustomActionParameterArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterArrayOutput) ToGalleryApplicationCustomActionParameterArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterArrayOutput) Index(i pulumi.IntInput) GalleryApplicationCustomActionParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryApplicationCustomActionParameter { + return vs[0].([]GalleryApplicationCustomActionParameter)[vs[1].(int)] + }).(GalleryApplicationCustomActionParameterOutput) +} + +// The definition of a parameter that can be passed to a custom action of a Gallery Application Version. +type GalleryApplicationCustomActionParameterResponse struct { + // The default value of the parameter. Only applies to string types + DefaultValue *string `pulumi:"defaultValue"` + // A description to help users understand what this parameter means + Description *string `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name string `pulumi:"name"` + // Indicates whether this parameter must be passed when running the custom action. + Required *bool `pulumi:"required"` + // Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob + Type *string `pulumi:"type"` +} + +// The definition of a parameter that can be passed to a custom action of a Gallery Application Version. +type GalleryApplicationCustomActionParameterResponseOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionParameterResponse)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterResponseOutput) ToGalleryApplicationCustomActionParameterResponseOutput() GalleryApplicationCustomActionParameterResponseOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterResponseOutput) ToGalleryApplicationCustomActionParameterResponseOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterResponseOutput { + return o +} + +// The default value of the parameter. Only applies to string types +func (o GalleryApplicationCustomActionParameterResponseOutput) DefaultValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameterResponse) *string { return v.DefaultValue }).(pulumi.StringPtrOutput) +} + +// A description to help users understand what this parameter means +func (o GalleryApplicationCustomActionParameterResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameterResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the custom action. Must be unique within the Gallery Application Version. +func (o GalleryApplicationCustomActionParameterResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameterResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Indicates whether this parameter must be passed when running the custom action. +func (o GalleryApplicationCustomActionParameterResponseOutput) Required() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameterResponse) *bool { return v.Required }).(pulumi.BoolPtrOutput) +} + +// Specifies the type of the custom action parameter. Possible values are: String, ConfigurationDataBlob or LogOutputBlob +func (o GalleryApplicationCustomActionParameterResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionParameterResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type GalleryApplicationCustomActionParameterResponseArrayOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionParameterResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomActionParameterResponse)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionParameterResponseArrayOutput) ToGalleryApplicationCustomActionParameterResponseArrayOutput() GalleryApplicationCustomActionParameterResponseArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterResponseArrayOutput) ToGalleryApplicationCustomActionParameterResponseArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionParameterResponseArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionParameterResponseArrayOutput) Index(i pulumi.IntInput) GalleryApplicationCustomActionParameterResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryApplicationCustomActionParameterResponse { + return vs[0].([]GalleryApplicationCustomActionParameterResponse)[vs[1].(int)] + }).(GalleryApplicationCustomActionParameterResponseOutput) +} + +// A custom action that can be performed with a Gallery Application Version. +type GalleryApplicationCustomActionResponse struct { + // Description to help the users understand what this custom action does. + Description *string `pulumi:"description"` + // The name of the custom action. Must be unique within the Gallery Application Version. + Name string `pulumi:"name"` + // The parameters that this custom action uses + Parameters []GalleryApplicationCustomActionParameterResponse `pulumi:"parameters"` + // The script to run when executing this custom action. + Script string `pulumi:"script"` +} + +// A custom action that can be performed with a Gallery Application Version. +type GalleryApplicationCustomActionResponseOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationCustomActionResponse)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionResponseOutput) ToGalleryApplicationCustomActionResponseOutput() GalleryApplicationCustomActionResponseOutput { + return o +} + +func (o GalleryApplicationCustomActionResponseOutput) ToGalleryApplicationCustomActionResponseOutputWithContext(ctx context.Context) GalleryApplicationCustomActionResponseOutput { + return o +} + +// Description to help the users understand what this custom action does. +func (o GalleryApplicationCustomActionResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the custom action. Must be unique within the Gallery Application Version. +func (o GalleryApplicationCustomActionResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// The parameters that this custom action uses +func (o GalleryApplicationCustomActionResponseOutput) Parameters() GalleryApplicationCustomActionParameterResponseArrayOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionResponse) []GalleryApplicationCustomActionParameterResponse { + return v.Parameters + }).(GalleryApplicationCustomActionParameterResponseArrayOutput) +} + +// The script to run when executing this custom action. +func (o GalleryApplicationCustomActionResponseOutput) Script() pulumi.StringOutput { + return o.ApplyT(func(v GalleryApplicationCustomActionResponse) string { return v.Script }).(pulumi.StringOutput) +} + +type GalleryApplicationCustomActionResponseArrayOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationCustomActionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryApplicationCustomActionResponse)(nil)).Elem() +} + +func (o GalleryApplicationCustomActionResponseArrayOutput) ToGalleryApplicationCustomActionResponseArrayOutput() GalleryApplicationCustomActionResponseArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionResponseArrayOutput) ToGalleryApplicationCustomActionResponseArrayOutputWithContext(ctx context.Context) GalleryApplicationCustomActionResponseArrayOutput { + return o +} + +func (o GalleryApplicationCustomActionResponseArrayOutput) Index(i pulumi.IntInput) GalleryApplicationCustomActionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryApplicationCustomActionResponse { + return vs[0].([]GalleryApplicationCustomActionResponse)[vs[1].(int)] + }).(GalleryApplicationCustomActionResponseOutput) +} + // The publishing profile of a gallery image version. type GalleryApplicationVersionPublishingProfile struct { + // Optional. Additional settings to pass to the vm-application-manager extension. For advanced use only. + AdvancedSettings map[string]string `pulumi:"advancedSettings"` + // A list of custom actions that can be performed with this Gallery Application Version. + CustomActions []GalleryApplicationCustomAction `pulumi:"customActions"` // Optional. Whether or not this application reports health. EnableHealthCheck *bool `pulumi:"enableHealthCheck"` // The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable. @@ -9114,10 +11401,16 @@ type GalleryApplicationVersionPublishingProfile struct { ManageActions *UserArtifactManage `pulumi:"manageActions"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount *int `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode *string `pulumi:"replicationMode"` + // Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. + Settings *UserArtifactSettings `pulumi:"settings"` // The source image from which the Image Version is going to be created. Source UserArtifactSource `pulumi:"source"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType *string `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations []GalleryTargetExtendedLocation `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions []TargetRegion `pulumi:"targetRegions"` } @@ -9135,6 +11428,10 @@ type GalleryApplicationVersionPublishingProfileInput interface { // The publishing profile of a gallery image version. type GalleryApplicationVersionPublishingProfileArgs struct { + // Optional. Additional settings to pass to the vm-application-manager extension. For advanced use only. + AdvancedSettings pulumi.StringMapInput `pulumi:"advancedSettings"` + // A list of custom actions that can be performed with this Gallery Application Version. + CustomActions GalleryApplicationCustomActionArrayInput `pulumi:"customActions"` // Optional. Whether or not this application reports health. EnableHealthCheck pulumi.BoolPtrInput `pulumi:"enableHealthCheck"` // The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable. @@ -9144,10 +11441,16 @@ type GalleryApplicationVersionPublishingProfileArgs struct { ManageActions UserArtifactManagePtrInput `pulumi:"manageActions"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount pulumi.IntPtrInput `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode pulumi.StringPtrInput `pulumi:"replicationMode"` + // Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. + Settings UserArtifactSettingsPtrInput `pulumi:"settings"` // The source image from which the Image Version is going to be created. Source UserArtifactSourceInput `pulumi:"source"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType pulumi.StringPtrInput `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations GalleryTargetExtendedLocationArrayInput `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions TargetRegionArrayInput `pulumi:"targetRegions"` } @@ -9179,6 +11482,18 @@ func (o GalleryApplicationVersionPublishingProfileOutput) ToGalleryApplicationVe return o } +// Optional. Additional settings to pass to the vm-application-manager extension. For advanced use only. +func (o GalleryApplicationVersionPublishingProfileOutput) AdvancedSettings() pulumi.StringMapOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) map[string]string { return v.AdvancedSettings }).(pulumi.StringMapOutput) +} + +// A list of custom actions that can be performed with this Gallery Application Version. +func (o GalleryApplicationVersionPublishingProfileOutput) CustomActions() GalleryApplicationCustomActionArrayOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) []GalleryApplicationCustomAction { + return v.CustomActions + }).(GalleryApplicationCustomActionArrayOutput) +} + // Optional. Whether or not this application reports health. func (o GalleryApplicationVersionPublishingProfileOutput) EnableHealthCheck() pulumi.BoolPtrOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) *bool { return v.EnableHealthCheck }).(pulumi.BoolPtrOutput) @@ -9203,6 +11518,16 @@ func (o GalleryApplicationVersionPublishingProfileOutput) ReplicaCount() pulumi. return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) *int { return v.ReplicaCount }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryApplicationVersionPublishingProfileOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) *string { return v.ReplicationMode }).(pulumi.StringPtrOutput) +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +func (o GalleryApplicationVersionPublishingProfileOutput) Settings() UserArtifactSettingsPtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) *UserArtifactSettings { return v.Settings }).(UserArtifactSettingsPtrOutput) +} + // The source image from which the Image Version is going to be created. func (o GalleryApplicationVersionPublishingProfileOutput) Source() UserArtifactSourceOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) UserArtifactSource { return v.Source }).(UserArtifactSourceOutput) @@ -9213,6 +11538,13 @@ func (o GalleryApplicationVersionPublishingProfileOutput) StorageAccountType() p return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryApplicationVersionPublishingProfileOutput) TargetExtendedLocations() GalleryTargetExtendedLocationArrayOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) []GalleryTargetExtendedLocation { + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryApplicationVersionPublishingProfileOutput) TargetRegions() TargetRegionArrayOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfile) []TargetRegion { return v.TargetRegions }).(TargetRegionArrayOutput) @@ -9220,6 +11552,10 @@ func (o GalleryApplicationVersionPublishingProfileOutput) TargetRegions() Target // The publishing profile of a gallery image version. type GalleryApplicationVersionPublishingProfileResponse struct { + // Optional. Additional settings to pass to the vm-application-manager extension. For advanced use only. + AdvancedSettings map[string]string `pulumi:"advancedSettings"` + // A list of custom actions that can be performed with this Gallery Application Version. + CustomActions []GalleryApplicationCustomActionResponse `pulumi:"customActions"` // Optional. Whether or not this application reports health. EnableHealthCheck *bool `pulumi:"enableHealthCheck"` // The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable. @@ -9231,10 +11567,16 @@ type GalleryApplicationVersionPublishingProfileResponse struct { PublishedDate string `pulumi:"publishedDate"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount *int `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode *string `pulumi:"replicationMode"` + // Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. + Settings *UserArtifactSettingsResponse `pulumi:"settings"` // The source image from which the Image Version is going to be created. Source UserArtifactSourceResponse `pulumi:"source"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType *string `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations []GalleryTargetExtendedLocationResponse `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions []TargetRegionResponse `pulumi:"targetRegions"` } @@ -9254,6 +11596,20 @@ func (o GalleryApplicationVersionPublishingProfileResponseOutput) ToGalleryAppli return o } +// Optional. Additional settings to pass to the vm-application-manager extension. For advanced use only. +func (o GalleryApplicationVersionPublishingProfileResponseOutput) AdvancedSettings() pulumi.StringMapOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) map[string]string { + return v.AdvancedSettings + }).(pulumi.StringMapOutput) +} + +// A list of custom actions that can be performed with this Gallery Application Version. +func (o GalleryApplicationVersionPublishingProfileResponseOutput) CustomActions() GalleryApplicationCustomActionResponseArrayOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) []GalleryApplicationCustomActionResponse { + return v.CustomActions + }).(GalleryApplicationCustomActionResponseArrayOutput) +} + // Optional. Whether or not this application reports health. func (o GalleryApplicationVersionPublishingProfileResponseOutput) EnableHealthCheck() pulumi.BoolPtrOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) *bool { return v.EnableHealthCheck }).(pulumi.BoolPtrOutput) @@ -9285,6 +11641,18 @@ func (o GalleryApplicationVersionPublishingProfileResponseOutput) ReplicaCount() return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) *int { return v.ReplicaCount }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryApplicationVersionPublishingProfileResponseOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) *string { return v.ReplicationMode }).(pulumi.StringPtrOutput) +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +func (o GalleryApplicationVersionPublishingProfileResponseOutput) Settings() UserArtifactSettingsResponsePtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) *UserArtifactSettingsResponse { + return v.Settings + }).(UserArtifactSettingsResponsePtrOutput) +} + // The source image from which the Image Version is going to be created. func (o GalleryApplicationVersionPublishingProfileResponseOutput) Source() UserArtifactSourceResponseOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) UserArtifactSourceResponse { return v.Source }).(UserArtifactSourceResponseOutput) @@ -9295,6 +11663,13 @@ func (o GalleryApplicationVersionPublishingProfileResponseOutput) StorageAccount return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryApplicationVersionPublishingProfileResponseOutput) TargetExtendedLocations() GalleryTargetExtendedLocationResponseArrayOutput { + return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) []GalleryTargetExtendedLocationResponse { + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationResponseArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryApplicationVersionPublishingProfileResponseOutput) TargetRegions() TargetRegionResponseArrayOutput { return o.ApplyT(func(v GalleryApplicationVersionPublishingProfileResponse) []TargetRegionResponse { @@ -9302,239 +11677,441 @@ func (o GalleryApplicationVersionPublishingProfileResponseOutput) TargetRegions( }).(TargetRegionResponseArrayOutput) } -// The gallery artifact version source. -type GalleryArtifactVersionSource struct { +// The safety profile of the Gallery Application Version. +type GalleryApplicationVersionSafetyProfile struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations *bool `pulumi:"allowDeletionOfReplicatedLocations"` +} + +// GalleryApplicationVersionSafetyProfileInput is an input type that accepts GalleryApplicationVersionSafetyProfileArgs and GalleryApplicationVersionSafetyProfileOutput values. +// You can construct a concrete instance of `GalleryApplicationVersionSafetyProfileInput` via: +// +// GalleryApplicationVersionSafetyProfileArgs{...} +type GalleryApplicationVersionSafetyProfileInput interface { + pulumi.Input + + ToGalleryApplicationVersionSafetyProfileOutput() GalleryApplicationVersionSafetyProfileOutput + ToGalleryApplicationVersionSafetyProfileOutputWithContext(context.Context) GalleryApplicationVersionSafetyProfileOutput +} + +// The safety profile of the Gallery Application Version. +type GalleryApplicationVersionSafetyProfileArgs struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations pulumi.BoolPtrInput `pulumi:"allowDeletionOfReplicatedLocations"` +} + +func (GalleryApplicationVersionSafetyProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationVersionSafetyProfile)(nil)).Elem() +} + +func (i GalleryApplicationVersionSafetyProfileArgs) ToGalleryApplicationVersionSafetyProfileOutput() GalleryApplicationVersionSafetyProfileOutput { + return i.ToGalleryApplicationVersionSafetyProfileOutputWithContext(context.Background()) +} + +func (i GalleryApplicationVersionSafetyProfileArgs) ToGalleryApplicationVersionSafetyProfileOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationVersionSafetyProfileOutput) +} + +func (i GalleryApplicationVersionSafetyProfileArgs) ToGalleryApplicationVersionSafetyProfilePtrOutput() GalleryApplicationVersionSafetyProfilePtrOutput { + return i.ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (i GalleryApplicationVersionSafetyProfileArgs) ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationVersionSafetyProfileOutput).ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(ctx) +} + +// GalleryApplicationVersionSafetyProfilePtrInput is an input type that accepts GalleryApplicationVersionSafetyProfileArgs, GalleryApplicationVersionSafetyProfilePtr and GalleryApplicationVersionSafetyProfilePtrOutput values. +// You can construct a concrete instance of `GalleryApplicationVersionSafetyProfilePtrInput` via: +// +// GalleryApplicationVersionSafetyProfileArgs{...} +// +// or: +// +// nil +type GalleryApplicationVersionSafetyProfilePtrInput interface { + pulumi.Input + + ToGalleryApplicationVersionSafetyProfilePtrOutput() GalleryApplicationVersionSafetyProfilePtrOutput + ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(context.Context) GalleryApplicationVersionSafetyProfilePtrOutput +} + +type galleryApplicationVersionSafetyProfilePtrType GalleryApplicationVersionSafetyProfileArgs + +func GalleryApplicationVersionSafetyProfilePtr(v *GalleryApplicationVersionSafetyProfileArgs) GalleryApplicationVersionSafetyProfilePtrInput { + return (*galleryApplicationVersionSafetyProfilePtrType)(v) +} + +func (*galleryApplicationVersionSafetyProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryApplicationVersionSafetyProfile)(nil)).Elem() +} + +func (i *galleryApplicationVersionSafetyProfilePtrType) ToGalleryApplicationVersionSafetyProfilePtrOutput() GalleryApplicationVersionSafetyProfilePtrOutput { + return i.ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (i *galleryApplicationVersionSafetyProfilePtrType) ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryApplicationVersionSafetyProfilePtrOutput) +} + +// The safety profile of the Gallery Application Version. +type GalleryApplicationVersionSafetyProfileOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationVersionSafetyProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationVersionSafetyProfile)(nil)).Elem() +} + +func (o GalleryApplicationVersionSafetyProfileOutput) ToGalleryApplicationVersionSafetyProfileOutput() GalleryApplicationVersionSafetyProfileOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfileOutput) ToGalleryApplicationVersionSafetyProfileOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfileOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfileOutput) ToGalleryApplicationVersionSafetyProfilePtrOutput() GalleryApplicationVersionSafetyProfilePtrOutput { + return o.ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (o GalleryApplicationVersionSafetyProfileOutput) ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryApplicationVersionSafetyProfile) *GalleryApplicationVersionSafetyProfile { + return &v + }).(GalleryApplicationVersionSafetyProfilePtrOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryApplicationVersionSafetyProfileOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionSafetyProfile) *bool { return v.AllowDeletionOfReplicatedLocations }).(pulumi.BoolPtrOutput) +} + +type GalleryApplicationVersionSafetyProfilePtrOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationVersionSafetyProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryApplicationVersionSafetyProfile)(nil)).Elem() +} + +func (o GalleryApplicationVersionSafetyProfilePtrOutput) ToGalleryApplicationVersionSafetyProfilePtrOutput() GalleryApplicationVersionSafetyProfilePtrOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfilePtrOutput) ToGalleryApplicationVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfilePtrOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfilePtrOutput) Elem() GalleryApplicationVersionSafetyProfileOutput { + return o.ApplyT(func(v *GalleryApplicationVersionSafetyProfile) GalleryApplicationVersionSafetyProfile { + if v != nil { + return *v + } + var ret GalleryApplicationVersionSafetyProfile + return ret + }).(GalleryApplicationVersionSafetyProfileOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryApplicationVersionSafetyProfilePtrOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GalleryApplicationVersionSafetyProfile) *bool { + if v == nil { + return nil + } + return v.AllowDeletionOfReplicatedLocations + }).(pulumi.BoolPtrOutput) +} + +// The safety profile of the Gallery Application Version. +type GalleryApplicationVersionSafetyProfileResponse struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations *bool `pulumi:"allowDeletionOfReplicatedLocations"` +} + +// The safety profile of the Gallery Application Version. +type GalleryApplicationVersionSafetyProfileResponseOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationVersionSafetyProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryApplicationVersionSafetyProfileResponse)(nil)).Elem() +} + +func (o GalleryApplicationVersionSafetyProfileResponseOutput) ToGalleryApplicationVersionSafetyProfileResponseOutput() GalleryApplicationVersionSafetyProfileResponseOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfileResponseOutput) ToGalleryApplicationVersionSafetyProfileResponseOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfileResponseOutput { + return o +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryApplicationVersionSafetyProfileResponseOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryApplicationVersionSafetyProfileResponse) *bool { + return v.AllowDeletionOfReplicatedLocations + }).(pulumi.BoolPtrOutput) +} + +type GalleryApplicationVersionSafetyProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (GalleryApplicationVersionSafetyProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryApplicationVersionSafetyProfileResponse)(nil)).Elem() +} + +func (o GalleryApplicationVersionSafetyProfileResponsePtrOutput) ToGalleryApplicationVersionSafetyProfileResponsePtrOutput() GalleryApplicationVersionSafetyProfileResponsePtrOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfileResponsePtrOutput) ToGalleryApplicationVersionSafetyProfileResponsePtrOutputWithContext(ctx context.Context) GalleryApplicationVersionSafetyProfileResponsePtrOutput { + return o +} + +func (o GalleryApplicationVersionSafetyProfileResponsePtrOutput) Elem() GalleryApplicationVersionSafetyProfileResponseOutput { + return o.ApplyT(func(v *GalleryApplicationVersionSafetyProfileResponse) GalleryApplicationVersionSafetyProfileResponse { + if v != nil { + return *v + } + var ret GalleryApplicationVersionSafetyProfileResponse + return ret + }).(GalleryApplicationVersionSafetyProfileResponseOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryApplicationVersionSafetyProfileResponsePtrOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GalleryApplicationVersionSafetyProfileResponse) *bool { + if v == nil { + return nil + } + return v.AllowDeletionOfReplicatedLocations + }).(pulumi.BoolPtrOutput) +} + +// The source of the gallery artifact version. +type GalleryArtifactVersionFullSource struct { + // The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. Id *string `pulumi:"id"` - // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. - Uri *string `pulumi:"uri"` } -// GalleryArtifactVersionSourceInput is an input type that accepts GalleryArtifactVersionSourceArgs and GalleryArtifactVersionSourceOutput values. -// You can construct a concrete instance of `GalleryArtifactVersionSourceInput` via: +// GalleryArtifactVersionFullSourceInput is an input type that accepts GalleryArtifactVersionFullSourceArgs and GalleryArtifactVersionFullSourceOutput values. +// You can construct a concrete instance of `GalleryArtifactVersionFullSourceInput` via: // -// GalleryArtifactVersionSourceArgs{...} -type GalleryArtifactVersionSourceInput interface { +// GalleryArtifactVersionFullSourceArgs{...} +type GalleryArtifactVersionFullSourceInput interface { pulumi.Input - ToGalleryArtifactVersionSourceOutput() GalleryArtifactVersionSourceOutput - ToGalleryArtifactVersionSourceOutputWithContext(context.Context) GalleryArtifactVersionSourceOutput + ToGalleryArtifactVersionFullSourceOutput() GalleryArtifactVersionFullSourceOutput + ToGalleryArtifactVersionFullSourceOutputWithContext(context.Context) GalleryArtifactVersionFullSourceOutput } -// The gallery artifact version source. -type GalleryArtifactVersionSourceArgs struct { +// The source of the gallery artifact version. +type GalleryArtifactVersionFullSourceArgs struct { + // The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. + CommunityGalleryImageId pulumi.StringPtrInput `pulumi:"communityGalleryImageId"` // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. Id pulumi.StringPtrInput `pulumi:"id"` - // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. - Uri pulumi.StringPtrInput `pulumi:"uri"` } -func (GalleryArtifactVersionSourceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GalleryArtifactVersionSource)(nil)).Elem() +func (GalleryArtifactVersionFullSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryArtifactVersionFullSource)(nil)).Elem() } -func (i GalleryArtifactVersionSourceArgs) ToGalleryArtifactVersionSourceOutput() GalleryArtifactVersionSourceOutput { - return i.ToGalleryArtifactVersionSourceOutputWithContext(context.Background()) +func (i GalleryArtifactVersionFullSourceArgs) ToGalleryArtifactVersionFullSourceOutput() GalleryArtifactVersionFullSourceOutput { + return i.ToGalleryArtifactVersionFullSourceOutputWithContext(context.Background()) } -func (i GalleryArtifactVersionSourceArgs) ToGalleryArtifactVersionSourceOutputWithContext(ctx context.Context) GalleryArtifactVersionSourceOutput { - return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionSourceOutput) +func (i GalleryArtifactVersionFullSourceArgs) ToGalleryArtifactVersionFullSourceOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionFullSourceOutput) } -func (i GalleryArtifactVersionSourceArgs) ToGalleryArtifactVersionSourcePtrOutput() GalleryArtifactVersionSourcePtrOutput { - return i.ToGalleryArtifactVersionSourcePtrOutputWithContext(context.Background()) +func (i GalleryArtifactVersionFullSourceArgs) ToGalleryArtifactVersionFullSourcePtrOutput() GalleryArtifactVersionFullSourcePtrOutput { + return i.ToGalleryArtifactVersionFullSourcePtrOutputWithContext(context.Background()) } -func (i GalleryArtifactVersionSourceArgs) ToGalleryArtifactVersionSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionSourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionSourceOutput).ToGalleryArtifactVersionSourcePtrOutputWithContext(ctx) +func (i GalleryArtifactVersionFullSourceArgs) ToGalleryArtifactVersionFullSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionFullSourceOutput).ToGalleryArtifactVersionFullSourcePtrOutputWithContext(ctx) } -// GalleryArtifactVersionSourcePtrInput is an input type that accepts GalleryArtifactVersionSourceArgs, GalleryArtifactVersionSourcePtr and GalleryArtifactVersionSourcePtrOutput values. -// You can construct a concrete instance of `GalleryArtifactVersionSourcePtrInput` via: +// GalleryArtifactVersionFullSourcePtrInput is an input type that accepts GalleryArtifactVersionFullSourceArgs, GalleryArtifactVersionFullSourcePtr and GalleryArtifactVersionFullSourcePtrOutput values. +// You can construct a concrete instance of `GalleryArtifactVersionFullSourcePtrInput` via: // -// GalleryArtifactVersionSourceArgs{...} +// GalleryArtifactVersionFullSourceArgs{...} // // or: // // nil -type GalleryArtifactVersionSourcePtrInput interface { +type GalleryArtifactVersionFullSourcePtrInput interface { pulumi.Input - ToGalleryArtifactVersionSourcePtrOutput() GalleryArtifactVersionSourcePtrOutput - ToGalleryArtifactVersionSourcePtrOutputWithContext(context.Context) GalleryArtifactVersionSourcePtrOutput + ToGalleryArtifactVersionFullSourcePtrOutput() GalleryArtifactVersionFullSourcePtrOutput + ToGalleryArtifactVersionFullSourcePtrOutputWithContext(context.Context) GalleryArtifactVersionFullSourcePtrOutput } -type galleryArtifactVersionSourcePtrType GalleryArtifactVersionSourceArgs +type galleryArtifactVersionFullSourcePtrType GalleryArtifactVersionFullSourceArgs -func GalleryArtifactVersionSourcePtr(v *GalleryArtifactVersionSourceArgs) GalleryArtifactVersionSourcePtrInput { - return (*galleryArtifactVersionSourcePtrType)(v) +func GalleryArtifactVersionFullSourcePtr(v *GalleryArtifactVersionFullSourceArgs) GalleryArtifactVersionFullSourcePtrInput { + return (*galleryArtifactVersionFullSourcePtrType)(v) } -func (*galleryArtifactVersionSourcePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**GalleryArtifactVersionSource)(nil)).Elem() +func (*galleryArtifactVersionFullSourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryArtifactVersionFullSource)(nil)).Elem() } -func (i *galleryArtifactVersionSourcePtrType) ToGalleryArtifactVersionSourcePtrOutput() GalleryArtifactVersionSourcePtrOutput { - return i.ToGalleryArtifactVersionSourcePtrOutputWithContext(context.Background()) +func (i *galleryArtifactVersionFullSourcePtrType) ToGalleryArtifactVersionFullSourcePtrOutput() GalleryArtifactVersionFullSourcePtrOutput { + return i.ToGalleryArtifactVersionFullSourcePtrOutputWithContext(context.Background()) } -func (i *galleryArtifactVersionSourcePtrType) ToGalleryArtifactVersionSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionSourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionSourcePtrOutput) +func (i *galleryArtifactVersionFullSourcePtrType) ToGalleryArtifactVersionFullSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryArtifactVersionFullSourcePtrOutput) } -// The gallery artifact version source. -type GalleryArtifactVersionSourceOutput struct{ *pulumi.OutputState } +// The source of the gallery artifact version. +type GalleryArtifactVersionFullSourceOutput struct{ *pulumi.OutputState } -func (GalleryArtifactVersionSourceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GalleryArtifactVersionSource)(nil)).Elem() +func (GalleryArtifactVersionFullSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryArtifactVersionFullSource)(nil)).Elem() } -func (o GalleryArtifactVersionSourceOutput) ToGalleryArtifactVersionSourceOutput() GalleryArtifactVersionSourceOutput { +func (o GalleryArtifactVersionFullSourceOutput) ToGalleryArtifactVersionFullSourceOutput() GalleryArtifactVersionFullSourceOutput { return o } -func (o GalleryArtifactVersionSourceOutput) ToGalleryArtifactVersionSourceOutputWithContext(ctx context.Context) GalleryArtifactVersionSourceOutput { +func (o GalleryArtifactVersionFullSourceOutput) ToGalleryArtifactVersionFullSourceOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourceOutput { return o } -func (o GalleryArtifactVersionSourceOutput) ToGalleryArtifactVersionSourcePtrOutput() GalleryArtifactVersionSourcePtrOutput { - return o.ToGalleryArtifactVersionSourcePtrOutputWithContext(context.Background()) +func (o GalleryArtifactVersionFullSourceOutput) ToGalleryArtifactVersionFullSourcePtrOutput() GalleryArtifactVersionFullSourcePtrOutput { + return o.ToGalleryArtifactVersionFullSourcePtrOutputWithContext(context.Background()) } -func (o GalleryArtifactVersionSourceOutput) ToGalleryArtifactVersionSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionSourcePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryArtifactVersionSource) *GalleryArtifactVersionSource { +func (o GalleryArtifactVersionFullSourceOutput) ToGalleryArtifactVersionFullSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryArtifactVersionFullSource) *GalleryArtifactVersionFullSource { return &v - }).(GalleryArtifactVersionSourcePtrOutput) + }).(GalleryArtifactVersionFullSourcePtrOutput) } -// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. -func (o GalleryArtifactVersionSourceOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v GalleryArtifactVersionSource) *string { return v.Id }).(pulumi.StringPtrOutput) +// The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. +func (o GalleryArtifactVersionFullSourceOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryArtifactVersionFullSource) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) } -// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. -func (o GalleryArtifactVersionSourceOutput) Uri() pulumi.StringPtrOutput { - return o.ApplyT(func(v GalleryArtifactVersionSource) *string { return v.Uri }).(pulumi.StringPtrOutput) +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryArtifactVersionFullSourceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryArtifactVersionFullSource) *string { return v.Id }).(pulumi.StringPtrOutput) } -type GalleryArtifactVersionSourcePtrOutput struct{ *pulumi.OutputState } +type GalleryArtifactVersionFullSourcePtrOutput struct{ *pulumi.OutputState } -func (GalleryArtifactVersionSourcePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**GalleryArtifactVersionSource)(nil)).Elem() +func (GalleryArtifactVersionFullSourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryArtifactVersionFullSource)(nil)).Elem() } -func (o GalleryArtifactVersionSourcePtrOutput) ToGalleryArtifactVersionSourcePtrOutput() GalleryArtifactVersionSourcePtrOutput { +func (o GalleryArtifactVersionFullSourcePtrOutput) ToGalleryArtifactVersionFullSourcePtrOutput() GalleryArtifactVersionFullSourcePtrOutput { return o } -func (o GalleryArtifactVersionSourcePtrOutput) ToGalleryArtifactVersionSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionSourcePtrOutput { +func (o GalleryArtifactVersionFullSourcePtrOutput) ToGalleryArtifactVersionFullSourcePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourcePtrOutput { return o } -func (o GalleryArtifactVersionSourcePtrOutput) Elem() GalleryArtifactVersionSourceOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSource) GalleryArtifactVersionSource { +func (o GalleryArtifactVersionFullSourcePtrOutput) Elem() GalleryArtifactVersionFullSourceOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSource) GalleryArtifactVersionFullSource { if v != nil { return *v } - var ret GalleryArtifactVersionSource + var ret GalleryArtifactVersionFullSource return ret - }).(GalleryArtifactVersionSourceOutput) + }).(GalleryArtifactVersionFullSourceOutput) } -// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. -func (o GalleryArtifactVersionSourcePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSource) *string { +// The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. +func (o GalleryArtifactVersionFullSourcePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSource) *string { if v == nil { return nil } - return v.Id + return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) } -// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. -func (o GalleryArtifactVersionSourcePtrOutput) Uri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSource) *string { +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryArtifactVersionFullSourcePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSource) *string { if v == nil { return nil } - return v.Uri + return v.Id }).(pulumi.StringPtrOutput) } -// The gallery artifact version source. -type GalleryArtifactVersionSourceResponse struct { +// The source of the gallery artifact version. +type GalleryArtifactVersionFullSourceResponse struct { + // The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. Id *string `pulumi:"id"` - // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. - Uri *string `pulumi:"uri"` } -// The gallery artifact version source. -type GalleryArtifactVersionSourceResponseOutput struct{ *pulumi.OutputState } +// The source of the gallery artifact version. +type GalleryArtifactVersionFullSourceResponseOutput struct{ *pulumi.OutputState } -func (GalleryArtifactVersionSourceResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GalleryArtifactVersionSourceResponse)(nil)).Elem() +func (GalleryArtifactVersionFullSourceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryArtifactVersionFullSourceResponse)(nil)).Elem() } -func (o GalleryArtifactVersionSourceResponseOutput) ToGalleryArtifactVersionSourceResponseOutput() GalleryArtifactVersionSourceResponseOutput { +func (o GalleryArtifactVersionFullSourceResponseOutput) ToGalleryArtifactVersionFullSourceResponseOutput() GalleryArtifactVersionFullSourceResponseOutput { return o } -func (o GalleryArtifactVersionSourceResponseOutput) ToGalleryArtifactVersionSourceResponseOutputWithContext(ctx context.Context) GalleryArtifactVersionSourceResponseOutput { +func (o GalleryArtifactVersionFullSourceResponseOutput) ToGalleryArtifactVersionFullSourceResponseOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourceResponseOutput { return o } -// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. -func (o GalleryArtifactVersionSourceResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v GalleryArtifactVersionSourceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. +func (o GalleryArtifactVersionFullSourceResponseOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryArtifactVersionFullSourceResponse) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) } -// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. -func (o GalleryArtifactVersionSourceResponseOutput) Uri() pulumi.StringPtrOutput { - return o.ApplyT(func(v GalleryArtifactVersionSourceResponse) *string { return v.Uri }).(pulumi.StringPtrOutput) +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryArtifactVersionFullSourceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryArtifactVersionFullSourceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -type GalleryArtifactVersionSourceResponsePtrOutput struct{ *pulumi.OutputState } +type GalleryArtifactVersionFullSourceResponsePtrOutput struct{ *pulumi.OutputState } -func (GalleryArtifactVersionSourceResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**GalleryArtifactVersionSourceResponse)(nil)).Elem() +func (GalleryArtifactVersionFullSourceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryArtifactVersionFullSourceResponse)(nil)).Elem() } -func (o GalleryArtifactVersionSourceResponsePtrOutput) ToGalleryArtifactVersionSourceResponsePtrOutput() GalleryArtifactVersionSourceResponsePtrOutput { +func (o GalleryArtifactVersionFullSourceResponsePtrOutput) ToGalleryArtifactVersionFullSourceResponsePtrOutput() GalleryArtifactVersionFullSourceResponsePtrOutput { return o } -func (o GalleryArtifactVersionSourceResponsePtrOutput) ToGalleryArtifactVersionSourceResponsePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionSourceResponsePtrOutput { +func (o GalleryArtifactVersionFullSourceResponsePtrOutput) ToGalleryArtifactVersionFullSourceResponsePtrOutputWithContext(ctx context.Context) GalleryArtifactVersionFullSourceResponsePtrOutput { return o } -func (o GalleryArtifactVersionSourceResponsePtrOutput) Elem() GalleryArtifactVersionSourceResponseOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSourceResponse) GalleryArtifactVersionSourceResponse { +func (o GalleryArtifactVersionFullSourceResponsePtrOutput) Elem() GalleryArtifactVersionFullSourceResponseOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSourceResponse) GalleryArtifactVersionFullSourceResponse { if v != nil { return *v } - var ret GalleryArtifactVersionSourceResponse + var ret GalleryArtifactVersionFullSourceResponse return ret - }).(GalleryArtifactVersionSourceResponseOutput) + }).(GalleryArtifactVersionFullSourceResponseOutput) } -// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. -func (o GalleryArtifactVersionSourceResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSourceResponse) *string { +// The resource Id of the source Community Gallery Image. Only required when using Community Gallery Image as a source. +func (o GalleryArtifactVersionFullSourceResponsePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSourceResponse) *string { if v == nil { return nil } - return v.Id + return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) } -// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. -func (o GalleryArtifactVersionSourceResponsePtrOutput) Uri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *GalleryArtifactVersionSourceResponse) *string { +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryArtifactVersionFullSourceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryArtifactVersionFullSourceResponse) *string { if v == nil { return nil } - return v.Uri + return v.Id }).(pulumi.StringPtrOutput) } @@ -9544,8 +12121,8 @@ type GalleryDataDiskImage struct { HostCaching *HostCaching `pulumi:"hostCaching"` // This property specifies the logical unit number of the data disk. This value is used to identify data disks within the Virtual Machine and therefore must be unique for each data disk attached to the Virtual Machine. Lun int `pulumi:"lun"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSource `pulumi:"source"` + // The source for the disk image. + Source *GalleryDiskImageSource `pulumi:"source"` } // GalleryDataDiskImageInput is an input type that accepts GalleryDataDiskImageArgs and GalleryDataDiskImageOutput values. @@ -9565,8 +12142,8 @@ type GalleryDataDiskImageArgs struct { HostCaching HostCachingPtrInput `pulumi:"hostCaching"` // This property specifies the logical unit number of the data disk. This value is used to identify data disks within the Virtual Machine and therefore must be unique for each data disk attached to the Virtual Machine. Lun pulumi.IntInput `pulumi:"lun"` - // The gallery artifact version source. - Source GalleryArtifactVersionSourcePtrInput `pulumi:"source"` + // The source for the disk image. + Source GalleryDiskImageSourcePtrInput `pulumi:"source"` } func (GalleryDataDiskImageArgs) ElementType() reflect.Type { @@ -9631,9 +12208,9 @@ func (o GalleryDataDiskImageOutput) Lun() pulumi.IntOutput { return o.ApplyT(func(v GalleryDataDiskImage) int { return v.Lun }).(pulumi.IntOutput) } -// The gallery artifact version source. -func (o GalleryDataDiskImageOutput) Source() GalleryArtifactVersionSourcePtrOutput { - return o.ApplyT(func(v GalleryDataDiskImage) *GalleryArtifactVersionSource { return v.Source }).(GalleryArtifactVersionSourcePtrOutput) +// The source for the disk image. +func (o GalleryDataDiskImageOutput) Source() GalleryDiskImageSourcePtrOutput { + return o.ApplyT(func(v GalleryDataDiskImage) *GalleryDiskImageSource { return v.Source }).(GalleryDiskImageSourcePtrOutput) } type GalleryDataDiskImageArrayOutput struct{ *pulumi.OutputState } @@ -9664,8 +12241,8 @@ type GalleryDataDiskImageResponse struct { Lun int `pulumi:"lun"` // This property indicates the size of the VHD to be created. SizeInGB int `pulumi:"sizeInGB"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSourceResponse `pulumi:"source"` + // The source for the disk image. + Source *GalleryDiskImageSourceResponse `pulumi:"source"` } // This is the data disk image. @@ -9698,9 +12275,9 @@ func (o GalleryDataDiskImageResponseOutput) SizeInGB() pulumi.IntOutput { return o.ApplyT(func(v GalleryDataDiskImageResponse) int { return v.SizeInGB }).(pulumi.IntOutput) } -// The gallery artifact version source. -func (o GalleryDataDiskImageResponseOutput) Source() GalleryArtifactVersionSourceResponsePtrOutput { - return o.ApplyT(func(v GalleryDataDiskImageResponse) *GalleryArtifactVersionSourceResponse { return v.Source }).(GalleryArtifactVersionSourceResponsePtrOutput) +// The source for the disk image. +func (o GalleryDataDiskImageResponseOutput) Source() GalleryDiskImageSourceResponsePtrOutput { + return o.ApplyT(func(v GalleryDataDiskImageResponse) *GalleryDiskImageSourceResponse { return v.Source }).(GalleryDiskImageSourceResponsePtrOutput) } type GalleryDataDiskImageResponseArrayOutput struct{ *pulumi.OutputState } @@ -9723,6 +12300,507 @@ func (o GalleryDataDiskImageResponseArrayOutput) Index(i pulumi.IntInput) Galler }).(GalleryDataDiskImageResponseOutput) } +// The source for the disk image. +type GalleryDiskImageSource struct { + // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. + Id *string `pulumi:"id"` + // The Storage Account Id that contains the vhd blob being used as a source for this artifact version. + StorageAccountId *string `pulumi:"storageAccountId"` + // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. + Uri *string `pulumi:"uri"` +} + +// GalleryDiskImageSourceInput is an input type that accepts GalleryDiskImageSourceArgs and GalleryDiskImageSourceOutput values. +// You can construct a concrete instance of `GalleryDiskImageSourceInput` via: +// +// GalleryDiskImageSourceArgs{...} +type GalleryDiskImageSourceInput interface { + pulumi.Input + + ToGalleryDiskImageSourceOutput() GalleryDiskImageSourceOutput + ToGalleryDiskImageSourceOutputWithContext(context.Context) GalleryDiskImageSourceOutput +} + +// The source for the disk image. +type GalleryDiskImageSourceArgs struct { + // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. + Id pulumi.StringPtrInput `pulumi:"id"` + // The Storage Account Id that contains the vhd blob being used as a source for this artifact version. + StorageAccountId pulumi.StringPtrInput `pulumi:"storageAccountId"` + // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (GalleryDiskImageSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryDiskImageSource)(nil)).Elem() +} + +func (i GalleryDiskImageSourceArgs) ToGalleryDiskImageSourceOutput() GalleryDiskImageSourceOutput { + return i.ToGalleryDiskImageSourceOutputWithContext(context.Background()) +} + +func (i GalleryDiskImageSourceArgs) ToGalleryDiskImageSourceOutputWithContext(ctx context.Context) GalleryDiskImageSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryDiskImageSourceOutput) +} + +func (i GalleryDiskImageSourceArgs) ToGalleryDiskImageSourcePtrOutput() GalleryDiskImageSourcePtrOutput { + return i.ToGalleryDiskImageSourcePtrOutputWithContext(context.Background()) +} + +func (i GalleryDiskImageSourceArgs) ToGalleryDiskImageSourcePtrOutputWithContext(ctx context.Context) GalleryDiskImageSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryDiskImageSourceOutput).ToGalleryDiskImageSourcePtrOutputWithContext(ctx) +} + +// GalleryDiskImageSourcePtrInput is an input type that accepts GalleryDiskImageSourceArgs, GalleryDiskImageSourcePtr and GalleryDiskImageSourcePtrOutput values. +// You can construct a concrete instance of `GalleryDiskImageSourcePtrInput` via: +// +// GalleryDiskImageSourceArgs{...} +// +// or: +// +// nil +type GalleryDiskImageSourcePtrInput interface { + pulumi.Input + + ToGalleryDiskImageSourcePtrOutput() GalleryDiskImageSourcePtrOutput + ToGalleryDiskImageSourcePtrOutputWithContext(context.Context) GalleryDiskImageSourcePtrOutput +} + +type galleryDiskImageSourcePtrType GalleryDiskImageSourceArgs + +func GalleryDiskImageSourcePtr(v *GalleryDiskImageSourceArgs) GalleryDiskImageSourcePtrInput { + return (*galleryDiskImageSourcePtrType)(v) +} + +func (*galleryDiskImageSourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryDiskImageSource)(nil)).Elem() +} + +func (i *galleryDiskImageSourcePtrType) ToGalleryDiskImageSourcePtrOutput() GalleryDiskImageSourcePtrOutput { + return i.ToGalleryDiskImageSourcePtrOutputWithContext(context.Background()) +} + +func (i *galleryDiskImageSourcePtrType) ToGalleryDiskImageSourcePtrOutputWithContext(ctx context.Context) GalleryDiskImageSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryDiskImageSourcePtrOutput) +} + +// The source for the disk image. +type GalleryDiskImageSourceOutput struct{ *pulumi.OutputState } + +func (GalleryDiskImageSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryDiskImageSource)(nil)).Elem() +} + +func (o GalleryDiskImageSourceOutput) ToGalleryDiskImageSourceOutput() GalleryDiskImageSourceOutput { + return o +} + +func (o GalleryDiskImageSourceOutput) ToGalleryDiskImageSourceOutputWithContext(ctx context.Context) GalleryDiskImageSourceOutput { + return o +} + +func (o GalleryDiskImageSourceOutput) ToGalleryDiskImageSourcePtrOutput() GalleryDiskImageSourcePtrOutput { + return o.ToGalleryDiskImageSourcePtrOutputWithContext(context.Background()) +} + +func (o GalleryDiskImageSourceOutput) ToGalleryDiskImageSourcePtrOutputWithContext(ctx context.Context) GalleryDiskImageSourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryDiskImageSource) *GalleryDiskImageSource { + return &v + }).(GalleryDiskImageSourcePtrOutput) +} + +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryDiskImageSourceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSource) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The Storage Account Id that contains the vhd blob being used as a source for this artifact version. +func (o GalleryDiskImageSourceOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSource) *string { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. +func (o GalleryDiskImageSourceOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSource) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type GalleryDiskImageSourcePtrOutput struct{ *pulumi.OutputState } + +func (GalleryDiskImageSourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryDiskImageSource)(nil)).Elem() +} + +func (o GalleryDiskImageSourcePtrOutput) ToGalleryDiskImageSourcePtrOutput() GalleryDiskImageSourcePtrOutput { + return o +} + +func (o GalleryDiskImageSourcePtrOutput) ToGalleryDiskImageSourcePtrOutputWithContext(ctx context.Context) GalleryDiskImageSourcePtrOutput { + return o +} + +func (o GalleryDiskImageSourcePtrOutput) Elem() GalleryDiskImageSourceOutput { + return o.ApplyT(func(v *GalleryDiskImageSource) GalleryDiskImageSource { + if v != nil { + return *v + } + var ret GalleryDiskImageSource + return ret + }).(GalleryDiskImageSourceOutput) +} + +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryDiskImageSourcePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSource) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// The Storage Account Id that contains the vhd blob being used as a source for this artifact version. +func (o GalleryDiskImageSourcePtrOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSource) *string { + if v == nil { + return nil + } + return v.StorageAccountId + }).(pulumi.StringPtrOutput) +} + +// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. +func (o GalleryDiskImageSourcePtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSource) *string { + if v == nil { + return nil + } + return v.Uri + }).(pulumi.StringPtrOutput) +} + +// The source for the disk image. +type GalleryDiskImageSourceResponse struct { + // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. + Id *string `pulumi:"id"` + // The Storage Account Id that contains the vhd blob being used as a source for this artifact version. + StorageAccountId *string `pulumi:"storageAccountId"` + // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. + Uri *string `pulumi:"uri"` +} + +// The source for the disk image. +type GalleryDiskImageSourceResponseOutput struct{ *pulumi.OutputState } + +func (GalleryDiskImageSourceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryDiskImageSourceResponse)(nil)).Elem() +} + +func (o GalleryDiskImageSourceResponseOutput) ToGalleryDiskImageSourceResponseOutput() GalleryDiskImageSourceResponseOutput { + return o +} + +func (o GalleryDiskImageSourceResponseOutput) ToGalleryDiskImageSourceResponseOutputWithContext(ctx context.Context) GalleryDiskImageSourceResponseOutput { + return o +} + +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryDiskImageSourceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSourceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The Storage Account Id that contains the vhd blob being used as a source for this artifact version. +func (o GalleryDiskImageSourceResponseOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSourceResponse) *string { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. +func (o GalleryDiskImageSourceResponseOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryDiskImageSourceResponse) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type GalleryDiskImageSourceResponsePtrOutput struct{ *pulumi.OutputState } + +func (GalleryDiskImageSourceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryDiskImageSourceResponse)(nil)).Elem() +} + +func (o GalleryDiskImageSourceResponsePtrOutput) ToGalleryDiskImageSourceResponsePtrOutput() GalleryDiskImageSourceResponsePtrOutput { + return o +} + +func (o GalleryDiskImageSourceResponsePtrOutput) ToGalleryDiskImageSourceResponsePtrOutputWithContext(ctx context.Context) GalleryDiskImageSourceResponsePtrOutput { + return o +} + +func (o GalleryDiskImageSourceResponsePtrOutput) Elem() GalleryDiskImageSourceResponseOutput { + return o.ApplyT(func(v *GalleryDiskImageSourceResponse) GalleryDiskImageSourceResponse { + if v != nil { + return *v + } + var ret GalleryDiskImageSourceResponse + return ret + }).(GalleryDiskImageSourceResponseOutput) +} + +// The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. +func (o GalleryDiskImageSourceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSourceResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// The Storage Account Id that contains the vhd blob being used as a source for this artifact version. +func (o GalleryDiskImageSourceResponsePtrOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSourceResponse) *string { + if v == nil { + return nil + } + return v.StorageAccountId + }).(pulumi.StringPtrOutput) +} + +// The uri of the gallery artifact version source. Currently used to specify vhd/blob source. +func (o GalleryDiskImageSourceResponsePtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryDiskImageSourceResponse) *string { + if v == nil { + return nil + } + return v.Uri + }).(pulumi.StringPtrOutput) +} + +// The name of the extended location. +type GalleryExtendedLocation struct { + Name *string `pulumi:"name"` + // It is type of the extended location. + Type *string `pulumi:"type"` +} + +// GalleryExtendedLocationInput is an input type that accepts GalleryExtendedLocationArgs and GalleryExtendedLocationOutput values. +// You can construct a concrete instance of `GalleryExtendedLocationInput` via: +// +// GalleryExtendedLocationArgs{...} +type GalleryExtendedLocationInput interface { + pulumi.Input + + ToGalleryExtendedLocationOutput() GalleryExtendedLocationOutput + ToGalleryExtendedLocationOutputWithContext(context.Context) GalleryExtendedLocationOutput +} + +// The name of the extended location. +type GalleryExtendedLocationArgs struct { + Name pulumi.StringPtrInput `pulumi:"name"` + // It is type of the extended location. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (GalleryExtendedLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryExtendedLocation)(nil)).Elem() +} + +func (i GalleryExtendedLocationArgs) ToGalleryExtendedLocationOutput() GalleryExtendedLocationOutput { + return i.ToGalleryExtendedLocationOutputWithContext(context.Background()) +} + +func (i GalleryExtendedLocationArgs) ToGalleryExtendedLocationOutputWithContext(ctx context.Context) GalleryExtendedLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryExtendedLocationOutput) +} + +func (i GalleryExtendedLocationArgs) ToGalleryExtendedLocationPtrOutput() GalleryExtendedLocationPtrOutput { + return i.ToGalleryExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (i GalleryExtendedLocationArgs) ToGalleryExtendedLocationPtrOutputWithContext(ctx context.Context) GalleryExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryExtendedLocationOutput).ToGalleryExtendedLocationPtrOutputWithContext(ctx) +} + +// GalleryExtendedLocationPtrInput is an input type that accepts GalleryExtendedLocationArgs, GalleryExtendedLocationPtr and GalleryExtendedLocationPtrOutput values. +// You can construct a concrete instance of `GalleryExtendedLocationPtrInput` via: +// +// GalleryExtendedLocationArgs{...} +// +// or: +// +// nil +type GalleryExtendedLocationPtrInput interface { + pulumi.Input + + ToGalleryExtendedLocationPtrOutput() GalleryExtendedLocationPtrOutput + ToGalleryExtendedLocationPtrOutputWithContext(context.Context) GalleryExtendedLocationPtrOutput +} + +type galleryExtendedLocationPtrType GalleryExtendedLocationArgs + +func GalleryExtendedLocationPtr(v *GalleryExtendedLocationArgs) GalleryExtendedLocationPtrInput { + return (*galleryExtendedLocationPtrType)(v) +} + +func (*galleryExtendedLocationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryExtendedLocation)(nil)).Elem() +} + +func (i *galleryExtendedLocationPtrType) ToGalleryExtendedLocationPtrOutput() GalleryExtendedLocationPtrOutput { + return i.ToGalleryExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (i *galleryExtendedLocationPtrType) ToGalleryExtendedLocationPtrOutputWithContext(ctx context.Context) GalleryExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryExtendedLocationPtrOutput) +} + +// The name of the extended location. +type GalleryExtendedLocationOutput struct{ *pulumi.OutputState } + +func (GalleryExtendedLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryExtendedLocation)(nil)).Elem() +} + +func (o GalleryExtendedLocationOutput) ToGalleryExtendedLocationOutput() GalleryExtendedLocationOutput { + return o +} + +func (o GalleryExtendedLocationOutput) ToGalleryExtendedLocationOutputWithContext(ctx context.Context) GalleryExtendedLocationOutput { + return o +} + +func (o GalleryExtendedLocationOutput) ToGalleryExtendedLocationPtrOutput() GalleryExtendedLocationPtrOutput { + return o.ToGalleryExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (o GalleryExtendedLocationOutput) ToGalleryExtendedLocationPtrOutputWithContext(ctx context.Context) GalleryExtendedLocationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryExtendedLocation) *GalleryExtendedLocation { + return &v + }).(GalleryExtendedLocationPtrOutput) +} + +func (o GalleryExtendedLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// It is type of the extended location. +func (o GalleryExtendedLocationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryExtendedLocation) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type GalleryExtendedLocationPtrOutput struct{ *pulumi.OutputState } + +func (GalleryExtendedLocationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryExtendedLocation)(nil)).Elem() +} + +func (o GalleryExtendedLocationPtrOutput) ToGalleryExtendedLocationPtrOutput() GalleryExtendedLocationPtrOutput { + return o +} + +func (o GalleryExtendedLocationPtrOutput) ToGalleryExtendedLocationPtrOutputWithContext(ctx context.Context) GalleryExtendedLocationPtrOutput { + return o +} + +func (o GalleryExtendedLocationPtrOutput) Elem() GalleryExtendedLocationOutput { + return o.ApplyT(func(v *GalleryExtendedLocation) GalleryExtendedLocation { + if v != nil { + return *v + } + var ret GalleryExtendedLocation + return ret + }).(GalleryExtendedLocationOutput) +} + +func (o GalleryExtendedLocationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryExtendedLocation) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// It is type of the extended location. +func (o GalleryExtendedLocationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryExtendedLocation) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// The name of the extended location. +type GalleryExtendedLocationResponse struct { + Name *string `pulumi:"name"` + // It is type of the extended location. + Type *string `pulumi:"type"` +} + +// The name of the extended location. +type GalleryExtendedLocationResponseOutput struct{ *pulumi.OutputState } + +func (GalleryExtendedLocationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryExtendedLocationResponse)(nil)).Elem() +} + +func (o GalleryExtendedLocationResponseOutput) ToGalleryExtendedLocationResponseOutput() GalleryExtendedLocationResponseOutput { + return o +} + +func (o GalleryExtendedLocationResponseOutput) ToGalleryExtendedLocationResponseOutputWithContext(ctx context.Context) GalleryExtendedLocationResponseOutput { + return o +} + +func (o GalleryExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// It is type of the extended location. +func (o GalleryExtendedLocationResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryExtendedLocationResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type GalleryExtendedLocationResponsePtrOutput struct{ *pulumi.OutputState } + +func (GalleryExtendedLocationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryExtendedLocationResponse)(nil)).Elem() +} + +func (o GalleryExtendedLocationResponsePtrOutput) ToGalleryExtendedLocationResponsePtrOutput() GalleryExtendedLocationResponsePtrOutput { + return o +} + +func (o GalleryExtendedLocationResponsePtrOutput) ToGalleryExtendedLocationResponsePtrOutputWithContext(ctx context.Context) GalleryExtendedLocationResponsePtrOutput { + return o +} + +func (o GalleryExtendedLocationResponsePtrOutput) Elem() GalleryExtendedLocationResponseOutput { + return o.ApplyT(func(v *GalleryExtendedLocationResponse) GalleryExtendedLocationResponse { + if v != nil { + return *v + } + var ret GalleryExtendedLocationResponse + return ret + }).(GalleryExtendedLocationResponseOutput) +} + +func (o GalleryExtendedLocationResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryExtendedLocationResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// It is type of the extended location. +func (o GalleryExtendedLocationResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryExtendedLocationResponse) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + // Describes the gallery unique name. type GalleryIdentifierResponse struct { // The unique name of the Shared Image Gallery. This name is generated automatically by Azure. @@ -10066,8 +13144,12 @@ type GalleryImageVersionPublishingProfile struct { ExcludeFromLatest *bool `pulumi:"excludeFromLatest"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount *int `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode *string `pulumi:"replicationMode"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType *string `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations []GalleryTargetExtendedLocation `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions []TargetRegion `pulumi:"targetRegions"` } @@ -10091,8 +13173,12 @@ type GalleryImageVersionPublishingProfileArgs struct { ExcludeFromLatest pulumi.BoolPtrInput `pulumi:"excludeFromLatest"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount pulumi.IntPtrInput `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode pulumi.StringPtrInput `pulumi:"replicationMode"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType pulumi.StringPtrInput `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations GalleryTargetExtendedLocationArrayInput `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions TargetRegionArrayInput `pulumi:"targetRegions"` } @@ -10190,11 +13276,23 @@ func (o GalleryImageVersionPublishingProfileOutput) ReplicaCount() pulumi.IntPtr return o.ApplyT(func(v GalleryImageVersionPublishingProfile) *int { return v.ReplicaCount }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryImageVersionPublishingProfileOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryImageVersionPublishingProfile) *string { return v.ReplicationMode }).(pulumi.StringPtrOutput) +} + // Specifies the storage account type to be used to store the image. This property is not updatable. func (o GalleryImageVersionPublishingProfileOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v GalleryImageVersionPublishingProfile) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryImageVersionPublishingProfileOutput) TargetExtendedLocations() GalleryTargetExtendedLocationArrayOutput { + return o.ApplyT(func(v GalleryImageVersionPublishingProfile) []GalleryTargetExtendedLocation { + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryImageVersionPublishingProfileOutput) TargetRegions() TargetRegionArrayOutput { return o.ApplyT(func(v GalleryImageVersionPublishingProfile) []TargetRegion { return v.TargetRegions }).(TargetRegionArrayOutput) @@ -10254,6 +13352,16 @@ func (o GalleryImageVersionPublishingProfilePtrOutput) ReplicaCount() pulumi.Int }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryImageVersionPublishingProfilePtrOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryImageVersionPublishingProfile) *string { + if v == nil { + return nil + } + return v.ReplicationMode + }).(pulumi.StringPtrOutput) +} + // Specifies the storage account type to be used to store the image. This property is not updatable. func (o GalleryImageVersionPublishingProfilePtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *GalleryImageVersionPublishingProfile) *string { @@ -10264,6 +13372,16 @@ func (o GalleryImageVersionPublishingProfilePtrOutput) StorageAccountType() pulu }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryImageVersionPublishingProfilePtrOutput) TargetExtendedLocations() GalleryTargetExtendedLocationArrayOutput { + return o.ApplyT(func(v *GalleryImageVersionPublishingProfile) []GalleryTargetExtendedLocation { + if v == nil { + return nil + } + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryImageVersionPublishingProfilePtrOutput) TargetRegions() TargetRegionArrayOutput { return o.ApplyT(func(v *GalleryImageVersionPublishingProfile) []TargetRegion { @@ -10284,8 +13402,12 @@ type GalleryImageVersionPublishingProfileResponse struct { PublishedDate string `pulumi:"publishedDate"` // The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updatable. ReplicaCount *int `pulumi:"replicaCount"` + // Optional parameter which specifies the mode to be used for replication. This property is not updatable. + ReplicationMode *string `pulumi:"replicationMode"` // Specifies the storage account type to be used to store the image. This property is not updatable. StorageAccountType *string `pulumi:"storageAccountType"` + // The target extended locations where the Image Version is going to be replicated to. This property is updatable. + TargetExtendedLocations []GalleryTargetExtendedLocationResponse `pulumi:"targetExtendedLocations"` // The target regions where the Image Version is going to be replicated to. This property is updatable. TargetRegions []TargetRegionResponse `pulumi:"targetRegions"` } @@ -10325,11 +13447,23 @@ func (o GalleryImageVersionPublishingProfileResponseOutput) ReplicaCount() pulum return o.ApplyT(func(v GalleryImageVersionPublishingProfileResponse) *int { return v.ReplicaCount }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryImageVersionPublishingProfileResponseOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryImageVersionPublishingProfileResponse) *string { return v.ReplicationMode }).(pulumi.StringPtrOutput) +} + // Specifies the storage account type to be used to store the image. This property is not updatable. func (o GalleryImageVersionPublishingProfileResponseOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v GalleryImageVersionPublishingProfileResponse) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryImageVersionPublishingProfileResponseOutput) TargetExtendedLocations() GalleryTargetExtendedLocationResponseArrayOutput { + return o.ApplyT(func(v GalleryImageVersionPublishingProfileResponse) []GalleryTargetExtendedLocationResponse { + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationResponseArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryImageVersionPublishingProfileResponseOutput) TargetRegions() TargetRegionResponseArrayOutput { return o.ApplyT(func(v GalleryImageVersionPublishingProfileResponse) []TargetRegionResponse { return v.TargetRegions }).(TargetRegionResponseArrayOutput) @@ -10399,6 +13533,16 @@ func (o GalleryImageVersionPublishingProfileResponsePtrOutput) ReplicaCount() pu }).(pulumi.IntPtrOutput) } +// Optional parameter which specifies the mode to be used for replication. This property is not updatable. +func (o GalleryImageVersionPublishingProfileResponsePtrOutput) ReplicationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GalleryImageVersionPublishingProfileResponse) *string { + if v == nil { + return nil + } + return v.ReplicationMode + }).(pulumi.StringPtrOutput) +} + // Specifies the storage account type to be used to store the image. This property is not updatable. func (o GalleryImageVersionPublishingProfileResponsePtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *GalleryImageVersionPublishingProfileResponse) *string { @@ -10409,6 +13553,16 @@ func (o GalleryImageVersionPublishingProfileResponsePtrOutput) StorageAccountTyp }).(pulumi.StringPtrOutput) } +// The target extended locations where the Image Version is going to be replicated to. This property is updatable. +func (o GalleryImageVersionPublishingProfileResponsePtrOutput) TargetExtendedLocations() GalleryTargetExtendedLocationResponseArrayOutput { + return o.ApplyT(func(v *GalleryImageVersionPublishingProfileResponse) []GalleryTargetExtendedLocationResponse { + if v == nil { + return nil + } + return v.TargetExtendedLocations + }).(GalleryTargetExtendedLocationResponseArrayOutput) +} + // The target regions where the Image Version is going to be replicated to. This property is updatable. func (o GalleryImageVersionPublishingProfileResponsePtrOutput) TargetRegions() TargetRegionResponseArrayOutput { return o.ApplyT(func(v *GalleryImageVersionPublishingProfileResponse) []TargetRegionResponse { @@ -10419,14 +13573,248 @@ func (o GalleryImageVersionPublishingProfileResponsePtrOutput) TargetRegions() T }).(TargetRegionResponseArrayOutput) } +// This is the safety profile of the Gallery Image Version. +type GalleryImageVersionSafetyProfile struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations *bool `pulumi:"allowDeletionOfReplicatedLocations"` +} + +// GalleryImageVersionSafetyProfileInput is an input type that accepts GalleryImageVersionSafetyProfileArgs and GalleryImageVersionSafetyProfileOutput values. +// You can construct a concrete instance of `GalleryImageVersionSafetyProfileInput` via: +// +// GalleryImageVersionSafetyProfileArgs{...} +type GalleryImageVersionSafetyProfileInput interface { + pulumi.Input + + ToGalleryImageVersionSafetyProfileOutput() GalleryImageVersionSafetyProfileOutput + ToGalleryImageVersionSafetyProfileOutputWithContext(context.Context) GalleryImageVersionSafetyProfileOutput +} + +// This is the safety profile of the Gallery Image Version. +type GalleryImageVersionSafetyProfileArgs struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations pulumi.BoolPtrInput `pulumi:"allowDeletionOfReplicatedLocations"` +} + +func (GalleryImageVersionSafetyProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryImageVersionSafetyProfile)(nil)).Elem() +} + +func (i GalleryImageVersionSafetyProfileArgs) ToGalleryImageVersionSafetyProfileOutput() GalleryImageVersionSafetyProfileOutput { + return i.ToGalleryImageVersionSafetyProfileOutputWithContext(context.Background()) +} + +func (i GalleryImageVersionSafetyProfileArgs) ToGalleryImageVersionSafetyProfileOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryImageVersionSafetyProfileOutput) +} + +func (i GalleryImageVersionSafetyProfileArgs) ToGalleryImageVersionSafetyProfilePtrOutput() GalleryImageVersionSafetyProfilePtrOutput { + return i.ToGalleryImageVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (i GalleryImageVersionSafetyProfileArgs) ToGalleryImageVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryImageVersionSafetyProfileOutput).ToGalleryImageVersionSafetyProfilePtrOutputWithContext(ctx) +} + +// GalleryImageVersionSafetyProfilePtrInput is an input type that accepts GalleryImageVersionSafetyProfileArgs, GalleryImageVersionSafetyProfilePtr and GalleryImageVersionSafetyProfilePtrOutput values. +// You can construct a concrete instance of `GalleryImageVersionSafetyProfilePtrInput` via: +// +// GalleryImageVersionSafetyProfileArgs{...} +// +// or: +// +// nil +type GalleryImageVersionSafetyProfilePtrInput interface { + pulumi.Input + + ToGalleryImageVersionSafetyProfilePtrOutput() GalleryImageVersionSafetyProfilePtrOutput + ToGalleryImageVersionSafetyProfilePtrOutputWithContext(context.Context) GalleryImageVersionSafetyProfilePtrOutput +} + +type galleryImageVersionSafetyProfilePtrType GalleryImageVersionSafetyProfileArgs + +func GalleryImageVersionSafetyProfilePtr(v *GalleryImageVersionSafetyProfileArgs) GalleryImageVersionSafetyProfilePtrInput { + return (*galleryImageVersionSafetyProfilePtrType)(v) +} + +func (*galleryImageVersionSafetyProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryImageVersionSafetyProfile)(nil)).Elem() +} + +func (i *galleryImageVersionSafetyProfilePtrType) ToGalleryImageVersionSafetyProfilePtrOutput() GalleryImageVersionSafetyProfilePtrOutput { + return i.ToGalleryImageVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (i *galleryImageVersionSafetyProfilePtrType) ToGalleryImageVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryImageVersionSafetyProfilePtrOutput) +} + +// This is the safety profile of the Gallery Image Version. +type GalleryImageVersionSafetyProfileOutput struct{ *pulumi.OutputState } + +func (GalleryImageVersionSafetyProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryImageVersionSafetyProfile)(nil)).Elem() +} + +func (o GalleryImageVersionSafetyProfileOutput) ToGalleryImageVersionSafetyProfileOutput() GalleryImageVersionSafetyProfileOutput { + return o +} + +func (o GalleryImageVersionSafetyProfileOutput) ToGalleryImageVersionSafetyProfileOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfileOutput { + return o +} + +func (o GalleryImageVersionSafetyProfileOutput) ToGalleryImageVersionSafetyProfilePtrOutput() GalleryImageVersionSafetyProfilePtrOutput { + return o.ToGalleryImageVersionSafetyProfilePtrOutputWithContext(context.Background()) +} + +func (o GalleryImageVersionSafetyProfileOutput) ToGalleryImageVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GalleryImageVersionSafetyProfile) *GalleryImageVersionSafetyProfile { + return &v + }).(GalleryImageVersionSafetyProfilePtrOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryImageVersionSafetyProfileOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryImageVersionSafetyProfile) *bool { return v.AllowDeletionOfReplicatedLocations }).(pulumi.BoolPtrOutput) +} + +type GalleryImageVersionSafetyProfilePtrOutput struct{ *pulumi.OutputState } + +func (GalleryImageVersionSafetyProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryImageVersionSafetyProfile)(nil)).Elem() +} + +func (o GalleryImageVersionSafetyProfilePtrOutput) ToGalleryImageVersionSafetyProfilePtrOutput() GalleryImageVersionSafetyProfilePtrOutput { + return o +} + +func (o GalleryImageVersionSafetyProfilePtrOutput) ToGalleryImageVersionSafetyProfilePtrOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfilePtrOutput { + return o +} + +func (o GalleryImageVersionSafetyProfilePtrOutput) Elem() GalleryImageVersionSafetyProfileOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfile) GalleryImageVersionSafetyProfile { + if v != nil { + return *v + } + var ret GalleryImageVersionSafetyProfile + return ret + }).(GalleryImageVersionSafetyProfileOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryImageVersionSafetyProfilePtrOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfile) *bool { + if v == nil { + return nil + } + return v.AllowDeletionOfReplicatedLocations + }).(pulumi.BoolPtrOutput) +} + +// This is the safety profile of the Gallery Image Version. +type GalleryImageVersionSafetyProfileResponse struct { + // Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. + AllowDeletionOfReplicatedLocations *bool `pulumi:"allowDeletionOfReplicatedLocations"` + // A list of Policy Violations that have been reported for this Gallery Image Version. + PolicyViolations []PolicyViolationResponse `pulumi:"policyViolations"` + // Indicates whether this image has been reported as violating Microsoft's policies. + ReportedForPolicyViolation bool `pulumi:"reportedForPolicyViolation"` +} + +// This is the safety profile of the Gallery Image Version. +type GalleryImageVersionSafetyProfileResponseOutput struct{ *pulumi.OutputState } + +func (GalleryImageVersionSafetyProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryImageVersionSafetyProfileResponse)(nil)).Elem() +} + +func (o GalleryImageVersionSafetyProfileResponseOutput) ToGalleryImageVersionSafetyProfileResponseOutput() GalleryImageVersionSafetyProfileResponseOutput { + return o +} + +func (o GalleryImageVersionSafetyProfileResponseOutput) ToGalleryImageVersionSafetyProfileResponseOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfileResponseOutput { + return o +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryImageVersionSafetyProfileResponseOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GalleryImageVersionSafetyProfileResponse) *bool { return v.AllowDeletionOfReplicatedLocations }).(pulumi.BoolPtrOutput) +} + +// A list of Policy Violations that have been reported for this Gallery Image Version. +func (o GalleryImageVersionSafetyProfileResponseOutput) PolicyViolations() PolicyViolationResponseArrayOutput { + return o.ApplyT(func(v GalleryImageVersionSafetyProfileResponse) []PolicyViolationResponse { return v.PolicyViolations }).(PolicyViolationResponseArrayOutput) +} + +// Indicates whether this image has been reported as violating Microsoft's policies. +func (o GalleryImageVersionSafetyProfileResponseOutput) ReportedForPolicyViolation() pulumi.BoolOutput { + return o.ApplyT(func(v GalleryImageVersionSafetyProfileResponse) bool { return v.ReportedForPolicyViolation }).(pulumi.BoolOutput) +} + +type GalleryImageVersionSafetyProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (GalleryImageVersionSafetyProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GalleryImageVersionSafetyProfileResponse)(nil)).Elem() +} + +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) ToGalleryImageVersionSafetyProfileResponsePtrOutput() GalleryImageVersionSafetyProfileResponsePtrOutput { + return o +} + +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) ToGalleryImageVersionSafetyProfileResponsePtrOutputWithContext(ctx context.Context) GalleryImageVersionSafetyProfileResponsePtrOutput { + return o +} + +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) Elem() GalleryImageVersionSafetyProfileResponseOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfileResponse) GalleryImageVersionSafetyProfileResponse { + if v != nil { + return *v + } + var ret GalleryImageVersionSafetyProfileResponse + return ret + }).(GalleryImageVersionSafetyProfileResponseOutput) +} + +// Indicates whether or not removing this Gallery Image Version from replicated regions is allowed. +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) AllowDeletionOfReplicatedLocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfileResponse) *bool { + if v == nil { + return nil + } + return v.AllowDeletionOfReplicatedLocations + }).(pulumi.BoolPtrOutput) +} + +// A list of Policy Violations that have been reported for this Gallery Image Version. +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) PolicyViolations() PolicyViolationResponseArrayOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfileResponse) []PolicyViolationResponse { + if v == nil { + return nil + } + return v.PolicyViolations + }).(PolicyViolationResponseArrayOutput) +} + +// Indicates whether this image has been reported as violating Microsoft's policies. +func (o GalleryImageVersionSafetyProfileResponsePtrOutput) ReportedForPolicyViolation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GalleryImageVersionSafetyProfileResponse) *bool { + if v == nil { + return nil + } + return &v.ReportedForPolicyViolation + }).(pulumi.BoolPtrOutput) +} + // This is the storage profile of a Gallery Image Version. type GalleryImageVersionStorageProfile struct { // A list of data disk images. DataDiskImages []GalleryDataDiskImage `pulumi:"dataDiskImages"` // This is the OS disk image. OsDiskImage *GalleryOSDiskImage `pulumi:"osDiskImage"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSource `pulumi:"source"` + // The source of the gallery artifact version. + Source *GalleryArtifactVersionFullSource `pulumi:"source"` } // GalleryImageVersionStorageProfileInput is an input type that accepts GalleryImageVersionStorageProfileArgs and GalleryImageVersionStorageProfileOutput values. @@ -10446,8 +13834,8 @@ type GalleryImageVersionStorageProfileArgs struct { DataDiskImages GalleryDataDiskImageArrayInput `pulumi:"dataDiskImages"` // This is the OS disk image. OsDiskImage GalleryOSDiskImagePtrInput `pulumi:"osDiskImage"` - // The gallery artifact version source. - Source GalleryArtifactVersionSourcePtrInput `pulumi:"source"` + // The source of the gallery artifact version. + Source GalleryArtifactVersionFullSourcePtrInput `pulumi:"source"` } func (GalleryImageVersionStorageProfileArgs) ElementType() reflect.Type { @@ -10487,9 +13875,9 @@ func (o GalleryImageVersionStorageProfileOutput) OsDiskImage() GalleryOSDiskImag return o.ApplyT(func(v GalleryImageVersionStorageProfile) *GalleryOSDiskImage { return v.OsDiskImage }).(GalleryOSDiskImagePtrOutput) } -// The gallery artifact version source. -func (o GalleryImageVersionStorageProfileOutput) Source() GalleryArtifactVersionSourcePtrOutput { - return o.ApplyT(func(v GalleryImageVersionStorageProfile) *GalleryArtifactVersionSource { return v.Source }).(GalleryArtifactVersionSourcePtrOutput) +// The source of the gallery artifact version. +func (o GalleryImageVersionStorageProfileOutput) Source() GalleryArtifactVersionFullSourcePtrOutput { + return o.ApplyT(func(v GalleryImageVersionStorageProfile) *GalleryArtifactVersionFullSource { return v.Source }).(GalleryArtifactVersionFullSourcePtrOutput) } // This is the storage profile of a Gallery Image Version. @@ -10498,8 +13886,8 @@ type GalleryImageVersionStorageProfileResponse struct { DataDiskImages []GalleryDataDiskImageResponse `pulumi:"dataDiskImages"` // This is the OS disk image. OsDiskImage *GalleryOSDiskImageResponse `pulumi:"osDiskImage"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSourceResponse `pulumi:"source"` + // The source of the gallery artifact version. + Source *GalleryArtifactVersionFullSourceResponse `pulumi:"source"` } // This is the storage profile of a Gallery Image Version. @@ -10529,19 +13917,19 @@ func (o GalleryImageVersionStorageProfileResponseOutput) OsDiskImage() GalleryOS return o.ApplyT(func(v GalleryImageVersionStorageProfileResponse) *GalleryOSDiskImageResponse { return v.OsDiskImage }).(GalleryOSDiskImageResponsePtrOutput) } -// The gallery artifact version source. -func (o GalleryImageVersionStorageProfileResponseOutput) Source() GalleryArtifactVersionSourceResponsePtrOutput { - return o.ApplyT(func(v GalleryImageVersionStorageProfileResponse) *GalleryArtifactVersionSourceResponse { +// The source of the gallery artifact version. +func (o GalleryImageVersionStorageProfileResponseOutput) Source() GalleryArtifactVersionFullSourceResponsePtrOutput { + return o.ApplyT(func(v GalleryImageVersionStorageProfileResponse) *GalleryArtifactVersionFullSourceResponse { return v.Source - }).(GalleryArtifactVersionSourceResponsePtrOutput) + }).(GalleryArtifactVersionFullSourceResponsePtrOutput) } // This is the OS disk image. type GalleryOSDiskImage struct { // The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite' HostCaching *HostCaching `pulumi:"hostCaching"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSource `pulumi:"source"` + // The source for the disk image. + Source *GalleryDiskImageSource `pulumi:"source"` } // GalleryOSDiskImageInput is an input type that accepts GalleryOSDiskImageArgs and GalleryOSDiskImageOutput values. @@ -10559,8 +13947,8 @@ type GalleryOSDiskImageInput interface { type GalleryOSDiskImageArgs struct { // The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite' HostCaching HostCachingPtrInput `pulumi:"hostCaching"` - // The gallery artifact version source. - Source GalleryArtifactVersionSourcePtrInput `pulumi:"source"` + // The source for the disk image. + Source GalleryDiskImageSourcePtrInput `pulumi:"source"` } func (GalleryOSDiskImageArgs) ElementType() reflect.Type { @@ -10646,9 +14034,9 @@ func (o GalleryOSDiskImageOutput) HostCaching() HostCachingPtrOutput { return o.ApplyT(func(v GalleryOSDiskImage) *HostCaching { return v.HostCaching }).(HostCachingPtrOutput) } -// The gallery artifact version source. -func (o GalleryOSDiskImageOutput) Source() GalleryArtifactVersionSourcePtrOutput { - return o.ApplyT(func(v GalleryOSDiskImage) *GalleryArtifactVersionSource { return v.Source }).(GalleryArtifactVersionSourcePtrOutput) +// The source for the disk image. +func (o GalleryOSDiskImageOutput) Source() GalleryDiskImageSourcePtrOutput { + return o.ApplyT(func(v GalleryOSDiskImage) *GalleryDiskImageSource { return v.Source }).(GalleryDiskImageSourcePtrOutput) } type GalleryOSDiskImagePtrOutput struct{ *pulumi.OutputState } @@ -10685,14 +14073,14 @@ func (o GalleryOSDiskImagePtrOutput) HostCaching() HostCachingPtrOutput { }).(HostCachingPtrOutput) } -// The gallery artifact version source. -func (o GalleryOSDiskImagePtrOutput) Source() GalleryArtifactVersionSourcePtrOutput { - return o.ApplyT(func(v *GalleryOSDiskImage) *GalleryArtifactVersionSource { +// The source for the disk image. +func (o GalleryOSDiskImagePtrOutput) Source() GalleryDiskImageSourcePtrOutput { + return o.ApplyT(func(v *GalleryOSDiskImage) *GalleryDiskImageSource { if v == nil { return nil } return v.Source - }).(GalleryArtifactVersionSourcePtrOutput) + }).(GalleryDiskImageSourcePtrOutput) } // This is the OS disk image. @@ -10701,8 +14089,8 @@ type GalleryOSDiskImageResponse struct { HostCaching *string `pulumi:"hostCaching"` // This property indicates the size of the VHD to be created. SizeInGB int `pulumi:"sizeInGB"` - // The gallery artifact version source. - Source *GalleryArtifactVersionSourceResponse `pulumi:"source"` + // The source for the disk image. + Source *GalleryDiskImageSourceResponse `pulumi:"source"` } // This is the OS disk image. @@ -10730,9 +14118,9 @@ func (o GalleryOSDiskImageResponseOutput) SizeInGB() pulumi.IntOutput { return o.ApplyT(func(v GalleryOSDiskImageResponse) int { return v.SizeInGB }).(pulumi.IntOutput) } -// The gallery artifact version source. -func (o GalleryOSDiskImageResponseOutput) Source() GalleryArtifactVersionSourceResponsePtrOutput { - return o.ApplyT(func(v GalleryOSDiskImageResponse) *GalleryArtifactVersionSourceResponse { return v.Source }).(GalleryArtifactVersionSourceResponsePtrOutput) +// The source for the disk image. +func (o GalleryOSDiskImageResponseOutput) Source() GalleryDiskImageSourceResponsePtrOutput { + return o.ApplyT(func(v GalleryOSDiskImageResponse) *GalleryDiskImageSourceResponse { return v.Source }).(GalleryDiskImageSourceResponsePtrOutput) } type GalleryOSDiskImageResponsePtrOutput struct{ *pulumi.OutputState } @@ -10779,20 +14167,229 @@ func (o GalleryOSDiskImageResponsePtrOutput) SizeInGB() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// The gallery artifact version source. -func (o GalleryOSDiskImageResponsePtrOutput) Source() GalleryArtifactVersionSourceResponsePtrOutput { - return o.ApplyT(func(v *GalleryOSDiskImageResponse) *GalleryArtifactVersionSourceResponse { +// The source for the disk image. +func (o GalleryOSDiskImageResponsePtrOutput) Source() GalleryDiskImageSourceResponsePtrOutput { + return o.ApplyT(func(v *GalleryOSDiskImageResponse) *GalleryDiskImageSourceResponse { if v == nil { return nil } return v.Source - }).(GalleryArtifactVersionSourceResponsePtrOutput) + }).(GalleryDiskImageSourceResponsePtrOutput) +} + +type GalleryTargetExtendedLocation struct { + // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. + Encryption *EncryptionImages `pulumi:"encryption"` + // The name of the extended location. + ExtendedLocation *GalleryExtendedLocation `pulumi:"extendedLocation"` + // The number of replicas of the Image Version to be created per extended location. This property is updatable. + ExtendedLocationReplicaCount *int `pulumi:"extendedLocationReplicaCount"` + // The name of the region. + Name *string `pulumi:"name"` + // Specifies the storage account type to be used to store the image. This property is not updatable. + StorageAccountType *string `pulumi:"storageAccountType"` +} + +// GalleryTargetExtendedLocationInput is an input type that accepts GalleryTargetExtendedLocationArgs and GalleryTargetExtendedLocationOutput values. +// You can construct a concrete instance of `GalleryTargetExtendedLocationInput` via: +// +// GalleryTargetExtendedLocationArgs{...} +type GalleryTargetExtendedLocationInput interface { + pulumi.Input + + ToGalleryTargetExtendedLocationOutput() GalleryTargetExtendedLocationOutput + ToGalleryTargetExtendedLocationOutputWithContext(context.Context) GalleryTargetExtendedLocationOutput +} + +type GalleryTargetExtendedLocationArgs struct { + // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. + Encryption EncryptionImagesPtrInput `pulumi:"encryption"` + // The name of the extended location. + ExtendedLocation GalleryExtendedLocationPtrInput `pulumi:"extendedLocation"` + // The number of replicas of the Image Version to be created per extended location. This property is updatable. + ExtendedLocationReplicaCount pulumi.IntPtrInput `pulumi:"extendedLocationReplicaCount"` + // The name of the region. + Name pulumi.StringPtrInput `pulumi:"name"` + // Specifies the storage account type to be used to store the image. This property is not updatable. + StorageAccountType pulumi.StringPtrInput `pulumi:"storageAccountType"` +} + +func (GalleryTargetExtendedLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryTargetExtendedLocation)(nil)).Elem() +} + +func (i GalleryTargetExtendedLocationArgs) ToGalleryTargetExtendedLocationOutput() GalleryTargetExtendedLocationOutput { + return i.ToGalleryTargetExtendedLocationOutputWithContext(context.Background()) +} + +func (i GalleryTargetExtendedLocationArgs) ToGalleryTargetExtendedLocationOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryTargetExtendedLocationOutput) +} + +// GalleryTargetExtendedLocationArrayInput is an input type that accepts GalleryTargetExtendedLocationArray and GalleryTargetExtendedLocationArrayOutput values. +// You can construct a concrete instance of `GalleryTargetExtendedLocationArrayInput` via: +// +// GalleryTargetExtendedLocationArray{ GalleryTargetExtendedLocationArgs{...} } +type GalleryTargetExtendedLocationArrayInput interface { + pulumi.Input + + ToGalleryTargetExtendedLocationArrayOutput() GalleryTargetExtendedLocationArrayOutput + ToGalleryTargetExtendedLocationArrayOutputWithContext(context.Context) GalleryTargetExtendedLocationArrayOutput +} + +type GalleryTargetExtendedLocationArray []GalleryTargetExtendedLocationInput + +func (GalleryTargetExtendedLocationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryTargetExtendedLocation)(nil)).Elem() +} + +func (i GalleryTargetExtendedLocationArray) ToGalleryTargetExtendedLocationArrayOutput() GalleryTargetExtendedLocationArrayOutput { + return i.ToGalleryTargetExtendedLocationArrayOutputWithContext(context.Background()) +} + +func (i GalleryTargetExtendedLocationArray) ToGalleryTargetExtendedLocationArrayOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GalleryTargetExtendedLocationArrayOutput) +} + +type GalleryTargetExtendedLocationOutput struct{ *pulumi.OutputState } + +func (GalleryTargetExtendedLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryTargetExtendedLocation)(nil)).Elem() +} + +func (o GalleryTargetExtendedLocationOutput) ToGalleryTargetExtendedLocationOutput() GalleryTargetExtendedLocationOutput { + return o +} + +func (o GalleryTargetExtendedLocationOutput) ToGalleryTargetExtendedLocationOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationOutput { + return o +} + +// Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. +func (o GalleryTargetExtendedLocationOutput) Encryption() EncryptionImagesPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocation) *EncryptionImages { return v.Encryption }).(EncryptionImagesPtrOutput) +} + +// The name of the extended location. +func (o GalleryTargetExtendedLocationOutput) ExtendedLocation() GalleryExtendedLocationPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocation) *GalleryExtendedLocation { return v.ExtendedLocation }).(GalleryExtendedLocationPtrOutput) +} + +// The number of replicas of the Image Version to be created per extended location. This property is updatable. +func (o GalleryTargetExtendedLocationOutput) ExtendedLocationReplicaCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocation) *int { return v.ExtendedLocationReplicaCount }).(pulumi.IntPtrOutput) +} + +// The name of the region. +func (o GalleryTargetExtendedLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Specifies the storage account type to be used to store the image. This property is not updatable. +func (o GalleryTargetExtendedLocationOutput) StorageAccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocation) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) +} + +type GalleryTargetExtendedLocationArrayOutput struct{ *pulumi.OutputState } + +func (GalleryTargetExtendedLocationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryTargetExtendedLocation)(nil)).Elem() +} + +func (o GalleryTargetExtendedLocationArrayOutput) ToGalleryTargetExtendedLocationArrayOutput() GalleryTargetExtendedLocationArrayOutput { + return o +} + +func (o GalleryTargetExtendedLocationArrayOutput) ToGalleryTargetExtendedLocationArrayOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationArrayOutput { + return o +} + +func (o GalleryTargetExtendedLocationArrayOutput) Index(i pulumi.IntInput) GalleryTargetExtendedLocationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryTargetExtendedLocation { + return vs[0].([]GalleryTargetExtendedLocation)[vs[1].(int)] + }).(GalleryTargetExtendedLocationOutput) +} + +type GalleryTargetExtendedLocationResponse struct { + // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. + Encryption *EncryptionImagesResponse `pulumi:"encryption"` + // The name of the extended location. + ExtendedLocation *GalleryExtendedLocationResponse `pulumi:"extendedLocation"` + // The number of replicas of the Image Version to be created per extended location. This property is updatable. + ExtendedLocationReplicaCount *int `pulumi:"extendedLocationReplicaCount"` + // The name of the region. + Name *string `pulumi:"name"` + // Specifies the storage account type to be used to store the image. This property is not updatable. + StorageAccountType *string `pulumi:"storageAccountType"` +} + +type GalleryTargetExtendedLocationResponseOutput struct{ *pulumi.OutputState } + +func (GalleryTargetExtendedLocationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GalleryTargetExtendedLocationResponse)(nil)).Elem() +} + +func (o GalleryTargetExtendedLocationResponseOutput) ToGalleryTargetExtendedLocationResponseOutput() GalleryTargetExtendedLocationResponseOutput { + return o +} + +func (o GalleryTargetExtendedLocationResponseOutput) ToGalleryTargetExtendedLocationResponseOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationResponseOutput { + return o +} + +// Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. +func (o GalleryTargetExtendedLocationResponseOutput) Encryption() EncryptionImagesResponsePtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocationResponse) *EncryptionImagesResponse { return v.Encryption }).(EncryptionImagesResponsePtrOutput) +} + +// The name of the extended location. +func (o GalleryTargetExtendedLocationResponseOutput) ExtendedLocation() GalleryExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocationResponse) *GalleryExtendedLocationResponse { + return v.ExtendedLocation + }).(GalleryExtendedLocationResponsePtrOutput) +} + +// The number of replicas of the Image Version to be created per extended location. This property is updatable. +func (o GalleryTargetExtendedLocationResponseOutput) ExtendedLocationReplicaCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocationResponse) *int { return v.ExtendedLocationReplicaCount }).(pulumi.IntPtrOutput) +} + +// The name of the region. +func (o GalleryTargetExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Specifies the storage account type to be used to store the image. This property is not updatable. +func (o GalleryTargetExtendedLocationResponseOutput) StorageAccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GalleryTargetExtendedLocationResponse) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) +} + +type GalleryTargetExtendedLocationResponseArrayOutput struct{ *pulumi.OutputState } + +func (GalleryTargetExtendedLocationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GalleryTargetExtendedLocationResponse)(nil)).Elem() +} + +func (o GalleryTargetExtendedLocationResponseArrayOutput) ToGalleryTargetExtendedLocationResponseArrayOutput() GalleryTargetExtendedLocationResponseArrayOutput { + return o +} + +func (o GalleryTargetExtendedLocationResponseArrayOutput) ToGalleryTargetExtendedLocationResponseArrayOutputWithContext(ctx context.Context) GalleryTargetExtendedLocationResponseArrayOutput { + return o +} + +func (o GalleryTargetExtendedLocationResponseArrayOutput) Index(i pulumi.IntInput) GalleryTargetExtendedLocationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GalleryTargetExtendedLocationResponse { + return vs[0].([]GalleryTargetExtendedLocationResponse)[vs[1].(int)] + }).(GalleryTargetExtendedLocationResponseOutput) } // Specifies the hardware settings for the virtual machine. type HardwareProfile struct { - // Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. + // Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. VmSize *string `pulumi:"vmSize"` + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties *VMSizeProperties `pulumi:"vmSizeProperties"` } // HardwareProfileInput is an input type that accepts HardwareProfileArgs and HardwareProfileOutput values. @@ -10808,8 +14405,10 @@ type HardwareProfileInput interface { // Specifies the hardware settings for the virtual machine. type HardwareProfileArgs struct { - // Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. + // Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. VmSize pulumi.StringPtrInput `pulumi:"vmSize"` + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties VMSizePropertiesPtrInput `pulumi:"vmSizeProperties"` } func (HardwareProfileArgs) ElementType() reflect.Type { @@ -10890,11 +14489,16 @@ func (o HardwareProfileOutput) ToHardwareProfilePtrOutputWithContext(ctx context }).(HardwareProfilePtrOutput) } -// Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. +// Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. func (o HardwareProfileOutput) VmSize() pulumi.StringPtrOutput { return o.ApplyT(func(v HardwareProfile) *string { return v.VmSize }).(pulumi.StringPtrOutput) } +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o HardwareProfileOutput) VmSizeProperties() VMSizePropertiesPtrOutput { + return o.ApplyT(func(v HardwareProfile) *VMSizeProperties { return v.VmSizeProperties }).(VMSizePropertiesPtrOutput) +} + type HardwareProfilePtrOutput struct{ *pulumi.OutputState } func (HardwareProfilePtrOutput) ElementType() reflect.Type { @@ -10919,7 +14523,7 @@ func (o HardwareProfilePtrOutput) Elem() HardwareProfileOutput { }).(HardwareProfileOutput) } -// Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. +// Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. func (o HardwareProfilePtrOutput) VmSize() pulumi.StringPtrOutput { return o.ApplyT(func(v *HardwareProfile) *string { if v == nil { @@ -10929,10 +14533,22 @@ func (o HardwareProfilePtrOutput) VmSize() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o HardwareProfilePtrOutput) VmSizeProperties() VMSizePropertiesPtrOutput { + return o.ApplyT(func(v *HardwareProfile) *VMSizeProperties { + if v == nil { + return nil + } + return v.VmSizeProperties + }).(VMSizePropertiesPtrOutput) +} + // Specifies the hardware settings for the virtual machine. type HardwareProfileResponse struct { - // Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. + // Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. VmSize *string `pulumi:"vmSize"` + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties *VMSizePropertiesResponse `pulumi:"vmSizeProperties"` } // Specifies the hardware settings for the virtual machine. @@ -10950,11 +14566,16 @@ func (o HardwareProfileResponseOutput) ToHardwareProfileResponseOutputWithContex return o } -// Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. +// Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. func (o HardwareProfileResponseOutput) VmSize() pulumi.StringPtrOutput { return o.ApplyT(func(v HardwareProfileResponse) *string { return v.VmSize }).(pulumi.StringPtrOutput) } +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o HardwareProfileResponseOutput) VmSizeProperties() VMSizePropertiesResponsePtrOutput { + return o.ApplyT(func(v HardwareProfileResponse) *VMSizePropertiesResponse { return v.VmSizeProperties }).(VMSizePropertiesResponsePtrOutput) +} + type HardwareProfileResponsePtrOutput struct{ *pulumi.OutputState } func (HardwareProfileResponsePtrOutput) ElementType() reflect.Type { @@ -10979,7 +14600,7 @@ func (o HardwareProfileResponsePtrOutput) Elem() HardwareProfileResponseOutput { }).(HardwareProfileResponseOutput) } -// Specifies the size of the virtual machine.

    The enum data type is currently deprecated and will be removed by December 23rd 2023.

    Recommended way to get the list of available sizes is using these APIs:

    [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes)

    [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list)

    [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes).

    The available VM sizes depend on region and availability set. +// Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set. func (o HardwareProfileResponsePtrOutput) VmSize() pulumi.StringPtrOutput { return o.ApplyT(func(v *HardwareProfileResponse) *string { if v == nil { @@ -10989,15 +14610,25 @@ func (o HardwareProfileResponsePtrOutput) VmSize() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-07-01. This feature is still in preview mode and is not supported for VirtualMachineScaleSet. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o HardwareProfileResponsePtrOutput) VmSizeProperties() VMSizePropertiesResponsePtrOutput { + return o.ApplyT(func(v *HardwareProfileResponse) *VMSizePropertiesResponse { + if v == nil { + return nil + } + return v.VmSizeProperties + }).(VMSizePropertiesResponsePtrOutput) +} + // Describes a data disk. type ImageDataDisk struct { // The Virtual Hard Disk. BlobUri *string `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun int `pulumi:"lun"` @@ -11024,11 +14655,11 @@ type ImageDataDiskInput interface { type ImageDataDiskArgs struct { // The Virtual Hard Disk. BlobUri pulumi.StringPtrInput `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun pulumi.IntInput `pulumi:"lun"` @@ -11097,7 +14728,7 @@ func (o ImageDataDiskOutput) BlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageDataDisk) *string { return v.BlobUri }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageDataDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v ImageDataDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } @@ -11107,7 +14738,7 @@ func (o ImageDataDiskOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrO return o.ApplyT(func(v ImageDataDisk) *DiskEncryptionSetParameters { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersPtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageDataDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageDataDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -11156,11 +14787,11 @@ func (o ImageDataDiskArrayOutput) Index(i pulumi.IntInput) ImageDataDiskOutput { type ImageDataDiskResponse struct { // The Virtual Hard Disk. BlobUri *string `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun int `pulumi:"lun"` @@ -11192,7 +14823,7 @@ func (o ImageDataDiskResponseOutput) BlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageDataDiskResponse) *string { return v.BlobUri }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageDataDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageDataDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } @@ -11202,7 +14833,7 @@ func (o ImageDataDiskResponseOutput) DiskEncryptionSet() DiskEncryptionSetParame return o.ApplyT(func(v ImageDataDiskResponse) *DiskEncryptionSetParametersResponse { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersResponsePtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageDataDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageDataDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -11249,10 +14880,14 @@ func (o ImageDataDiskResponseArrayOutput) Index(i pulumi.IntInput) ImageDataDisk // The source image used for creating the disk. type ImageDiskReference struct { - // A relative uri containing either a Platform Image Repository or user image reference. - Id string `pulumi:"id"` + // A relative uri containing a community Azure Compute Gallery image reference. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` + // A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. + Id *string `pulumi:"id"` // If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. Lun *int `pulumi:"lun"` + // A relative uri containing a direct shared Azure Compute Gallery image reference. + SharedGalleryImageId *string `pulumi:"sharedGalleryImageId"` } // ImageDiskReferenceInput is an input type that accepts ImageDiskReferenceArgs and ImageDiskReferenceOutput values. @@ -11268,10 +14903,14 @@ type ImageDiskReferenceInput interface { // The source image used for creating the disk. type ImageDiskReferenceArgs struct { - // A relative uri containing either a Platform Image Repository or user image reference. - Id pulumi.StringInput `pulumi:"id"` + // A relative uri containing a community Azure Compute Gallery image reference. + CommunityGalleryImageId pulumi.StringPtrInput `pulumi:"communityGalleryImageId"` + // A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. + Id pulumi.StringPtrInput `pulumi:"id"` // If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. Lun pulumi.IntPtrInput `pulumi:"lun"` + // A relative uri containing a direct shared Azure Compute Gallery image reference. + SharedGalleryImageId pulumi.StringPtrInput `pulumi:"sharedGalleryImageId"` } func (ImageDiskReferenceArgs) ElementType() reflect.Type { @@ -11352,9 +14991,14 @@ func (o ImageDiskReferenceOutput) ToImageDiskReferencePtrOutputWithContext(ctx c }).(ImageDiskReferencePtrOutput) } -// A relative uri containing either a Platform Image Repository or user image reference. -func (o ImageDiskReferenceOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v ImageDiskReference) string { return v.Id }).(pulumi.StringOutput) +// A relative uri containing a community Azure Compute Gallery image reference. +func (o ImageDiskReferenceOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReference) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) +} + +// A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. +func (o ImageDiskReferenceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReference) *string { return v.Id }).(pulumi.StringPtrOutput) } // If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. @@ -11362,6 +15006,11 @@ func (o ImageDiskReferenceOutput) Lun() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageDiskReference) *int { return v.Lun }).(pulumi.IntPtrOutput) } +// A relative uri containing a direct shared Azure Compute Gallery image reference. +func (o ImageDiskReferenceOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReference) *string { return v.SharedGalleryImageId }).(pulumi.StringPtrOutput) +} + type ImageDiskReferencePtrOutput struct{ *pulumi.OutputState } func (ImageDiskReferencePtrOutput) ElementType() reflect.Type { @@ -11386,13 +15035,23 @@ func (o ImageDiskReferencePtrOutput) Elem() ImageDiskReferenceOutput { }).(ImageDiskReferenceOutput) } -// A relative uri containing either a Platform Image Repository or user image reference. +// A relative uri containing a community Azure Compute Gallery image reference. +func (o ImageDiskReferencePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageDiskReference) *string { + if v == nil { + return nil + } + return v.CommunityGalleryImageId + }).(pulumi.StringPtrOutput) +} + +// A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. func (o ImageDiskReferencePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageDiskReference) *string { if v == nil { return nil } - return &v.Id + return v.Id }).(pulumi.StringPtrOutput) } @@ -11406,12 +15065,26 @@ func (o ImageDiskReferencePtrOutput) Lun() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// A relative uri containing a direct shared Azure Compute Gallery image reference. +func (o ImageDiskReferencePtrOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageDiskReference) *string { + if v == nil { + return nil + } + return v.SharedGalleryImageId + }).(pulumi.StringPtrOutput) +} + // The source image used for creating the disk. type ImageDiskReferenceResponse struct { - // A relative uri containing either a Platform Image Repository or user image reference. - Id string `pulumi:"id"` + // A relative uri containing a community Azure Compute Gallery image reference. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` + // A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. + Id *string `pulumi:"id"` // If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. Lun *int `pulumi:"lun"` + // A relative uri containing a direct shared Azure Compute Gallery image reference. + SharedGalleryImageId *string `pulumi:"sharedGalleryImageId"` } // The source image used for creating the disk. @@ -11429,9 +15102,14 @@ func (o ImageDiskReferenceResponseOutput) ToImageDiskReferenceResponseOutputWith return o } -// A relative uri containing either a Platform Image Repository or user image reference. -func (o ImageDiskReferenceResponseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v ImageDiskReferenceResponse) string { return v.Id }).(pulumi.StringOutput) +// A relative uri containing a community Azure Compute Gallery image reference. +func (o ImageDiskReferenceResponseOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReferenceResponse) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) +} + +// A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. +func (o ImageDiskReferenceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReferenceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } // If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. @@ -11439,6 +15117,11 @@ func (o ImageDiskReferenceResponseOutput) Lun() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageDiskReferenceResponse) *int { return v.Lun }).(pulumi.IntPtrOutput) } +// A relative uri containing a direct shared Azure Compute Gallery image reference. +func (o ImageDiskReferenceResponseOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageDiskReferenceResponse) *string { return v.SharedGalleryImageId }).(pulumi.StringPtrOutput) +} + type ImageDiskReferenceResponsePtrOutput struct{ *pulumi.OutputState } func (ImageDiskReferenceResponsePtrOutput) ElementType() reflect.Type { @@ -11463,13 +15146,23 @@ func (o ImageDiskReferenceResponsePtrOutput) Elem() ImageDiskReferenceResponseOu }).(ImageDiskReferenceResponseOutput) } -// A relative uri containing either a Platform Image Repository or user image reference. +// A relative uri containing a community Azure Compute Gallery image reference. +func (o ImageDiskReferenceResponsePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageDiskReferenceResponse) *string { + if v == nil { + return nil + } + return v.CommunityGalleryImageId + }).(pulumi.StringPtrOutput) +} + +// A relative uri containing either a Platform Image Repository, user image, or Azure Compute Gallery image reference. func (o ImageDiskReferenceResponsePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageDiskReferenceResponse) *string { if v == nil { return nil } - return &v.Id + return v.Id }).(pulumi.StringPtrOutput) } @@ -11483,21 +15176,31 @@ func (o ImageDiskReferenceResponsePtrOutput) Lun() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// A relative uri containing a direct shared Azure Compute Gallery image reference. +func (o ImageDiskReferenceResponsePtrOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageDiskReferenceResponse) *string { + if v == nil { + return nil + } + return v.SharedGalleryImageId + }).(pulumi.StringPtrOutput) +} + // Describes an Operating System disk. type ImageOSDisk struct { // The Virtual Hard Disk. BlobUri *string `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB *int `pulumi:"diskSizeGB"` // The managedDisk. ManagedDisk *SubResource `pulumi:"managedDisk"` - // The OS State. + // The OS State. For managed images, use Generalized. OsState OperatingSystemStateTypes `pulumi:"osState"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** OsType OperatingSystemTypes `pulumi:"osType"` // The snapshot. Snapshot *SubResource `pulumi:"snapshot"` @@ -11520,17 +15223,17 @@ type ImageOSDiskInput interface { type ImageOSDiskArgs struct { // The Virtual Hard Disk. BlobUri pulumi.StringPtrInput `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` // The managedDisk. ManagedDisk SubResourcePtrInput `pulumi:"managedDisk"` - // The OS State. + // The OS State. For managed images, use Generalized. OsState OperatingSystemStateTypesInput `pulumi:"osState"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** OsType OperatingSystemTypesInput `pulumi:"osType"` // The snapshot. Snapshot SubResourcePtrInput `pulumi:"snapshot"` @@ -11621,7 +15324,7 @@ func (o ImageOSDiskOutput) BlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageOSDisk) *string { return v.BlobUri }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageOSDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v ImageOSDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } @@ -11631,7 +15334,7 @@ func (o ImageOSDiskOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrOut return o.ApplyT(func(v ImageOSDisk) *DiskEncryptionSetParameters { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersPtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageOSDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageOSDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -11641,12 +15344,12 @@ func (o ImageOSDiskOutput) ManagedDisk() SubResourcePtrOutput { return o.ApplyT(func(v ImageOSDisk) *SubResource { return v.ManagedDisk }).(SubResourcePtrOutput) } -// The OS State. +// The OS State. For managed images, use Generalized. func (o ImageOSDiskOutput) OsState() OperatingSystemStateTypesOutput { return o.ApplyT(func(v ImageOSDisk) OperatingSystemStateTypes { return v.OsState }).(OperatingSystemStateTypesOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** func (o ImageOSDiskOutput) OsType() OperatingSystemTypesOutput { return o.ApplyT(func(v ImageOSDisk) OperatingSystemTypes { return v.OsType }).(OperatingSystemTypesOutput) } @@ -11695,7 +15398,7 @@ func (o ImageOSDiskPtrOutput) BlobUri() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageOSDiskPtrOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v *ImageOSDisk) *CachingTypes { if v == nil { @@ -11715,7 +15418,7 @@ func (o ImageOSDiskPtrOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtr }).(DiskEncryptionSetParametersPtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageOSDiskPtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *ImageOSDisk) *int { if v == nil { @@ -11735,7 +15438,7 @@ func (o ImageOSDiskPtrOutput) ManagedDisk() SubResourcePtrOutput { }).(SubResourcePtrOutput) } -// The OS State. +// The OS State. For managed images, use Generalized. func (o ImageOSDiskPtrOutput) OsState() OperatingSystemStateTypesPtrOutput { return o.ApplyT(func(v *ImageOSDisk) *OperatingSystemStateTypes { if v == nil { @@ -11745,7 +15448,7 @@ func (o ImageOSDiskPtrOutput) OsState() OperatingSystemStateTypesPtrOutput { }).(OperatingSystemStateTypesPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** func (o ImageOSDiskPtrOutput) OsType() OperatingSystemTypesPtrOutput { return o.ApplyT(func(v *ImageOSDisk) *OperatingSystemTypes { if v == nil { @@ -11779,17 +15482,17 @@ func (o ImageOSDiskPtrOutput) StorageAccountType() pulumi.StringPtrOutput { type ImageOSDiskResponse struct { // The Virtual Hard Disk. BlobUri *string `pulumi:"blobUri"` - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` // Specifies the customer managed disk encryption set resource id for the managed image disk. DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` - // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. DiskSizeGB *int `pulumi:"diskSizeGB"` // The managedDisk. ManagedDisk *SubResourceResponse `pulumi:"managedDisk"` - // The OS State. + // The OS State. For managed images, use Generalized. OsState string `pulumi:"osState"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** OsType string `pulumi:"osType"` // The snapshot. Snapshot *SubResourceResponse `pulumi:"snapshot"` @@ -11817,7 +15520,7 @@ func (o ImageOSDiskResponseOutput) BlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageOSDiskResponse) *string { return v.BlobUri }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageOSDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageOSDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } @@ -11827,7 +15530,7 @@ func (o ImageOSDiskResponseOutput) DiskEncryptionSet() DiskEncryptionSetParamete return o.ApplyT(func(v ImageOSDiskResponse) *DiskEncryptionSetParametersResponse { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersResponsePtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageOSDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v ImageOSDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -11837,12 +15540,12 @@ func (o ImageOSDiskResponseOutput) ManagedDisk() SubResourceResponsePtrOutput { return o.ApplyT(func(v ImageOSDiskResponse) *SubResourceResponse { return v.ManagedDisk }).(SubResourceResponsePtrOutput) } -// The OS State. +// The OS State. For managed images, use Generalized. func (o ImageOSDiskResponseOutput) OsState() pulumi.StringOutput { return o.ApplyT(func(v ImageOSDiskResponse) string { return v.OsState }).(pulumi.StringOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** func (o ImageOSDiskResponseOutput) OsType() pulumi.StringOutput { return o.ApplyT(func(v ImageOSDiskResponse) string { return v.OsType }).(pulumi.StringOutput) } @@ -11891,7 +15594,7 @@ func (o ImageOSDiskResponsePtrOutput) BlobUri() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o ImageOSDiskResponsePtrOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageOSDiskResponse) *string { if v == nil { @@ -11911,7 +15614,7 @@ func (o ImageOSDiskResponsePtrOutput) DiskEncryptionSet() DiskEncryptionSetParam }).(DiskEncryptionSetParametersResponsePtrOutput) } -// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of empty data disks in gigabytes. This element can be used to overwrite the name of the disk in a virtual machine image. This value cannot be larger than 1023 GB. func (o ImageOSDiskResponsePtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *ImageOSDiskResponse) *int { if v == nil { @@ -11931,7 +15634,7 @@ func (o ImageOSDiskResponsePtrOutput) ManagedDisk() SubResourceResponsePtrOutput }).(SubResourceResponsePtrOutput) } -// The OS State. +// The OS State. For managed images, use Generalized. func (o ImageOSDiskResponsePtrOutput) OsState() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageOSDiskResponse) *string { if v == nil { @@ -11941,7 +15644,7 @@ func (o ImageOSDiskResponsePtrOutput) OsState() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from a custom image. Possible values are: **Windows,** **Linux.** func (o ImageOSDiskResponsePtrOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageOSDiskResponse) *string { if v == nil { @@ -12245,15 +15948,19 @@ func (o ImagePurchasePlanResponsePtrOutput) Publisher() pulumi.StringPtrOutput { // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set. type ImageReference struct { + // Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` // Resource Id Id *string `pulumi:"id"` // Specifies the offer of the platform image or marketplace image used to create the virtual machine. Offer *string `pulumi:"offer"` // The image publisher. Publisher *string `pulumi:"publisher"` + // Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. + SharedGalleryImageId *string `pulumi:"sharedGalleryImageId"` // The image SKU. Sku *string `pulumi:"sku"` - // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. + // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. Version *string `pulumi:"version"` } @@ -12270,15 +15977,19 @@ type ImageReferenceInput interface { // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set. type ImageReferenceArgs struct { + // Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. + CommunityGalleryImageId pulumi.StringPtrInput `pulumi:"communityGalleryImageId"` // Resource Id Id pulumi.StringPtrInput `pulumi:"id"` // Specifies the offer of the platform image or marketplace image used to create the virtual machine. Offer pulumi.StringPtrInput `pulumi:"offer"` // The image publisher. Publisher pulumi.StringPtrInput `pulumi:"publisher"` + // Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. + SharedGalleryImageId pulumi.StringPtrInput `pulumi:"sharedGalleryImageId"` // The image SKU. Sku pulumi.StringPtrInput `pulumi:"sku"` - // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. + // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. Version pulumi.StringPtrInput `pulumi:"version"` } @@ -12360,6 +16071,11 @@ func (o ImageReferenceOutput) ToImageReferencePtrOutputWithContext(ctx context.C }).(ImageReferencePtrOutput) } +// Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. +func (o ImageReferenceOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageReference) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) +} + // Resource Id func (o ImageReferenceOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReference) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -12375,12 +16091,17 @@ func (o ImageReferenceOutput) Publisher() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReference) *string { return v.Publisher }).(pulumi.StringPtrOutput) } +// Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. +func (o ImageReferenceOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageReference) *string { return v.SharedGalleryImageId }).(pulumi.StringPtrOutput) +} + // The image SKU. func (o ImageReferenceOutput) Sku() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReference) *string { return v.Sku }).(pulumi.StringPtrOutput) } -// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. +// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. func (o ImageReferenceOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReference) *string { return v.Version }).(pulumi.StringPtrOutput) } @@ -12409,6 +16130,16 @@ func (o ImageReferencePtrOutput) Elem() ImageReferenceOutput { }).(ImageReferenceOutput) } +// Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. +func (o ImageReferencePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageReference) *string { + if v == nil { + return nil + } + return v.CommunityGalleryImageId + }).(pulumi.StringPtrOutput) +} + // Resource Id func (o ImageReferencePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReference) *string { @@ -12439,6 +16170,16 @@ func (o ImageReferencePtrOutput) Publisher() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. +func (o ImageReferencePtrOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageReference) *string { + if v == nil { + return nil + } + return v.SharedGalleryImageId + }).(pulumi.StringPtrOutput) +} + // The image SKU. func (o ImageReferencePtrOutput) Sku() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReference) *string { @@ -12449,7 +16190,7 @@ func (o ImageReferencePtrOutput) Sku() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. +// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. func (o ImageReferencePtrOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReference) *string { if v == nil { @@ -12461,6 +16202,8 @@ func (o ImageReferencePtrOutput) Version() pulumi.StringPtrOutput { // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set. type ImageReferenceResponse struct { + // Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. + CommunityGalleryImageId *string `pulumi:"communityGalleryImageId"` // Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'. ExactVersion string `pulumi:"exactVersion"` // Resource Id @@ -12469,9 +16212,11 @@ type ImageReferenceResponse struct { Offer *string `pulumi:"offer"` // The image publisher. Publisher *string `pulumi:"publisher"` + // Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. + SharedGalleryImageId *string `pulumi:"sharedGalleryImageId"` // The image SKU. Sku *string `pulumi:"sku"` - // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. + // Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. Version *string `pulumi:"version"` } @@ -12490,6 +16235,11 @@ func (o ImageReferenceResponseOutput) ToImageReferenceResponseOutputWithContext( return o } +// Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. +func (o ImageReferenceResponseOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageReferenceResponse) *string { return v.CommunityGalleryImageId }).(pulumi.StringPtrOutput) +} + // Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'. func (o ImageReferenceResponseOutput) ExactVersion() pulumi.StringOutput { return o.ApplyT(func(v ImageReferenceResponse) string { return v.ExactVersion }).(pulumi.StringOutput) @@ -12510,12 +16260,17 @@ func (o ImageReferenceResponseOutput) Publisher() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReferenceResponse) *string { return v.Publisher }).(pulumi.StringPtrOutput) } +// Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. +func (o ImageReferenceResponseOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageReferenceResponse) *string { return v.SharedGalleryImageId }).(pulumi.StringPtrOutput) +} + // The image SKU. func (o ImageReferenceResponseOutput) Sku() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReferenceResponse) *string { return v.Sku }).(pulumi.StringPtrOutput) } -// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. +// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. func (o ImageReferenceResponseOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v ImageReferenceResponse) *string { return v.Version }).(pulumi.StringPtrOutput) } @@ -12544,6 +16299,16 @@ func (o ImageReferenceResponsePtrOutput) Elem() ImageReferenceResponseOutput { }).(ImageReferenceResponseOutput) } +// Specified the community gallery image unique id for vm deployment. This can be fetched from community gallery image GET call. +func (o ImageReferenceResponsePtrOutput) CommunityGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageReferenceResponse) *string { + if v == nil { + return nil + } + return v.CommunityGalleryImageId + }).(pulumi.StringPtrOutput) +} + // Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs from 'version', only if the value specified in 'version' field is 'latest'. func (o ImageReferenceResponsePtrOutput) ExactVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReferenceResponse) *string { @@ -12584,6 +16349,16 @@ func (o ImageReferenceResponsePtrOutput) Publisher() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specified the shared gallery image unique id for vm deployment. This can be fetched from shared gallery image GET call. +func (o ImageReferenceResponsePtrOutput) SharedGalleryImageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImageReferenceResponse) *string { + if v == nil { + return nil + } + return v.SharedGalleryImageId + }).(pulumi.StringPtrOutput) +} + // The image SKU. func (o ImageReferenceResponsePtrOutput) Sku() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReferenceResponse) *string { @@ -12594,7 +16369,7 @@ func (o ImageReferenceResponsePtrOutput) Sku() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. +// Specifies the version of the platform image or marketplace image used to create the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and Build are decimal numbers. Specify 'latest' to use the latest version of an image available at deploy time. Even if you use 'latest', the VM image will not automatically update after deploy time even if a new version becomes available. Please do not use field 'version' for gallery image deployment, gallery image should always use 'id' field for deployment, to use 'latest' version of gallery image, just set '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}' in the 'id' field without version input. func (o ImageReferenceResponsePtrOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v *ImageReferenceResponse) *string { if v == nil { @@ -12606,9 +16381,9 @@ func (o ImageReferenceResponsePtrOutput) Version() pulumi.StringPtrOutput { // Describes a storage profile. type ImageStorageProfile struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks []ImageDataDisk `pulumi:"dataDisks"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *ImageOSDisk `pulumi:"osDisk"` // Specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS). ZoneResilient *bool `pulumi:"zoneResilient"` @@ -12627,9 +16402,9 @@ type ImageStorageProfileInput interface { // Describes a storage profile. type ImageStorageProfileArgs struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks ImageDataDiskArrayInput `pulumi:"dataDisks"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk ImageOSDiskPtrInput `pulumi:"osDisk"` // Specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS). ZoneResilient pulumi.BoolPtrInput `pulumi:"zoneResilient"` @@ -12713,12 +16488,12 @@ func (o ImageStorageProfileOutput) ToImageStorageProfilePtrOutputWithContext(ctx }).(ImageStorageProfilePtrOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileOutput) DataDisks() ImageDataDiskArrayOutput { return o.ApplyT(func(v ImageStorageProfile) []ImageDataDisk { return v.DataDisks }).(ImageDataDiskArrayOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileOutput) OsDisk() ImageOSDiskPtrOutput { return o.ApplyT(func(v ImageStorageProfile) *ImageOSDisk { return v.OsDisk }).(ImageOSDiskPtrOutput) } @@ -12752,7 +16527,7 @@ func (o ImageStorageProfilePtrOutput) Elem() ImageStorageProfileOutput { }).(ImageStorageProfileOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfilePtrOutput) DataDisks() ImageDataDiskArrayOutput { return o.ApplyT(func(v *ImageStorageProfile) []ImageDataDisk { if v == nil { @@ -12762,7 +16537,7 @@ func (o ImageStorageProfilePtrOutput) DataDisks() ImageDataDiskArrayOutput { }).(ImageDataDiskArrayOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfilePtrOutput) OsDisk() ImageOSDiskPtrOutput { return o.ApplyT(func(v *ImageStorageProfile) *ImageOSDisk { if v == nil { @@ -12784,9 +16559,9 @@ func (o ImageStorageProfilePtrOutput) ZoneResilient() pulumi.BoolPtrOutput { // Describes a storage profile. type ImageStorageProfileResponse struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks []ImageDataDiskResponse `pulumi:"dataDisks"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). + // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *ImageOSDiskResponse `pulumi:"osDisk"` // Specifies whether an image is zone resilient or not. Default is false. Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS). ZoneResilient *bool `pulumi:"zoneResilient"` @@ -12807,12 +16582,12 @@ func (o ImageStorageProfileResponseOutput) ToImageStorageProfileResponseOutputWi return o } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileResponseOutput) DataDisks() ImageDataDiskResponseArrayOutput { return o.ApplyT(func(v ImageStorageProfileResponse) []ImageDataDiskResponse { return v.DataDisks }).(ImageDataDiskResponseArrayOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileResponseOutput) OsDisk() ImageOSDiskResponsePtrOutput { return o.ApplyT(func(v ImageStorageProfileResponse) *ImageOSDiskResponse { return v.OsDisk }).(ImageOSDiskResponsePtrOutput) } @@ -12846,7 +16621,7 @@ func (o ImageStorageProfileResponsePtrOutput) Elem() ImageStorageProfileResponse }).(ImageStorageProfileResponseOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileResponsePtrOutput) DataDisks() ImageDataDiskResponseArrayOutput { return o.ApplyT(func(v *ImageStorageProfileResponse) []ImageDataDiskResponse { if v == nil { @@ -12856,7 +16631,7 @@ func (o ImageStorageProfileResponsePtrOutput) DataDisks() ImageDataDiskResponseA }).(ImageDataDiskResponseArrayOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). +// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o ImageStorageProfileResponsePtrOutput) OsDisk() ImageOSDiskResponsePtrOutput { return o.ApplyT(func(v *ImageStorageProfileResponse) *ImageOSDiskResponse { if v == nil { @@ -14792,13 +18567,15 @@ func (o LastPatchInstallationSummaryResponsePtrOutput) Status() pulumi.StringPtr }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). type LinuxConfiguration struct { // Specifies whether password authentication should be disabled. DisablePasswordAuthentication *bool `pulumi:"disablePasswordAuthentication"` + // Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. + EnableVMAgentPlatformUpdates *bool `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. PatchSettings *LinuxPatchSettings `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent *bool `pulumi:"provisionVMAgent"` // Specifies the ssh key configuration for a Linux OS. Ssh *SshConfiguration `pulumi:"ssh"` @@ -14815,13 +18592,15 @@ type LinuxConfigurationInput interface { ToLinuxConfigurationOutputWithContext(context.Context) LinuxConfigurationOutput } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). type LinuxConfigurationArgs struct { // Specifies whether password authentication should be disabled. DisablePasswordAuthentication pulumi.BoolPtrInput `pulumi:"disablePasswordAuthentication"` + // Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. + EnableVMAgentPlatformUpdates pulumi.BoolPtrInput `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. PatchSettings LinuxPatchSettingsPtrInput `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent pulumi.BoolPtrInput `pulumi:"provisionVMAgent"` // Specifies the ssh key configuration for a Linux OS. Ssh SshConfigurationPtrInput `pulumi:"ssh"` @@ -14880,7 +18659,7 @@ func (i *linuxConfigurationPtrType) ToLinuxConfigurationPtrOutputWithContext(ctx return pulumi.ToOutputWithContext(ctx, i).(LinuxConfigurationPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). type LinuxConfigurationOutput struct{ *pulumi.OutputState } func (LinuxConfigurationOutput) ElementType() reflect.Type { @@ -14910,12 +18689,17 @@ func (o LinuxConfigurationOutput) DisablePasswordAuthentication() pulumi.BoolPtr return o.ApplyT(func(v LinuxConfiguration) *bool { return v.DisablePasswordAuthentication }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. +func (o LinuxConfigurationOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LinuxConfiguration) *bool { return v.EnableVMAgentPlatformUpdates }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. func (o LinuxConfigurationOutput) PatchSettings() LinuxPatchSettingsPtrOutput { return o.ApplyT(func(v LinuxConfiguration) *LinuxPatchSettings { return v.PatchSettings }).(LinuxPatchSettingsPtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o LinuxConfigurationOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v LinuxConfiguration) *bool { return v.ProvisionVMAgent }).(pulumi.BoolPtrOutput) } @@ -14959,6 +18743,16 @@ func (o LinuxConfigurationPtrOutput) DisablePasswordAuthentication() pulumi.Bool }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. +func (o LinuxConfigurationPtrOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LinuxConfiguration) *bool { + if v == nil { + return nil + } + return v.EnableVMAgentPlatformUpdates + }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. func (o LinuxConfigurationPtrOutput) PatchSettings() LinuxPatchSettingsPtrOutput { return o.ApplyT(func(v *LinuxConfiguration) *LinuxPatchSettings { @@ -14969,7 +18763,7 @@ func (o LinuxConfigurationPtrOutput) PatchSettings() LinuxPatchSettingsPtrOutput }).(LinuxPatchSettingsPtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o LinuxConfigurationPtrOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v *LinuxConfiguration) *bool { if v == nil { @@ -14989,19 +18783,21 @@ func (o LinuxConfigurationPtrOutput) Ssh() SshConfigurationPtrOutput { }).(SshConfigurationPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). type LinuxConfigurationResponse struct { // Specifies whether password authentication should be disabled. DisablePasswordAuthentication *bool `pulumi:"disablePasswordAuthentication"` + // Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. + EnableVMAgentPlatformUpdates *bool `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. PatchSettings *LinuxPatchSettingsResponse `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent *bool `pulumi:"provisionVMAgent"` // Specifies the ssh key configuration for a Linux OS. Ssh *SshConfigurationResponse `pulumi:"ssh"` } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). type LinuxConfigurationResponseOutput struct{ *pulumi.OutputState } func (LinuxConfigurationResponseOutput) ElementType() reflect.Type { @@ -15021,12 +18817,17 @@ func (o LinuxConfigurationResponseOutput) DisablePasswordAuthentication() pulumi return o.ApplyT(func(v LinuxConfigurationResponse) *bool { return v.DisablePasswordAuthentication }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. +func (o LinuxConfigurationResponseOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LinuxConfigurationResponse) *bool { return v.EnableVMAgentPlatformUpdates }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. func (o LinuxConfigurationResponseOutput) PatchSettings() LinuxPatchSettingsResponsePtrOutput { return o.ApplyT(func(v LinuxConfigurationResponse) *LinuxPatchSettingsResponse { return v.PatchSettings }).(LinuxPatchSettingsResponsePtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o LinuxConfigurationResponseOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v LinuxConfigurationResponse) *bool { return v.ProvisionVMAgent }).(pulumi.BoolPtrOutput) } @@ -15070,6 +18871,16 @@ func (o LinuxConfigurationResponsePtrOutput) DisablePasswordAuthentication() pul }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false. +func (o LinuxConfigurationResponsePtrOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LinuxConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.EnableVMAgentPlatformUpdates + }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Linux. func (o LinuxConfigurationResponsePtrOutput) PatchSettings() LinuxPatchSettingsResponsePtrOutput { return o.ApplyT(func(v *LinuxConfigurationResponse) *LinuxPatchSettingsResponse { @@ -15080,7 +18891,7 @@ func (o LinuxConfigurationResponsePtrOutput) PatchSettings() LinuxPatchSettingsR }).(LinuxPatchSettingsResponsePtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o LinuxConfigurationResponsePtrOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v *LinuxConfigurationResponse) *bool { if v == nil { @@ -15104,6 +18915,8 @@ func (o LinuxConfigurationResponsePtrOutput) Ssh() SshConfigurationResponsePtrOu type LinuxPatchSettings struct { // Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode *string `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. + AutomaticByPlatformSettings *LinuxVMGuestPatchAutomaticByPlatformSettings `pulumi:"automaticByPlatformSettings"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true PatchMode *string `pulumi:"patchMode"` } @@ -15123,6 +18936,8 @@ type LinuxPatchSettingsInput interface { type LinuxPatchSettingsArgs struct { // Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode pulumi.StringPtrInput `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. + AutomaticByPlatformSettings LinuxVMGuestPatchAutomaticByPlatformSettingsPtrInput `pulumi:"automaticByPlatformSettings"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true PatchMode pulumi.StringPtrInput `pulumi:"patchMode"` } @@ -15210,6 +19025,13 @@ func (o LinuxPatchSettingsOutput) AssessmentMode() pulumi.StringPtrOutput { return o.ApplyT(func(v LinuxPatchSettings) *string { return v.AssessmentMode }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. +func (o LinuxPatchSettingsOutput) AutomaticByPlatformSettings() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyT(func(v LinuxPatchSettings) *LinuxVMGuestPatchAutomaticByPlatformSettings { + return v.AutomaticByPlatformSettings + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true func (o LinuxPatchSettingsOutput) PatchMode() pulumi.StringPtrOutput { return o.ApplyT(func(v LinuxPatchSettings) *string { return v.PatchMode }).(pulumi.StringPtrOutput) @@ -15249,6 +19071,16 @@ func (o LinuxPatchSettingsPtrOutput) AssessmentMode() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. +func (o LinuxPatchSettingsPtrOutput) AutomaticByPlatformSettings() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyT(func(v *LinuxPatchSettings) *LinuxVMGuestPatchAutomaticByPlatformSettings { + if v == nil { + return nil + } + return v.AutomaticByPlatformSettings + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true func (o LinuxPatchSettingsPtrOutput) PatchMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *LinuxPatchSettings) *string { @@ -15263,6 +19095,8 @@ func (o LinuxPatchSettingsPtrOutput) PatchMode() pulumi.StringPtrOutput { type LinuxPatchSettingsResponse struct { // Specifies the mode of VM Guest Patch Assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode *string `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. + AutomaticByPlatformSettings *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse `pulumi:"automaticByPlatformSettings"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true PatchMode *string `pulumi:"patchMode"` } @@ -15287,6 +19121,13 @@ func (o LinuxPatchSettingsResponseOutput) AssessmentMode() pulumi.StringPtrOutpu return o.ApplyT(func(v LinuxPatchSettingsResponse) *string { return v.AssessmentMode }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. +func (o LinuxPatchSettingsResponseOutput) AutomaticByPlatformSettings() LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o.ApplyT(func(v LinuxPatchSettingsResponse) *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse { + return v.AutomaticByPlatformSettings + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) +} + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true func (o LinuxPatchSettingsResponseOutput) PatchMode() pulumi.StringPtrOutput { return o.ApplyT(func(v LinuxPatchSettingsResponse) *string { return v.PatchMode }).(pulumi.StringPtrOutput) @@ -15326,6 +19167,16 @@ func (o LinuxPatchSettingsResponsePtrOutput) AssessmentMode() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Linux. +func (o LinuxPatchSettingsResponsePtrOutput) AutomaticByPlatformSettings() LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o.ApplyT(func(v *LinuxPatchSettingsResponse) *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse { + if v == nil { + return nil + } + return v.AutomaticByPlatformSettings + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) +} + // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **ImageDefault** - The virtual machine's default patching configuration is used.

    **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true func (o LinuxPatchSettingsResponsePtrOutput) PatchMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *LinuxPatchSettingsResponse) *string { @@ -15336,6 +19187,246 @@ func (o LinuxPatchSettingsResponsePtrOutput) PatchMode() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Linux patch settings. +type LinuxVMGuestPatchAutomaticByPlatformSettings struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule *bool `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting *string `pulumi:"rebootSetting"` +} + +// LinuxVMGuestPatchAutomaticByPlatformSettingsInput is an input type that accepts LinuxVMGuestPatchAutomaticByPlatformSettingsArgs and LinuxVMGuestPatchAutomaticByPlatformSettingsOutput values. +// You can construct a concrete instance of `LinuxVMGuestPatchAutomaticByPlatformSettingsInput` via: +// +// LinuxVMGuestPatchAutomaticByPlatformSettingsArgs{...} +type LinuxVMGuestPatchAutomaticByPlatformSettingsInput interface { + pulumi.Input + + ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsOutput + ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsOutput +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Linux patch settings. +type LinuxVMGuestPatchAutomaticByPlatformSettingsArgs struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule pulumi.BoolPtrInput `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting pulumi.StringPtrInput `pulumi:"rebootSetting"` +} + +func (LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LinuxVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (i LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsOutput { + return i.ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(context.Background()) +} + +func (i LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) +} + +func (i LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return i.ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (i LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LinuxVMGuestPatchAutomaticByPlatformSettingsOutput).ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx) +} + +// LinuxVMGuestPatchAutomaticByPlatformSettingsPtrInput is an input type that accepts LinuxVMGuestPatchAutomaticByPlatformSettingsArgs, LinuxVMGuestPatchAutomaticByPlatformSettingsPtr and LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput values. +// You can construct a concrete instance of `LinuxVMGuestPatchAutomaticByPlatformSettingsPtrInput` via: +// +// LinuxVMGuestPatchAutomaticByPlatformSettingsArgs{...} +// +// or: +// +// nil +type LinuxVMGuestPatchAutomaticByPlatformSettingsPtrInput interface { + pulumi.Input + + ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput + ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput +} + +type linuxVMGuestPatchAutomaticByPlatformSettingsPtrType LinuxVMGuestPatchAutomaticByPlatformSettingsArgs + +func LinuxVMGuestPatchAutomaticByPlatformSettingsPtr(v *LinuxVMGuestPatchAutomaticByPlatformSettingsArgs) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrInput { + return (*linuxVMGuestPatchAutomaticByPlatformSettingsPtrType)(v) +} + +func (*linuxVMGuestPatchAutomaticByPlatformSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LinuxVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (i *linuxVMGuestPatchAutomaticByPlatformSettingsPtrType) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return i.ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (i *linuxVMGuestPatchAutomaticByPlatformSettingsPtrType) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Linux patch settings. +type LinuxVMGuestPatchAutomaticByPlatformSettingsOutput struct{ *pulumi.OutputState } + +func (LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LinuxVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LinuxVMGuestPatchAutomaticByPlatformSettings) *LinuxVMGuestPatchAutomaticByPlatformSettings { + return &v + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LinuxVMGuestPatchAutomaticByPlatformSettings) *bool { + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v LinuxVMGuestPatchAutomaticByPlatformSettings) *string { return v.RebootSetting }).(pulumi.StringPtrOutput) +} + +type LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput struct{ *pulumi.OutputState } + +func (LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LinuxVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) Elem() LinuxVMGuestPatchAutomaticByPlatformSettingsOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettings) LinuxVMGuestPatchAutomaticByPlatformSettings { + if v != nil { + return *v + } + var ret LinuxVMGuestPatchAutomaticByPlatformSettings + return ret + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettings) *bool { + if v == nil { + return nil + } + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettings) *string { + if v == nil { + return nil + } + return v.RebootSetting + }).(pulumi.StringPtrOutput) +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Linux patch settings. +type LinuxVMGuestPatchAutomaticByPlatformSettingsResponse struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule *bool `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting *string `pulumi:"rebootSetting"` +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Linux patch settings. +type LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput struct{ *pulumi.OutputState } + +func (LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LinuxVMGuestPatchAutomaticByPlatformSettingsResponse)(nil)).Elem() +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o +} + +// Enables customer to schedule patching without accidental upgrades +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LinuxVMGuestPatchAutomaticByPlatformSettingsResponse) *bool { + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v LinuxVMGuestPatchAutomaticByPlatformSettingsResponse) *string { return v.RebootSetting }).(pulumi.StringPtrOutput) +} + +type LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput struct{ *pulumi.OutputState } + +func (LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LinuxVMGuestPatchAutomaticByPlatformSettingsResponse)(nil)).Elem() +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput() LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ToLinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutputWithContext(ctx context.Context) LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o +} + +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) Elem() LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse) LinuxVMGuestPatchAutomaticByPlatformSettingsResponse { + if v != nil { + return *v + } + var ret LinuxVMGuestPatchAutomaticByPlatformSettingsResponse + return ret + }).(LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse) *bool { + if v == nil { + return nil + } + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LinuxVMGuestPatchAutomaticByPlatformSettingsResponse) *string { + if v == nil { + return nil + } + return v.RebootSetting + }).(pulumi.StringPtrOutput) +} + // Describes the load balancer configuration. type LoadBalancerConfiguration struct { // Resource Id @@ -15454,9 +19545,10 @@ func (o LoadBalancerConfigurationArrayOutput) Index(i pulumi.IntInput) LoadBalan }).(LoadBalancerConfigurationOutput) } +// Describes the properties of the load balancer configuration. type LoadBalancerConfigurationProperties struct { // Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. - FrontendIPConfigurations []LoadBalancerFrontendIPConfiguration `pulumi:"frontendIPConfigurations"` + FrontendIpConfigurations []LoadBalancerFrontendIpConfiguration `pulumi:"frontendIpConfigurations"` } // LoadBalancerConfigurationPropertiesInput is an input type that accepts LoadBalancerConfigurationPropertiesArgs and LoadBalancerConfigurationPropertiesOutput values. @@ -15470,9 +19562,10 @@ type LoadBalancerConfigurationPropertiesInput interface { ToLoadBalancerConfigurationPropertiesOutputWithContext(context.Context) LoadBalancerConfigurationPropertiesOutput } +// Describes the properties of the load balancer configuration. type LoadBalancerConfigurationPropertiesArgs struct { // Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. - FrontendIPConfigurations LoadBalancerFrontendIPConfigurationArrayInput `pulumi:"frontendIPConfigurations"` + FrontendIpConfigurations LoadBalancerFrontendIpConfigurationArrayInput `pulumi:"frontendIpConfigurations"` } func (LoadBalancerConfigurationPropertiesArgs) ElementType() reflect.Type { @@ -15487,6 +19580,7 @@ func (i LoadBalancerConfigurationPropertiesArgs) ToLoadBalancerConfigurationProp return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerConfigurationPropertiesOutput) } +// Describes the properties of the load balancer configuration. type LoadBalancerConfigurationPropertiesOutput struct{ *pulumi.OutputState } func (LoadBalancerConfigurationPropertiesOutput) ElementType() reflect.Type { @@ -15502,17 +19596,19 @@ func (o LoadBalancerConfigurationPropertiesOutput) ToLoadBalancerConfigurationPr } // Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. -func (o LoadBalancerConfigurationPropertiesOutput) FrontendIPConfigurations() LoadBalancerFrontendIPConfigurationArrayOutput { - return o.ApplyT(func(v LoadBalancerConfigurationProperties) []LoadBalancerFrontendIPConfiguration { - return v.FrontendIPConfigurations - }).(LoadBalancerFrontendIPConfigurationArrayOutput) +func (o LoadBalancerConfigurationPropertiesOutput) FrontendIpConfigurations() LoadBalancerFrontendIpConfigurationArrayOutput { + return o.ApplyT(func(v LoadBalancerConfigurationProperties) []LoadBalancerFrontendIpConfiguration { + return v.FrontendIpConfigurations + }).(LoadBalancerFrontendIpConfigurationArrayOutput) } +// Describes the properties of the load balancer configuration. type LoadBalancerConfigurationPropertiesResponse struct { // Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. - FrontendIPConfigurations []LoadBalancerFrontendIPConfigurationResponse `pulumi:"frontendIPConfigurations"` + FrontendIpConfigurations []LoadBalancerFrontendIpConfigurationResponse `pulumi:"frontendIpConfigurations"` } +// Describes the properties of the load balancer configuration. type LoadBalancerConfigurationPropertiesResponseOutput struct{ *pulumi.OutputState } func (LoadBalancerConfigurationPropertiesResponseOutput) ElementType() reflect.Type { @@ -15528,10 +19624,10 @@ func (o LoadBalancerConfigurationPropertiesResponseOutput) ToLoadBalancerConfigu } // Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. -func (o LoadBalancerConfigurationPropertiesResponseOutput) FrontendIPConfigurations() LoadBalancerFrontendIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v LoadBalancerConfigurationPropertiesResponse) []LoadBalancerFrontendIPConfigurationResponse { - return v.FrontendIPConfigurations - }).(LoadBalancerFrontendIPConfigurationResponseArrayOutput) +func (o LoadBalancerConfigurationPropertiesResponseOutput) FrontendIpConfigurations() LoadBalancerFrontendIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v LoadBalancerConfigurationPropertiesResponse) []LoadBalancerFrontendIpConfigurationResponse { + return v.FrontendIpConfigurations + }).(LoadBalancerFrontendIpConfigurationResponseArrayOutput) } // Describes the load balancer configuration. @@ -15596,116 +19692,119 @@ func (o LoadBalancerConfigurationResponseArrayOutput) Index(i pulumi.IntInput) L }).(LoadBalancerConfigurationResponseOutput) } -type LoadBalancerFrontendIPConfiguration struct { +// Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. +type LoadBalancerFrontendIpConfiguration struct { // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. Name string `pulumi:"name"` // Properties of load balancer frontend ip configuration. - Properties LoadBalancerFrontendIPConfigurationProperties `pulumi:"properties"` + Properties LoadBalancerFrontendIpConfigurationProperties `pulumi:"properties"` } -// LoadBalancerFrontendIPConfigurationInput is an input type that accepts LoadBalancerFrontendIPConfigurationArgs and LoadBalancerFrontendIPConfigurationOutput values. -// You can construct a concrete instance of `LoadBalancerFrontendIPConfigurationInput` via: +// LoadBalancerFrontendIpConfigurationInput is an input type that accepts LoadBalancerFrontendIpConfigurationArgs and LoadBalancerFrontendIpConfigurationOutput values. +// You can construct a concrete instance of `LoadBalancerFrontendIpConfigurationInput` via: // -// LoadBalancerFrontendIPConfigurationArgs{...} -type LoadBalancerFrontendIPConfigurationInput interface { +// LoadBalancerFrontendIpConfigurationArgs{...} +type LoadBalancerFrontendIpConfigurationInput interface { pulumi.Input - ToLoadBalancerFrontendIPConfigurationOutput() LoadBalancerFrontendIPConfigurationOutput - ToLoadBalancerFrontendIPConfigurationOutputWithContext(context.Context) LoadBalancerFrontendIPConfigurationOutput + ToLoadBalancerFrontendIpConfigurationOutput() LoadBalancerFrontendIpConfigurationOutput + ToLoadBalancerFrontendIpConfigurationOutputWithContext(context.Context) LoadBalancerFrontendIpConfigurationOutput } -type LoadBalancerFrontendIPConfigurationArgs struct { +// Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. +type LoadBalancerFrontendIpConfigurationArgs struct { // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. Name pulumi.StringInput `pulumi:"name"` // Properties of load balancer frontend ip configuration. - Properties LoadBalancerFrontendIPConfigurationPropertiesInput `pulumi:"properties"` + Properties LoadBalancerFrontendIpConfigurationPropertiesInput `pulumi:"properties"` } -func (LoadBalancerFrontendIPConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfiguration)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfiguration)(nil)).Elem() } -func (i LoadBalancerFrontendIPConfigurationArgs) ToLoadBalancerFrontendIPConfigurationOutput() LoadBalancerFrontendIPConfigurationOutput { - return i.ToLoadBalancerFrontendIPConfigurationOutputWithContext(context.Background()) +func (i LoadBalancerFrontendIpConfigurationArgs) ToLoadBalancerFrontendIpConfigurationOutput() LoadBalancerFrontendIpConfigurationOutput { + return i.ToLoadBalancerFrontendIpConfigurationOutputWithContext(context.Background()) } -func (i LoadBalancerFrontendIPConfigurationArgs) ToLoadBalancerFrontendIPConfigurationOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIPConfigurationOutput) +func (i LoadBalancerFrontendIpConfigurationArgs) ToLoadBalancerFrontendIpConfigurationOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIpConfigurationOutput) } -// LoadBalancerFrontendIPConfigurationArrayInput is an input type that accepts LoadBalancerFrontendIPConfigurationArray and LoadBalancerFrontendIPConfigurationArrayOutput values. -// You can construct a concrete instance of `LoadBalancerFrontendIPConfigurationArrayInput` via: +// LoadBalancerFrontendIpConfigurationArrayInput is an input type that accepts LoadBalancerFrontendIpConfigurationArray and LoadBalancerFrontendIpConfigurationArrayOutput values. +// You can construct a concrete instance of `LoadBalancerFrontendIpConfigurationArrayInput` via: // -// LoadBalancerFrontendIPConfigurationArray{ LoadBalancerFrontendIPConfigurationArgs{...} } -type LoadBalancerFrontendIPConfigurationArrayInput interface { +// LoadBalancerFrontendIpConfigurationArray{ LoadBalancerFrontendIpConfigurationArgs{...} } +type LoadBalancerFrontendIpConfigurationArrayInput interface { pulumi.Input - ToLoadBalancerFrontendIPConfigurationArrayOutput() LoadBalancerFrontendIPConfigurationArrayOutput - ToLoadBalancerFrontendIPConfigurationArrayOutputWithContext(context.Context) LoadBalancerFrontendIPConfigurationArrayOutput + ToLoadBalancerFrontendIpConfigurationArrayOutput() LoadBalancerFrontendIpConfigurationArrayOutput + ToLoadBalancerFrontendIpConfigurationArrayOutputWithContext(context.Context) LoadBalancerFrontendIpConfigurationArrayOutput } -type LoadBalancerFrontendIPConfigurationArray []LoadBalancerFrontendIPConfigurationInput +type LoadBalancerFrontendIpConfigurationArray []LoadBalancerFrontendIpConfigurationInput -func (LoadBalancerFrontendIPConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadBalancerFrontendIPConfiguration)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadBalancerFrontendIpConfiguration)(nil)).Elem() } -func (i LoadBalancerFrontendIPConfigurationArray) ToLoadBalancerFrontendIPConfigurationArrayOutput() LoadBalancerFrontendIPConfigurationArrayOutput { - return i.ToLoadBalancerFrontendIPConfigurationArrayOutputWithContext(context.Background()) +func (i LoadBalancerFrontendIpConfigurationArray) ToLoadBalancerFrontendIpConfigurationArrayOutput() LoadBalancerFrontendIpConfigurationArrayOutput { + return i.ToLoadBalancerFrontendIpConfigurationArrayOutputWithContext(context.Background()) } -func (i LoadBalancerFrontendIPConfigurationArray) ToLoadBalancerFrontendIPConfigurationArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIPConfigurationArrayOutput) +func (i LoadBalancerFrontendIpConfigurationArray) ToLoadBalancerFrontendIpConfigurationArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIpConfigurationArrayOutput) } -type LoadBalancerFrontendIPConfigurationOutput struct{ *pulumi.OutputState } +// Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. +type LoadBalancerFrontendIpConfigurationOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfiguration)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfiguration)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationOutput) ToLoadBalancerFrontendIPConfigurationOutput() LoadBalancerFrontendIPConfigurationOutput { +func (o LoadBalancerFrontendIpConfigurationOutput) ToLoadBalancerFrontendIpConfigurationOutput() LoadBalancerFrontendIpConfigurationOutput { return o } -func (o LoadBalancerFrontendIPConfigurationOutput) ToLoadBalancerFrontendIPConfigurationOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationOutput { +func (o LoadBalancerFrontendIpConfigurationOutput) ToLoadBalancerFrontendIpConfigurationOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationOutput { return o } // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. -func (o LoadBalancerFrontendIPConfigurationOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfiguration) string { return v.Name }).(pulumi.StringOutput) +func (o LoadBalancerFrontendIpConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfiguration) string { return v.Name }).(pulumi.StringOutput) } // Properties of load balancer frontend ip configuration. -func (o LoadBalancerFrontendIPConfigurationOutput) Properties() LoadBalancerFrontendIPConfigurationPropertiesOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfiguration) LoadBalancerFrontendIPConfigurationProperties { +func (o LoadBalancerFrontendIpConfigurationOutput) Properties() LoadBalancerFrontendIpConfigurationPropertiesOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfiguration) LoadBalancerFrontendIpConfigurationProperties { return v.Properties - }).(LoadBalancerFrontendIPConfigurationPropertiesOutput) + }).(LoadBalancerFrontendIpConfigurationPropertiesOutput) } -type LoadBalancerFrontendIPConfigurationArrayOutput struct{ *pulumi.OutputState } +type LoadBalancerFrontendIpConfigurationArrayOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadBalancerFrontendIPConfiguration)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadBalancerFrontendIpConfiguration)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationArrayOutput) ToLoadBalancerFrontendIPConfigurationArrayOutput() LoadBalancerFrontendIPConfigurationArrayOutput { +func (o LoadBalancerFrontendIpConfigurationArrayOutput) ToLoadBalancerFrontendIpConfigurationArrayOutput() LoadBalancerFrontendIpConfigurationArrayOutput { return o } -func (o LoadBalancerFrontendIPConfigurationArrayOutput) ToLoadBalancerFrontendIPConfigurationArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationArrayOutput { +func (o LoadBalancerFrontendIpConfigurationArrayOutput) ToLoadBalancerFrontendIpConfigurationArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationArrayOutput { return o } -func (o LoadBalancerFrontendIPConfigurationArrayOutput) Index(i pulumi.IntInput) LoadBalancerFrontendIPConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadBalancerFrontendIPConfiguration { - return vs[0].([]LoadBalancerFrontendIPConfiguration)[vs[1].(int)] - }).(LoadBalancerFrontendIPConfigurationOutput) +func (o LoadBalancerFrontendIpConfigurationArrayOutput) Index(i pulumi.IntInput) LoadBalancerFrontendIpConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadBalancerFrontendIpConfiguration { + return vs[0].([]LoadBalancerFrontendIpConfiguration)[vs[1].(int)] + }).(LoadBalancerFrontendIpConfigurationOutput) } // Describes a cloud service IP Configuration -type LoadBalancerFrontendIPConfigurationProperties struct { +type LoadBalancerFrontendIpConfigurationProperties struct { // The virtual network private IP address of the IP configuration. PrivateIPAddress *string `pulumi:"privateIPAddress"` // The reference to the public ip address resource. @@ -15714,19 +19813,19 @@ type LoadBalancerFrontendIPConfigurationProperties struct { Subnet *SubResource `pulumi:"subnet"` } -// LoadBalancerFrontendIPConfigurationPropertiesInput is an input type that accepts LoadBalancerFrontendIPConfigurationPropertiesArgs and LoadBalancerFrontendIPConfigurationPropertiesOutput values. -// You can construct a concrete instance of `LoadBalancerFrontendIPConfigurationPropertiesInput` via: +// LoadBalancerFrontendIpConfigurationPropertiesInput is an input type that accepts LoadBalancerFrontendIpConfigurationPropertiesArgs and LoadBalancerFrontendIpConfigurationPropertiesOutput values. +// You can construct a concrete instance of `LoadBalancerFrontendIpConfigurationPropertiesInput` via: // -// LoadBalancerFrontendIPConfigurationPropertiesArgs{...} -type LoadBalancerFrontendIPConfigurationPropertiesInput interface { +// LoadBalancerFrontendIpConfigurationPropertiesArgs{...} +type LoadBalancerFrontendIpConfigurationPropertiesInput interface { pulumi.Input - ToLoadBalancerFrontendIPConfigurationPropertiesOutput() LoadBalancerFrontendIPConfigurationPropertiesOutput - ToLoadBalancerFrontendIPConfigurationPropertiesOutputWithContext(context.Context) LoadBalancerFrontendIPConfigurationPropertiesOutput + ToLoadBalancerFrontendIpConfigurationPropertiesOutput() LoadBalancerFrontendIpConfigurationPropertiesOutput + ToLoadBalancerFrontendIpConfigurationPropertiesOutputWithContext(context.Context) LoadBalancerFrontendIpConfigurationPropertiesOutput } // Describes a cloud service IP Configuration -type LoadBalancerFrontendIPConfigurationPropertiesArgs struct { +type LoadBalancerFrontendIpConfigurationPropertiesArgs struct { // The virtual network private IP address of the IP configuration. PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` // The reference to the public ip address resource. @@ -15735,50 +19834,50 @@ type LoadBalancerFrontendIPConfigurationPropertiesArgs struct { Subnet SubResourcePtrInput `pulumi:"subnet"` } -func (LoadBalancerFrontendIPConfigurationPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfigurationProperties)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfigurationProperties)(nil)).Elem() } -func (i LoadBalancerFrontendIPConfigurationPropertiesArgs) ToLoadBalancerFrontendIPConfigurationPropertiesOutput() LoadBalancerFrontendIPConfigurationPropertiesOutput { - return i.ToLoadBalancerFrontendIPConfigurationPropertiesOutputWithContext(context.Background()) +func (i LoadBalancerFrontendIpConfigurationPropertiesArgs) ToLoadBalancerFrontendIpConfigurationPropertiesOutput() LoadBalancerFrontendIpConfigurationPropertiesOutput { + return i.ToLoadBalancerFrontendIpConfigurationPropertiesOutputWithContext(context.Background()) } -func (i LoadBalancerFrontendIPConfigurationPropertiesArgs) ToLoadBalancerFrontendIPConfigurationPropertiesOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIPConfigurationPropertiesOutput) +func (i LoadBalancerFrontendIpConfigurationPropertiesArgs) ToLoadBalancerFrontendIpConfigurationPropertiesOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerFrontendIpConfigurationPropertiesOutput) } // Describes a cloud service IP Configuration -type LoadBalancerFrontendIPConfigurationPropertiesOutput struct{ *pulumi.OutputState } +type LoadBalancerFrontendIpConfigurationPropertiesOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfigurationProperties)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfigurationProperties)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationPropertiesOutput) ToLoadBalancerFrontendIPConfigurationPropertiesOutput() LoadBalancerFrontendIPConfigurationPropertiesOutput { +func (o LoadBalancerFrontendIpConfigurationPropertiesOutput) ToLoadBalancerFrontendIpConfigurationPropertiesOutput() LoadBalancerFrontendIpConfigurationPropertiesOutput { return o } -func (o LoadBalancerFrontendIPConfigurationPropertiesOutput) ToLoadBalancerFrontendIPConfigurationPropertiesOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationPropertiesOutput { +func (o LoadBalancerFrontendIpConfigurationPropertiesOutput) ToLoadBalancerFrontendIpConfigurationPropertiesOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationPropertiesOutput { return o } // The virtual network private IP address of the IP configuration. -func (o LoadBalancerFrontendIPConfigurationPropertiesOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationProperties) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +func (o LoadBalancerFrontendIpConfigurationPropertiesOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationProperties) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } // The reference to the public ip address resource. -func (o LoadBalancerFrontendIPConfigurationPropertiesOutput) PublicIPAddress() SubResourcePtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationProperties) *SubResource { return v.PublicIPAddress }).(SubResourcePtrOutput) +func (o LoadBalancerFrontendIpConfigurationPropertiesOutput) PublicIPAddress() SubResourcePtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationProperties) *SubResource { return v.PublicIPAddress }).(SubResourcePtrOutput) } // The reference to the virtual network subnet resource. -func (o LoadBalancerFrontendIPConfigurationPropertiesOutput) Subnet() SubResourcePtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationProperties) *SubResource { return v.Subnet }).(SubResourcePtrOutput) +func (o LoadBalancerFrontendIpConfigurationPropertiesOutput) Subnet() SubResourcePtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationProperties) *SubResource { return v.Subnet }).(SubResourcePtrOutput) } // Describes a cloud service IP Configuration -type LoadBalancerFrontendIPConfigurationPropertiesResponse struct { +type LoadBalancerFrontendIpConfigurationPropertiesResponse struct { // The virtual network private IP address of the IP configuration. PrivateIPAddress *string `pulumi:"privateIPAddress"` // The reference to the public ip address resource. @@ -15788,88 +19887,90 @@ type LoadBalancerFrontendIPConfigurationPropertiesResponse struct { } // Describes a cloud service IP Configuration -type LoadBalancerFrontendIPConfigurationPropertiesResponseOutput struct{ *pulumi.OutputState } +type LoadBalancerFrontendIpConfigurationPropertiesResponseOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfigurationPropertiesResponse)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfigurationPropertiesResponse)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) ToLoadBalancerFrontendIPConfigurationPropertiesResponseOutput() LoadBalancerFrontendIPConfigurationPropertiesResponseOutput { +func (o LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) ToLoadBalancerFrontendIpConfigurationPropertiesResponseOutput() LoadBalancerFrontendIpConfigurationPropertiesResponseOutput { return o } -func (o LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) ToLoadBalancerFrontendIPConfigurationPropertiesResponseOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationPropertiesResponseOutput { +func (o LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) ToLoadBalancerFrontendIpConfigurationPropertiesResponseOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationPropertiesResponseOutput { return o } // The virtual network private IP address of the IP configuration. -func (o LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationPropertiesResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +func (o LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationPropertiesResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } // The reference to the public ip address resource. -func (o LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) PublicIPAddress() SubResourceResponsePtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationPropertiesResponse) *SubResourceResponse { +func (o LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) PublicIPAddress() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationPropertiesResponse) *SubResourceResponse { return v.PublicIPAddress }).(SubResourceResponsePtrOutput) } // The reference to the virtual network subnet resource. -func (o LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationPropertiesResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) +func (o LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) Subnet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationPropertiesResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) } -type LoadBalancerFrontendIPConfigurationResponse struct { +// Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. +type LoadBalancerFrontendIpConfigurationResponse struct { // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. Name string `pulumi:"name"` // Properties of load balancer frontend ip configuration. - Properties LoadBalancerFrontendIPConfigurationPropertiesResponse `pulumi:"properties"` + Properties LoadBalancerFrontendIpConfigurationPropertiesResponse `pulumi:"properties"` } -type LoadBalancerFrontendIPConfigurationResponseOutput struct{ *pulumi.OutputState } +// Specifies the frontend IP to be used for the load balancer. Only IPv4 frontend IP address is supported. Each load balancer configuration must have exactly one frontend IP configuration. +type LoadBalancerFrontendIpConfigurationResponseOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LoadBalancerFrontendIPConfigurationResponse)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerFrontendIpConfigurationResponse)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationResponseOutput) ToLoadBalancerFrontendIPConfigurationResponseOutput() LoadBalancerFrontendIPConfigurationResponseOutput { +func (o LoadBalancerFrontendIpConfigurationResponseOutput) ToLoadBalancerFrontendIpConfigurationResponseOutput() LoadBalancerFrontendIpConfigurationResponseOutput { return o } -func (o LoadBalancerFrontendIPConfigurationResponseOutput) ToLoadBalancerFrontendIPConfigurationResponseOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationResponseOutput { +func (o LoadBalancerFrontendIpConfigurationResponseOutput) ToLoadBalancerFrontendIpConfigurationResponseOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationResponseOutput { return o } // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. -func (o LoadBalancerFrontendIPConfigurationResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationResponse) string { return v.Name }).(pulumi.StringOutput) +func (o LoadBalancerFrontendIpConfigurationResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationResponse) string { return v.Name }).(pulumi.StringOutput) } // Properties of load balancer frontend ip configuration. -func (o LoadBalancerFrontendIPConfigurationResponseOutput) Properties() LoadBalancerFrontendIPConfigurationPropertiesResponseOutput { - return o.ApplyT(func(v LoadBalancerFrontendIPConfigurationResponse) LoadBalancerFrontendIPConfigurationPropertiesResponse { +func (o LoadBalancerFrontendIpConfigurationResponseOutput) Properties() LoadBalancerFrontendIpConfigurationPropertiesResponseOutput { + return o.ApplyT(func(v LoadBalancerFrontendIpConfigurationResponse) LoadBalancerFrontendIpConfigurationPropertiesResponse { return v.Properties - }).(LoadBalancerFrontendIPConfigurationPropertiesResponseOutput) + }).(LoadBalancerFrontendIpConfigurationPropertiesResponseOutput) } -type LoadBalancerFrontendIPConfigurationResponseArrayOutput struct{ *pulumi.OutputState } +type LoadBalancerFrontendIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (LoadBalancerFrontendIPConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]LoadBalancerFrontendIPConfigurationResponse)(nil)).Elem() +func (LoadBalancerFrontendIpConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LoadBalancerFrontendIpConfigurationResponse)(nil)).Elem() } -func (o LoadBalancerFrontendIPConfigurationResponseArrayOutput) ToLoadBalancerFrontendIPConfigurationResponseArrayOutput() LoadBalancerFrontendIPConfigurationResponseArrayOutput { +func (o LoadBalancerFrontendIpConfigurationResponseArrayOutput) ToLoadBalancerFrontendIpConfigurationResponseArrayOutput() LoadBalancerFrontendIpConfigurationResponseArrayOutput { return o } -func (o LoadBalancerFrontendIPConfigurationResponseArrayOutput) ToLoadBalancerFrontendIPConfigurationResponseArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIPConfigurationResponseArrayOutput { +func (o LoadBalancerFrontendIpConfigurationResponseArrayOutput) ToLoadBalancerFrontendIpConfigurationResponseArrayOutputWithContext(ctx context.Context) LoadBalancerFrontendIpConfigurationResponseArrayOutput { return o } -func (o LoadBalancerFrontendIPConfigurationResponseArrayOutput) Index(i pulumi.IntInput) LoadBalancerFrontendIPConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadBalancerFrontendIPConfigurationResponse { - return vs[0].([]LoadBalancerFrontendIPConfigurationResponse)[vs[1].(int)] - }).(LoadBalancerFrontendIPConfigurationResponseOutput) +func (o LoadBalancerFrontendIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) LoadBalancerFrontendIpConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LoadBalancerFrontendIpConfigurationResponse { + return vs[0].([]LoadBalancerFrontendIpConfigurationResponse)[vs[1].(int)] + }).(LoadBalancerFrontendIpConfigurationResponseOutput) } // LogAnalytics output properties @@ -16066,7 +20167,9 @@ type ManagedDiskParameters struct { DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` // Resource Id Id *string `pulumi:"id"` - // Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. + // Specifies the security profile for the managed disk. + SecurityProfile *VMDiskSecurityProfile `pulumi:"securityProfile"` + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType *string `pulumi:"storageAccountType"` } @@ -16087,7 +20190,9 @@ type ManagedDiskParametersArgs struct { DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` // Resource Id Id pulumi.StringPtrInput `pulumi:"id"` - // Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. + // Specifies the security profile for the managed disk. + SecurityProfile VMDiskSecurityProfilePtrInput `pulumi:"securityProfile"` + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType pulumi.StringPtrInput `pulumi:"storageAccountType"` } @@ -16179,7 +20284,12 @@ func (o ManagedDiskParametersOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v ManagedDiskParameters) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. +// Specifies the security profile for the managed disk. +func (o ManagedDiskParametersOutput) SecurityProfile() VMDiskSecurityProfilePtrOutput { + return o.ApplyT(func(v ManagedDiskParameters) *VMDiskSecurityProfile { return v.SecurityProfile }).(VMDiskSecurityProfilePtrOutput) +} + +// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o ManagedDiskParametersOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v ManagedDiskParameters) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } @@ -16228,7 +20338,17 @@ func (o ManagedDiskParametersPtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. +// Specifies the security profile for the managed disk. +func (o ManagedDiskParametersPtrOutput) SecurityProfile() VMDiskSecurityProfilePtrOutput { + return o.ApplyT(func(v *ManagedDiskParameters) *VMDiskSecurityProfile { + if v == nil { + return nil + } + return v.SecurityProfile + }).(VMDiskSecurityProfilePtrOutput) +} + +// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o ManagedDiskParametersPtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagedDiskParameters) *string { if v == nil { @@ -16244,7 +20364,9 @@ type ManagedDiskParametersResponse struct { DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` // Resource Id Id *string `pulumi:"id"` - // Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. + // Specifies the security profile for the managed disk. + SecurityProfile *VMDiskSecurityProfileResponse `pulumi:"securityProfile"` + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType *string `pulumi:"storageAccountType"` } @@ -16273,7 +20395,12 @@ func (o ManagedDiskParametersResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v ManagedDiskParametersResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. +// Specifies the security profile for the managed disk. +func (o ManagedDiskParametersResponseOutput) SecurityProfile() VMDiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v ManagedDiskParametersResponse) *VMDiskSecurityProfileResponse { return v.SecurityProfile }).(VMDiskSecurityProfileResponsePtrOutput) +} + +// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o ManagedDiskParametersResponseOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v ManagedDiskParametersResponse) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) } @@ -16322,7 +20449,17 @@ func (o ManagedDiskParametersResponsePtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the storage account type for the managed disk. Managed OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. +// Specifies the security profile for the managed disk. +func (o ManagedDiskParametersResponsePtrOutput) SecurityProfile() VMDiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v *ManagedDiskParametersResponse) *VMDiskSecurityProfileResponse { + if v == nil { + return nil + } + return v.SecurityProfile + }).(VMDiskSecurityProfileResponsePtrOutput) +} + +// Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o ManagedDiskParametersResponsePtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagedDiskParametersResponse) *string { if v == nil { @@ -16786,19 +20923,19 @@ func (o NetworkProfileResponsePtrOutput) NetworkInterfaces() NetworkInterfaceRef }).(NetworkInterfaceReferenceResponseArrayOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). type OSDisk struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption string `pulumi:"createOption"` - // Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. + // Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. DeleteOption *string `pulumi:"deleteOption"` // Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. DiffDiskSettings *DiffDiskSettings `pulumi:"diffDiskSettings"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` - // Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 + // Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. EncryptionSettings *DiskEncryptionSettings `pulumi:"encryptionSettings"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image *VirtualHardDisk `pulumi:"image"` @@ -16806,7 +20943,7 @@ type OSDisk struct { ManagedDisk *ManagedDiskParameters `pulumi:"managedDisk"` // The disk name. Name *string `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType *OperatingSystemTypes `pulumi:"osType"` // The virtual hard disk. Vhd *VirtualHardDisk `pulumi:"vhd"` @@ -16825,19 +20962,19 @@ type OSDiskInput interface { ToOSDiskOutputWithContext(context.Context) OSDiskOutput } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). type OSDiskArgs struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption pulumi.StringInput `pulumi:"createOption"` - // Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. + // Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` // Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. DiffDiskSettings DiffDiskSettingsPtrInput `pulumi:"diffDiskSettings"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` - // Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 + // Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. EncryptionSettings DiskEncryptionSettingsPtrInput `pulumi:"encryptionSettings"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image VirtualHardDiskPtrInput `pulumi:"image"` @@ -16845,7 +20982,7 @@ type OSDiskArgs struct { ManagedDisk ManagedDiskParametersPtrInput `pulumi:"managedDisk"` // The disk name. Name pulumi.StringPtrInput `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType OperatingSystemTypesPtrInput `pulumi:"osType"` // The virtual hard disk. Vhd VirtualHardDiskPtrInput `pulumi:"vhd"` @@ -16906,7 +21043,7 @@ func (i *osdiskPtrType) ToOSDiskPtrOutputWithContext(ctx context.Context) OSDisk return pulumi.ToOutputWithContext(ctx, i).(OSDiskPtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). type OSDiskOutput struct{ *pulumi.OutputState } func (OSDiskOutput) ElementType() reflect.Type { @@ -16931,17 +21068,17 @@ func (o OSDiskOutput) ToOSDiskPtrOutputWithContext(ctx context.Context) OSDiskPt }).(OSDiskPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o OSDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v OSDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o OSDiskOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v OSDisk) string { return v.CreateOption }).(pulumi.StringOutput) } -// Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. +// Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. func (o OSDiskOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDisk) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } @@ -16951,12 +21088,12 @@ func (o OSDiskOutput) DiffDiskSettings() DiffDiskSettingsPtrOutput { return o.ApplyT(func(v OSDisk) *DiffDiskSettings { return v.DiffDiskSettings }).(DiffDiskSettingsPtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o OSDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v OSDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } -// Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 +// Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. func (o OSDiskOutput) EncryptionSettings() DiskEncryptionSettingsPtrOutput { return o.ApplyT(func(v OSDisk) *DiskEncryptionSettings { return v.EncryptionSettings }).(DiskEncryptionSettingsPtrOutput) } @@ -16976,7 +21113,7 @@ func (o OSDiskOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDisk) *string { return v.Name }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o OSDiskOutput) OsType() OperatingSystemTypesPtrOutput { return o.ApplyT(func(v OSDisk) *OperatingSystemTypes { return v.OsType }).(OperatingSystemTypesPtrOutput) } @@ -17015,7 +21152,7 @@ func (o OSDiskPtrOutput) Elem() OSDiskOutput { }).(OSDiskOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o OSDiskPtrOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v *OSDisk) *CachingTypes { if v == nil { @@ -17025,7 +21162,7 @@ func (o OSDiskPtrOutput) Caching() CachingTypesPtrOutput { }).(CachingTypesPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o OSDiskPtrOutput) CreateOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDisk) *string { if v == nil { @@ -17035,7 +21172,7 @@ func (o OSDiskPtrOutput) CreateOption() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. +// Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. func (o OSDiskPtrOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDisk) *string { if v == nil { @@ -17055,7 +21192,7 @@ func (o OSDiskPtrOutput) DiffDiskSettings() DiffDiskSettingsPtrOutput { }).(DiffDiskSettingsPtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o OSDiskPtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *OSDisk) *int { if v == nil { @@ -17065,7 +21202,7 @@ func (o OSDiskPtrOutput) DiskSizeGB() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 +// Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. func (o OSDiskPtrOutput) EncryptionSettings() DiskEncryptionSettingsPtrOutput { return o.ApplyT(func(v *OSDisk) *DiskEncryptionSettings { if v == nil { @@ -17105,7 +21242,7 @@ func (o OSDiskPtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o OSDiskPtrOutput) OsType() OperatingSystemTypesPtrOutput { return o.ApplyT(func(v *OSDisk) *OperatingSystemTypes { if v == nil { @@ -17139,6 +21276,8 @@ func (o OSDiskPtrOutput) WriteAcceleratorEnabled() pulumi.BoolPtrOutput { type OSDiskImageEncryption struct { // A relative URI containing the resource ID of the disk encryption set. DiskEncryptionSetId *string `pulumi:"diskEncryptionSetId"` + // This property specifies the security profile of an OS disk image. + SecurityProfile *OSDiskImageSecurityProfile `pulumi:"securityProfile"` } // OSDiskImageEncryptionInput is an input type that accepts OSDiskImageEncryptionArgs and OSDiskImageEncryptionOutput values. @@ -17156,6 +21295,8 @@ type OSDiskImageEncryptionInput interface { type OSDiskImageEncryptionArgs struct { // A relative URI containing the resource ID of the disk encryption set. DiskEncryptionSetId pulumi.StringPtrInput `pulumi:"diskEncryptionSetId"` + // This property specifies the security profile of an OS disk image. + SecurityProfile OSDiskImageSecurityProfilePtrInput `pulumi:"securityProfile"` } func (OSDiskImageEncryptionArgs) ElementType() reflect.Type { @@ -17241,6 +21382,11 @@ func (o OSDiskImageEncryptionOutput) DiskEncryptionSetId() pulumi.StringPtrOutpu return o.ApplyT(func(v OSDiskImageEncryption) *string { return v.DiskEncryptionSetId }).(pulumi.StringPtrOutput) } +// This property specifies the security profile of an OS disk image. +func (o OSDiskImageEncryptionOutput) SecurityProfile() OSDiskImageSecurityProfilePtrOutput { + return o.ApplyT(func(v OSDiskImageEncryption) *OSDiskImageSecurityProfile { return v.SecurityProfile }).(OSDiskImageSecurityProfilePtrOutput) +} + type OSDiskImageEncryptionPtrOutput struct{ *pulumi.OutputState } func (OSDiskImageEncryptionPtrOutput) ElementType() reflect.Type { @@ -17275,10 +21421,22 @@ func (o OSDiskImageEncryptionPtrOutput) DiskEncryptionSetId() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } +// This property specifies the security profile of an OS disk image. +func (o OSDiskImageEncryptionPtrOutput) SecurityProfile() OSDiskImageSecurityProfilePtrOutput { + return o.ApplyT(func(v *OSDiskImageEncryption) *OSDiskImageSecurityProfile { + if v == nil { + return nil + } + return v.SecurityProfile + }).(OSDiskImageSecurityProfilePtrOutput) +} + // Contains encryption settings for an OS disk image. type OSDiskImageEncryptionResponse struct { // A relative URI containing the resource ID of the disk encryption set. DiskEncryptionSetId *string `pulumi:"diskEncryptionSetId"` + // This property specifies the security profile of an OS disk image. + SecurityProfile *OSDiskImageSecurityProfileResponse `pulumi:"securityProfile"` } // Contains encryption settings for an OS disk image. @@ -17301,6 +21459,11 @@ func (o OSDiskImageEncryptionResponseOutput) DiskEncryptionSetId() pulumi.String return o.ApplyT(func(v OSDiskImageEncryptionResponse) *string { return v.DiskEncryptionSetId }).(pulumi.StringPtrOutput) } +// This property specifies the security profile of an OS disk image. +func (o OSDiskImageEncryptionResponseOutput) SecurityProfile() OSDiskImageSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v OSDiskImageEncryptionResponse) *OSDiskImageSecurityProfileResponse { return v.SecurityProfile }).(OSDiskImageSecurityProfileResponsePtrOutput) +} + type OSDiskImageEncryptionResponsePtrOutput struct{ *pulumi.OutputState } func (OSDiskImageEncryptionResponsePtrOutput) ElementType() reflect.Type { @@ -17335,19 +21498,265 @@ func (o OSDiskImageEncryptionResponsePtrOutput) DiskEncryptionSetId() pulumi.Str }).(pulumi.StringPtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// This property specifies the security profile of an OS disk image. +func (o OSDiskImageEncryptionResponsePtrOutput) SecurityProfile() OSDiskImageSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v *OSDiskImageEncryptionResponse) *OSDiskImageSecurityProfileResponse { + if v == nil { + return nil + } + return v.SecurityProfile + }).(OSDiskImageSecurityProfileResponsePtrOutput) +} + +// Contains security profile for an OS disk image. +type OSDiskImageSecurityProfile struct { + // confidential VM encryption types + ConfidentialVMEncryptionType *string `pulumi:"confidentialVMEncryptionType"` + // secure VM disk encryption set id + SecureVMDiskEncryptionSetId *string `pulumi:"secureVMDiskEncryptionSetId"` +} + +// OSDiskImageSecurityProfileInput is an input type that accepts OSDiskImageSecurityProfileArgs and OSDiskImageSecurityProfileOutput values. +// You can construct a concrete instance of `OSDiskImageSecurityProfileInput` via: +// +// OSDiskImageSecurityProfileArgs{...} +type OSDiskImageSecurityProfileInput interface { + pulumi.Input + + ToOSDiskImageSecurityProfileOutput() OSDiskImageSecurityProfileOutput + ToOSDiskImageSecurityProfileOutputWithContext(context.Context) OSDiskImageSecurityProfileOutput +} + +// Contains security profile for an OS disk image. +type OSDiskImageSecurityProfileArgs struct { + // confidential VM encryption types + ConfidentialVMEncryptionType pulumi.StringPtrInput `pulumi:"confidentialVMEncryptionType"` + // secure VM disk encryption set id + SecureVMDiskEncryptionSetId pulumi.StringPtrInput `pulumi:"secureVMDiskEncryptionSetId"` +} + +func (OSDiskImageSecurityProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OSDiskImageSecurityProfile)(nil)).Elem() +} + +func (i OSDiskImageSecurityProfileArgs) ToOSDiskImageSecurityProfileOutput() OSDiskImageSecurityProfileOutput { + return i.ToOSDiskImageSecurityProfileOutputWithContext(context.Background()) +} + +func (i OSDiskImageSecurityProfileArgs) ToOSDiskImageSecurityProfileOutputWithContext(ctx context.Context) OSDiskImageSecurityProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSDiskImageSecurityProfileOutput) +} + +func (i OSDiskImageSecurityProfileArgs) ToOSDiskImageSecurityProfilePtrOutput() OSDiskImageSecurityProfilePtrOutput { + return i.ToOSDiskImageSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (i OSDiskImageSecurityProfileArgs) ToOSDiskImageSecurityProfilePtrOutputWithContext(ctx context.Context) OSDiskImageSecurityProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSDiskImageSecurityProfileOutput).ToOSDiskImageSecurityProfilePtrOutputWithContext(ctx) +} + +// OSDiskImageSecurityProfilePtrInput is an input type that accepts OSDiskImageSecurityProfileArgs, OSDiskImageSecurityProfilePtr and OSDiskImageSecurityProfilePtrOutput values. +// You can construct a concrete instance of `OSDiskImageSecurityProfilePtrInput` via: +// +// OSDiskImageSecurityProfileArgs{...} +// +// or: +// +// nil +type OSDiskImageSecurityProfilePtrInput interface { + pulumi.Input + + ToOSDiskImageSecurityProfilePtrOutput() OSDiskImageSecurityProfilePtrOutput + ToOSDiskImageSecurityProfilePtrOutputWithContext(context.Context) OSDiskImageSecurityProfilePtrOutput +} + +type osdiskImageSecurityProfilePtrType OSDiskImageSecurityProfileArgs + +func OSDiskImageSecurityProfilePtr(v *OSDiskImageSecurityProfileArgs) OSDiskImageSecurityProfilePtrInput { + return (*osdiskImageSecurityProfilePtrType)(v) +} + +func (*osdiskImageSecurityProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OSDiskImageSecurityProfile)(nil)).Elem() +} + +func (i *osdiskImageSecurityProfilePtrType) ToOSDiskImageSecurityProfilePtrOutput() OSDiskImageSecurityProfilePtrOutput { + return i.ToOSDiskImageSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (i *osdiskImageSecurityProfilePtrType) ToOSDiskImageSecurityProfilePtrOutputWithContext(ctx context.Context) OSDiskImageSecurityProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSDiskImageSecurityProfilePtrOutput) +} + +// Contains security profile for an OS disk image. +type OSDiskImageSecurityProfileOutput struct{ *pulumi.OutputState } + +func (OSDiskImageSecurityProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OSDiskImageSecurityProfile)(nil)).Elem() +} + +func (o OSDiskImageSecurityProfileOutput) ToOSDiskImageSecurityProfileOutput() OSDiskImageSecurityProfileOutput { + return o +} + +func (o OSDiskImageSecurityProfileOutput) ToOSDiskImageSecurityProfileOutputWithContext(ctx context.Context) OSDiskImageSecurityProfileOutput { + return o +} + +func (o OSDiskImageSecurityProfileOutput) ToOSDiskImageSecurityProfilePtrOutput() OSDiskImageSecurityProfilePtrOutput { + return o.ToOSDiskImageSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (o OSDiskImageSecurityProfileOutput) ToOSDiskImageSecurityProfilePtrOutputWithContext(ctx context.Context) OSDiskImageSecurityProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OSDiskImageSecurityProfile) *OSDiskImageSecurityProfile { + return &v + }).(OSDiskImageSecurityProfilePtrOutput) +} + +// confidential VM encryption types +func (o OSDiskImageSecurityProfileOutput) ConfidentialVMEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSDiskImageSecurityProfile) *string { return v.ConfidentialVMEncryptionType }).(pulumi.StringPtrOutput) +} + +// secure VM disk encryption set id +func (o OSDiskImageSecurityProfileOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSDiskImageSecurityProfile) *string { return v.SecureVMDiskEncryptionSetId }).(pulumi.StringPtrOutput) +} + +type OSDiskImageSecurityProfilePtrOutput struct{ *pulumi.OutputState } + +func (OSDiskImageSecurityProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OSDiskImageSecurityProfile)(nil)).Elem() +} + +func (o OSDiskImageSecurityProfilePtrOutput) ToOSDiskImageSecurityProfilePtrOutput() OSDiskImageSecurityProfilePtrOutput { + return o +} + +func (o OSDiskImageSecurityProfilePtrOutput) ToOSDiskImageSecurityProfilePtrOutputWithContext(ctx context.Context) OSDiskImageSecurityProfilePtrOutput { + return o +} + +func (o OSDiskImageSecurityProfilePtrOutput) Elem() OSDiskImageSecurityProfileOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfile) OSDiskImageSecurityProfile { + if v != nil { + return *v + } + var ret OSDiskImageSecurityProfile + return ret + }).(OSDiskImageSecurityProfileOutput) +} + +// confidential VM encryption types +func (o OSDiskImageSecurityProfilePtrOutput) ConfidentialVMEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfile) *string { + if v == nil { + return nil + } + return v.ConfidentialVMEncryptionType + }).(pulumi.StringPtrOutput) +} + +// secure VM disk encryption set id +func (o OSDiskImageSecurityProfilePtrOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfile) *string { + if v == nil { + return nil + } + return v.SecureVMDiskEncryptionSetId + }).(pulumi.StringPtrOutput) +} + +// Contains security profile for an OS disk image. +type OSDiskImageSecurityProfileResponse struct { + // confidential VM encryption types + ConfidentialVMEncryptionType *string `pulumi:"confidentialVMEncryptionType"` + // secure VM disk encryption set id + SecureVMDiskEncryptionSetId *string `pulumi:"secureVMDiskEncryptionSetId"` +} + +// Contains security profile for an OS disk image. +type OSDiskImageSecurityProfileResponseOutput struct{ *pulumi.OutputState } + +func (OSDiskImageSecurityProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OSDiskImageSecurityProfileResponse)(nil)).Elem() +} + +func (o OSDiskImageSecurityProfileResponseOutput) ToOSDiskImageSecurityProfileResponseOutput() OSDiskImageSecurityProfileResponseOutput { + return o +} + +func (o OSDiskImageSecurityProfileResponseOutput) ToOSDiskImageSecurityProfileResponseOutputWithContext(ctx context.Context) OSDiskImageSecurityProfileResponseOutput { + return o +} + +// confidential VM encryption types +func (o OSDiskImageSecurityProfileResponseOutput) ConfidentialVMEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSDiskImageSecurityProfileResponse) *string { return v.ConfidentialVMEncryptionType }).(pulumi.StringPtrOutput) +} + +// secure VM disk encryption set id +func (o OSDiskImageSecurityProfileResponseOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSDiskImageSecurityProfileResponse) *string { return v.SecureVMDiskEncryptionSetId }).(pulumi.StringPtrOutput) +} + +type OSDiskImageSecurityProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (OSDiskImageSecurityProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OSDiskImageSecurityProfileResponse)(nil)).Elem() +} + +func (o OSDiskImageSecurityProfileResponsePtrOutput) ToOSDiskImageSecurityProfileResponsePtrOutput() OSDiskImageSecurityProfileResponsePtrOutput { + return o +} + +func (o OSDiskImageSecurityProfileResponsePtrOutput) ToOSDiskImageSecurityProfileResponsePtrOutputWithContext(ctx context.Context) OSDiskImageSecurityProfileResponsePtrOutput { + return o +} + +func (o OSDiskImageSecurityProfileResponsePtrOutput) Elem() OSDiskImageSecurityProfileResponseOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfileResponse) OSDiskImageSecurityProfileResponse { + if v != nil { + return *v + } + var ret OSDiskImageSecurityProfileResponse + return ret + }).(OSDiskImageSecurityProfileResponseOutput) +} + +// confidential VM encryption types +func (o OSDiskImageSecurityProfileResponsePtrOutput) ConfidentialVMEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfileResponse) *string { + if v == nil { + return nil + } + return v.ConfidentialVMEncryptionType + }).(pulumi.StringPtrOutput) +} + +// secure VM disk encryption set id +func (o OSDiskImageSecurityProfileResponsePtrOutput) SecureVMDiskEncryptionSetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSDiskImageSecurityProfileResponse) *string { + if v == nil { + return nil + } + return v.SecureVMDiskEncryptionSetId + }).(pulumi.StringPtrOutput) +} + +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). type OSDiskResponse struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` - // Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. CreateOption string `pulumi:"createOption"` - // Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. + // Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. DeleteOption *string `pulumi:"deleteOption"` // Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. DiffDiskSettings *DiffDiskSettingsResponse `pulumi:"diffDiskSettings"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` - // Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 + // Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. EncryptionSettings *DiskEncryptionSettingsResponse `pulumi:"encryptionSettings"` // The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. Image *VirtualHardDiskResponse `pulumi:"image"` @@ -17355,7 +21764,7 @@ type OSDiskResponse struct { ManagedDisk *ManagedDiskParametersResponse `pulumi:"managedDisk"` // The disk name. Name *string `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType *string `pulumi:"osType"` // The virtual hard disk. Vhd *VirtualHardDiskResponse `pulumi:"vhd"` @@ -17363,7 +21772,7 @@ type OSDiskResponse struct { WriteAcceleratorEnabled *bool `pulumi:"writeAcceleratorEnabled"` } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). type OSDiskResponseOutput struct{ *pulumi.OutputState } func (OSDiskResponseOutput) ElementType() reflect.Type { @@ -17378,17 +21787,17 @@ func (o OSDiskResponseOutput) ToOSDiskResponseOutputWithContext(ctx context.Cont return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o OSDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o OSDiskResponseOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v OSDiskResponse) string { return v.CreateOption }).(pulumi.StringOutput) } -// Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. +// Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. func (o OSDiskResponseOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDiskResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } @@ -17398,12 +21807,12 @@ func (o OSDiskResponseOutput) DiffDiskSettings() DiffDiskSettingsResponsePtrOutp return o.ApplyT(func(v OSDiskResponse) *DiffDiskSettingsResponse { return v.DiffDiskSettings }).(DiffDiskSettingsResponsePtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o OSDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v OSDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } -// Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 +// Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. func (o OSDiskResponseOutput) EncryptionSettings() DiskEncryptionSettingsResponsePtrOutput { return o.ApplyT(func(v OSDiskResponse) *DiskEncryptionSettingsResponse { return v.EncryptionSettings }).(DiskEncryptionSettingsResponsePtrOutput) } @@ -17423,7 +21832,7 @@ func (o OSDiskResponseOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDiskResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o OSDiskResponseOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v OSDiskResponse) *string { return v.OsType }).(pulumi.StringPtrOutput) } @@ -17462,7 +21871,7 @@ func (o OSDiskResponsePtrOutput) Elem() OSDiskResponseOutput { }).(OSDiskResponseOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None** for Standard storage. **ReadOnly** for Premium storage. +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The defaulting behavior is: **None for Standard storage. ReadOnly for Premium storage.** func (o OSDiskResponsePtrOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDiskResponse) *string { if v == nil { @@ -17472,7 +21881,7 @@ func (o OSDiskResponsePtrOutput) Caching() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies how the virtual machine should be created.

    Possible values are:

    **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.

    **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machine should be created. Possible values are: **Attach.** This value is used when you are using a specialized disk to create the virtual machine. **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. func (o OSDiskResponsePtrOutput) CreateOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDiskResponse) *string { if v == nil { @@ -17482,7 +21891,7 @@ func (o OSDiskResponsePtrOutput) CreateOption() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies whether OS Disk should be deleted or detached upon VM deletion.

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VM is deleted.

    **Detach** If this value is used, the os disk is retained after VM is deleted.

    The default value is set to **detach**. For an ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for ephemeral OS Disk. +// Specifies whether OS Disk should be deleted or detached upon VM deletion. Possible values are: **Delete.** If this value is used, the OS disk is deleted when VM is deleted. **Detach.** If this value is used, the os disk is retained after VM is deleted. The default value is set to **Detach**. For an ephemeral OS Disk, the default value is set to **Delete**. The user cannot change the delete option for an ephemeral OS Disk. func (o OSDiskResponsePtrOutput) DeleteOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDiskResponse) *string { if v == nil { @@ -17502,7 +21911,7 @@ func (o OSDiskResponsePtrOutput) DiffDiskSettings() DiffDiskSettingsResponsePtrO }).(DiffDiskSettingsResponsePtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o OSDiskResponsePtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *OSDiskResponse) *int { if v == nil { @@ -17512,7 +21921,7 @@ func (o OSDiskResponsePtrOutput) DiskSizeGB() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specifies the encryption settings for the OS Disk.

    Minimum api-version: 2015-06-15 +// Specifies the encryption settings for the OS Disk. Minimum api-version: 2015-06-15. func (o OSDiskResponsePtrOutput) EncryptionSettings() DiskEncryptionSettingsResponsePtrOutput { return o.ApplyT(func(v *OSDiskResponse) *DiskEncryptionSettingsResponse { if v == nil { @@ -17552,7 +21961,7 @@ func (o OSDiskResponsePtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o OSDiskResponsePtrOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSDiskResponse) *string { if v == nil { @@ -17582,21 +21991,252 @@ func (o OSDiskResponsePtrOutput) WriteAcceleratorEnabled() pulumi.BoolPtrOutput }).(pulumi.BoolPtrOutput) } +type OSImageNotificationProfile struct { + // Specifies whether the OS Image Scheduled event is enabled or disabled. + Enable *bool `pulumi:"enable"` + // Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) + NotBeforeTimeout *string `pulumi:"notBeforeTimeout"` +} + +// OSImageNotificationProfileInput is an input type that accepts OSImageNotificationProfileArgs and OSImageNotificationProfileOutput values. +// You can construct a concrete instance of `OSImageNotificationProfileInput` via: +// +// OSImageNotificationProfileArgs{...} +type OSImageNotificationProfileInput interface { + pulumi.Input + + ToOSImageNotificationProfileOutput() OSImageNotificationProfileOutput + ToOSImageNotificationProfileOutputWithContext(context.Context) OSImageNotificationProfileOutput +} + +type OSImageNotificationProfileArgs struct { + // Specifies whether the OS Image Scheduled event is enabled or disabled. + Enable pulumi.BoolPtrInput `pulumi:"enable"` + // Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) + NotBeforeTimeout pulumi.StringPtrInput `pulumi:"notBeforeTimeout"` +} + +func (OSImageNotificationProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OSImageNotificationProfile)(nil)).Elem() +} + +func (i OSImageNotificationProfileArgs) ToOSImageNotificationProfileOutput() OSImageNotificationProfileOutput { + return i.ToOSImageNotificationProfileOutputWithContext(context.Background()) +} + +func (i OSImageNotificationProfileArgs) ToOSImageNotificationProfileOutputWithContext(ctx context.Context) OSImageNotificationProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSImageNotificationProfileOutput) +} + +func (i OSImageNotificationProfileArgs) ToOSImageNotificationProfilePtrOutput() OSImageNotificationProfilePtrOutput { + return i.ToOSImageNotificationProfilePtrOutputWithContext(context.Background()) +} + +func (i OSImageNotificationProfileArgs) ToOSImageNotificationProfilePtrOutputWithContext(ctx context.Context) OSImageNotificationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSImageNotificationProfileOutput).ToOSImageNotificationProfilePtrOutputWithContext(ctx) +} + +// OSImageNotificationProfilePtrInput is an input type that accepts OSImageNotificationProfileArgs, OSImageNotificationProfilePtr and OSImageNotificationProfilePtrOutput values. +// You can construct a concrete instance of `OSImageNotificationProfilePtrInput` via: +// +// OSImageNotificationProfileArgs{...} +// +// or: +// +// nil +type OSImageNotificationProfilePtrInput interface { + pulumi.Input + + ToOSImageNotificationProfilePtrOutput() OSImageNotificationProfilePtrOutput + ToOSImageNotificationProfilePtrOutputWithContext(context.Context) OSImageNotificationProfilePtrOutput +} + +type osimageNotificationProfilePtrType OSImageNotificationProfileArgs + +func OSImageNotificationProfilePtr(v *OSImageNotificationProfileArgs) OSImageNotificationProfilePtrInput { + return (*osimageNotificationProfilePtrType)(v) +} + +func (*osimageNotificationProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OSImageNotificationProfile)(nil)).Elem() +} + +func (i *osimageNotificationProfilePtrType) ToOSImageNotificationProfilePtrOutput() OSImageNotificationProfilePtrOutput { + return i.ToOSImageNotificationProfilePtrOutputWithContext(context.Background()) +} + +func (i *osimageNotificationProfilePtrType) ToOSImageNotificationProfilePtrOutputWithContext(ctx context.Context) OSImageNotificationProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OSImageNotificationProfilePtrOutput) +} + +type OSImageNotificationProfileOutput struct{ *pulumi.OutputState } + +func (OSImageNotificationProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OSImageNotificationProfile)(nil)).Elem() +} + +func (o OSImageNotificationProfileOutput) ToOSImageNotificationProfileOutput() OSImageNotificationProfileOutput { + return o +} + +func (o OSImageNotificationProfileOutput) ToOSImageNotificationProfileOutputWithContext(ctx context.Context) OSImageNotificationProfileOutput { + return o +} + +func (o OSImageNotificationProfileOutput) ToOSImageNotificationProfilePtrOutput() OSImageNotificationProfilePtrOutput { + return o.ToOSImageNotificationProfilePtrOutputWithContext(context.Background()) +} + +func (o OSImageNotificationProfileOutput) ToOSImageNotificationProfilePtrOutputWithContext(ctx context.Context) OSImageNotificationProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OSImageNotificationProfile) *OSImageNotificationProfile { + return &v + }).(OSImageNotificationProfilePtrOutput) +} + +// Specifies whether the OS Image Scheduled event is enabled or disabled. +func (o OSImageNotificationProfileOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OSImageNotificationProfile) *bool { return v.Enable }).(pulumi.BoolPtrOutput) +} + +// Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) +func (o OSImageNotificationProfileOutput) NotBeforeTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSImageNotificationProfile) *string { return v.NotBeforeTimeout }).(pulumi.StringPtrOutput) +} + +type OSImageNotificationProfilePtrOutput struct{ *pulumi.OutputState } + +func (OSImageNotificationProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OSImageNotificationProfile)(nil)).Elem() +} + +func (o OSImageNotificationProfilePtrOutput) ToOSImageNotificationProfilePtrOutput() OSImageNotificationProfilePtrOutput { + return o +} + +func (o OSImageNotificationProfilePtrOutput) ToOSImageNotificationProfilePtrOutputWithContext(ctx context.Context) OSImageNotificationProfilePtrOutput { + return o +} + +func (o OSImageNotificationProfilePtrOutput) Elem() OSImageNotificationProfileOutput { + return o.ApplyT(func(v *OSImageNotificationProfile) OSImageNotificationProfile { + if v != nil { + return *v + } + var ret OSImageNotificationProfile + return ret + }).(OSImageNotificationProfileOutput) +} + +// Specifies whether the OS Image Scheduled event is enabled or disabled. +func (o OSImageNotificationProfilePtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OSImageNotificationProfile) *bool { + if v == nil { + return nil + } + return v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) +func (o OSImageNotificationProfilePtrOutput) NotBeforeTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSImageNotificationProfile) *string { + if v == nil { + return nil + } + return v.NotBeforeTimeout + }).(pulumi.StringPtrOutput) +} + +type OSImageNotificationProfileResponse struct { + // Specifies whether the OS Image Scheduled event is enabled or disabled. + Enable *bool `pulumi:"enable"` + // Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) + NotBeforeTimeout *string `pulumi:"notBeforeTimeout"` +} + +type OSImageNotificationProfileResponseOutput struct{ *pulumi.OutputState } + +func (OSImageNotificationProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OSImageNotificationProfileResponse)(nil)).Elem() +} + +func (o OSImageNotificationProfileResponseOutput) ToOSImageNotificationProfileResponseOutput() OSImageNotificationProfileResponseOutput { + return o +} + +func (o OSImageNotificationProfileResponseOutput) ToOSImageNotificationProfileResponseOutputWithContext(ctx context.Context) OSImageNotificationProfileResponseOutput { + return o +} + +// Specifies whether the OS Image Scheduled event is enabled or disabled. +func (o OSImageNotificationProfileResponseOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OSImageNotificationProfileResponse) *bool { return v.Enable }).(pulumi.BoolPtrOutput) +} + +// Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) +func (o OSImageNotificationProfileResponseOutput) NotBeforeTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v OSImageNotificationProfileResponse) *string { return v.NotBeforeTimeout }).(pulumi.StringPtrOutput) +} + +type OSImageNotificationProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (OSImageNotificationProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OSImageNotificationProfileResponse)(nil)).Elem() +} + +func (o OSImageNotificationProfileResponsePtrOutput) ToOSImageNotificationProfileResponsePtrOutput() OSImageNotificationProfileResponsePtrOutput { + return o +} + +func (o OSImageNotificationProfileResponsePtrOutput) ToOSImageNotificationProfileResponsePtrOutputWithContext(ctx context.Context) OSImageNotificationProfileResponsePtrOutput { + return o +} + +func (o OSImageNotificationProfileResponsePtrOutput) Elem() OSImageNotificationProfileResponseOutput { + return o.ApplyT(func(v *OSImageNotificationProfileResponse) OSImageNotificationProfileResponse { + if v != nil { + return *v + } + var ret OSImageNotificationProfileResponse + return ret + }).(OSImageNotificationProfileResponseOutput) +} + +// Specifies whether the OS Image Scheduled event is enabled or disabled. +func (o OSImageNotificationProfileResponsePtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OSImageNotificationProfileResponse) *bool { + if v == nil { + return nil + } + return v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M) +func (o OSImageNotificationProfileResponsePtrOutput) NotBeforeTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OSImageNotificationProfileResponse) *string { + if v == nil { + return nil + } + return v.NotBeforeTimeout + }).(pulumi.StringPtrOutput) +} + // Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned. type OSProfile struct { // Specifies the password of the administrator account.

    **Minimum-length (Windows):** 8 characters

    **Minimum-length (Linux):** 6 characters

    **Max-length (Windows):** 123 characters

    **Max-length (Linux):** 72 characters

    **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled
    Has lower characters
    Has upper characters
    Has a digit
    Has a special character (Regex match [\W_])

    **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!"

    For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)

    For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection) AdminPassword *string `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    This property cannot be updated after the VM is created.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters. AdminUsername *string `pulumi:"adminUsername"` - // Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. + // Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. AllowExtensionOperations *bool `pulumi:"allowExtensionOperations"` - // Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). + // Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). ComputerName *string `pulumi:"computerName"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). CustomData *string `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration *LinuxConfiguration `pulumi:"linuxConfiguration"` - // Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** + // Optional property which must either be set to True or omitted. RequireGuestProvisionSignal *bool `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets []VaultSecretGroup `pulumi:"secrets"` @@ -17621,15 +22261,15 @@ type OSProfileArgs struct { AdminPassword pulumi.StringPtrInput `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    This property cannot be updated after the VM is created.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters. AdminUsername pulumi.StringPtrInput `pulumi:"adminUsername"` - // Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. + // Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. AllowExtensionOperations pulumi.BoolPtrInput `pulumi:"allowExtensionOperations"` - // Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). + // Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). ComputerName pulumi.StringPtrInput `pulumi:"computerName"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). CustomData pulumi.StringPtrInput `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration LinuxConfigurationPtrInput `pulumi:"linuxConfiguration"` - // Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** + // Optional property which must either be set to True or omitted. RequireGuestProvisionSignal pulumi.BoolPtrInput `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets VaultSecretGroupArrayInput `pulumi:"secrets"` @@ -17725,27 +22365,27 @@ func (o OSProfileOutput) AdminUsername() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfile) *string { return v.AdminUsername }).(pulumi.StringPtrOutput) } -// Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. +// Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. func (o OSProfileOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { return o.ApplyT(func(v OSProfile) *bool { return v.AllowExtensionOperations }).(pulumi.BoolPtrOutput) } -// Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). +// Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). func (o OSProfileOutput) ComputerName() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfile) *string { return v.ComputerName }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). func (o OSProfileOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfile) *string { return v.CustomData }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o OSProfileOutput) LinuxConfiguration() LinuxConfigurationPtrOutput { return o.ApplyT(func(v OSProfile) *LinuxConfiguration { return v.LinuxConfiguration }).(LinuxConfigurationPtrOutput) } -// Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** +// Optional property which must either be set to True or omitted. func (o OSProfileOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { return o.ApplyT(func(v OSProfile) *bool { return v.RequireGuestProvisionSignal }).(pulumi.BoolPtrOutput) } @@ -17804,7 +22444,7 @@ func (o OSProfilePtrOutput) AdminUsername() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. +// Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. func (o OSProfilePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OSProfile) *bool { if v == nil { @@ -17814,7 +22454,7 @@ func (o OSProfilePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). +// Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). func (o OSProfilePtrOutput) ComputerName() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSProfile) *string { if v == nil { @@ -17824,7 +22464,7 @@ func (o OSProfilePtrOutput) ComputerName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). func (o OSProfilePtrOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSProfile) *string { if v == nil { @@ -17834,7 +22474,7 @@ func (o OSProfilePtrOutput) CustomData() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o OSProfilePtrOutput) LinuxConfiguration() LinuxConfigurationPtrOutput { return o.ApplyT(func(v *OSProfile) *LinuxConfiguration { if v == nil { @@ -17844,7 +22484,7 @@ func (o OSProfilePtrOutput) LinuxConfiguration() LinuxConfigurationPtrOutput { }).(LinuxConfigurationPtrOutput) } -// Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** +// Optional property which must either be set to True or omitted. func (o OSProfilePtrOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OSProfile) *bool { if v == nil { @@ -17880,15 +22520,15 @@ type OSProfileResponse struct { AdminPassword *string `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    This property cannot be updated after the VM is created.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters. AdminUsername *string `pulumi:"adminUsername"` - // Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. + // Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. AllowExtensionOperations *bool `pulumi:"allowExtensionOperations"` - // Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). + // Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). ComputerName *string `pulumi:"computerName"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). CustomData *string `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration *LinuxConfigurationResponse `pulumi:"linuxConfiguration"` - // Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** + // Optional property which must either be set to True or omitted. RequireGuestProvisionSignal *bool `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets []VaultSecretGroupResponse `pulumi:"secrets"` @@ -17921,27 +22561,27 @@ func (o OSProfileResponseOutput) AdminUsername() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfileResponse) *string { return v.AdminUsername }).(pulumi.StringPtrOutput) } -// Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. +// Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. func (o OSProfileResponseOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { return o.ApplyT(func(v OSProfileResponse) *bool { return v.AllowExtensionOperations }).(pulumi.BoolPtrOutput) } -// Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). +// Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). func (o OSProfileResponseOutput) ComputerName() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfileResponse) *string { return v.ComputerName }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). func (o OSProfileResponseOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v OSProfileResponse) *string { return v.CustomData }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o OSProfileResponseOutput) LinuxConfiguration() LinuxConfigurationResponsePtrOutput { return o.ApplyT(func(v OSProfileResponse) *LinuxConfigurationResponse { return v.LinuxConfiguration }).(LinuxConfigurationResponsePtrOutput) } -// Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** +// Optional property which must either be set to True or omitted. func (o OSProfileResponseOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { return o.ApplyT(func(v OSProfileResponse) *bool { return v.RequireGuestProvisionSignal }).(pulumi.BoolPtrOutput) } @@ -18000,7 +22640,7 @@ func (o OSProfileResponsePtrOutput) AdminUsername() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies whether extension operations should be allowed on the virtual machine.

    This may only be set to False when no extensions are present on the virtual machine. +// Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine. func (o OSProfileResponsePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OSProfileResponse) *bool { if v == nil { @@ -18010,7 +22650,7 @@ func (o OSProfileResponsePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOut }).(pulumi.BoolPtrOutput) } -// Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). +// Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules). func (o OSProfileResponsePtrOutput) ComputerName() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSProfileResponse) *string { if v == nil { @@ -18020,7 +22660,7 @@ func (o OSProfileResponsePtrOutput) ComputerName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    **Note: Do not pass any secrets or passwords in customData property**

    This property cannot be updated after the VM is created.

    customData is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/)

    For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init). func (o OSProfileResponsePtrOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v *OSProfileResponse) *string { if v == nil { @@ -18030,7 +22670,7 @@ func (o OSProfileResponsePtrOutput) CustomData() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o OSProfileResponsePtrOutput) LinuxConfiguration() LinuxConfigurationResponsePtrOutput { return o.ApplyT(func(v *OSProfileResponse) *LinuxConfigurationResponse { if v == nil { @@ -18040,7 +22680,7 @@ func (o OSProfileResponsePtrOutput) LinuxConfiguration() LinuxConfigurationRespo }).(LinuxConfigurationResponsePtrOutput) } -// Specifies whether the guest provision signal is required to infer provision success of the virtual machine. **Note: This property is for private testing only, and all customers must not set the property to false.** +// Optional property which must either be set to True or omitted. func (o OSProfileResponsePtrOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { return o.ApplyT(func(v *OSProfileResponse) *bool { if v == nil { @@ -18074,6 +22714,8 @@ func (o OSProfileResponsePtrOutput) WindowsConfiguration() WindowsConfigurationR type PatchSettings struct { // Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode *string `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. + AutomaticByPlatformSettings *WindowsVMGuestPatchAutomaticByPlatformSettings `pulumi:"automaticByPlatformSettings"` // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. EnableHotpatching *bool `pulumi:"enableHotpatching"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **Manual** - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false

    **AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.

    **AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true @@ -18095,6 +22737,8 @@ type PatchSettingsInput interface { type PatchSettingsArgs struct { // Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode pulumi.StringPtrInput `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. + AutomaticByPlatformSettings WindowsVMGuestPatchAutomaticByPlatformSettingsPtrInput `pulumi:"automaticByPlatformSettings"` // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. EnableHotpatching pulumi.BoolPtrInput `pulumi:"enableHotpatching"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **Manual** - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false

    **AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.

    **AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true @@ -18184,6 +22828,13 @@ func (o PatchSettingsOutput) AssessmentMode() pulumi.StringPtrOutput { return o.ApplyT(func(v PatchSettings) *string { return v.AssessmentMode }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. +func (o PatchSettingsOutput) AutomaticByPlatformSettings() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyT(func(v PatchSettings) *WindowsVMGuestPatchAutomaticByPlatformSettings { + return v.AutomaticByPlatformSettings + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. func (o PatchSettingsOutput) EnableHotpatching() pulumi.BoolPtrOutput { return o.ApplyT(func(v PatchSettings) *bool { return v.EnableHotpatching }).(pulumi.BoolPtrOutput) @@ -18228,6 +22879,16 @@ func (o PatchSettingsPtrOutput) AssessmentMode() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. +func (o PatchSettingsPtrOutput) AutomaticByPlatformSettings() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyT(func(v *PatchSettings) *WindowsVMGuestPatchAutomaticByPlatformSettings { + if v == nil { + return nil + } + return v.AutomaticByPlatformSettings + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. func (o PatchSettingsPtrOutput) EnableHotpatching() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PatchSettings) *bool { @@ -18252,6 +22913,8 @@ func (o PatchSettingsPtrOutput) PatchMode() pulumi.StringPtrOutput { type PatchSettingsResponse struct { // Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.

    Possible values are:

    **ImageDefault** - You control the timing of patch assessments on a virtual machine.

    **AutomaticByPlatform** - The platform will trigger periodic patch assessments. The property provisionVMAgent must be true. AssessmentMode *string `pulumi:"assessmentMode"` + // Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. + AutomaticByPlatformSettings *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse `pulumi:"automaticByPlatformSettings"` // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. EnableHotpatching *bool `pulumi:"enableHotpatching"` // Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual machines associated to virtual machine scale set with OrchestrationMode as Flexible.

    Possible values are:

    **Manual** - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates must be false

    **AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true.

    **AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true @@ -18278,6 +22941,13 @@ func (o PatchSettingsResponseOutput) AssessmentMode() pulumi.StringPtrOutput { return o.ApplyT(func(v PatchSettingsResponse) *string { return v.AssessmentMode }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. +func (o PatchSettingsResponseOutput) AutomaticByPlatformSettings() WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o.ApplyT(func(v PatchSettingsResponse) *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse { + return v.AutomaticByPlatformSettings + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) +} + // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. func (o PatchSettingsResponseOutput) EnableHotpatching() pulumi.BoolPtrOutput { return o.ApplyT(func(v PatchSettingsResponse) *bool { return v.EnableHotpatching }).(pulumi.BoolPtrOutput) @@ -18322,6 +22992,16 @@ func (o PatchSettingsResponsePtrOutput) AssessmentMode() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// Specifies additional settings for patch mode AutomaticByPlatform in VM Guest Patching on Windows. +func (o PatchSettingsResponsePtrOutput) AutomaticByPlatformSettings() WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o.ApplyT(func(v *PatchSettingsResponse) *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse { + if v == nil { + return nil + } + return v.AutomaticByPlatformSettings + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) +} + // Enables customers to patch their Azure VMs without requiring a reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must be set to 'AutomaticByPlatform'. func (o PatchSettingsResponsePtrOutput) EnableHotpatching() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PatchSettingsResponse) *bool { @@ -18650,6 +23330,295 @@ func (o PlanResponsePtrOutput) Publisher() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// A policy violation reported against a gallery artifact. +type PolicyViolationResponse struct { + // Describes the nature of the policy violation. + Category *string `pulumi:"category"` + // Describes specific details about why this policy violation was reported. + Details *string `pulumi:"details"` +} + +// A policy violation reported against a gallery artifact. +type PolicyViolationResponseOutput struct{ *pulumi.OutputState } + +func (PolicyViolationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyViolationResponse)(nil)).Elem() +} + +func (o PolicyViolationResponseOutput) ToPolicyViolationResponseOutput() PolicyViolationResponseOutput { + return o +} + +func (o PolicyViolationResponseOutput) ToPolicyViolationResponseOutputWithContext(ctx context.Context) PolicyViolationResponseOutput { + return o +} + +// Describes the nature of the policy violation. +func (o PolicyViolationResponseOutput) Category() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicyViolationResponse) *string { return v.Category }).(pulumi.StringPtrOutput) +} + +// Describes specific details about why this policy violation was reported. +func (o PolicyViolationResponseOutput) Details() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicyViolationResponse) *string { return v.Details }).(pulumi.StringPtrOutput) +} + +type PolicyViolationResponseArrayOutput struct{ *pulumi.OutputState } + +func (PolicyViolationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PolicyViolationResponse)(nil)).Elem() +} + +func (o PolicyViolationResponseArrayOutput) ToPolicyViolationResponseArrayOutput() PolicyViolationResponseArrayOutput { + return o +} + +func (o PolicyViolationResponseArrayOutput) ToPolicyViolationResponseArrayOutputWithContext(ctx context.Context) PolicyViolationResponseArrayOutput { + return o +} + +func (o PolicyViolationResponseArrayOutput) Index(i pulumi.IntInput) PolicyViolationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PolicyViolationResponse { + return vs[0].([]PolicyViolationResponse)[vs[1].(int)] + }).(PolicyViolationResponseOutput) +} + +// Specifies the target splits for Spot and Regular priority VMs within a scale set with flexible orchestration mode. With this property the customer is able to specify the base number of regular priority VMs created as the VMSS flex instance scales out and the split between Spot and Regular priority VMs after this base target has been reached. +type PriorityMixPolicy struct { + // The base number of regular priority VMs that will be created in this scale set as it scales out. + BaseRegularPriorityCount *int `pulumi:"baseRegularPriorityCount"` + // The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. + RegularPriorityPercentageAboveBase *int `pulumi:"regularPriorityPercentageAboveBase"` +} + +// PriorityMixPolicyInput is an input type that accepts PriorityMixPolicyArgs and PriorityMixPolicyOutput values. +// You can construct a concrete instance of `PriorityMixPolicyInput` via: +// +// PriorityMixPolicyArgs{...} +type PriorityMixPolicyInput interface { + pulumi.Input + + ToPriorityMixPolicyOutput() PriorityMixPolicyOutput + ToPriorityMixPolicyOutputWithContext(context.Context) PriorityMixPolicyOutput +} + +// Specifies the target splits for Spot and Regular priority VMs within a scale set with flexible orchestration mode. With this property the customer is able to specify the base number of regular priority VMs created as the VMSS flex instance scales out and the split between Spot and Regular priority VMs after this base target has been reached. +type PriorityMixPolicyArgs struct { + // The base number of regular priority VMs that will be created in this scale set as it scales out. + BaseRegularPriorityCount pulumi.IntPtrInput `pulumi:"baseRegularPriorityCount"` + // The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. + RegularPriorityPercentageAboveBase pulumi.IntPtrInput `pulumi:"regularPriorityPercentageAboveBase"` +} + +func (PriorityMixPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PriorityMixPolicy)(nil)).Elem() +} + +func (i PriorityMixPolicyArgs) ToPriorityMixPolicyOutput() PriorityMixPolicyOutput { + return i.ToPriorityMixPolicyOutputWithContext(context.Background()) +} + +func (i PriorityMixPolicyArgs) ToPriorityMixPolicyOutputWithContext(ctx context.Context) PriorityMixPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(PriorityMixPolicyOutput) +} + +func (i PriorityMixPolicyArgs) ToPriorityMixPolicyPtrOutput() PriorityMixPolicyPtrOutput { + return i.ToPriorityMixPolicyPtrOutputWithContext(context.Background()) +} + +func (i PriorityMixPolicyArgs) ToPriorityMixPolicyPtrOutputWithContext(ctx context.Context) PriorityMixPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PriorityMixPolicyOutput).ToPriorityMixPolicyPtrOutputWithContext(ctx) +} + +// PriorityMixPolicyPtrInput is an input type that accepts PriorityMixPolicyArgs, PriorityMixPolicyPtr and PriorityMixPolicyPtrOutput values. +// You can construct a concrete instance of `PriorityMixPolicyPtrInput` via: +// +// PriorityMixPolicyArgs{...} +// +// or: +// +// nil +type PriorityMixPolicyPtrInput interface { + pulumi.Input + + ToPriorityMixPolicyPtrOutput() PriorityMixPolicyPtrOutput + ToPriorityMixPolicyPtrOutputWithContext(context.Context) PriorityMixPolicyPtrOutput +} + +type priorityMixPolicyPtrType PriorityMixPolicyArgs + +func PriorityMixPolicyPtr(v *PriorityMixPolicyArgs) PriorityMixPolicyPtrInput { + return (*priorityMixPolicyPtrType)(v) +} + +func (*priorityMixPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PriorityMixPolicy)(nil)).Elem() +} + +func (i *priorityMixPolicyPtrType) ToPriorityMixPolicyPtrOutput() PriorityMixPolicyPtrOutput { + return i.ToPriorityMixPolicyPtrOutputWithContext(context.Background()) +} + +func (i *priorityMixPolicyPtrType) ToPriorityMixPolicyPtrOutputWithContext(ctx context.Context) PriorityMixPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PriorityMixPolicyPtrOutput) +} + +// Specifies the target splits for Spot and Regular priority VMs within a scale set with flexible orchestration mode. With this property the customer is able to specify the base number of regular priority VMs created as the VMSS flex instance scales out and the split between Spot and Regular priority VMs after this base target has been reached. +type PriorityMixPolicyOutput struct{ *pulumi.OutputState } + +func (PriorityMixPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PriorityMixPolicy)(nil)).Elem() +} + +func (o PriorityMixPolicyOutput) ToPriorityMixPolicyOutput() PriorityMixPolicyOutput { + return o +} + +func (o PriorityMixPolicyOutput) ToPriorityMixPolicyOutputWithContext(ctx context.Context) PriorityMixPolicyOutput { + return o +} + +func (o PriorityMixPolicyOutput) ToPriorityMixPolicyPtrOutput() PriorityMixPolicyPtrOutput { + return o.ToPriorityMixPolicyPtrOutputWithContext(context.Background()) +} + +func (o PriorityMixPolicyOutput) ToPriorityMixPolicyPtrOutputWithContext(ctx context.Context) PriorityMixPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PriorityMixPolicy) *PriorityMixPolicy { + return &v + }).(PriorityMixPolicyPtrOutput) +} + +// The base number of regular priority VMs that will be created in this scale set as it scales out. +func (o PriorityMixPolicyOutput) BaseRegularPriorityCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v PriorityMixPolicy) *int { return v.BaseRegularPriorityCount }).(pulumi.IntPtrOutput) +} + +// The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. +func (o PriorityMixPolicyOutput) RegularPriorityPercentageAboveBase() pulumi.IntPtrOutput { + return o.ApplyT(func(v PriorityMixPolicy) *int { return v.RegularPriorityPercentageAboveBase }).(pulumi.IntPtrOutput) +} + +type PriorityMixPolicyPtrOutput struct{ *pulumi.OutputState } + +func (PriorityMixPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PriorityMixPolicy)(nil)).Elem() +} + +func (o PriorityMixPolicyPtrOutput) ToPriorityMixPolicyPtrOutput() PriorityMixPolicyPtrOutput { + return o +} + +func (o PriorityMixPolicyPtrOutput) ToPriorityMixPolicyPtrOutputWithContext(ctx context.Context) PriorityMixPolicyPtrOutput { + return o +} + +func (o PriorityMixPolicyPtrOutput) Elem() PriorityMixPolicyOutput { + return o.ApplyT(func(v *PriorityMixPolicy) PriorityMixPolicy { + if v != nil { + return *v + } + var ret PriorityMixPolicy + return ret + }).(PriorityMixPolicyOutput) +} + +// The base number of regular priority VMs that will be created in this scale set as it scales out. +func (o PriorityMixPolicyPtrOutput) BaseRegularPriorityCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PriorityMixPolicy) *int { + if v == nil { + return nil + } + return v.BaseRegularPriorityCount + }).(pulumi.IntPtrOutput) +} + +// The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. +func (o PriorityMixPolicyPtrOutput) RegularPriorityPercentageAboveBase() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PriorityMixPolicy) *int { + if v == nil { + return nil + } + return v.RegularPriorityPercentageAboveBase + }).(pulumi.IntPtrOutput) +} + +// Specifies the target splits for Spot and Regular priority VMs within a scale set with flexible orchestration mode. With this property the customer is able to specify the base number of regular priority VMs created as the VMSS flex instance scales out and the split between Spot and Regular priority VMs after this base target has been reached. +type PriorityMixPolicyResponse struct { + // The base number of regular priority VMs that will be created in this scale set as it scales out. + BaseRegularPriorityCount *int `pulumi:"baseRegularPriorityCount"` + // The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. + RegularPriorityPercentageAboveBase *int `pulumi:"regularPriorityPercentageAboveBase"` +} + +// Specifies the target splits for Spot and Regular priority VMs within a scale set with flexible orchestration mode. With this property the customer is able to specify the base number of regular priority VMs created as the VMSS flex instance scales out and the split between Spot and Regular priority VMs after this base target has been reached. +type PriorityMixPolicyResponseOutput struct{ *pulumi.OutputState } + +func (PriorityMixPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PriorityMixPolicyResponse)(nil)).Elem() +} + +func (o PriorityMixPolicyResponseOutput) ToPriorityMixPolicyResponseOutput() PriorityMixPolicyResponseOutput { + return o +} + +func (o PriorityMixPolicyResponseOutput) ToPriorityMixPolicyResponseOutputWithContext(ctx context.Context) PriorityMixPolicyResponseOutput { + return o +} + +// The base number of regular priority VMs that will be created in this scale set as it scales out. +func (o PriorityMixPolicyResponseOutput) BaseRegularPriorityCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v PriorityMixPolicyResponse) *int { return v.BaseRegularPriorityCount }).(pulumi.IntPtrOutput) +} + +// The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. +func (o PriorityMixPolicyResponseOutput) RegularPriorityPercentageAboveBase() pulumi.IntPtrOutput { + return o.ApplyT(func(v PriorityMixPolicyResponse) *int { return v.RegularPriorityPercentageAboveBase }).(pulumi.IntPtrOutput) +} + +type PriorityMixPolicyResponsePtrOutput struct{ *pulumi.OutputState } + +func (PriorityMixPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PriorityMixPolicyResponse)(nil)).Elem() +} + +func (o PriorityMixPolicyResponsePtrOutput) ToPriorityMixPolicyResponsePtrOutput() PriorityMixPolicyResponsePtrOutput { + return o +} + +func (o PriorityMixPolicyResponsePtrOutput) ToPriorityMixPolicyResponsePtrOutputWithContext(ctx context.Context) PriorityMixPolicyResponsePtrOutput { + return o +} + +func (o PriorityMixPolicyResponsePtrOutput) Elem() PriorityMixPolicyResponseOutput { + return o.ApplyT(func(v *PriorityMixPolicyResponse) PriorityMixPolicyResponse { + if v != nil { + return *v + } + var ret PriorityMixPolicyResponse + return ret + }).(PriorityMixPolicyResponseOutput) +} + +// The base number of regular priority VMs that will be created in this scale set as it scales out. +func (o PriorityMixPolicyResponsePtrOutput) BaseRegularPriorityCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PriorityMixPolicyResponse) *int { + if v == nil { + return nil + } + return v.BaseRegularPriorityCount + }).(pulumi.IntPtrOutput) +} + +// The percentage of VM instances, after the base regular priority count has been reached, that are expected to use regular priority. +func (o PriorityMixPolicyResponsePtrOutput) RegularPriorityPercentageAboveBase() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PriorityMixPolicyResponse) *int { + if v == nil { + return nil + } + return v.RegularPriorityPercentageAboveBase + }).(pulumi.IntPtrOutput) +} + // The Private Endpoint Connection resource. type PrivateEndpointConnectionResponse struct { // private endpoint connection Id @@ -18898,7 +23867,207 @@ func (o PropertyUpdatesInProgressResponseOutput) TargetTier() pulumi.StringPtrOu return o.ApplyT(func(v PropertyUpdatesInProgressResponse) *string { return v.TargetTier }).(pulumi.StringPtrOutput) } -// Describes the public IP Sku +// Specifies the user intent of the proximity placement group. +type ProximityPlacementGroupPropertiesIntent struct { + // Specifies possible sizes of virtual machines that can be created in the proximity placement group. + VmSizes []string `pulumi:"vmSizes"` +} + +// ProximityPlacementGroupPropertiesIntentInput is an input type that accepts ProximityPlacementGroupPropertiesIntentArgs and ProximityPlacementGroupPropertiesIntentOutput values. +// You can construct a concrete instance of `ProximityPlacementGroupPropertiesIntentInput` via: +// +// ProximityPlacementGroupPropertiesIntentArgs{...} +type ProximityPlacementGroupPropertiesIntentInput interface { + pulumi.Input + + ToProximityPlacementGroupPropertiesIntentOutput() ProximityPlacementGroupPropertiesIntentOutput + ToProximityPlacementGroupPropertiesIntentOutputWithContext(context.Context) ProximityPlacementGroupPropertiesIntentOutput +} + +// Specifies the user intent of the proximity placement group. +type ProximityPlacementGroupPropertiesIntentArgs struct { + // Specifies possible sizes of virtual machines that can be created in the proximity placement group. + VmSizes pulumi.StringArrayInput `pulumi:"vmSizes"` +} + +func (ProximityPlacementGroupPropertiesIntentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProximityPlacementGroupPropertiesIntent)(nil)).Elem() +} + +func (i ProximityPlacementGroupPropertiesIntentArgs) ToProximityPlacementGroupPropertiesIntentOutput() ProximityPlacementGroupPropertiesIntentOutput { + return i.ToProximityPlacementGroupPropertiesIntentOutputWithContext(context.Background()) +} + +func (i ProximityPlacementGroupPropertiesIntentArgs) ToProximityPlacementGroupPropertiesIntentOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProximityPlacementGroupPropertiesIntentOutput) +} + +func (i ProximityPlacementGroupPropertiesIntentArgs) ToProximityPlacementGroupPropertiesIntentPtrOutput() ProximityPlacementGroupPropertiesIntentPtrOutput { + return i.ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(context.Background()) +} + +func (i ProximityPlacementGroupPropertiesIntentArgs) ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProximityPlacementGroupPropertiesIntentOutput).ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(ctx) +} + +// ProximityPlacementGroupPropertiesIntentPtrInput is an input type that accepts ProximityPlacementGroupPropertiesIntentArgs, ProximityPlacementGroupPropertiesIntentPtr and ProximityPlacementGroupPropertiesIntentPtrOutput values. +// You can construct a concrete instance of `ProximityPlacementGroupPropertiesIntentPtrInput` via: +// +// ProximityPlacementGroupPropertiesIntentArgs{...} +// +// or: +// +// nil +type ProximityPlacementGroupPropertiesIntentPtrInput interface { + pulumi.Input + + ToProximityPlacementGroupPropertiesIntentPtrOutput() ProximityPlacementGroupPropertiesIntentPtrOutput + ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(context.Context) ProximityPlacementGroupPropertiesIntentPtrOutput +} + +type proximityPlacementGroupPropertiesIntentPtrType ProximityPlacementGroupPropertiesIntentArgs + +func ProximityPlacementGroupPropertiesIntentPtr(v *ProximityPlacementGroupPropertiesIntentArgs) ProximityPlacementGroupPropertiesIntentPtrInput { + return (*proximityPlacementGroupPropertiesIntentPtrType)(v) +} + +func (*proximityPlacementGroupPropertiesIntentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProximityPlacementGroupPropertiesIntent)(nil)).Elem() +} + +func (i *proximityPlacementGroupPropertiesIntentPtrType) ToProximityPlacementGroupPropertiesIntentPtrOutput() ProximityPlacementGroupPropertiesIntentPtrOutput { + return i.ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(context.Background()) +} + +func (i *proximityPlacementGroupPropertiesIntentPtrType) ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProximityPlacementGroupPropertiesIntentPtrOutput) +} + +// Specifies the user intent of the proximity placement group. +type ProximityPlacementGroupPropertiesIntentOutput struct{ *pulumi.OutputState } + +func (ProximityPlacementGroupPropertiesIntentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProximityPlacementGroupPropertiesIntent)(nil)).Elem() +} + +func (o ProximityPlacementGroupPropertiesIntentOutput) ToProximityPlacementGroupPropertiesIntentOutput() ProximityPlacementGroupPropertiesIntentOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesIntentOutput) ToProximityPlacementGroupPropertiesIntentOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesIntentOutput) ToProximityPlacementGroupPropertiesIntentPtrOutput() ProximityPlacementGroupPropertiesIntentPtrOutput { + return o.ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(context.Background()) +} + +func (o ProximityPlacementGroupPropertiesIntentOutput) ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ProximityPlacementGroupPropertiesIntent) *ProximityPlacementGroupPropertiesIntent { + return &v + }).(ProximityPlacementGroupPropertiesIntentPtrOutput) +} + +// Specifies possible sizes of virtual machines that can be created in the proximity placement group. +func (o ProximityPlacementGroupPropertiesIntentOutput) VmSizes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ProximityPlacementGroupPropertiesIntent) []string { return v.VmSizes }).(pulumi.StringArrayOutput) +} + +type ProximityPlacementGroupPropertiesIntentPtrOutput struct{ *pulumi.OutputState } + +func (ProximityPlacementGroupPropertiesIntentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProximityPlacementGroupPropertiesIntent)(nil)).Elem() +} + +func (o ProximityPlacementGroupPropertiesIntentPtrOutput) ToProximityPlacementGroupPropertiesIntentPtrOutput() ProximityPlacementGroupPropertiesIntentPtrOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesIntentPtrOutput) ToProximityPlacementGroupPropertiesIntentPtrOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesIntentPtrOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesIntentPtrOutput) Elem() ProximityPlacementGroupPropertiesIntentOutput { + return o.ApplyT(func(v *ProximityPlacementGroupPropertiesIntent) ProximityPlacementGroupPropertiesIntent { + if v != nil { + return *v + } + var ret ProximityPlacementGroupPropertiesIntent + return ret + }).(ProximityPlacementGroupPropertiesIntentOutput) +} + +// Specifies possible sizes of virtual machines that can be created in the proximity placement group. +func (o ProximityPlacementGroupPropertiesIntentPtrOutput) VmSizes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ProximityPlacementGroupPropertiesIntent) []string { + if v == nil { + return nil + } + return v.VmSizes + }).(pulumi.StringArrayOutput) +} + +// Specifies the user intent of the proximity placement group. +type ProximityPlacementGroupPropertiesResponseIntent struct { + // Specifies possible sizes of virtual machines that can be created in the proximity placement group. + VmSizes []string `pulumi:"vmSizes"` +} + +// Specifies the user intent of the proximity placement group. +type ProximityPlacementGroupPropertiesResponseIntentOutput struct{ *pulumi.OutputState } + +func (ProximityPlacementGroupPropertiesResponseIntentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProximityPlacementGroupPropertiesResponseIntent)(nil)).Elem() +} + +func (o ProximityPlacementGroupPropertiesResponseIntentOutput) ToProximityPlacementGroupPropertiesResponseIntentOutput() ProximityPlacementGroupPropertiesResponseIntentOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesResponseIntentOutput) ToProximityPlacementGroupPropertiesResponseIntentOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesResponseIntentOutput { + return o +} + +// Specifies possible sizes of virtual machines that can be created in the proximity placement group. +func (o ProximityPlacementGroupPropertiesResponseIntentOutput) VmSizes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ProximityPlacementGroupPropertiesResponseIntent) []string { return v.VmSizes }).(pulumi.StringArrayOutput) +} + +type ProximityPlacementGroupPropertiesResponseIntentPtrOutput struct{ *pulumi.OutputState } + +func (ProximityPlacementGroupPropertiesResponseIntentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProximityPlacementGroupPropertiesResponseIntent)(nil)).Elem() +} + +func (o ProximityPlacementGroupPropertiesResponseIntentPtrOutput) ToProximityPlacementGroupPropertiesResponseIntentPtrOutput() ProximityPlacementGroupPropertiesResponseIntentPtrOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesResponseIntentPtrOutput) ToProximityPlacementGroupPropertiesResponseIntentPtrOutputWithContext(ctx context.Context) ProximityPlacementGroupPropertiesResponseIntentPtrOutput { + return o +} + +func (o ProximityPlacementGroupPropertiesResponseIntentPtrOutput) Elem() ProximityPlacementGroupPropertiesResponseIntentOutput { + return o.ApplyT(func(v *ProximityPlacementGroupPropertiesResponseIntent) ProximityPlacementGroupPropertiesResponseIntent { + if v != nil { + return *v + } + var ret ProximityPlacementGroupPropertiesResponseIntent + return ret + }).(ProximityPlacementGroupPropertiesResponseIntentOutput) +} + +// Specifies possible sizes of virtual machines that can be created in the proximity placement group. +func (o ProximityPlacementGroupPropertiesResponseIntentPtrOutput) VmSizes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ProximityPlacementGroupPropertiesResponseIntent) []string { + if v == nil { + return nil + } + return v.VmSizes + }).(pulumi.StringArrayOutput) +} + +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. type PublicIPAddressSku struct { // Specify public IP sku name Name *string `pulumi:"name"` @@ -18917,7 +24086,7 @@ type PublicIPAddressSkuInput interface { ToPublicIPAddressSkuOutputWithContext(context.Context) PublicIPAddressSkuOutput } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. type PublicIPAddressSkuArgs struct { // Specify public IP sku name Name pulumi.StringPtrInput `pulumi:"name"` @@ -18978,7 +24147,7 @@ func (i *publicIPAddressSkuPtrType) ToPublicIPAddressSkuPtrOutputWithContext(ctx return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuPtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. type PublicIPAddressSkuOutput struct{ *pulumi.OutputState } func (PublicIPAddressSkuOutput) ElementType() reflect.Type { @@ -19057,7 +24226,7 @@ func (o PublicIPAddressSkuPtrOutput) Tier() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. type PublicIPAddressSkuResponse struct { // Specify public IP sku name Name *string `pulumi:"name"` @@ -19065,7 +24234,7 @@ type PublicIPAddressSkuResponse struct { Tier *string `pulumi:"tier"` } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. type PublicIPAddressSkuResponseOutput struct{ *pulumi.OutputState } func (PublicIPAddressSkuResponseOutput) ElementType() reflect.Type { @@ -19745,6 +24914,66 @@ func (o RegionalReplicationStatusResponseArrayOutput) Index(i pulumi.IntInput) R }).(RegionalReplicationStatusResponseOutput) } +// Gallery regional sharing status +type RegionalSharingStatusResponse struct { + // Details of gallery regional sharing failure. + Details *string `pulumi:"details"` + // Region name + Region *string `pulumi:"region"` + // Gallery sharing state in current region + State string `pulumi:"state"` +} + +// Gallery regional sharing status +type RegionalSharingStatusResponseOutput struct{ *pulumi.OutputState } + +func (RegionalSharingStatusResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RegionalSharingStatusResponse)(nil)).Elem() +} + +func (o RegionalSharingStatusResponseOutput) ToRegionalSharingStatusResponseOutput() RegionalSharingStatusResponseOutput { + return o +} + +func (o RegionalSharingStatusResponseOutput) ToRegionalSharingStatusResponseOutputWithContext(ctx context.Context) RegionalSharingStatusResponseOutput { + return o +} + +// Details of gallery regional sharing failure. +func (o RegionalSharingStatusResponseOutput) Details() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionalSharingStatusResponse) *string { return v.Details }).(pulumi.StringPtrOutput) +} + +// Region name +func (o RegionalSharingStatusResponseOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v RegionalSharingStatusResponse) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +// Gallery sharing state in current region +func (o RegionalSharingStatusResponseOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v RegionalSharingStatusResponse) string { return v.State }).(pulumi.StringOutput) +} + +type RegionalSharingStatusResponseArrayOutput struct{ *pulumi.OutputState } + +func (RegionalSharingStatusResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RegionalSharingStatusResponse)(nil)).Elem() +} + +func (o RegionalSharingStatusResponseArrayOutput) ToRegionalSharingStatusResponseArrayOutput() RegionalSharingStatusResponseArrayOutput { + return o +} + +func (o RegionalSharingStatusResponseArrayOutput) ToRegionalSharingStatusResponseArrayOutputWithContext(ctx context.Context) RegionalSharingStatusResponseArrayOutput { + return o +} + +func (o RegionalSharingStatusResponseArrayOutput) Index(i pulumi.IntInput) RegionalSharingStatusResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RegionalSharingStatusResponse { + return vs[0].([]RegionalSharingStatusResponse)[vs[1].(int)] + }).(RegionalSharingStatusResponseOutput) +} + // This is the replication status of the gallery image version. type ReplicationStatusResponse struct { // This is the aggregated replication status based on all the regional replication status flags. @@ -20231,20 +25460,297 @@ func (o RestorePointCollectionSourcePropertiesResponsePtrOutput) Location() pulu }).(pulumi.StringPtrOutput) } +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +type RestorePointEncryption struct { + // Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. + DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` + // The type of key used to encrypt the data of the disk restore point. + Type *string `pulumi:"type"` +} + +// RestorePointEncryptionInput is an input type that accepts RestorePointEncryptionArgs and RestorePointEncryptionOutput values. +// You can construct a concrete instance of `RestorePointEncryptionInput` via: +// +// RestorePointEncryptionArgs{...} +type RestorePointEncryptionInput interface { + pulumi.Input + + ToRestorePointEncryptionOutput() RestorePointEncryptionOutput + ToRestorePointEncryptionOutputWithContext(context.Context) RestorePointEncryptionOutput +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +type RestorePointEncryptionArgs struct { + // Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. + DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` + // The type of key used to encrypt the data of the disk restore point. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (RestorePointEncryptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointEncryption)(nil)).Elem() +} + +func (i RestorePointEncryptionArgs) ToRestorePointEncryptionOutput() RestorePointEncryptionOutput { + return i.ToRestorePointEncryptionOutputWithContext(context.Background()) +} + +func (i RestorePointEncryptionArgs) ToRestorePointEncryptionOutputWithContext(ctx context.Context) RestorePointEncryptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointEncryptionOutput) +} + +func (i RestorePointEncryptionArgs) ToRestorePointEncryptionPtrOutput() RestorePointEncryptionPtrOutput { + return i.ToRestorePointEncryptionPtrOutputWithContext(context.Background()) +} + +func (i RestorePointEncryptionArgs) ToRestorePointEncryptionPtrOutputWithContext(ctx context.Context) RestorePointEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointEncryptionOutput).ToRestorePointEncryptionPtrOutputWithContext(ctx) +} + +// RestorePointEncryptionPtrInput is an input type that accepts RestorePointEncryptionArgs, RestorePointEncryptionPtr and RestorePointEncryptionPtrOutput values. +// You can construct a concrete instance of `RestorePointEncryptionPtrInput` via: +// +// RestorePointEncryptionArgs{...} +// +// or: +// +// nil +type RestorePointEncryptionPtrInput interface { + pulumi.Input + + ToRestorePointEncryptionPtrOutput() RestorePointEncryptionPtrOutput + ToRestorePointEncryptionPtrOutputWithContext(context.Context) RestorePointEncryptionPtrOutput +} + +type restorePointEncryptionPtrType RestorePointEncryptionArgs + +func RestorePointEncryptionPtr(v *RestorePointEncryptionArgs) RestorePointEncryptionPtrInput { + return (*restorePointEncryptionPtrType)(v) +} + +func (*restorePointEncryptionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointEncryption)(nil)).Elem() +} + +func (i *restorePointEncryptionPtrType) ToRestorePointEncryptionPtrOutput() RestorePointEncryptionPtrOutput { + return i.ToRestorePointEncryptionPtrOutputWithContext(context.Background()) +} + +func (i *restorePointEncryptionPtrType) ToRestorePointEncryptionPtrOutputWithContext(ctx context.Context) RestorePointEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointEncryptionPtrOutput) +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +type RestorePointEncryptionOutput struct{ *pulumi.OutputState } + +func (RestorePointEncryptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointEncryption)(nil)).Elem() +} + +func (o RestorePointEncryptionOutput) ToRestorePointEncryptionOutput() RestorePointEncryptionOutput { + return o +} + +func (o RestorePointEncryptionOutput) ToRestorePointEncryptionOutputWithContext(ctx context.Context) RestorePointEncryptionOutput { + return o +} + +func (o RestorePointEncryptionOutput) ToRestorePointEncryptionPtrOutput() RestorePointEncryptionPtrOutput { + return o.ToRestorePointEncryptionPtrOutputWithContext(context.Background()) +} + +func (o RestorePointEncryptionOutput) ToRestorePointEncryptionPtrOutputWithContext(ctx context.Context) RestorePointEncryptionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePointEncryption) *RestorePointEncryption { + return &v + }).(RestorePointEncryptionPtrOutput) +} + +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +func (o RestorePointEncryptionOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrOutput { + return o.ApplyT(func(v RestorePointEncryption) *DiskEncryptionSetParameters { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersPtrOutput) +} + +// The type of key used to encrypt the data of the disk restore point. +func (o RestorePointEncryptionOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v RestorePointEncryption) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type RestorePointEncryptionPtrOutput struct{ *pulumi.OutputState } + +func (RestorePointEncryptionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointEncryption)(nil)).Elem() +} + +func (o RestorePointEncryptionPtrOutput) ToRestorePointEncryptionPtrOutput() RestorePointEncryptionPtrOutput { + return o +} + +func (o RestorePointEncryptionPtrOutput) ToRestorePointEncryptionPtrOutputWithContext(ctx context.Context) RestorePointEncryptionPtrOutput { + return o +} + +func (o RestorePointEncryptionPtrOutput) Elem() RestorePointEncryptionOutput { + return o.ApplyT(func(v *RestorePointEncryption) RestorePointEncryption { + if v != nil { + return *v + } + var ret RestorePointEncryption + return ret + }).(RestorePointEncryptionOutput) +} + +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +func (o RestorePointEncryptionPtrOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrOutput { + return o.ApplyT(func(v *RestorePointEncryption) *DiskEncryptionSetParameters { + if v == nil { + return nil + } + return v.DiskEncryptionSet + }).(DiskEncryptionSetParametersPtrOutput) +} + +// The type of key used to encrypt the data of the disk restore point. +func (o RestorePointEncryptionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointEncryption) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +type RestorePointEncryptionResponse struct { + // Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. + DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` + // The type of key used to encrypt the data of the disk restore point. + Type *string `pulumi:"type"` +} + +// Encryption at rest settings for disk restore point. It is an optional property that can be specified in the input while creating a restore point. +type RestorePointEncryptionResponseOutput struct{ *pulumi.OutputState } + +func (RestorePointEncryptionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointEncryptionResponse)(nil)).Elem() +} + +func (o RestorePointEncryptionResponseOutput) ToRestorePointEncryptionResponseOutput() RestorePointEncryptionResponseOutput { + return o +} + +func (o RestorePointEncryptionResponseOutput) ToRestorePointEncryptionResponseOutputWithContext(ctx context.Context) RestorePointEncryptionResponseOutput { + return o +} + +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +func (o RestorePointEncryptionResponseOutput) DiskEncryptionSet() DiskEncryptionSetParametersResponsePtrOutput { + return o.ApplyT(func(v RestorePointEncryptionResponse) *DiskEncryptionSetParametersResponse { + return v.DiskEncryptionSet + }).(DiskEncryptionSetParametersResponsePtrOutput) +} + +// The type of key used to encrypt the data of the disk restore point. +func (o RestorePointEncryptionResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v RestorePointEncryptionResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type RestorePointEncryptionResponsePtrOutput struct{ *pulumi.OutputState } + +func (RestorePointEncryptionResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointEncryptionResponse)(nil)).Elem() +} + +func (o RestorePointEncryptionResponsePtrOutput) ToRestorePointEncryptionResponsePtrOutput() RestorePointEncryptionResponsePtrOutput { + return o +} + +func (o RestorePointEncryptionResponsePtrOutput) ToRestorePointEncryptionResponsePtrOutputWithContext(ctx context.Context) RestorePointEncryptionResponsePtrOutput { + return o +} + +func (o RestorePointEncryptionResponsePtrOutput) Elem() RestorePointEncryptionResponseOutput { + return o.ApplyT(func(v *RestorePointEncryptionResponse) RestorePointEncryptionResponse { + if v != nil { + return *v + } + var ret RestorePointEncryptionResponse + return ret + }).(RestorePointEncryptionResponseOutput) +} + +// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. **Note:** The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. +func (o RestorePointEncryptionResponsePtrOutput) DiskEncryptionSet() DiskEncryptionSetParametersResponsePtrOutput { + return o.ApplyT(func(v *RestorePointEncryptionResponse) *DiskEncryptionSetParametersResponse { + if v == nil { + return nil + } + return v.DiskEncryptionSet + }).(DiskEncryptionSetParametersResponsePtrOutput) +} + +// The type of key used to encrypt the data of the disk restore point. +func (o RestorePointEncryptionResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointEncryptionResponse) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// The instance view of a restore point. +type RestorePointInstanceViewResponse struct { + // The disk restore points information. + DiskRestorePoints []DiskRestorePointInstanceViewResponse `pulumi:"diskRestorePoints"` + // The resource status information. + Statuses []InstanceViewStatusResponse `pulumi:"statuses"` +} + +// The instance view of a restore point. +type RestorePointInstanceViewResponseOutput struct{ *pulumi.OutputState } + +func (RestorePointInstanceViewResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointInstanceViewResponse)(nil)).Elem() +} + +func (o RestorePointInstanceViewResponseOutput) ToRestorePointInstanceViewResponseOutput() RestorePointInstanceViewResponseOutput { + return o +} + +func (o RestorePointInstanceViewResponseOutput) ToRestorePointInstanceViewResponseOutputWithContext(ctx context.Context) RestorePointInstanceViewResponseOutput { + return o +} + +// The disk restore points information. +func (o RestorePointInstanceViewResponseOutput) DiskRestorePoints() DiskRestorePointInstanceViewResponseArrayOutput { + return o.ApplyT(func(v RestorePointInstanceViewResponse) []DiskRestorePointInstanceViewResponse { + return v.DiskRestorePoints + }).(DiskRestorePointInstanceViewResponseArrayOutput) +} + +// The resource status information. +func (o RestorePointInstanceViewResponseOutput) Statuses() InstanceViewStatusResponseArrayOutput { + return o.ApplyT(func(v RestorePointInstanceViewResponse) []InstanceViewStatusResponse { return v.Statuses }).(InstanceViewStatusResponseArrayOutput) +} + // Restore Point details. type RestorePointResponse struct { - // Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. - ConsistencyMode string `pulumi:"consistencyMode"` + // ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. + ConsistencyMode *string `pulumi:"consistencyMode"` // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. ExcludeDisks []ApiEntityReferenceResponse `pulumi:"excludeDisks"` // Resource Id Id string `pulumi:"id"` + // The restore point instance view. + InstanceView RestorePointInstanceViewResponse `pulumi:"instanceView"` // Resource name Name string `pulumi:"name"` // Gets the provisioning state of the restore point. ProvisioningState string `pulumi:"provisioningState"` // Gets the details of the VM captured at the time of the restore point creation. - SourceMetadata RestorePointSourceMetadataResponse `pulumi:"sourceMetadata"` + SourceMetadata *RestorePointSourceMetadataResponse `pulumi:"sourceMetadata"` + // Resource Id of the source restore point from which a copy needs to be created. + SourceRestorePoint *ApiEntityReferenceResponse `pulumi:"sourceRestorePoint"` // Gets the creation time of the restore point. TimeCreated *string `pulumi:"timeCreated"` // Resource type @@ -20266,9 +25772,9 @@ func (o RestorePointResponseOutput) ToRestorePointResponseOutputWithContext(ctx return o } -// Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. -func (o RestorePointResponseOutput) ConsistencyMode() pulumi.StringOutput { - return o.ApplyT(func(v RestorePointResponse) string { return v.ConsistencyMode }).(pulumi.StringOutput) +// ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. +func (o RestorePointResponseOutput) ConsistencyMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RestorePointResponse) *string { return v.ConsistencyMode }).(pulumi.StringPtrOutput) } // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. @@ -20281,6 +25787,11 @@ func (o RestorePointResponseOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v RestorePointResponse) string { return v.Id }).(pulumi.StringOutput) } +// The restore point instance view. +func (o RestorePointResponseOutput) InstanceView() RestorePointInstanceViewResponseOutput { + return o.ApplyT(func(v RestorePointResponse) RestorePointInstanceViewResponse { return v.InstanceView }).(RestorePointInstanceViewResponseOutput) +} + // Resource name func (o RestorePointResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v RestorePointResponse) string { return v.Name }).(pulumi.StringOutput) @@ -20292,8 +25803,13 @@ func (o RestorePointResponseOutput) ProvisioningState() pulumi.StringOutput { } // Gets the details of the VM captured at the time of the restore point creation. -func (o RestorePointResponseOutput) SourceMetadata() RestorePointSourceMetadataResponseOutput { - return o.ApplyT(func(v RestorePointResponse) RestorePointSourceMetadataResponse { return v.SourceMetadata }).(RestorePointSourceMetadataResponseOutput) +func (o RestorePointResponseOutput) SourceMetadata() RestorePointSourceMetadataResponsePtrOutput { + return o.ApplyT(func(v RestorePointResponse) *RestorePointSourceMetadataResponse { return v.SourceMetadata }).(RestorePointSourceMetadataResponsePtrOutput) +} + +// Resource Id of the source restore point from which a copy needs to be created. +func (o RestorePointResponseOutput) SourceRestorePoint() ApiEntityReferenceResponsePtrOutput { + return o.ApplyT(func(v RestorePointResponse) *ApiEntityReferenceResponse { return v.SourceRestorePoint }).(ApiEntityReferenceResponsePtrOutput) } // Gets the creation time of the restore point. @@ -20326,24 +25842,168 @@ func (o RestorePointResponseArrayOutput) Index(i pulumi.IntInput) RestorePointRe }).(RestorePointResponseOutput) } +// Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation. +type RestorePointSourceMetadata struct { + // Gets the storage profile. + StorageProfile *RestorePointSourceVMStorageProfile `pulumi:"storageProfile"` +} + +// RestorePointSourceMetadataInput is an input type that accepts RestorePointSourceMetadataArgs and RestorePointSourceMetadataOutput values. +// You can construct a concrete instance of `RestorePointSourceMetadataInput` via: +// +// RestorePointSourceMetadataArgs{...} +type RestorePointSourceMetadataInput interface { + pulumi.Input + + ToRestorePointSourceMetadataOutput() RestorePointSourceMetadataOutput + ToRestorePointSourceMetadataOutputWithContext(context.Context) RestorePointSourceMetadataOutput +} + +// Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation. +type RestorePointSourceMetadataArgs struct { + // Gets the storage profile. + StorageProfile RestorePointSourceVMStorageProfilePtrInput `pulumi:"storageProfile"` +} + +func (RestorePointSourceMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceMetadata)(nil)).Elem() +} + +func (i RestorePointSourceMetadataArgs) ToRestorePointSourceMetadataOutput() RestorePointSourceMetadataOutput { + return i.ToRestorePointSourceMetadataOutputWithContext(context.Background()) +} + +func (i RestorePointSourceMetadataArgs) ToRestorePointSourceMetadataOutputWithContext(ctx context.Context) RestorePointSourceMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceMetadataOutput) +} + +func (i RestorePointSourceMetadataArgs) ToRestorePointSourceMetadataPtrOutput() RestorePointSourceMetadataPtrOutput { + return i.ToRestorePointSourceMetadataPtrOutputWithContext(context.Background()) +} + +func (i RestorePointSourceMetadataArgs) ToRestorePointSourceMetadataPtrOutputWithContext(ctx context.Context) RestorePointSourceMetadataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceMetadataOutput).ToRestorePointSourceMetadataPtrOutputWithContext(ctx) +} + +// RestorePointSourceMetadataPtrInput is an input type that accepts RestorePointSourceMetadataArgs, RestorePointSourceMetadataPtr and RestorePointSourceMetadataPtrOutput values. +// You can construct a concrete instance of `RestorePointSourceMetadataPtrInput` via: +// +// RestorePointSourceMetadataArgs{...} +// +// or: +// +// nil +type RestorePointSourceMetadataPtrInput interface { + pulumi.Input + + ToRestorePointSourceMetadataPtrOutput() RestorePointSourceMetadataPtrOutput + ToRestorePointSourceMetadataPtrOutputWithContext(context.Context) RestorePointSourceMetadataPtrOutput +} + +type restorePointSourceMetadataPtrType RestorePointSourceMetadataArgs + +func RestorePointSourceMetadataPtr(v *RestorePointSourceMetadataArgs) RestorePointSourceMetadataPtrInput { + return (*restorePointSourceMetadataPtrType)(v) +} + +func (*restorePointSourceMetadataPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceMetadata)(nil)).Elem() +} + +func (i *restorePointSourceMetadataPtrType) ToRestorePointSourceMetadataPtrOutput() RestorePointSourceMetadataPtrOutput { + return i.ToRestorePointSourceMetadataPtrOutputWithContext(context.Background()) +} + +func (i *restorePointSourceMetadataPtrType) ToRestorePointSourceMetadataPtrOutputWithContext(ctx context.Context) RestorePointSourceMetadataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceMetadataPtrOutput) +} + +// Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation. +type RestorePointSourceMetadataOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceMetadata)(nil)).Elem() +} + +func (o RestorePointSourceMetadataOutput) ToRestorePointSourceMetadataOutput() RestorePointSourceMetadataOutput { + return o +} + +func (o RestorePointSourceMetadataOutput) ToRestorePointSourceMetadataOutputWithContext(ctx context.Context) RestorePointSourceMetadataOutput { + return o +} + +func (o RestorePointSourceMetadataOutput) ToRestorePointSourceMetadataPtrOutput() RestorePointSourceMetadataPtrOutput { + return o.ToRestorePointSourceMetadataPtrOutputWithContext(context.Background()) +} + +func (o RestorePointSourceMetadataOutput) ToRestorePointSourceMetadataPtrOutputWithContext(ctx context.Context) RestorePointSourceMetadataPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePointSourceMetadata) *RestorePointSourceMetadata { + return &v + }).(RestorePointSourceMetadataPtrOutput) +} + +// Gets the storage profile. +func (o RestorePointSourceMetadataOutput) StorageProfile() RestorePointSourceVMStorageProfilePtrOutput { + return o.ApplyT(func(v RestorePointSourceMetadata) *RestorePointSourceVMStorageProfile { return v.StorageProfile }).(RestorePointSourceVMStorageProfilePtrOutput) +} + +type RestorePointSourceMetadataPtrOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceMetadataPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceMetadata)(nil)).Elem() +} + +func (o RestorePointSourceMetadataPtrOutput) ToRestorePointSourceMetadataPtrOutput() RestorePointSourceMetadataPtrOutput { + return o +} + +func (o RestorePointSourceMetadataPtrOutput) ToRestorePointSourceMetadataPtrOutputWithContext(ctx context.Context) RestorePointSourceMetadataPtrOutput { + return o +} + +func (o RestorePointSourceMetadataPtrOutput) Elem() RestorePointSourceMetadataOutput { + return o.ApplyT(func(v *RestorePointSourceMetadata) RestorePointSourceMetadata { + if v != nil { + return *v + } + var ret RestorePointSourceMetadata + return ret + }).(RestorePointSourceMetadataOutput) +} + +// Gets the storage profile. +func (o RestorePointSourceMetadataPtrOutput) StorageProfile() RestorePointSourceVMStorageProfilePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadata) *RestorePointSourceVMStorageProfile { + if v == nil { + return nil + } + return v.StorageProfile + }).(RestorePointSourceVMStorageProfilePtrOutput) +} + // Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation. type RestorePointSourceMetadataResponse struct { // Gets the diagnostics profile. - DiagnosticsProfile *DiagnosticsProfileResponse `pulumi:"diagnosticsProfile"` + DiagnosticsProfile DiagnosticsProfileResponse `pulumi:"diagnosticsProfile"` // Gets the hardware profile. - HardwareProfile *HardwareProfileResponse `pulumi:"hardwareProfile"` + HardwareProfile HardwareProfileResponse `pulumi:"hardwareProfile"` + // HyperVGeneration of the source VM for which restore point is captured. + HyperVGeneration string `pulumi:"hyperVGeneration"` // Gets the license type, which is for bring your own license scenario. - LicenseType *string `pulumi:"licenseType"` + LicenseType string `pulumi:"licenseType"` // Location of the VM from which the restore point was created. - Location *string `pulumi:"location"` + Location string `pulumi:"location"` // Gets the OS profile. - OsProfile *OSProfileResponse `pulumi:"osProfile"` + OsProfile OSProfileResponse `pulumi:"osProfile"` // Gets the security profile. - SecurityProfile *SecurityProfileResponse `pulumi:"securityProfile"` + SecurityProfile SecurityProfileResponse `pulumi:"securityProfile"` // Gets the storage profile. StorageProfile *RestorePointSourceVMStorageProfileResponse `pulumi:"storageProfile"` + // UserData associated with the source VM for which restore point is captured, which is a base-64 encoded value. + UserData string `pulumi:"userData"` // Gets the virtual machine unique id. - VmId *string `pulumi:"vmId"` + VmId string `pulumi:"vmId"` } // Describes the properties of the Virtual Machine for which the restore point was created. The properties provided are a subset and the snapshot of the overall Virtual Machine properties captured at the time of the restore point creation. @@ -20362,33 +26022,38 @@ func (o RestorePointSourceMetadataResponseOutput) ToRestorePointSourceMetadataRe } // Gets the diagnostics profile. -func (o RestorePointSourceMetadataResponseOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *DiagnosticsProfileResponse { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) +func (o RestorePointSourceMetadataResponseOutput) DiagnosticsProfile() DiagnosticsProfileResponseOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) DiagnosticsProfileResponse { return v.DiagnosticsProfile }).(DiagnosticsProfileResponseOutput) } // Gets the hardware profile. -func (o RestorePointSourceMetadataResponseOutput) HardwareProfile() HardwareProfileResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *HardwareProfileResponse { return v.HardwareProfile }).(HardwareProfileResponsePtrOutput) +func (o RestorePointSourceMetadataResponseOutput) HardwareProfile() HardwareProfileResponseOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) HardwareProfileResponse { return v.HardwareProfile }).(HardwareProfileResponseOutput) +} + +// HyperVGeneration of the source VM for which restore point is captured. +func (o RestorePointSourceMetadataResponseOutput) HyperVGeneration() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) string { return v.HyperVGeneration }).(pulumi.StringOutput) } // Gets the license type, which is for bring your own license scenario. -func (o RestorePointSourceMetadataResponseOutput) LicenseType() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *string { return v.LicenseType }).(pulumi.StringPtrOutput) +func (o RestorePointSourceMetadataResponseOutput) LicenseType() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) string { return v.LicenseType }).(pulumi.StringOutput) } // Location of the VM from which the restore point was created. -func (o RestorePointSourceMetadataResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +func (o RestorePointSourceMetadataResponseOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) string { return v.Location }).(pulumi.StringOutput) } // Gets the OS profile. -func (o RestorePointSourceMetadataResponseOutput) OsProfile() OSProfileResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *OSProfileResponse { return v.OsProfile }).(OSProfileResponsePtrOutput) +func (o RestorePointSourceMetadataResponseOutput) OsProfile() OSProfileResponseOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) OSProfileResponse { return v.OsProfile }).(OSProfileResponseOutput) } // Gets the security profile. -func (o RestorePointSourceMetadataResponseOutput) SecurityProfile() SecurityProfileResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *SecurityProfileResponse { return v.SecurityProfile }).(SecurityProfileResponsePtrOutput) +func (o RestorePointSourceMetadataResponseOutput) SecurityProfile() SecurityProfileResponseOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) SecurityProfileResponse { return v.SecurityProfile }).(SecurityProfileResponseOutput) } // Gets the storage profile. @@ -20398,25 +26063,265 @@ func (o RestorePointSourceMetadataResponseOutput) StorageProfile() RestorePointS }).(RestorePointSourceVMStorageProfileResponsePtrOutput) } +// UserData associated with the source VM for which restore point is captured, which is a base-64 encoded value. +func (o RestorePointSourceMetadataResponseOutput) UserData() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) string { return v.UserData }).(pulumi.StringOutput) +} + // Gets the virtual machine unique id. -func (o RestorePointSourceMetadataResponseOutput) VmId() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceMetadataResponse) *string { return v.VmId }).(pulumi.StringPtrOutput) +func (o RestorePointSourceMetadataResponseOutput) VmId() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceMetadataResponse) string { return v.VmId }).(pulumi.StringOutput) +} + +type RestorePointSourceMetadataResponsePtrOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceMetadataResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceMetadataResponse)(nil)).Elem() +} + +func (o RestorePointSourceMetadataResponsePtrOutput) ToRestorePointSourceMetadataResponsePtrOutput() RestorePointSourceMetadataResponsePtrOutput { + return o +} + +func (o RestorePointSourceMetadataResponsePtrOutput) ToRestorePointSourceMetadataResponsePtrOutputWithContext(ctx context.Context) RestorePointSourceMetadataResponsePtrOutput { + return o +} + +func (o RestorePointSourceMetadataResponsePtrOutput) Elem() RestorePointSourceMetadataResponseOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) RestorePointSourceMetadataResponse { + if v != nil { + return *v + } + var ret RestorePointSourceMetadataResponse + return ret + }).(RestorePointSourceMetadataResponseOutput) +} + +// Gets the diagnostics profile. +func (o RestorePointSourceMetadataResponsePtrOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *DiagnosticsProfileResponse { + if v == nil { + return nil + } + return &v.DiagnosticsProfile + }).(DiagnosticsProfileResponsePtrOutput) +} + +// Gets the hardware profile. +func (o RestorePointSourceMetadataResponsePtrOutput) HardwareProfile() HardwareProfileResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *HardwareProfileResponse { + if v == nil { + return nil + } + return &v.HardwareProfile + }).(HardwareProfileResponsePtrOutput) +} + +// HyperVGeneration of the source VM for which restore point is captured. +func (o RestorePointSourceMetadataResponsePtrOutput) HyperVGeneration() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *string { + if v == nil { + return nil + } + return &v.HyperVGeneration + }).(pulumi.StringPtrOutput) +} + +// Gets the license type, which is for bring your own license scenario. +func (o RestorePointSourceMetadataResponsePtrOutput) LicenseType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *string { + if v == nil { + return nil + } + return &v.LicenseType + }).(pulumi.StringPtrOutput) +} + +// Location of the VM from which the restore point was created. +func (o RestorePointSourceMetadataResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *string { + if v == nil { + return nil + } + return &v.Location + }).(pulumi.StringPtrOutput) +} + +// Gets the OS profile. +func (o RestorePointSourceMetadataResponsePtrOutput) OsProfile() OSProfileResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *OSProfileResponse { + if v == nil { + return nil + } + return &v.OsProfile + }).(OSProfileResponsePtrOutput) +} + +// Gets the security profile. +func (o RestorePointSourceMetadataResponsePtrOutput) SecurityProfile() SecurityProfileResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *SecurityProfileResponse { + if v == nil { + return nil + } + return &v.SecurityProfile + }).(SecurityProfileResponsePtrOutput) +} + +// Gets the storage profile. +func (o RestorePointSourceMetadataResponsePtrOutput) StorageProfile() RestorePointSourceVMStorageProfileResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *RestorePointSourceVMStorageProfileResponse { + if v == nil { + return nil + } + return v.StorageProfile + }).(RestorePointSourceVMStorageProfileResponsePtrOutput) +} + +// UserData associated with the source VM for which restore point is captured, which is a base-64 encoded value. +func (o RestorePointSourceMetadataResponsePtrOutput) UserData() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *string { + if v == nil { + return nil + } + return &v.UserData + }).(pulumi.StringPtrOutput) +} + +// Gets the virtual machine unique id. +func (o RestorePointSourceMetadataResponsePtrOutput) VmId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePointSourceMetadataResponse) *string { + if v == nil { + return nil + } + return &v.VmId + }).(pulumi.StringPtrOutput) +} + +// Describes a data disk. +type RestorePointSourceVMDataDisk struct { + // Contains Disk Restore Point properties. + DiskRestorePoint *DiskRestorePointAttributes `pulumi:"diskRestorePoint"` + // Contains the managed disk details. + ManagedDisk *ManagedDiskParameters `pulumi:"managedDisk"` +} + +// RestorePointSourceVMDataDiskInput is an input type that accepts RestorePointSourceVMDataDiskArgs and RestorePointSourceVMDataDiskOutput values. +// You can construct a concrete instance of `RestorePointSourceVMDataDiskInput` via: +// +// RestorePointSourceVMDataDiskArgs{...} +type RestorePointSourceVMDataDiskInput interface { + pulumi.Input + + ToRestorePointSourceVMDataDiskOutput() RestorePointSourceVMDataDiskOutput + ToRestorePointSourceVMDataDiskOutputWithContext(context.Context) RestorePointSourceVMDataDiskOutput +} + +// Describes a data disk. +type RestorePointSourceVMDataDiskArgs struct { + // Contains Disk Restore Point properties. + DiskRestorePoint DiskRestorePointAttributesPtrInput `pulumi:"diskRestorePoint"` + // Contains the managed disk details. + ManagedDisk ManagedDiskParametersPtrInput `pulumi:"managedDisk"` +} + +func (RestorePointSourceVMDataDiskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMDataDisk)(nil)).Elem() +} + +func (i RestorePointSourceVMDataDiskArgs) ToRestorePointSourceVMDataDiskOutput() RestorePointSourceVMDataDiskOutput { + return i.ToRestorePointSourceVMDataDiskOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMDataDiskArgs) ToRestorePointSourceVMDataDiskOutputWithContext(ctx context.Context) RestorePointSourceVMDataDiskOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMDataDiskOutput) +} + +// RestorePointSourceVMDataDiskArrayInput is an input type that accepts RestorePointSourceVMDataDiskArray and RestorePointSourceVMDataDiskArrayOutput values. +// You can construct a concrete instance of `RestorePointSourceVMDataDiskArrayInput` via: +// +// RestorePointSourceVMDataDiskArray{ RestorePointSourceVMDataDiskArgs{...} } +type RestorePointSourceVMDataDiskArrayInput interface { + pulumi.Input + + ToRestorePointSourceVMDataDiskArrayOutput() RestorePointSourceVMDataDiskArrayOutput + ToRestorePointSourceVMDataDiskArrayOutputWithContext(context.Context) RestorePointSourceVMDataDiskArrayOutput +} + +type RestorePointSourceVMDataDiskArray []RestorePointSourceVMDataDiskInput + +func (RestorePointSourceVMDataDiskArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RestorePointSourceVMDataDisk)(nil)).Elem() +} + +func (i RestorePointSourceVMDataDiskArray) ToRestorePointSourceVMDataDiskArrayOutput() RestorePointSourceVMDataDiskArrayOutput { + return i.ToRestorePointSourceVMDataDiskArrayOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMDataDiskArray) ToRestorePointSourceVMDataDiskArrayOutputWithContext(ctx context.Context) RestorePointSourceVMDataDiskArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMDataDiskArrayOutput) +} + +// Describes a data disk. +type RestorePointSourceVMDataDiskOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMDataDiskOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMDataDisk)(nil)).Elem() +} + +func (o RestorePointSourceVMDataDiskOutput) ToRestorePointSourceVMDataDiskOutput() RestorePointSourceVMDataDiskOutput { + return o +} + +func (o RestorePointSourceVMDataDiskOutput) ToRestorePointSourceVMDataDiskOutputWithContext(ctx context.Context) RestorePointSourceVMDataDiskOutput { + return o +} + +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMDataDiskOutput) DiskRestorePoint() DiskRestorePointAttributesPtrOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDisk) *DiskRestorePointAttributes { return v.DiskRestorePoint }).(DiskRestorePointAttributesPtrOutput) +} + +// Contains the managed disk details. +func (o RestorePointSourceVMDataDiskOutput) ManagedDisk() ManagedDiskParametersPtrOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDisk) *ManagedDiskParameters { return v.ManagedDisk }).(ManagedDiskParametersPtrOutput) +} + +type RestorePointSourceVMDataDiskArrayOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMDataDiskArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RestorePointSourceVMDataDisk)(nil)).Elem() +} + +func (o RestorePointSourceVMDataDiskArrayOutput) ToRestorePointSourceVMDataDiskArrayOutput() RestorePointSourceVMDataDiskArrayOutput { + return o +} + +func (o RestorePointSourceVMDataDiskArrayOutput) ToRestorePointSourceVMDataDiskArrayOutputWithContext(ctx context.Context) RestorePointSourceVMDataDiskArrayOutput { + return o +} + +func (o RestorePointSourceVMDataDiskArrayOutput) Index(i pulumi.IntInput) RestorePointSourceVMDataDiskOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RestorePointSourceVMDataDisk { + return vs[0].([]RestorePointSourceVMDataDisk)[vs[1].(int)] + }).(RestorePointSourceVMDataDiskOutput) } // Describes a data disk. type RestorePointSourceVMDataDiskResponse struct { // Gets the caching type. - Caching *string `pulumi:"caching"` - // Gets the disk restore point Id. - DiskRestorePoint *ApiEntityReferenceResponse `pulumi:"diskRestorePoint"` + Caching string `pulumi:"caching"` + // Contains Disk Restore Point properties. + DiskRestorePoint *DiskRestorePointAttributesResponse `pulumi:"diskRestorePoint"` // Gets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks. - DiskSizeGB *int `pulumi:"diskSizeGB"` + DiskSizeGB int `pulumi:"diskSizeGB"` // Gets the logical unit number. - Lun *int `pulumi:"lun"` - // Gets the managed disk details + Lun int `pulumi:"lun"` + // Contains the managed disk details. ManagedDisk *ManagedDiskParametersResponse `pulumi:"managedDisk"` // Gets the disk name. - Name *string `pulumi:"name"` + Name string `pulumi:"name"` + // Shows true if the disk is write-accelerator enabled. + WriteAcceleratorEnabled bool `pulumi:"writeAcceleratorEnabled"` } // Describes a data disk. @@ -20435,33 +26340,40 @@ func (o RestorePointSourceVMDataDiskResponseOutput) ToRestorePointSourceVMDataDi } // Gets the caching type. -func (o RestorePointSourceVMDataDiskResponseOutput) Caching() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) +func (o RestorePointSourceVMDataDiskResponseOutput) Caching() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) string { return v.Caching }).(pulumi.StringOutput) } -// Gets the disk restore point Id. -func (o RestorePointSourceVMDataDiskResponseOutput) DiskRestorePoint() ApiEntityReferenceResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *ApiEntityReferenceResponse { return v.DiskRestorePoint }).(ApiEntityReferenceResponsePtrOutput) +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMDataDiskResponseOutput) DiskRestorePoint() DiskRestorePointAttributesResponsePtrOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *DiskRestorePointAttributesResponse { + return v.DiskRestorePoint + }).(DiskRestorePointAttributesResponsePtrOutput) } // Gets the initial disk size in GB for blank data disks, and the new desired size for existing OS and Data disks. -func (o RestorePointSourceVMDataDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) +func (o RestorePointSourceVMDataDiskResponseOutput) DiskSizeGB() pulumi.IntOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) int { return v.DiskSizeGB }).(pulumi.IntOutput) } // Gets the logical unit number. -func (o RestorePointSourceVMDataDiskResponseOutput) Lun() pulumi.IntPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *int { return v.Lun }).(pulumi.IntPtrOutput) +func (o RestorePointSourceVMDataDiskResponseOutput) Lun() pulumi.IntOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) int { return v.Lun }).(pulumi.IntOutput) } -// Gets the managed disk details +// Contains the managed disk details. func (o RestorePointSourceVMDataDiskResponseOutput) ManagedDisk() ManagedDiskParametersResponsePtrOutput { return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *ManagedDiskParametersResponse { return v.ManagedDisk }).(ManagedDiskParametersResponsePtrOutput) } // Gets the disk name. -func (o RestorePointSourceVMDataDiskResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o RestorePointSourceVMDataDiskResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Shows true if the disk is write-accelerator enabled. +func (o RestorePointSourceVMDataDiskResponseOutput) WriteAcceleratorEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v RestorePointSourceVMDataDiskResponse) bool { return v.WriteAcceleratorEnabled }).(pulumi.BoolOutput) } type RestorePointSourceVMDataDiskResponseArrayOutput struct{ *pulumi.OutputState } @@ -20484,22 +26396,183 @@ func (o RestorePointSourceVMDataDiskResponseArrayOutput) Index(i pulumi.IntInput }).(RestorePointSourceVMDataDiskResponseOutput) } +// Describes an Operating System disk. +type RestorePointSourceVMOSDisk struct { + // Contains Disk Restore Point properties. + DiskRestorePoint *DiskRestorePointAttributes `pulumi:"diskRestorePoint"` + // Gets the managed disk details + ManagedDisk *ManagedDiskParameters `pulumi:"managedDisk"` +} + +// RestorePointSourceVMOSDiskInput is an input type that accepts RestorePointSourceVMOSDiskArgs and RestorePointSourceVMOSDiskOutput values. +// You can construct a concrete instance of `RestorePointSourceVMOSDiskInput` via: +// +// RestorePointSourceVMOSDiskArgs{...} +type RestorePointSourceVMOSDiskInput interface { + pulumi.Input + + ToRestorePointSourceVMOSDiskOutput() RestorePointSourceVMOSDiskOutput + ToRestorePointSourceVMOSDiskOutputWithContext(context.Context) RestorePointSourceVMOSDiskOutput +} + +// Describes an Operating System disk. +type RestorePointSourceVMOSDiskArgs struct { + // Contains Disk Restore Point properties. + DiskRestorePoint DiskRestorePointAttributesPtrInput `pulumi:"diskRestorePoint"` + // Gets the managed disk details + ManagedDisk ManagedDiskParametersPtrInput `pulumi:"managedDisk"` +} + +func (RestorePointSourceVMOSDiskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMOSDisk)(nil)).Elem() +} + +func (i RestorePointSourceVMOSDiskArgs) ToRestorePointSourceVMOSDiskOutput() RestorePointSourceVMOSDiskOutput { + return i.ToRestorePointSourceVMOSDiskOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMOSDiskArgs) ToRestorePointSourceVMOSDiskOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMOSDiskOutput) +} + +func (i RestorePointSourceVMOSDiskArgs) ToRestorePointSourceVMOSDiskPtrOutput() RestorePointSourceVMOSDiskPtrOutput { + return i.ToRestorePointSourceVMOSDiskPtrOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMOSDiskArgs) ToRestorePointSourceVMOSDiskPtrOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMOSDiskOutput).ToRestorePointSourceVMOSDiskPtrOutputWithContext(ctx) +} + +// RestorePointSourceVMOSDiskPtrInput is an input type that accepts RestorePointSourceVMOSDiskArgs, RestorePointSourceVMOSDiskPtr and RestorePointSourceVMOSDiskPtrOutput values. +// You can construct a concrete instance of `RestorePointSourceVMOSDiskPtrInput` via: +// +// RestorePointSourceVMOSDiskArgs{...} +// +// or: +// +// nil +type RestorePointSourceVMOSDiskPtrInput interface { + pulumi.Input + + ToRestorePointSourceVMOSDiskPtrOutput() RestorePointSourceVMOSDiskPtrOutput + ToRestorePointSourceVMOSDiskPtrOutputWithContext(context.Context) RestorePointSourceVMOSDiskPtrOutput +} + +type restorePointSourceVMOSDiskPtrType RestorePointSourceVMOSDiskArgs + +func RestorePointSourceVMOSDiskPtr(v *RestorePointSourceVMOSDiskArgs) RestorePointSourceVMOSDiskPtrInput { + return (*restorePointSourceVMOSDiskPtrType)(v) +} + +func (*restorePointSourceVMOSDiskPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceVMOSDisk)(nil)).Elem() +} + +func (i *restorePointSourceVMOSDiskPtrType) ToRestorePointSourceVMOSDiskPtrOutput() RestorePointSourceVMOSDiskPtrOutput { + return i.ToRestorePointSourceVMOSDiskPtrOutputWithContext(context.Background()) +} + +func (i *restorePointSourceVMOSDiskPtrType) ToRestorePointSourceVMOSDiskPtrOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMOSDiskPtrOutput) +} + +// Describes an Operating System disk. +type RestorePointSourceVMOSDiskOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMOSDiskOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMOSDisk)(nil)).Elem() +} + +func (o RestorePointSourceVMOSDiskOutput) ToRestorePointSourceVMOSDiskOutput() RestorePointSourceVMOSDiskOutput { + return o +} + +func (o RestorePointSourceVMOSDiskOutput) ToRestorePointSourceVMOSDiskOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskOutput { + return o +} + +func (o RestorePointSourceVMOSDiskOutput) ToRestorePointSourceVMOSDiskPtrOutput() RestorePointSourceVMOSDiskPtrOutput { + return o.ToRestorePointSourceVMOSDiskPtrOutputWithContext(context.Background()) +} + +func (o RestorePointSourceVMOSDiskOutput) ToRestorePointSourceVMOSDiskPtrOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePointSourceVMOSDisk) *RestorePointSourceVMOSDisk { + return &v + }).(RestorePointSourceVMOSDiskPtrOutput) +} + +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMOSDiskOutput) DiskRestorePoint() DiskRestorePointAttributesPtrOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDisk) *DiskRestorePointAttributes { return v.DiskRestorePoint }).(DiskRestorePointAttributesPtrOutput) +} + +// Gets the managed disk details +func (o RestorePointSourceVMOSDiskOutput) ManagedDisk() ManagedDiskParametersPtrOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDisk) *ManagedDiskParameters { return v.ManagedDisk }).(ManagedDiskParametersPtrOutput) +} + +type RestorePointSourceVMOSDiskPtrOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMOSDiskPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceVMOSDisk)(nil)).Elem() +} + +func (o RestorePointSourceVMOSDiskPtrOutput) ToRestorePointSourceVMOSDiskPtrOutput() RestorePointSourceVMOSDiskPtrOutput { + return o +} + +func (o RestorePointSourceVMOSDiskPtrOutput) ToRestorePointSourceVMOSDiskPtrOutputWithContext(ctx context.Context) RestorePointSourceVMOSDiskPtrOutput { + return o +} + +func (o RestorePointSourceVMOSDiskPtrOutput) Elem() RestorePointSourceVMOSDiskOutput { + return o.ApplyT(func(v *RestorePointSourceVMOSDisk) RestorePointSourceVMOSDisk { + if v != nil { + return *v + } + var ret RestorePointSourceVMOSDisk + return ret + }).(RestorePointSourceVMOSDiskOutput) +} + +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMOSDiskPtrOutput) DiskRestorePoint() DiskRestorePointAttributesPtrOutput { + return o.ApplyT(func(v *RestorePointSourceVMOSDisk) *DiskRestorePointAttributes { + if v == nil { + return nil + } + return v.DiskRestorePoint + }).(DiskRestorePointAttributesPtrOutput) +} + +// Gets the managed disk details +func (o RestorePointSourceVMOSDiskPtrOutput) ManagedDisk() ManagedDiskParametersPtrOutput { + return o.ApplyT(func(v *RestorePointSourceVMOSDisk) *ManagedDiskParameters { + if v == nil { + return nil + } + return v.ManagedDisk + }).(ManagedDiskParametersPtrOutput) +} + // Describes an Operating System disk. type RestorePointSourceVMOSDiskResponse struct { // Gets the caching type. - Caching *string `pulumi:"caching"` - // Gets the disk restore point Id. - DiskRestorePoint *ApiEntityReferenceResponse `pulumi:"diskRestorePoint"` + Caching string `pulumi:"caching"` + // Contains Disk Restore Point properties. + DiskRestorePoint *DiskRestorePointAttributesResponse `pulumi:"diskRestorePoint"` // Gets the disk size in GB. - DiskSizeGB *int `pulumi:"diskSizeGB"` + DiskSizeGB int `pulumi:"diskSizeGB"` // Gets the disk encryption settings. - EncryptionSettings *DiskEncryptionSettingsResponse `pulumi:"encryptionSettings"` + EncryptionSettings DiskEncryptionSettingsResponse `pulumi:"encryptionSettings"` // Gets the managed disk details ManagedDisk *ManagedDiskParametersResponse `pulumi:"managedDisk"` // Gets the disk name. - Name *string `pulumi:"name"` + Name string `pulumi:"name"` // Gets the Operating System type. - OsType *string `pulumi:"osType"` + OsType string `pulumi:"osType"` + // Shows true if the disk is write-accelerator enabled. + WriteAcceleratorEnabled bool `pulumi:"writeAcceleratorEnabled"` } // Describes an Operating System disk. @@ -20518,25 +26591,25 @@ func (o RestorePointSourceVMOSDiskResponseOutput) ToRestorePointSourceVMOSDiskRe } // Gets the caching type. -func (o RestorePointSourceVMOSDiskResponseOutput) Caching() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) +func (o RestorePointSourceVMOSDiskResponseOutput) Caching() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) string { return v.Caching }).(pulumi.StringOutput) } -// Gets the disk restore point Id. -func (o RestorePointSourceVMOSDiskResponseOutput) DiskRestorePoint() ApiEntityReferenceResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *ApiEntityReferenceResponse { return v.DiskRestorePoint }).(ApiEntityReferenceResponsePtrOutput) +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMOSDiskResponseOutput) DiskRestorePoint() DiskRestorePointAttributesResponsePtrOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *DiskRestorePointAttributesResponse { + return v.DiskRestorePoint + }).(DiskRestorePointAttributesResponsePtrOutput) } // Gets the disk size in GB. -func (o RestorePointSourceVMOSDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) +func (o RestorePointSourceVMOSDiskResponseOutput) DiskSizeGB() pulumi.IntOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) int { return v.DiskSizeGB }).(pulumi.IntOutput) } // Gets the disk encryption settings. -func (o RestorePointSourceVMOSDiskResponseOutput) EncryptionSettings() DiskEncryptionSettingsResponsePtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *DiskEncryptionSettingsResponse { - return v.EncryptionSettings - }).(DiskEncryptionSettingsResponsePtrOutput) +func (o RestorePointSourceVMOSDiskResponseOutput) EncryptionSettings() DiskEncryptionSettingsResponseOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) DiskEncryptionSettingsResponse { return v.EncryptionSettings }).(DiskEncryptionSettingsResponseOutput) } // Gets the managed disk details @@ -20545,13 +26618,18 @@ func (o RestorePointSourceVMOSDiskResponseOutput) ManagedDisk() ManagedDiskParam } // Gets the disk name. -func (o RestorePointSourceVMOSDiskResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o RestorePointSourceVMOSDiskResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) string { return v.Name }).(pulumi.StringOutput) } // Gets the Operating System type. -func (o RestorePointSourceVMOSDiskResponseOutput) OsType() pulumi.StringPtrOutput { - return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) *string { return v.OsType }).(pulumi.StringPtrOutput) +func (o RestorePointSourceVMOSDiskResponseOutput) OsType() pulumi.StringOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) string { return v.OsType }).(pulumi.StringOutput) +} + +// Shows true if the disk is write-accelerator enabled. +func (o RestorePointSourceVMOSDiskResponseOutput) WriteAcceleratorEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v RestorePointSourceVMOSDiskResponse) bool { return v.WriteAcceleratorEnabled }).(pulumi.BoolOutput) } type RestorePointSourceVMOSDiskResponsePtrOutput struct{ *pulumi.OutputState } @@ -20584,18 +26662,18 @@ func (o RestorePointSourceVMOSDiskResponsePtrOutput) Caching() pulumi.StringPtrO if v == nil { return nil } - return v.Caching + return &v.Caching }).(pulumi.StringPtrOutput) } -// Gets the disk restore point Id. -func (o RestorePointSourceVMOSDiskResponsePtrOutput) DiskRestorePoint() ApiEntityReferenceResponsePtrOutput { - return o.ApplyT(func(v *RestorePointSourceVMOSDiskResponse) *ApiEntityReferenceResponse { +// Contains Disk Restore Point properties. +func (o RestorePointSourceVMOSDiskResponsePtrOutput) DiskRestorePoint() DiskRestorePointAttributesResponsePtrOutput { + return o.ApplyT(func(v *RestorePointSourceVMOSDiskResponse) *DiskRestorePointAttributesResponse { if v == nil { return nil } return v.DiskRestorePoint - }).(ApiEntityReferenceResponsePtrOutput) + }).(DiskRestorePointAttributesResponsePtrOutput) } // Gets the disk size in GB. @@ -20604,7 +26682,7 @@ func (o RestorePointSourceVMOSDiskResponsePtrOutput) DiskSizeGB() pulumi.IntPtrO if v == nil { return nil } - return v.DiskSizeGB + return &v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -20614,7 +26692,7 @@ func (o RestorePointSourceVMOSDiskResponsePtrOutput) EncryptionSettings() DiskEn if v == nil { return nil } - return v.EncryptionSettings + return &v.EncryptionSettings }).(DiskEncryptionSettingsResponsePtrOutput) } @@ -20634,7 +26712,7 @@ func (o RestorePointSourceVMOSDiskResponsePtrOutput) Name() pulumi.StringPtrOutp if v == nil { return nil } - return v.Name + return &v.Name }).(pulumi.StringPtrOutput) } @@ -20644,10 +26722,179 @@ func (o RestorePointSourceVMOSDiskResponsePtrOutput) OsType() pulumi.StringPtrOu if v == nil { return nil } - return v.OsType + return &v.OsType }).(pulumi.StringPtrOutput) } +// Shows true if the disk is write-accelerator enabled. +func (o RestorePointSourceVMOSDiskResponsePtrOutput) WriteAcceleratorEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RestorePointSourceVMOSDiskResponse) *bool { + if v == nil { + return nil + } + return &v.WriteAcceleratorEnabled + }).(pulumi.BoolPtrOutput) +} + +// Describes the storage profile. +type RestorePointSourceVMStorageProfile struct { + // Gets the data disks of the VM captured at the time of the restore point creation. + DataDisks []RestorePointSourceVMDataDisk `pulumi:"dataDisks"` + // Gets the OS disk of the VM captured at the time of the restore point creation. + OsDisk *RestorePointSourceVMOSDisk `pulumi:"osDisk"` +} + +// RestorePointSourceVMStorageProfileInput is an input type that accepts RestorePointSourceVMStorageProfileArgs and RestorePointSourceVMStorageProfileOutput values. +// You can construct a concrete instance of `RestorePointSourceVMStorageProfileInput` via: +// +// RestorePointSourceVMStorageProfileArgs{...} +type RestorePointSourceVMStorageProfileInput interface { + pulumi.Input + + ToRestorePointSourceVMStorageProfileOutput() RestorePointSourceVMStorageProfileOutput + ToRestorePointSourceVMStorageProfileOutputWithContext(context.Context) RestorePointSourceVMStorageProfileOutput +} + +// Describes the storage profile. +type RestorePointSourceVMStorageProfileArgs struct { + // Gets the data disks of the VM captured at the time of the restore point creation. + DataDisks RestorePointSourceVMDataDiskArrayInput `pulumi:"dataDisks"` + // Gets the OS disk of the VM captured at the time of the restore point creation. + OsDisk RestorePointSourceVMOSDiskPtrInput `pulumi:"osDisk"` +} + +func (RestorePointSourceVMStorageProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMStorageProfile)(nil)).Elem() +} + +func (i RestorePointSourceVMStorageProfileArgs) ToRestorePointSourceVMStorageProfileOutput() RestorePointSourceVMStorageProfileOutput { + return i.ToRestorePointSourceVMStorageProfileOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMStorageProfileArgs) ToRestorePointSourceVMStorageProfileOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMStorageProfileOutput) +} + +func (i RestorePointSourceVMStorageProfileArgs) ToRestorePointSourceVMStorageProfilePtrOutput() RestorePointSourceVMStorageProfilePtrOutput { + return i.ToRestorePointSourceVMStorageProfilePtrOutputWithContext(context.Background()) +} + +func (i RestorePointSourceVMStorageProfileArgs) ToRestorePointSourceVMStorageProfilePtrOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMStorageProfileOutput).ToRestorePointSourceVMStorageProfilePtrOutputWithContext(ctx) +} + +// RestorePointSourceVMStorageProfilePtrInput is an input type that accepts RestorePointSourceVMStorageProfileArgs, RestorePointSourceVMStorageProfilePtr and RestorePointSourceVMStorageProfilePtrOutput values. +// You can construct a concrete instance of `RestorePointSourceVMStorageProfilePtrInput` via: +// +// RestorePointSourceVMStorageProfileArgs{...} +// +// or: +// +// nil +type RestorePointSourceVMStorageProfilePtrInput interface { + pulumi.Input + + ToRestorePointSourceVMStorageProfilePtrOutput() RestorePointSourceVMStorageProfilePtrOutput + ToRestorePointSourceVMStorageProfilePtrOutputWithContext(context.Context) RestorePointSourceVMStorageProfilePtrOutput +} + +type restorePointSourceVMStorageProfilePtrType RestorePointSourceVMStorageProfileArgs + +func RestorePointSourceVMStorageProfilePtr(v *RestorePointSourceVMStorageProfileArgs) RestorePointSourceVMStorageProfilePtrInput { + return (*restorePointSourceVMStorageProfilePtrType)(v) +} + +func (*restorePointSourceVMStorageProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceVMStorageProfile)(nil)).Elem() +} + +func (i *restorePointSourceVMStorageProfilePtrType) ToRestorePointSourceVMStorageProfilePtrOutput() RestorePointSourceVMStorageProfilePtrOutput { + return i.ToRestorePointSourceVMStorageProfilePtrOutputWithContext(context.Background()) +} + +func (i *restorePointSourceVMStorageProfilePtrType) ToRestorePointSourceVMStorageProfilePtrOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePointSourceVMStorageProfilePtrOutput) +} + +// Describes the storage profile. +type RestorePointSourceVMStorageProfileOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMStorageProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePointSourceVMStorageProfile)(nil)).Elem() +} + +func (o RestorePointSourceVMStorageProfileOutput) ToRestorePointSourceVMStorageProfileOutput() RestorePointSourceVMStorageProfileOutput { + return o +} + +func (o RestorePointSourceVMStorageProfileOutput) ToRestorePointSourceVMStorageProfileOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfileOutput { + return o +} + +func (o RestorePointSourceVMStorageProfileOutput) ToRestorePointSourceVMStorageProfilePtrOutput() RestorePointSourceVMStorageProfilePtrOutput { + return o.ToRestorePointSourceVMStorageProfilePtrOutputWithContext(context.Background()) +} + +func (o RestorePointSourceVMStorageProfileOutput) ToRestorePointSourceVMStorageProfilePtrOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePointSourceVMStorageProfile) *RestorePointSourceVMStorageProfile { + return &v + }).(RestorePointSourceVMStorageProfilePtrOutput) +} + +// Gets the data disks of the VM captured at the time of the restore point creation. +func (o RestorePointSourceVMStorageProfileOutput) DataDisks() RestorePointSourceVMDataDiskArrayOutput { + return o.ApplyT(func(v RestorePointSourceVMStorageProfile) []RestorePointSourceVMDataDisk { return v.DataDisks }).(RestorePointSourceVMDataDiskArrayOutput) +} + +// Gets the OS disk of the VM captured at the time of the restore point creation. +func (o RestorePointSourceVMStorageProfileOutput) OsDisk() RestorePointSourceVMOSDiskPtrOutput { + return o.ApplyT(func(v RestorePointSourceVMStorageProfile) *RestorePointSourceVMOSDisk { return v.OsDisk }).(RestorePointSourceVMOSDiskPtrOutput) +} + +type RestorePointSourceVMStorageProfilePtrOutput struct{ *pulumi.OutputState } + +func (RestorePointSourceVMStorageProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePointSourceVMStorageProfile)(nil)).Elem() +} + +func (o RestorePointSourceVMStorageProfilePtrOutput) ToRestorePointSourceVMStorageProfilePtrOutput() RestorePointSourceVMStorageProfilePtrOutput { + return o +} + +func (o RestorePointSourceVMStorageProfilePtrOutput) ToRestorePointSourceVMStorageProfilePtrOutputWithContext(ctx context.Context) RestorePointSourceVMStorageProfilePtrOutput { + return o +} + +func (o RestorePointSourceVMStorageProfilePtrOutput) Elem() RestorePointSourceVMStorageProfileOutput { + return o.ApplyT(func(v *RestorePointSourceVMStorageProfile) RestorePointSourceVMStorageProfile { + if v != nil { + return *v + } + var ret RestorePointSourceVMStorageProfile + return ret + }).(RestorePointSourceVMStorageProfileOutput) +} + +// Gets the data disks of the VM captured at the time of the restore point creation. +func (o RestorePointSourceVMStorageProfilePtrOutput) DataDisks() RestorePointSourceVMDataDiskArrayOutput { + return o.ApplyT(func(v *RestorePointSourceVMStorageProfile) []RestorePointSourceVMDataDisk { + if v == nil { + return nil + } + return v.DataDisks + }).(RestorePointSourceVMDataDiskArrayOutput) +} + +// Gets the OS disk of the VM captured at the time of the restore point creation. +func (o RestorePointSourceVMStorageProfilePtrOutput) OsDisk() RestorePointSourceVMOSDiskPtrOutput { + return o.ApplyT(func(v *RestorePointSourceVMStorageProfile) *RestorePointSourceVMOSDisk { + if v == nil { + return nil + } + return v.OsDisk + }).(RestorePointSourceVMOSDiskPtrOutput) +} + // Describes the storage profile. type RestorePointSourceVMStorageProfileResponse struct { // Gets the data disks of the VM captured at the time of the restore point creation. @@ -20735,6 +26982,8 @@ type RollingUpgradePolicy struct { EnableCrossZoneUpgrade *bool `pulumi:"enableCrossZoneUpgrade"` // The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%. MaxBatchInstancePercent *int `pulumi:"maxBatchInstancePercent"` + // Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. + MaxSurge *bool `pulumi:"maxSurge"` // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. MaxUnhealthyInstancePercent *int `pulumi:"maxUnhealthyInstancePercent"` // The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%. @@ -20743,6 +26992,8 @@ type RollingUpgradePolicy struct { PauseTimeBetweenBatches *string `pulumi:"pauseTimeBetweenBatches"` // Upgrade all unhealthy instances in a scale set before any healthy instances. PrioritizeUnhealthyInstances *bool `pulumi:"prioritizeUnhealthyInstances"` + // Rollback failed instances to previous model if the Rolling Upgrade policy is violated. + RollbackFailedInstancesOnPolicyBreach *bool `pulumi:"rollbackFailedInstancesOnPolicyBreach"` } // RollingUpgradePolicyInput is an input type that accepts RollingUpgradePolicyArgs and RollingUpgradePolicyOutput values. @@ -20762,6 +27013,8 @@ type RollingUpgradePolicyArgs struct { EnableCrossZoneUpgrade pulumi.BoolPtrInput `pulumi:"enableCrossZoneUpgrade"` // The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%. MaxBatchInstancePercent pulumi.IntPtrInput `pulumi:"maxBatchInstancePercent"` + // Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. + MaxSurge pulumi.BoolPtrInput `pulumi:"maxSurge"` // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. MaxUnhealthyInstancePercent pulumi.IntPtrInput `pulumi:"maxUnhealthyInstancePercent"` // The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%. @@ -20770,6 +27023,8 @@ type RollingUpgradePolicyArgs struct { PauseTimeBetweenBatches pulumi.StringPtrInput `pulumi:"pauseTimeBetweenBatches"` // Upgrade all unhealthy instances in a scale set before any healthy instances. PrioritizeUnhealthyInstances pulumi.BoolPtrInput `pulumi:"prioritizeUnhealthyInstances"` + // Rollback failed instances to previous model if the Rolling Upgrade policy is violated. + RollbackFailedInstancesOnPolicyBreach pulumi.BoolPtrInput `pulumi:"rollbackFailedInstancesOnPolicyBreach"` } func (RollingUpgradePolicyArgs) ElementType() reflect.Type { @@ -20860,6 +27115,11 @@ func (o RollingUpgradePolicyOutput) MaxBatchInstancePercent() pulumi.IntPtrOutpu return o.ApplyT(func(v RollingUpgradePolicy) *int { return v.MaxBatchInstancePercent }).(pulumi.IntPtrOutput) } +// Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. +func (o RollingUpgradePolicyOutput) MaxSurge() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RollingUpgradePolicy) *bool { return v.MaxSurge }).(pulumi.BoolPtrOutput) +} + // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. func (o RollingUpgradePolicyOutput) MaxUnhealthyInstancePercent() pulumi.IntPtrOutput { return o.ApplyT(func(v RollingUpgradePolicy) *int { return v.MaxUnhealthyInstancePercent }).(pulumi.IntPtrOutput) @@ -20880,6 +27140,11 @@ func (o RollingUpgradePolicyOutput) PrioritizeUnhealthyInstances() pulumi.BoolPt return o.ApplyT(func(v RollingUpgradePolicy) *bool { return v.PrioritizeUnhealthyInstances }).(pulumi.BoolPtrOutput) } +// Rollback failed instances to previous model if the Rolling Upgrade policy is violated. +func (o RollingUpgradePolicyOutput) RollbackFailedInstancesOnPolicyBreach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RollingUpgradePolicy) *bool { return v.RollbackFailedInstancesOnPolicyBreach }).(pulumi.BoolPtrOutput) +} + type RollingUpgradePolicyPtrOutput struct{ *pulumi.OutputState } func (RollingUpgradePolicyPtrOutput) ElementType() reflect.Type { @@ -20924,6 +27189,16 @@ func (o RollingUpgradePolicyPtrOutput) MaxBatchInstancePercent() pulumi.IntPtrOu }).(pulumi.IntPtrOutput) } +// Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. +func (o RollingUpgradePolicyPtrOutput) MaxSurge() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RollingUpgradePolicy) *bool { + if v == nil { + return nil + } + return v.MaxSurge + }).(pulumi.BoolPtrOutput) +} + // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. func (o RollingUpgradePolicyPtrOutput) MaxUnhealthyInstancePercent() pulumi.IntPtrOutput { return o.ApplyT(func(v *RollingUpgradePolicy) *int { @@ -20964,12 +27239,24 @@ func (o RollingUpgradePolicyPtrOutput) PrioritizeUnhealthyInstances() pulumi.Boo }).(pulumi.BoolPtrOutput) } +// Rollback failed instances to previous model if the Rolling Upgrade policy is violated. +func (o RollingUpgradePolicyPtrOutput) RollbackFailedInstancesOnPolicyBreach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RollingUpgradePolicy) *bool { + if v == nil { + return nil + } + return v.RollbackFailedInstancesOnPolicyBreach + }).(pulumi.BoolPtrOutput) +} + // The configuration parameters used while performing a rolling upgrade. type RollingUpgradePolicyResponse struct { // Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. EnableCrossZoneUpgrade *bool `pulumi:"enableCrossZoneUpgrade"` // The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%. MaxBatchInstancePercent *int `pulumi:"maxBatchInstancePercent"` + // Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. + MaxSurge *bool `pulumi:"maxSurge"` // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. MaxUnhealthyInstancePercent *int `pulumi:"maxUnhealthyInstancePercent"` // The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The default value for this parameter is 20%. @@ -20978,6 +27265,8 @@ type RollingUpgradePolicyResponse struct { PauseTimeBetweenBatches *string `pulumi:"pauseTimeBetweenBatches"` // Upgrade all unhealthy instances in a scale set before any healthy instances. PrioritizeUnhealthyInstances *bool `pulumi:"prioritizeUnhealthyInstances"` + // Rollback failed instances to previous model if the Rolling Upgrade policy is violated. + RollbackFailedInstancesOnPolicyBreach *bool `pulumi:"rollbackFailedInstancesOnPolicyBreach"` } // The configuration parameters used while performing a rolling upgrade. @@ -21005,6 +27294,11 @@ func (o RollingUpgradePolicyResponseOutput) MaxBatchInstancePercent() pulumi.Int return o.ApplyT(func(v RollingUpgradePolicyResponse) *int { return v.MaxBatchInstancePercent }).(pulumi.IntPtrOutput) } +// Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. +func (o RollingUpgradePolicyResponseOutput) MaxSurge() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RollingUpgradePolicyResponse) *bool { return v.MaxSurge }).(pulumi.BoolPtrOutput) +} + // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. func (o RollingUpgradePolicyResponseOutput) MaxUnhealthyInstancePercent() pulumi.IntPtrOutput { return o.ApplyT(func(v RollingUpgradePolicyResponse) *int { return v.MaxUnhealthyInstancePercent }).(pulumi.IntPtrOutput) @@ -21025,6 +27319,11 @@ func (o RollingUpgradePolicyResponseOutput) PrioritizeUnhealthyInstances() pulum return o.ApplyT(func(v RollingUpgradePolicyResponse) *bool { return v.PrioritizeUnhealthyInstances }).(pulumi.BoolPtrOutput) } +// Rollback failed instances to previous model if the Rolling Upgrade policy is violated. +func (o RollingUpgradePolicyResponseOutput) RollbackFailedInstancesOnPolicyBreach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RollingUpgradePolicyResponse) *bool { return v.RollbackFailedInstancesOnPolicyBreach }).(pulumi.BoolPtrOutput) +} + type RollingUpgradePolicyResponsePtrOutput struct{ *pulumi.OutputState } func (RollingUpgradePolicyResponsePtrOutput) ElementType() reflect.Type { @@ -21069,6 +27368,16 @@ func (o RollingUpgradePolicyResponsePtrOutput) MaxBatchInstancePercent() pulumi. }).(pulumi.IntPtrOutput) } +// Create new virtual machines to upgrade the scale set, rather than updating the existing virtual machines. Existing virtual machines will be deleted once the new virtual machines are created for each batch. +func (o RollingUpgradePolicyResponsePtrOutput) MaxSurge() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RollingUpgradePolicyResponse) *bool { + if v == nil { + return nil + } + return v.MaxSurge + }).(pulumi.BoolPtrOutput) +} + // The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for this parameter is 20%. func (o RollingUpgradePolicyResponsePtrOutput) MaxUnhealthyInstancePercent() pulumi.IntPtrOutput { return o.ApplyT(func(v *RollingUpgradePolicyResponse) *int { @@ -21109,6 +27418,16 @@ func (o RollingUpgradePolicyResponsePtrOutput) PrioritizeUnhealthyInstances() pu }).(pulumi.BoolPtrOutput) } +// Rollback failed instances to previous model if the Rolling Upgrade policy is violated. +func (o RollingUpgradePolicyResponsePtrOutput) RollbackFailedInstancesOnPolicyBreach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RollingUpgradePolicyResponse) *bool { + if v == nil { + return nil + } + return v.RollbackFailedInstancesOnPolicyBreach + }).(pulumi.BoolPtrOutput) +} + // Describes the properties of a run command parameter. type RunCommandInputParameter struct { // The run command parameter name. @@ -21271,8 +27590,246 @@ func (o RunCommandInputParameterResponseArrayOutput) Index(i pulumi.IntInput) Ru }).(RunCommandInputParameterResponseOutput) } +// Contains clientId or objectId (use only one, not both) of a user-assigned managed identity that has access to storage blob used in Run Command. Use an empty RunCommandManagedIdentity object in case of system-assigned identity. Make sure the Azure storage blob exists in case of scriptUri, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment with scriptUri blob and 'Storage Blob Data Contributor' for Append blobs(outputBlobUri, errorBlobUri). In case of user assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +type RunCommandManagedIdentity struct { + // Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. + ClientId *string `pulumi:"clientId"` + // Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. + ObjectId *string `pulumi:"objectId"` +} + +// RunCommandManagedIdentityInput is an input type that accepts RunCommandManagedIdentityArgs and RunCommandManagedIdentityOutput values. +// You can construct a concrete instance of `RunCommandManagedIdentityInput` via: +// +// RunCommandManagedIdentityArgs{...} +type RunCommandManagedIdentityInput interface { + pulumi.Input + + ToRunCommandManagedIdentityOutput() RunCommandManagedIdentityOutput + ToRunCommandManagedIdentityOutputWithContext(context.Context) RunCommandManagedIdentityOutput +} + +// Contains clientId or objectId (use only one, not both) of a user-assigned managed identity that has access to storage blob used in Run Command. Use an empty RunCommandManagedIdentity object in case of system-assigned identity. Make sure the Azure storage blob exists in case of scriptUri, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment with scriptUri blob and 'Storage Blob Data Contributor' for Append blobs(outputBlobUri, errorBlobUri). In case of user assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +type RunCommandManagedIdentityArgs struct { + // Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. + ClientId pulumi.StringPtrInput `pulumi:"clientId"` + // Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. + ObjectId pulumi.StringPtrInput `pulumi:"objectId"` +} + +func (RunCommandManagedIdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RunCommandManagedIdentity)(nil)).Elem() +} + +func (i RunCommandManagedIdentityArgs) ToRunCommandManagedIdentityOutput() RunCommandManagedIdentityOutput { + return i.ToRunCommandManagedIdentityOutputWithContext(context.Background()) +} + +func (i RunCommandManagedIdentityArgs) ToRunCommandManagedIdentityOutputWithContext(ctx context.Context) RunCommandManagedIdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(RunCommandManagedIdentityOutput) +} + +func (i RunCommandManagedIdentityArgs) ToRunCommandManagedIdentityPtrOutput() RunCommandManagedIdentityPtrOutput { + return i.ToRunCommandManagedIdentityPtrOutputWithContext(context.Background()) +} + +func (i RunCommandManagedIdentityArgs) ToRunCommandManagedIdentityPtrOutputWithContext(ctx context.Context) RunCommandManagedIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RunCommandManagedIdentityOutput).ToRunCommandManagedIdentityPtrOutputWithContext(ctx) +} + +// RunCommandManagedIdentityPtrInput is an input type that accepts RunCommandManagedIdentityArgs, RunCommandManagedIdentityPtr and RunCommandManagedIdentityPtrOutput values. +// You can construct a concrete instance of `RunCommandManagedIdentityPtrInput` via: +// +// RunCommandManagedIdentityArgs{...} +// +// or: +// +// nil +type RunCommandManagedIdentityPtrInput interface { + pulumi.Input + + ToRunCommandManagedIdentityPtrOutput() RunCommandManagedIdentityPtrOutput + ToRunCommandManagedIdentityPtrOutputWithContext(context.Context) RunCommandManagedIdentityPtrOutput +} + +type runCommandManagedIdentityPtrType RunCommandManagedIdentityArgs + +func RunCommandManagedIdentityPtr(v *RunCommandManagedIdentityArgs) RunCommandManagedIdentityPtrInput { + return (*runCommandManagedIdentityPtrType)(v) +} + +func (*runCommandManagedIdentityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RunCommandManagedIdentity)(nil)).Elem() +} + +func (i *runCommandManagedIdentityPtrType) ToRunCommandManagedIdentityPtrOutput() RunCommandManagedIdentityPtrOutput { + return i.ToRunCommandManagedIdentityPtrOutputWithContext(context.Background()) +} + +func (i *runCommandManagedIdentityPtrType) ToRunCommandManagedIdentityPtrOutputWithContext(ctx context.Context) RunCommandManagedIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RunCommandManagedIdentityPtrOutput) +} + +// Contains clientId or objectId (use only one, not both) of a user-assigned managed identity that has access to storage blob used in Run Command. Use an empty RunCommandManagedIdentity object in case of system-assigned identity. Make sure the Azure storage blob exists in case of scriptUri, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment with scriptUri blob and 'Storage Blob Data Contributor' for Append blobs(outputBlobUri, errorBlobUri). In case of user assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +type RunCommandManagedIdentityOutput struct{ *pulumi.OutputState } + +func (RunCommandManagedIdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RunCommandManagedIdentity)(nil)).Elem() +} + +func (o RunCommandManagedIdentityOutput) ToRunCommandManagedIdentityOutput() RunCommandManagedIdentityOutput { + return o +} + +func (o RunCommandManagedIdentityOutput) ToRunCommandManagedIdentityOutputWithContext(ctx context.Context) RunCommandManagedIdentityOutput { + return o +} + +func (o RunCommandManagedIdentityOutput) ToRunCommandManagedIdentityPtrOutput() RunCommandManagedIdentityPtrOutput { + return o.ToRunCommandManagedIdentityPtrOutputWithContext(context.Background()) +} + +func (o RunCommandManagedIdentityOutput) ToRunCommandManagedIdentityPtrOutputWithContext(ctx context.Context) RunCommandManagedIdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RunCommandManagedIdentity) *RunCommandManagedIdentity { + return &v + }).(RunCommandManagedIdentityPtrOutput) +} + +// Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. +func (o RunCommandManagedIdentityOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RunCommandManagedIdentity) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +// Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. +func (o RunCommandManagedIdentityOutput) ObjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RunCommandManagedIdentity) *string { return v.ObjectId }).(pulumi.StringPtrOutput) +} + +type RunCommandManagedIdentityPtrOutput struct{ *pulumi.OutputState } + +func (RunCommandManagedIdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RunCommandManagedIdentity)(nil)).Elem() +} + +func (o RunCommandManagedIdentityPtrOutput) ToRunCommandManagedIdentityPtrOutput() RunCommandManagedIdentityPtrOutput { + return o +} + +func (o RunCommandManagedIdentityPtrOutput) ToRunCommandManagedIdentityPtrOutputWithContext(ctx context.Context) RunCommandManagedIdentityPtrOutput { + return o +} + +func (o RunCommandManagedIdentityPtrOutput) Elem() RunCommandManagedIdentityOutput { + return o.ApplyT(func(v *RunCommandManagedIdentity) RunCommandManagedIdentity { + if v != nil { + return *v + } + var ret RunCommandManagedIdentity + return ret + }).(RunCommandManagedIdentityOutput) +} + +// Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. +func (o RunCommandManagedIdentityPtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RunCommandManagedIdentity) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +// Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. +func (o RunCommandManagedIdentityPtrOutput) ObjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RunCommandManagedIdentity) *string { + if v == nil { + return nil + } + return v.ObjectId + }).(pulumi.StringPtrOutput) +} + +// Contains clientId or objectId (use only one, not both) of a user-assigned managed identity that has access to storage blob used in Run Command. Use an empty RunCommandManagedIdentity object in case of system-assigned identity. Make sure the Azure storage blob exists in case of scriptUri, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment with scriptUri blob and 'Storage Blob Data Contributor' for Append blobs(outputBlobUri, errorBlobUri). In case of user assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +type RunCommandManagedIdentityResponse struct { + // Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. + ClientId *string `pulumi:"clientId"` + // Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. + ObjectId *string `pulumi:"objectId"` +} + +// Contains clientId or objectId (use only one, not both) of a user-assigned managed identity that has access to storage blob used in Run Command. Use an empty RunCommandManagedIdentity object in case of system-assigned identity. Make sure the Azure storage blob exists in case of scriptUri, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment with scriptUri blob and 'Storage Blob Data Contributor' for Append blobs(outputBlobUri, errorBlobUri). In case of user assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +type RunCommandManagedIdentityResponseOutput struct{ *pulumi.OutputState } + +func (RunCommandManagedIdentityResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RunCommandManagedIdentityResponse)(nil)).Elem() +} + +func (o RunCommandManagedIdentityResponseOutput) ToRunCommandManagedIdentityResponseOutput() RunCommandManagedIdentityResponseOutput { + return o +} + +func (o RunCommandManagedIdentityResponseOutput) ToRunCommandManagedIdentityResponseOutputWithContext(ctx context.Context) RunCommandManagedIdentityResponseOutput { + return o +} + +// Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. +func (o RunCommandManagedIdentityResponseOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RunCommandManagedIdentityResponse) *string { return v.ClientId }).(pulumi.StringPtrOutput) +} + +// Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. +func (o RunCommandManagedIdentityResponseOutput) ObjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RunCommandManagedIdentityResponse) *string { return v.ObjectId }).(pulumi.StringPtrOutput) +} + +type RunCommandManagedIdentityResponsePtrOutput struct{ *pulumi.OutputState } + +func (RunCommandManagedIdentityResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RunCommandManagedIdentityResponse)(nil)).Elem() +} + +func (o RunCommandManagedIdentityResponsePtrOutput) ToRunCommandManagedIdentityResponsePtrOutput() RunCommandManagedIdentityResponsePtrOutput { + return o +} + +func (o RunCommandManagedIdentityResponsePtrOutput) ToRunCommandManagedIdentityResponsePtrOutputWithContext(ctx context.Context) RunCommandManagedIdentityResponsePtrOutput { + return o +} + +func (o RunCommandManagedIdentityResponsePtrOutput) Elem() RunCommandManagedIdentityResponseOutput { + return o.ApplyT(func(v *RunCommandManagedIdentityResponse) RunCommandManagedIdentityResponse { + if v != nil { + return *v + } + var ret RunCommandManagedIdentityResponse + return ret + }).(RunCommandManagedIdentityResponseOutput) +} + +// Client Id (GUID value) of the user-assigned managed identity. ObjectId should not be used if this is provided. +func (o RunCommandManagedIdentityResponsePtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RunCommandManagedIdentityResponse) *string { + if v == nil { + return nil + } + return v.ClientId + }).(pulumi.StringPtrOutput) +} + +// Object Id (GUID value) of the user-assigned managed identity. ClientId should not be used if this is provided. +func (o RunCommandManagedIdentityResponsePtrOutput) ObjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RunCommandManagedIdentityResponse) *string { + if v == nil { + return nil + } + return v.ObjectId + }).(pulumi.StringPtrOutput) +} + // Describes a scale-in policy for a virtual machine scale set. type ScaleInPolicy struct { + // This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) + ForceDeletion *bool `pulumi:"forceDeletion"` // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    Rules []string `pulumi:"rules"` } @@ -21290,6 +27847,8 @@ type ScaleInPolicyInput interface { // Describes a scale-in policy for a virtual machine scale set. type ScaleInPolicyArgs struct { + // This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) + ForceDeletion pulumi.BoolPtrInput `pulumi:"forceDeletion"` // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    Rules pulumi.StringArrayInput `pulumi:"rules"` } @@ -21372,6 +27931,11 @@ func (o ScaleInPolicyOutput) ToScaleInPolicyPtrOutputWithContext(ctx context.Con }).(ScaleInPolicyPtrOutput) } +// This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) +func (o ScaleInPolicyOutput) ForceDeletion() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ScaleInPolicy) *bool { return v.ForceDeletion }).(pulumi.BoolPtrOutput) +} + // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    func (o ScaleInPolicyOutput) Rules() pulumi.StringArrayOutput { return o.ApplyT(func(v ScaleInPolicy) []string { return v.Rules }).(pulumi.StringArrayOutput) @@ -21401,6 +27965,16 @@ func (o ScaleInPolicyPtrOutput) Elem() ScaleInPolicyOutput { }).(ScaleInPolicyOutput) } +// This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) +func (o ScaleInPolicyPtrOutput) ForceDeletion() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ScaleInPolicy) *bool { + if v == nil { + return nil + } + return v.ForceDeletion + }).(pulumi.BoolPtrOutput) +} + // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    func (o ScaleInPolicyPtrOutput) Rules() pulumi.StringArrayOutput { return o.ApplyT(func(v *ScaleInPolicy) []string { @@ -21413,6 +27987,8 @@ func (o ScaleInPolicyPtrOutput) Rules() pulumi.StringArrayOutput { // Describes a scale-in policy for a virtual machine scale set. type ScaleInPolicyResponse struct { + // This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) + ForceDeletion *bool `pulumi:"forceDeletion"` // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    Rules []string `pulumi:"rules"` } @@ -21432,6 +28008,11 @@ func (o ScaleInPolicyResponseOutput) ToScaleInPolicyResponseOutputWithContext(ct return o } +// This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) +func (o ScaleInPolicyResponseOutput) ForceDeletion() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ScaleInPolicyResponse) *bool { return v.ForceDeletion }).(pulumi.BoolPtrOutput) +} + // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    func (o ScaleInPolicyResponseOutput) Rules() pulumi.StringArrayOutput { return o.ApplyT(func(v ScaleInPolicyResponse) []string { return v.Rules }).(pulumi.StringArrayOutput) @@ -21461,6 +28042,16 @@ func (o ScaleInPolicyResponsePtrOutput) Elem() ScaleInPolicyResponseOutput { }).(ScaleInPolicyResponseOutput) } +// This property allows you to specify if virtual machines chosen for removal have to be force deleted when a virtual machine scale set is being scaled-in.(Feature in Preview) +func (o ScaleInPolicyResponsePtrOutput) ForceDeletion() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ScaleInPolicyResponse) *bool { + if v == nil { + return nil + } + return v.ForceDeletion + }).(pulumi.BoolPtrOutput) +} + // The rules to be followed when scaling-in a virtual machine scale set.

    Possible values are:

    **Default** When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in.

    **OldestVM** When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal.

    **NewestVM** When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal.

    func (o ScaleInPolicyResponsePtrOutput) Rules() pulumi.StringArrayOutput { return o.ApplyT(func(v *ScaleInPolicyResponse) []string { @@ -21472,6 +28063,8 @@ func (o ScaleInPolicyResponsePtrOutput) Rules() pulumi.StringArrayOutput { } type ScheduledEventsProfile struct { + // Specifies OS Image Scheduled Event related configurations. + OsImageNotificationProfile *OSImageNotificationProfile `pulumi:"osImageNotificationProfile"` // Specifies Terminate Scheduled Event related configurations. TerminateNotificationProfile *TerminateNotificationProfile `pulumi:"terminateNotificationProfile"` } @@ -21488,6 +28081,8 @@ type ScheduledEventsProfileInput interface { } type ScheduledEventsProfileArgs struct { + // Specifies OS Image Scheduled Event related configurations. + OsImageNotificationProfile OSImageNotificationProfilePtrInput `pulumi:"osImageNotificationProfile"` // Specifies Terminate Scheduled Event related configurations. TerminateNotificationProfile TerminateNotificationProfilePtrInput `pulumi:"terminateNotificationProfile"` } @@ -21569,6 +28164,11 @@ func (o ScheduledEventsProfileOutput) ToScheduledEventsProfilePtrOutputWithConte }).(ScheduledEventsProfilePtrOutput) } +// Specifies OS Image Scheduled Event related configurations. +func (o ScheduledEventsProfileOutput) OsImageNotificationProfile() OSImageNotificationProfilePtrOutput { + return o.ApplyT(func(v ScheduledEventsProfile) *OSImageNotificationProfile { return v.OsImageNotificationProfile }).(OSImageNotificationProfilePtrOutput) +} + // Specifies Terminate Scheduled Event related configurations. func (o ScheduledEventsProfileOutput) TerminateNotificationProfile() TerminateNotificationProfilePtrOutput { return o.ApplyT(func(v ScheduledEventsProfile) *TerminateNotificationProfile { return v.TerminateNotificationProfile }).(TerminateNotificationProfilePtrOutput) @@ -21598,6 +28198,16 @@ func (o ScheduledEventsProfilePtrOutput) Elem() ScheduledEventsProfileOutput { }).(ScheduledEventsProfileOutput) } +// Specifies OS Image Scheduled Event related configurations. +func (o ScheduledEventsProfilePtrOutput) OsImageNotificationProfile() OSImageNotificationProfilePtrOutput { + return o.ApplyT(func(v *ScheduledEventsProfile) *OSImageNotificationProfile { + if v == nil { + return nil + } + return v.OsImageNotificationProfile + }).(OSImageNotificationProfilePtrOutput) +} + // Specifies Terminate Scheduled Event related configurations. func (o ScheduledEventsProfilePtrOutput) TerminateNotificationProfile() TerminateNotificationProfilePtrOutput { return o.ApplyT(func(v *ScheduledEventsProfile) *TerminateNotificationProfile { @@ -21609,6 +28219,8 @@ func (o ScheduledEventsProfilePtrOutput) TerminateNotificationProfile() Terminat } type ScheduledEventsProfileResponse struct { + // Specifies OS Image Scheduled Event related configurations. + OsImageNotificationProfile *OSImageNotificationProfileResponse `pulumi:"osImageNotificationProfile"` // Specifies Terminate Scheduled Event related configurations. TerminateNotificationProfile *TerminateNotificationProfileResponse `pulumi:"terminateNotificationProfile"` } @@ -21627,6 +28239,13 @@ func (o ScheduledEventsProfileResponseOutput) ToScheduledEventsProfileResponseOu return o } +// Specifies OS Image Scheduled Event related configurations. +func (o ScheduledEventsProfileResponseOutput) OsImageNotificationProfile() OSImageNotificationProfileResponsePtrOutput { + return o.ApplyT(func(v ScheduledEventsProfileResponse) *OSImageNotificationProfileResponse { + return v.OsImageNotificationProfile + }).(OSImageNotificationProfileResponsePtrOutput) +} + // Specifies Terminate Scheduled Event related configurations. func (o ScheduledEventsProfileResponseOutput) TerminateNotificationProfile() TerminateNotificationProfileResponsePtrOutput { return o.ApplyT(func(v ScheduledEventsProfileResponse) *TerminateNotificationProfileResponse { @@ -21658,6 +28277,16 @@ func (o ScheduledEventsProfileResponsePtrOutput) Elem() ScheduledEventsProfileRe }).(ScheduledEventsProfileResponseOutput) } +// Specifies OS Image Scheduled Event related configurations. +func (o ScheduledEventsProfileResponsePtrOutput) OsImageNotificationProfile() OSImageNotificationProfileResponsePtrOutput { + return o.ApplyT(func(v *ScheduledEventsProfileResponse) *OSImageNotificationProfileResponse { + if v == nil { + return nil + } + return v.OsImageNotificationProfile + }).(OSImageNotificationProfileResponsePtrOutput) +} + // Specifies Terminate Scheduled Event related configurations. func (o ScheduledEventsProfileResponsePtrOutput) TerminateNotificationProfile() TerminateNotificationProfileResponsePtrOutput { return o.ApplyT(func(v *ScheduledEventsProfileResponse) *TerminateNotificationProfileResponse { @@ -21668,13 +28297,249 @@ func (o ScheduledEventsProfileResponsePtrOutput) TerminateNotificationProfile() }).(TerminateNotificationProfileResponsePtrOutput) } +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +type SecurityPostureReference struct { + // List of virtual machine extensions to exclude when applying the Security Posture. + ExcludeExtensions []VirtualMachineExtensionType `pulumi:"excludeExtensions"` + // The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest + Id *string `pulumi:"id"` +} + +// SecurityPostureReferenceInput is an input type that accepts SecurityPostureReferenceArgs and SecurityPostureReferenceOutput values. +// You can construct a concrete instance of `SecurityPostureReferenceInput` via: +// +// SecurityPostureReferenceArgs{...} +type SecurityPostureReferenceInput interface { + pulumi.Input + + ToSecurityPostureReferenceOutput() SecurityPostureReferenceOutput + ToSecurityPostureReferenceOutputWithContext(context.Context) SecurityPostureReferenceOutput +} + +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +type SecurityPostureReferenceArgs struct { + // List of virtual machine extensions to exclude when applying the Security Posture. + ExcludeExtensions VirtualMachineExtensionTypeArrayInput `pulumi:"excludeExtensions"` + // The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (SecurityPostureReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPostureReference)(nil)).Elem() +} + +func (i SecurityPostureReferenceArgs) ToSecurityPostureReferenceOutput() SecurityPostureReferenceOutput { + return i.ToSecurityPostureReferenceOutputWithContext(context.Background()) +} + +func (i SecurityPostureReferenceArgs) ToSecurityPostureReferenceOutputWithContext(ctx context.Context) SecurityPostureReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPostureReferenceOutput) +} + +func (i SecurityPostureReferenceArgs) ToSecurityPostureReferencePtrOutput() SecurityPostureReferencePtrOutput { + return i.ToSecurityPostureReferencePtrOutputWithContext(context.Background()) +} + +func (i SecurityPostureReferenceArgs) ToSecurityPostureReferencePtrOutputWithContext(ctx context.Context) SecurityPostureReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPostureReferenceOutput).ToSecurityPostureReferencePtrOutputWithContext(ctx) +} + +// SecurityPostureReferencePtrInput is an input type that accepts SecurityPostureReferenceArgs, SecurityPostureReferencePtr and SecurityPostureReferencePtrOutput values. +// You can construct a concrete instance of `SecurityPostureReferencePtrInput` via: +// +// SecurityPostureReferenceArgs{...} +// +// or: +// +// nil +type SecurityPostureReferencePtrInput interface { + pulumi.Input + + ToSecurityPostureReferencePtrOutput() SecurityPostureReferencePtrOutput + ToSecurityPostureReferencePtrOutputWithContext(context.Context) SecurityPostureReferencePtrOutput +} + +type securityPostureReferencePtrType SecurityPostureReferenceArgs + +func SecurityPostureReferencePtr(v *SecurityPostureReferenceArgs) SecurityPostureReferencePtrInput { + return (*securityPostureReferencePtrType)(v) +} + +func (*securityPostureReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPostureReference)(nil)).Elem() +} + +func (i *securityPostureReferencePtrType) ToSecurityPostureReferencePtrOutput() SecurityPostureReferencePtrOutput { + return i.ToSecurityPostureReferencePtrOutputWithContext(context.Background()) +} + +func (i *securityPostureReferencePtrType) ToSecurityPostureReferencePtrOutputWithContext(ctx context.Context) SecurityPostureReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPostureReferencePtrOutput) +} + +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +type SecurityPostureReferenceOutput struct{ *pulumi.OutputState } + +func (SecurityPostureReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPostureReference)(nil)).Elem() +} + +func (o SecurityPostureReferenceOutput) ToSecurityPostureReferenceOutput() SecurityPostureReferenceOutput { + return o +} + +func (o SecurityPostureReferenceOutput) ToSecurityPostureReferenceOutputWithContext(ctx context.Context) SecurityPostureReferenceOutput { + return o +} + +func (o SecurityPostureReferenceOutput) ToSecurityPostureReferencePtrOutput() SecurityPostureReferencePtrOutput { + return o.ToSecurityPostureReferencePtrOutputWithContext(context.Background()) +} + +func (o SecurityPostureReferenceOutput) ToSecurityPostureReferencePtrOutputWithContext(ctx context.Context) SecurityPostureReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPostureReference) *SecurityPostureReference { + return &v + }).(SecurityPostureReferencePtrOutput) +} + +// List of virtual machine extensions to exclude when applying the Security Posture. +func (o SecurityPostureReferenceOutput) ExcludeExtensions() VirtualMachineExtensionTypeArrayOutput { + return o.ApplyT(func(v SecurityPostureReference) []VirtualMachineExtensionType { return v.ExcludeExtensions }).(VirtualMachineExtensionTypeArrayOutput) +} + +// The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest +func (o SecurityPostureReferenceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPostureReference) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SecurityPostureReferencePtrOutput struct{ *pulumi.OutputState } + +func (SecurityPostureReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPostureReference)(nil)).Elem() +} + +func (o SecurityPostureReferencePtrOutput) ToSecurityPostureReferencePtrOutput() SecurityPostureReferencePtrOutput { + return o +} + +func (o SecurityPostureReferencePtrOutput) ToSecurityPostureReferencePtrOutputWithContext(ctx context.Context) SecurityPostureReferencePtrOutput { + return o +} + +func (o SecurityPostureReferencePtrOutput) Elem() SecurityPostureReferenceOutput { + return o.ApplyT(func(v *SecurityPostureReference) SecurityPostureReference { + if v != nil { + return *v + } + var ret SecurityPostureReference + return ret + }).(SecurityPostureReferenceOutput) +} + +// List of virtual machine extensions to exclude when applying the Security Posture. +func (o SecurityPostureReferencePtrOutput) ExcludeExtensions() VirtualMachineExtensionTypeArrayOutput { + return o.ApplyT(func(v *SecurityPostureReference) []VirtualMachineExtensionType { + if v == nil { + return nil + } + return v.ExcludeExtensions + }).(VirtualMachineExtensionTypeArrayOutput) +} + +// The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest +func (o SecurityPostureReferencePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPostureReference) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +type SecurityPostureReferenceResponse struct { + // List of virtual machine extensions to exclude when applying the Security Posture. + ExcludeExtensions []VirtualMachineExtensionResponse `pulumi:"excludeExtensions"` + // The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest + Id *string `pulumi:"id"` +} + +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +type SecurityPostureReferenceResponseOutput struct{ *pulumi.OutputState } + +func (SecurityPostureReferenceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPostureReferenceResponse)(nil)).Elem() +} + +func (o SecurityPostureReferenceResponseOutput) ToSecurityPostureReferenceResponseOutput() SecurityPostureReferenceResponseOutput { + return o +} + +func (o SecurityPostureReferenceResponseOutput) ToSecurityPostureReferenceResponseOutputWithContext(ctx context.Context) SecurityPostureReferenceResponseOutput { + return o +} + +// List of virtual machine extensions to exclude when applying the Security Posture. +func (o SecurityPostureReferenceResponseOutput) ExcludeExtensions() VirtualMachineExtensionResponseArrayOutput { + return o.ApplyT(func(v SecurityPostureReferenceResponse) []VirtualMachineExtensionResponse { return v.ExcludeExtensions }).(VirtualMachineExtensionResponseArrayOutput) +} + +// The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest +func (o SecurityPostureReferenceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPostureReferenceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SecurityPostureReferenceResponsePtrOutput struct{ *pulumi.OutputState } + +func (SecurityPostureReferenceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPostureReferenceResponse)(nil)).Elem() +} + +func (o SecurityPostureReferenceResponsePtrOutput) ToSecurityPostureReferenceResponsePtrOutput() SecurityPostureReferenceResponsePtrOutput { + return o +} + +func (o SecurityPostureReferenceResponsePtrOutput) ToSecurityPostureReferenceResponsePtrOutputWithContext(ctx context.Context) SecurityPostureReferenceResponsePtrOutput { + return o +} + +func (o SecurityPostureReferenceResponsePtrOutput) Elem() SecurityPostureReferenceResponseOutput { + return o.ApplyT(func(v *SecurityPostureReferenceResponse) SecurityPostureReferenceResponse { + if v != nil { + return *v + } + var ret SecurityPostureReferenceResponse + return ret + }).(SecurityPostureReferenceResponseOutput) +} + +// List of virtual machine extensions to exclude when applying the Security Posture. +func (o SecurityPostureReferenceResponsePtrOutput) ExcludeExtensions() VirtualMachineExtensionResponseArrayOutput { + return o.ApplyT(func(v *SecurityPostureReferenceResponse) []VirtualMachineExtensionResponse { + if v == nil { + return nil + } + return v.ExcludeExtensions + }).(VirtualMachineExtensionResponseArrayOutput) +} + +// The security posture reference id in the form of /CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest +func (o SecurityPostureReferenceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPostureReferenceResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + // Specifies the Security profile settings for the virtual machine or virtual machine scale set. type SecurityProfile struct { - // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. + // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. EncryptionAtHost *bool `pulumi:"encryptionAtHost"` - // Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. + // Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. SecurityType *string `pulumi:"securityType"` - // Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. UefiSettings *UefiSettings `pulumi:"uefiSettings"` } @@ -21691,11 +28556,11 @@ type SecurityProfileInput interface { // Specifies the Security profile settings for the virtual machine or virtual machine scale set. type SecurityProfileArgs struct { - // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. + // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. EncryptionAtHost pulumi.BoolPtrInput `pulumi:"encryptionAtHost"` - // Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. + // Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. SecurityType pulumi.StringPtrInput `pulumi:"securityType"` - // Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. UefiSettings UefiSettingsPtrInput `pulumi:"uefiSettings"` } @@ -21777,17 +28642,17 @@ func (o SecurityProfileOutput) ToSecurityProfilePtrOutputWithContext(ctx context }).(SecurityProfilePtrOutput) } -// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. +// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. func (o SecurityProfileOutput) EncryptionAtHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v SecurityProfile) *bool { return v.EncryptionAtHost }).(pulumi.BoolPtrOutput) } -// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. +// Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. func (o SecurityProfileOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityProfile) *string { return v.SecurityType }).(pulumi.StringPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. func (o SecurityProfileOutput) UefiSettings() UefiSettingsPtrOutput { return o.ApplyT(func(v SecurityProfile) *UefiSettings { return v.UefiSettings }).(UefiSettingsPtrOutput) } @@ -21816,7 +28681,7 @@ func (o SecurityProfilePtrOutput) Elem() SecurityProfileOutput { }).(SecurityProfileOutput) } -// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. +// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. func (o SecurityProfilePtrOutput) EncryptionAtHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SecurityProfile) *bool { if v == nil { @@ -21826,7 +28691,7 @@ func (o SecurityProfilePtrOutput) EncryptionAtHost() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. +// Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. func (o SecurityProfilePtrOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityProfile) *string { if v == nil { @@ -21836,7 +28701,7 @@ func (o SecurityProfilePtrOutput) SecurityType() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. func (o SecurityProfilePtrOutput) UefiSettings() UefiSettingsPtrOutput { return o.ApplyT(func(v *SecurityProfile) *UefiSettings { if v == nil { @@ -21848,11 +28713,11 @@ func (o SecurityProfilePtrOutput) UefiSettings() UefiSettingsPtrOutput { // Specifies the Security profile settings for the virtual machine or virtual machine scale set. type SecurityProfileResponse struct { - // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. + // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. EncryptionAtHost *bool `pulumi:"encryptionAtHost"` - // Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. + // Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. SecurityType *string `pulumi:"securityType"` - // Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. UefiSettings *UefiSettingsResponse `pulumi:"uefiSettings"` } @@ -21871,17 +28736,17 @@ func (o SecurityProfileResponseOutput) ToSecurityProfileResponseOutputWithContex return o } -// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. +// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. func (o SecurityProfileResponseOutput) EncryptionAtHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v SecurityProfileResponse) *bool { return v.EncryptionAtHost }).(pulumi.BoolPtrOutput) } -// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. +// Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. func (o SecurityProfileResponseOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v SecurityProfileResponse) *string { return v.SecurityType }).(pulumi.StringPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. func (o SecurityProfileResponseOutput) UefiSettings() UefiSettingsResponsePtrOutput { return o.ApplyT(func(v SecurityProfileResponse) *UefiSettingsResponse { return v.UefiSettings }).(UefiSettingsResponsePtrOutput) } @@ -21910,7 +28775,7 @@ func (o SecurityProfileResponsePtrOutput) Elem() SecurityProfileResponseOutput { }).(SecurityProfileResponseOutput) } -// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself.

    Default: The Encryption at host will be disabled unless this property is set to true for the resource. +// This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource. func (o SecurityProfileResponsePtrOutput) EncryptionAtHost() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SecurityProfileResponse) *bool { if v == nil { @@ -21920,7 +28785,7 @@ func (o SecurityProfileResponsePtrOutput) EncryptionAtHost() pulumi.BoolPtrOutpu }).(pulumi.BoolPtrOutput) } -// Specifies the SecurityType of the virtual machine. It is set as TrustedLaunch to enable UefiSettings.

    Default: UefiSettings will not be enabled unless this property is set as TrustedLaunch. +// Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set. func (o SecurityProfileResponsePtrOutput) SecurityType() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityProfileResponse) *string { if v == nil { @@ -21930,7 +28795,7 @@ func (o SecurityProfileResponsePtrOutput) SecurityType() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. func (o SecurityProfileResponsePtrOutput) UefiSettings() UefiSettingsResponsePtrOutput { return o.ApplyT(func(v *SecurityProfileResponse) *UefiSettingsResponse { if v == nil { @@ -21940,6 +28805,206 @@ func (o SecurityProfileResponsePtrOutput) UefiSettings() UefiSettingsResponsePtr }).(UefiSettingsResponsePtrOutput) } +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +type ServiceArtifactReference struct { + // The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + Id *string `pulumi:"id"` +} + +// ServiceArtifactReferenceInput is an input type that accepts ServiceArtifactReferenceArgs and ServiceArtifactReferenceOutput values. +// You can construct a concrete instance of `ServiceArtifactReferenceInput` via: +// +// ServiceArtifactReferenceArgs{...} +type ServiceArtifactReferenceInput interface { + pulumi.Input + + ToServiceArtifactReferenceOutput() ServiceArtifactReferenceOutput + ToServiceArtifactReferenceOutputWithContext(context.Context) ServiceArtifactReferenceOutput +} + +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +type ServiceArtifactReferenceArgs struct { + // The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (ServiceArtifactReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceArtifactReference)(nil)).Elem() +} + +func (i ServiceArtifactReferenceArgs) ToServiceArtifactReferenceOutput() ServiceArtifactReferenceOutput { + return i.ToServiceArtifactReferenceOutputWithContext(context.Background()) +} + +func (i ServiceArtifactReferenceArgs) ToServiceArtifactReferenceOutputWithContext(ctx context.Context) ServiceArtifactReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceArtifactReferenceOutput) +} + +func (i ServiceArtifactReferenceArgs) ToServiceArtifactReferencePtrOutput() ServiceArtifactReferencePtrOutput { + return i.ToServiceArtifactReferencePtrOutputWithContext(context.Background()) +} + +func (i ServiceArtifactReferenceArgs) ToServiceArtifactReferencePtrOutputWithContext(ctx context.Context) ServiceArtifactReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceArtifactReferenceOutput).ToServiceArtifactReferencePtrOutputWithContext(ctx) +} + +// ServiceArtifactReferencePtrInput is an input type that accepts ServiceArtifactReferenceArgs, ServiceArtifactReferencePtr and ServiceArtifactReferencePtrOutput values. +// You can construct a concrete instance of `ServiceArtifactReferencePtrInput` via: +// +// ServiceArtifactReferenceArgs{...} +// +// or: +// +// nil +type ServiceArtifactReferencePtrInput interface { + pulumi.Input + + ToServiceArtifactReferencePtrOutput() ServiceArtifactReferencePtrOutput + ToServiceArtifactReferencePtrOutputWithContext(context.Context) ServiceArtifactReferencePtrOutput +} + +type serviceArtifactReferencePtrType ServiceArtifactReferenceArgs + +func ServiceArtifactReferencePtr(v *ServiceArtifactReferenceArgs) ServiceArtifactReferencePtrInput { + return (*serviceArtifactReferencePtrType)(v) +} + +func (*serviceArtifactReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceArtifactReference)(nil)).Elem() +} + +func (i *serviceArtifactReferencePtrType) ToServiceArtifactReferencePtrOutput() ServiceArtifactReferencePtrOutput { + return i.ToServiceArtifactReferencePtrOutputWithContext(context.Background()) +} + +func (i *serviceArtifactReferencePtrType) ToServiceArtifactReferencePtrOutputWithContext(ctx context.Context) ServiceArtifactReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceArtifactReferencePtrOutput) +} + +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +type ServiceArtifactReferenceOutput struct{ *pulumi.OutputState } + +func (ServiceArtifactReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceArtifactReference)(nil)).Elem() +} + +func (o ServiceArtifactReferenceOutput) ToServiceArtifactReferenceOutput() ServiceArtifactReferenceOutput { + return o +} + +func (o ServiceArtifactReferenceOutput) ToServiceArtifactReferenceOutputWithContext(ctx context.Context) ServiceArtifactReferenceOutput { + return o +} + +func (o ServiceArtifactReferenceOutput) ToServiceArtifactReferencePtrOutput() ServiceArtifactReferencePtrOutput { + return o.ToServiceArtifactReferencePtrOutputWithContext(context.Background()) +} + +func (o ServiceArtifactReferenceOutput) ToServiceArtifactReferencePtrOutputWithContext(ctx context.Context) ServiceArtifactReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceArtifactReference) *ServiceArtifactReference { + return &v + }).(ServiceArtifactReferencePtrOutput) +} + +// The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} +func (o ServiceArtifactReferenceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceArtifactReference) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type ServiceArtifactReferencePtrOutput struct{ *pulumi.OutputState } + +func (ServiceArtifactReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceArtifactReference)(nil)).Elem() +} + +func (o ServiceArtifactReferencePtrOutput) ToServiceArtifactReferencePtrOutput() ServiceArtifactReferencePtrOutput { + return o +} + +func (o ServiceArtifactReferencePtrOutput) ToServiceArtifactReferencePtrOutputWithContext(ctx context.Context) ServiceArtifactReferencePtrOutput { + return o +} + +func (o ServiceArtifactReferencePtrOutput) Elem() ServiceArtifactReferenceOutput { + return o.ApplyT(func(v *ServiceArtifactReference) ServiceArtifactReference { + if v != nil { + return *v + } + var ret ServiceArtifactReference + return ret + }).(ServiceArtifactReferenceOutput) +} + +// The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} +func (o ServiceArtifactReferencePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceArtifactReference) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +type ServiceArtifactReferenceResponse struct { + // The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + Id *string `pulumi:"id"` +} + +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +type ServiceArtifactReferenceResponseOutput struct{ *pulumi.OutputState } + +func (ServiceArtifactReferenceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceArtifactReferenceResponse)(nil)).Elem() +} + +func (o ServiceArtifactReferenceResponseOutput) ToServiceArtifactReferenceResponseOutput() ServiceArtifactReferenceResponseOutput { + return o +} + +func (o ServiceArtifactReferenceResponseOutput) ToServiceArtifactReferenceResponseOutputWithContext(ctx context.Context) ServiceArtifactReferenceResponseOutput { + return o +} + +// The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} +func (o ServiceArtifactReferenceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceArtifactReferenceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type ServiceArtifactReferenceResponsePtrOutput struct{ *pulumi.OutputState } + +func (ServiceArtifactReferenceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceArtifactReferenceResponse)(nil)).Elem() +} + +func (o ServiceArtifactReferenceResponsePtrOutput) ToServiceArtifactReferenceResponsePtrOutput() ServiceArtifactReferenceResponsePtrOutput { + return o +} + +func (o ServiceArtifactReferenceResponsePtrOutput) ToServiceArtifactReferenceResponsePtrOutputWithContext(ctx context.Context) ServiceArtifactReferenceResponsePtrOutput { + return o +} + +func (o ServiceArtifactReferenceResponsePtrOutput) Elem() ServiceArtifactReferenceResponseOutput { + return o.ApplyT(func(v *ServiceArtifactReferenceResponse) ServiceArtifactReferenceResponse { + if v != nil { + return *v + } + var ret ServiceArtifactReferenceResponse + return ret + }).(ServiceArtifactReferenceResponseOutput) +} + +// The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} +func (o ServiceArtifactReferenceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceArtifactReferenceResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + type ShareInfoElementResponse struct { // A relative URI containing the ID of the VM that has the disk attached. VmUri string `pulumi:"vmUri"` @@ -21986,7 +29051,9 @@ func (o ShareInfoElementResponseArrayOutput) Index(i pulumi.IntInput) ShareInfoE // Profile for gallery sharing to subscription or tenant type SharingProfile struct { - // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** + // Information of community gallery if current gallery is shared to community. + CommunityGalleryInfo *CommunityGalleryInfo `pulumi:"communityGalleryInfo"` + // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** Permissions *string `pulumi:"permissions"` } @@ -22003,7 +29070,9 @@ type SharingProfileInput interface { // Profile for gallery sharing to subscription or tenant type SharingProfileArgs struct { - // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** + // Information of community gallery if current gallery is shared to community. + CommunityGalleryInfo CommunityGalleryInfoPtrInput `pulumi:"communityGalleryInfo"` + // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** Permissions pulumi.StringPtrInput `pulumi:"permissions"` } @@ -22085,7 +29154,12 @@ func (o SharingProfileOutput) ToSharingProfilePtrOutputWithContext(ctx context.C }).(SharingProfilePtrOutput) } -// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** +// Information of community gallery if current gallery is shared to community. +func (o SharingProfileOutput) CommunityGalleryInfo() CommunityGalleryInfoPtrOutput { + return o.ApplyT(func(v SharingProfile) *CommunityGalleryInfo { return v.CommunityGalleryInfo }).(CommunityGalleryInfoPtrOutput) +} + +// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** func (o SharingProfileOutput) Permissions() pulumi.StringPtrOutput { return o.ApplyT(func(v SharingProfile) *string { return v.Permissions }).(pulumi.StringPtrOutput) } @@ -22114,7 +29188,17 @@ func (o SharingProfilePtrOutput) Elem() SharingProfileOutput { }).(SharingProfileOutput) } -// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** +// Information of community gallery if current gallery is shared to community. +func (o SharingProfilePtrOutput) CommunityGalleryInfo() CommunityGalleryInfoPtrOutput { + return o.ApplyT(func(v *SharingProfile) *CommunityGalleryInfo { + if v == nil { + return nil + } + return v.CommunityGalleryInfo + }).(CommunityGalleryInfoPtrOutput) +} + +// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** func (o SharingProfilePtrOutput) Permissions() pulumi.StringPtrOutput { return o.ApplyT(func(v *SharingProfile) *string { if v == nil { @@ -22179,9 +29263,11 @@ func (o SharingProfileGroupResponseArrayOutput) Index(i pulumi.IntInput) Sharing // Profile for gallery sharing to subscription or tenant type SharingProfileResponse struct { + // Information of community gallery if current gallery is shared to community. + CommunityGalleryInfo *CommunityGalleryInfoResponse `pulumi:"communityGalleryInfo"` // A list of sharing profile groups. Groups []SharingProfileGroupResponse `pulumi:"groups"` - // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** + // This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** Permissions *string `pulumi:"permissions"` } @@ -22200,12 +29286,17 @@ func (o SharingProfileResponseOutput) ToSharingProfileResponseOutputWithContext( return o } +// Information of community gallery if current gallery is shared to community. +func (o SharingProfileResponseOutput) CommunityGalleryInfo() CommunityGalleryInfoResponsePtrOutput { + return o.ApplyT(func(v SharingProfileResponse) *CommunityGalleryInfoResponse { return v.CommunityGalleryInfo }).(CommunityGalleryInfoResponsePtrOutput) +} + // A list of sharing profile groups. func (o SharingProfileResponseOutput) Groups() SharingProfileGroupResponseArrayOutput { return o.ApplyT(func(v SharingProfileResponse) []SharingProfileGroupResponse { return v.Groups }).(SharingProfileGroupResponseArrayOutput) } -// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** +// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** func (o SharingProfileResponseOutput) Permissions() pulumi.StringPtrOutput { return o.ApplyT(func(v SharingProfileResponse) *string { return v.Permissions }).(pulumi.StringPtrOutput) } @@ -22234,6 +29325,16 @@ func (o SharingProfileResponsePtrOutput) Elem() SharingProfileResponseOutput { }).(SharingProfileResponseOutput) } +// Information of community gallery if current gallery is shared to community. +func (o SharingProfileResponsePtrOutput) CommunityGalleryInfo() CommunityGalleryInfoResponsePtrOutput { + return o.ApplyT(func(v *SharingProfileResponse) *CommunityGalleryInfoResponse { + if v == nil { + return nil + } + return v.CommunityGalleryInfo + }).(CommunityGalleryInfoResponsePtrOutput) +} + // A list of sharing profile groups. func (o SharingProfileResponsePtrOutput) Groups() SharingProfileGroupResponseArrayOutput { return o.ApplyT(func(v *SharingProfileResponse) []SharingProfileGroupResponse { @@ -22244,7 +29345,7 @@ func (o SharingProfileResponsePtrOutput) Groups() SharingProfileGroupResponseArr }).(SharingProfileGroupResponseArrayOutput) } -// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups** +// This property allows you to specify the permission of sharing gallery.

    Possible values are:

    **Private**

    **Groups**

    **Community** func (o SharingProfileResponsePtrOutput) Permissions() pulumi.StringPtrOutput { return o.ApplyT(func(v *SharingProfileResponse) *string { if v == nil { @@ -22254,6 +29355,39 @@ func (o SharingProfileResponsePtrOutput) Permissions() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Sharing status of current gallery. +type SharingStatusResponse struct { + // Aggregated sharing state of current gallery. + AggregatedState string `pulumi:"aggregatedState"` + // Summary of all regional sharing status. + Summary []RegionalSharingStatusResponse `pulumi:"summary"` +} + +// Sharing status of current gallery. +type SharingStatusResponseOutput struct{ *pulumi.OutputState } + +func (SharingStatusResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SharingStatusResponse)(nil)).Elem() +} + +func (o SharingStatusResponseOutput) ToSharingStatusResponseOutput() SharingStatusResponseOutput { + return o +} + +func (o SharingStatusResponseOutput) ToSharingStatusResponseOutputWithContext(ctx context.Context) SharingStatusResponseOutput { + return o +} + +// Aggregated sharing state of current gallery. +func (o SharingStatusResponseOutput) AggregatedState() pulumi.StringOutput { + return o.ApplyT(func(v SharingStatusResponse) string { return v.AggregatedState }).(pulumi.StringOutput) +} + +// Summary of all regional sharing status. +func (o SharingStatusResponseOutput) Summary() RegionalSharingStatusResponseArrayOutput { + return o.ApplyT(func(v SharingStatusResponse) []RegionalSharingStatusResponse { return v.Summary }).(RegionalSharingStatusResponseArrayOutput) +} + // Describes a virtual machine scale set sku. NOTE: If the new VM SKU is not supported on the hardware the scale set is currently on, you need to deallocate the VMs in the scale set before you modify the SKU name. type Sku struct { // Specifies the number of virtual machines in the scale set. @@ -22743,6 +29877,206 @@ func (o SnapshotSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Contains information about the soft deletion policy of the gallery. +type SoftDeletePolicy struct { + // Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. + IsSoftDeleteEnabled *bool `pulumi:"isSoftDeleteEnabled"` +} + +// SoftDeletePolicyInput is an input type that accepts SoftDeletePolicyArgs and SoftDeletePolicyOutput values. +// You can construct a concrete instance of `SoftDeletePolicyInput` via: +// +// SoftDeletePolicyArgs{...} +type SoftDeletePolicyInput interface { + pulumi.Input + + ToSoftDeletePolicyOutput() SoftDeletePolicyOutput + ToSoftDeletePolicyOutputWithContext(context.Context) SoftDeletePolicyOutput +} + +// Contains information about the soft deletion policy of the gallery. +type SoftDeletePolicyArgs struct { + // Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. + IsSoftDeleteEnabled pulumi.BoolPtrInput `pulumi:"isSoftDeleteEnabled"` +} + +func (SoftDeletePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SoftDeletePolicy)(nil)).Elem() +} + +func (i SoftDeletePolicyArgs) ToSoftDeletePolicyOutput() SoftDeletePolicyOutput { + return i.ToSoftDeletePolicyOutputWithContext(context.Background()) +} + +func (i SoftDeletePolicyArgs) ToSoftDeletePolicyOutputWithContext(ctx context.Context) SoftDeletePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoftDeletePolicyOutput) +} + +func (i SoftDeletePolicyArgs) ToSoftDeletePolicyPtrOutput() SoftDeletePolicyPtrOutput { + return i.ToSoftDeletePolicyPtrOutputWithContext(context.Background()) +} + +func (i SoftDeletePolicyArgs) ToSoftDeletePolicyPtrOutputWithContext(ctx context.Context) SoftDeletePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoftDeletePolicyOutput).ToSoftDeletePolicyPtrOutputWithContext(ctx) +} + +// SoftDeletePolicyPtrInput is an input type that accepts SoftDeletePolicyArgs, SoftDeletePolicyPtr and SoftDeletePolicyPtrOutput values. +// You can construct a concrete instance of `SoftDeletePolicyPtrInput` via: +// +// SoftDeletePolicyArgs{...} +// +// or: +// +// nil +type SoftDeletePolicyPtrInput interface { + pulumi.Input + + ToSoftDeletePolicyPtrOutput() SoftDeletePolicyPtrOutput + ToSoftDeletePolicyPtrOutputWithContext(context.Context) SoftDeletePolicyPtrOutput +} + +type softDeletePolicyPtrType SoftDeletePolicyArgs + +func SoftDeletePolicyPtr(v *SoftDeletePolicyArgs) SoftDeletePolicyPtrInput { + return (*softDeletePolicyPtrType)(v) +} + +func (*softDeletePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SoftDeletePolicy)(nil)).Elem() +} + +func (i *softDeletePolicyPtrType) ToSoftDeletePolicyPtrOutput() SoftDeletePolicyPtrOutput { + return i.ToSoftDeletePolicyPtrOutputWithContext(context.Background()) +} + +func (i *softDeletePolicyPtrType) ToSoftDeletePolicyPtrOutputWithContext(ctx context.Context) SoftDeletePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoftDeletePolicyPtrOutput) +} + +// Contains information about the soft deletion policy of the gallery. +type SoftDeletePolicyOutput struct{ *pulumi.OutputState } + +func (SoftDeletePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SoftDeletePolicy)(nil)).Elem() +} + +func (o SoftDeletePolicyOutput) ToSoftDeletePolicyOutput() SoftDeletePolicyOutput { + return o +} + +func (o SoftDeletePolicyOutput) ToSoftDeletePolicyOutputWithContext(ctx context.Context) SoftDeletePolicyOutput { + return o +} + +func (o SoftDeletePolicyOutput) ToSoftDeletePolicyPtrOutput() SoftDeletePolicyPtrOutput { + return o.ToSoftDeletePolicyPtrOutputWithContext(context.Background()) +} + +func (o SoftDeletePolicyOutput) ToSoftDeletePolicyPtrOutputWithContext(ctx context.Context) SoftDeletePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SoftDeletePolicy) *SoftDeletePolicy { + return &v + }).(SoftDeletePolicyPtrOutput) +} + +// Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. +func (o SoftDeletePolicyOutput) IsSoftDeleteEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SoftDeletePolicy) *bool { return v.IsSoftDeleteEnabled }).(pulumi.BoolPtrOutput) +} + +type SoftDeletePolicyPtrOutput struct{ *pulumi.OutputState } + +func (SoftDeletePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SoftDeletePolicy)(nil)).Elem() +} + +func (o SoftDeletePolicyPtrOutput) ToSoftDeletePolicyPtrOutput() SoftDeletePolicyPtrOutput { + return o +} + +func (o SoftDeletePolicyPtrOutput) ToSoftDeletePolicyPtrOutputWithContext(ctx context.Context) SoftDeletePolicyPtrOutput { + return o +} + +func (o SoftDeletePolicyPtrOutput) Elem() SoftDeletePolicyOutput { + return o.ApplyT(func(v *SoftDeletePolicy) SoftDeletePolicy { + if v != nil { + return *v + } + var ret SoftDeletePolicy + return ret + }).(SoftDeletePolicyOutput) +} + +// Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. +func (o SoftDeletePolicyPtrOutput) IsSoftDeleteEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SoftDeletePolicy) *bool { + if v == nil { + return nil + } + return v.IsSoftDeleteEnabled + }).(pulumi.BoolPtrOutput) +} + +// Contains information about the soft deletion policy of the gallery. +type SoftDeletePolicyResponse struct { + // Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. + IsSoftDeleteEnabled *bool `pulumi:"isSoftDeleteEnabled"` +} + +// Contains information about the soft deletion policy of the gallery. +type SoftDeletePolicyResponseOutput struct{ *pulumi.OutputState } + +func (SoftDeletePolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SoftDeletePolicyResponse)(nil)).Elem() +} + +func (o SoftDeletePolicyResponseOutput) ToSoftDeletePolicyResponseOutput() SoftDeletePolicyResponseOutput { + return o +} + +func (o SoftDeletePolicyResponseOutput) ToSoftDeletePolicyResponseOutputWithContext(ctx context.Context) SoftDeletePolicyResponseOutput { + return o +} + +// Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. +func (o SoftDeletePolicyResponseOutput) IsSoftDeleteEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SoftDeletePolicyResponse) *bool { return v.IsSoftDeleteEnabled }).(pulumi.BoolPtrOutput) +} + +type SoftDeletePolicyResponsePtrOutput struct{ *pulumi.OutputState } + +func (SoftDeletePolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SoftDeletePolicyResponse)(nil)).Elem() +} + +func (o SoftDeletePolicyResponsePtrOutput) ToSoftDeletePolicyResponsePtrOutput() SoftDeletePolicyResponsePtrOutput { + return o +} + +func (o SoftDeletePolicyResponsePtrOutput) ToSoftDeletePolicyResponsePtrOutputWithContext(ctx context.Context) SoftDeletePolicyResponsePtrOutput { + return o +} + +func (o SoftDeletePolicyResponsePtrOutput) Elem() SoftDeletePolicyResponseOutput { + return o.ApplyT(func(v *SoftDeletePolicyResponse) SoftDeletePolicyResponse { + if v != nil { + return *v + } + var ret SoftDeletePolicyResponse + return ret + }).(SoftDeletePolicyResponseOutput) +} + +// Enables soft-deletion for resources in this gallery, allowing them to be recovered within retention time. +func (o SoftDeletePolicyResponsePtrOutput) IsSoftDeleteEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SoftDeletePolicyResponse) *bool { + if v == nil { + return nil + } + return v.IsSoftDeleteEnabled + }).(pulumi.BoolPtrOutput) +} + // The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName} type SourceVault struct { // Resource Id @@ -22943,6 +30277,242 @@ func (o SourceVaultResponsePtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Specifies the Spot-Try-Restore properties for the virtual machine scale set. With this property customer can enable or disable automatic restore of the evicted Spot VMSS VM instances opportunistically based on capacity availability and pricing constraint. +type SpotRestorePolicy struct { + // Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints + Enabled *bool `pulumi:"enabled"` + // Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances + RestoreTimeout *string `pulumi:"restoreTimeout"` +} + +// SpotRestorePolicyInput is an input type that accepts SpotRestorePolicyArgs and SpotRestorePolicyOutput values. +// You can construct a concrete instance of `SpotRestorePolicyInput` via: +// +// SpotRestorePolicyArgs{...} +type SpotRestorePolicyInput interface { + pulumi.Input + + ToSpotRestorePolicyOutput() SpotRestorePolicyOutput + ToSpotRestorePolicyOutputWithContext(context.Context) SpotRestorePolicyOutput +} + +// Specifies the Spot-Try-Restore properties for the virtual machine scale set. With this property customer can enable or disable automatic restore of the evicted Spot VMSS VM instances opportunistically based on capacity availability and pricing constraint. +type SpotRestorePolicyArgs struct { + // Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances + RestoreTimeout pulumi.StringPtrInput `pulumi:"restoreTimeout"` +} + +func (SpotRestorePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpotRestorePolicy)(nil)).Elem() +} + +func (i SpotRestorePolicyArgs) ToSpotRestorePolicyOutput() SpotRestorePolicyOutput { + return i.ToSpotRestorePolicyOutputWithContext(context.Background()) +} + +func (i SpotRestorePolicyArgs) ToSpotRestorePolicyOutputWithContext(ctx context.Context) SpotRestorePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpotRestorePolicyOutput) +} + +func (i SpotRestorePolicyArgs) ToSpotRestorePolicyPtrOutput() SpotRestorePolicyPtrOutput { + return i.ToSpotRestorePolicyPtrOutputWithContext(context.Background()) +} + +func (i SpotRestorePolicyArgs) ToSpotRestorePolicyPtrOutputWithContext(ctx context.Context) SpotRestorePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpotRestorePolicyOutput).ToSpotRestorePolicyPtrOutputWithContext(ctx) +} + +// SpotRestorePolicyPtrInput is an input type that accepts SpotRestorePolicyArgs, SpotRestorePolicyPtr and SpotRestorePolicyPtrOutput values. +// You can construct a concrete instance of `SpotRestorePolicyPtrInput` via: +// +// SpotRestorePolicyArgs{...} +// +// or: +// +// nil +type SpotRestorePolicyPtrInput interface { + pulumi.Input + + ToSpotRestorePolicyPtrOutput() SpotRestorePolicyPtrOutput + ToSpotRestorePolicyPtrOutputWithContext(context.Context) SpotRestorePolicyPtrOutput +} + +type spotRestorePolicyPtrType SpotRestorePolicyArgs + +func SpotRestorePolicyPtr(v *SpotRestorePolicyArgs) SpotRestorePolicyPtrInput { + return (*spotRestorePolicyPtrType)(v) +} + +func (*spotRestorePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SpotRestorePolicy)(nil)).Elem() +} + +func (i *spotRestorePolicyPtrType) ToSpotRestorePolicyPtrOutput() SpotRestorePolicyPtrOutput { + return i.ToSpotRestorePolicyPtrOutputWithContext(context.Background()) +} + +func (i *spotRestorePolicyPtrType) ToSpotRestorePolicyPtrOutputWithContext(ctx context.Context) SpotRestorePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpotRestorePolicyPtrOutput) +} + +// Specifies the Spot-Try-Restore properties for the virtual machine scale set. With this property customer can enable or disable automatic restore of the evicted Spot VMSS VM instances opportunistically based on capacity availability and pricing constraint. +type SpotRestorePolicyOutput struct{ *pulumi.OutputState } + +func (SpotRestorePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpotRestorePolicy)(nil)).Elem() +} + +func (o SpotRestorePolicyOutput) ToSpotRestorePolicyOutput() SpotRestorePolicyOutput { + return o +} + +func (o SpotRestorePolicyOutput) ToSpotRestorePolicyOutputWithContext(ctx context.Context) SpotRestorePolicyOutput { + return o +} + +func (o SpotRestorePolicyOutput) ToSpotRestorePolicyPtrOutput() SpotRestorePolicyPtrOutput { + return o.ToSpotRestorePolicyPtrOutputWithContext(context.Background()) +} + +func (o SpotRestorePolicyOutput) ToSpotRestorePolicyPtrOutputWithContext(ctx context.Context) SpotRestorePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SpotRestorePolicy) *SpotRestorePolicy { + return &v + }).(SpotRestorePolicyPtrOutput) +} + +// Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints +func (o SpotRestorePolicyOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SpotRestorePolicy) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances +func (o SpotRestorePolicyOutput) RestoreTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotRestorePolicy) *string { return v.RestoreTimeout }).(pulumi.StringPtrOutput) +} + +type SpotRestorePolicyPtrOutput struct{ *pulumi.OutputState } + +func (SpotRestorePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpotRestorePolicy)(nil)).Elem() +} + +func (o SpotRestorePolicyPtrOutput) ToSpotRestorePolicyPtrOutput() SpotRestorePolicyPtrOutput { + return o +} + +func (o SpotRestorePolicyPtrOutput) ToSpotRestorePolicyPtrOutputWithContext(ctx context.Context) SpotRestorePolicyPtrOutput { + return o +} + +func (o SpotRestorePolicyPtrOutput) Elem() SpotRestorePolicyOutput { + return o.ApplyT(func(v *SpotRestorePolicy) SpotRestorePolicy { + if v != nil { + return *v + } + var ret SpotRestorePolicy + return ret + }).(SpotRestorePolicyOutput) +} + +// Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints +func (o SpotRestorePolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SpotRestorePolicy) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances +func (o SpotRestorePolicyPtrOutput) RestoreTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SpotRestorePolicy) *string { + if v == nil { + return nil + } + return v.RestoreTimeout + }).(pulumi.StringPtrOutput) +} + +// Specifies the Spot-Try-Restore properties for the virtual machine scale set. With this property customer can enable or disable automatic restore of the evicted Spot VMSS VM instances opportunistically based on capacity availability and pricing constraint. +type SpotRestorePolicyResponse struct { + // Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints + Enabled *bool `pulumi:"enabled"` + // Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances + RestoreTimeout *string `pulumi:"restoreTimeout"` +} + +// Specifies the Spot-Try-Restore properties for the virtual machine scale set. With this property customer can enable or disable automatic restore of the evicted Spot VMSS VM instances opportunistically based on capacity availability and pricing constraint. +type SpotRestorePolicyResponseOutput struct{ *pulumi.OutputState } + +func (SpotRestorePolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpotRestorePolicyResponse)(nil)).Elem() +} + +func (o SpotRestorePolicyResponseOutput) ToSpotRestorePolicyResponseOutput() SpotRestorePolicyResponseOutput { + return o +} + +func (o SpotRestorePolicyResponseOutput) ToSpotRestorePolicyResponseOutputWithContext(ctx context.Context) SpotRestorePolicyResponseOutput { + return o +} + +// Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints +func (o SpotRestorePolicyResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SpotRestorePolicyResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances +func (o SpotRestorePolicyResponseOutput) RestoreTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotRestorePolicyResponse) *string { return v.RestoreTimeout }).(pulumi.StringPtrOutput) +} + +type SpotRestorePolicyResponsePtrOutput struct{ *pulumi.OutputState } + +func (SpotRestorePolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SpotRestorePolicyResponse)(nil)).Elem() +} + +func (o SpotRestorePolicyResponsePtrOutput) ToSpotRestorePolicyResponsePtrOutput() SpotRestorePolicyResponsePtrOutput { + return o +} + +func (o SpotRestorePolicyResponsePtrOutput) ToSpotRestorePolicyResponsePtrOutputWithContext(ctx context.Context) SpotRestorePolicyResponsePtrOutput { + return o +} + +func (o SpotRestorePolicyResponsePtrOutput) Elem() SpotRestorePolicyResponseOutput { + return o.ApplyT(func(v *SpotRestorePolicyResponse) SpotRestorePolicyResponse { + if v != nil { + return *v + } + var ret SpotRestorePolicyResponse + return ret + }).(SpotRestorePolicyResponseOutput) +} + +// Enables the Spot-Try-Restore feature where evicted VMSS SPOT instances will be tried to be restored opportunistically based on capacity availability and pricing constraints +func (o SpotRestorePolicyResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SpotRestorePolicyResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Timeout value expressed as an ISO 8601 time duration after which the platform will not try to restore the VMSS SPOT instances +func (o SpotRestorePolicyResponsePtrOutput) RestoreTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SpotRestorePolicyResponse) *string { + if v == nil { + return nil + } + return v.RestoreTimeout + }).(pulumi.StringPtrOutput) +} + // SSH configuration for Linux based VMs running on Azure type SshConfiguration struct { // The list of SSH public keys used to authenticate with linux based VMs. @@ -23145,7 +30715,7 @@ func (o SshConfigurationResponsePtrOutput) PublicKeys() SshPublicKeyResponseArra // Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. type SshPublicKeyType struct { - // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

    For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). + // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). KeyData *string `pulumi:"keyData"` // Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys Path *string `pulumi:"path"` @@ -23164,7 +30734,7 @@ type SshPublicKeyTypeInput interface { // Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. type SshPublicKeyTypeArgs struct { - // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

    For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). + // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). KeyData pulumi.StringPtrInput `pulumi:"keyData"` // Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys Path pulumi.StringPtrInput `pulumi:"path"` @@ -23222,7 +30792,7 @@ func (o SshPublicKeyTypeOutput) ToSshPublicKeyTypeOutputWithContext(ctx context. return o } -// SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

    For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). +// SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). func (o SshPublicKeyTypeOutput) KeyData() pulumi.StringPtrOutput { return o.ApplyT(func(v SshPublicKeyType) *string { return v.KeyData }).(pulumi.StringPtrOutput) } @@ -23254,7 +30824,7 @@ func (o SshPublicKeyTypeArrayOutput) Index(i pulumi.IntInput) SshPublicKeyTypeOu // Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. type SshPublicKeyResponse struct { - // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

    For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). + // SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). KeyData *string `pulumi:"keyData"` // Specifies the full path on the created VM where ssh public key is stored. If the file already exists, the specified key is appended to the file. Example: /home/user/.ssh/authorized_keys Path *string `pulumi:"path"` @@ -23275,7 +30845,7 @@ func (o SshPublicKeyResponseOutput) ToSshPublicKeyResponseOutputWithContext(ctx return o } -// SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format.

    For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). +// SSH public key certificate used to authenticate with the VM through ssh. The key needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys, see [Create SSH keys on Linux and Mac for Linux VMs in Azure]https://docs.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed). func (o SshPublicKeyResponseOutput) KeyData() pulumi.StringPtrOutput { return o.ApplyT(func(v SshPublicKeyResponse) *string { return v.KeyData }).(pulumi.StringPtrOutput) } @@ -23307,11 +30877,13 @@ func (o SshPublicKeyResponseArrayOutput) Index(i pulumi.IntInput) SshPublicKeyRe // Specifies the storage settings for the virtual machine disks. type StorageProfile struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks []DataDisk `pulumi:"dataDisks"` + // Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. + DiskControllerType *string `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference *ImageReference `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *OSDisk `pulumi:"osDisk"` } @@ -23328,11 +30900,13 @@ type StorageProfileInput interface { // Specifies the storage settings for the virtual machine disks. type StorageProfileArgs struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks DataDiskArrayInput `pulumi:"dataDisks"` + // Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. + DiskControllerType pulumi.StringPtrInput `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference ImageReferencePtrInput `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk OSDiskPtrInput `pulumi:"osDisk"` } @@ -23414,17 +30988,22 @@ func (o StorageProfileOutput) ToStorageProfilePtrOutputWithContext(ctx context.C }).(StorageProfilePtrOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileOutput) DataDisks() DataDiskArrayOutput { return o.ApplyT(func(v StorageProfile) []DataDisk { return v.DataDisks }).(DataDiskArrayOutput) } +// Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. +func (o StorageProfileOutput) DiskControllerType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StorageProfile) *string { return v.DiskControllerType }).(pulumi.StringPtrOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o StorageProfileOutput) ImageReference() ImageReferencePtrOutput { return o.ApplyT(func(v StorageProfile) *ImageReference { return v.ImageReference }).(ImageReferencePtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileOutput) OsDisk() OSDiskPtrOutput { return o.ApplyT(func(v StorageProfile) *OSDisk { return v.OsDisk }).(OSDiskPtrOutput) } @@ -23453,7 +31032,7 @@ func (o StorageProfilePtrOutput) Elem() StorageProfileOutput { }).(StorageProfileOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfilePtrOutput) DataDisks() DataDiskArrayOutput { return o.ApplyT(func(v *StorageProfile) []DataDisk { if v == nil { @@ -23463,6 +31042,16 @@ func (o StorageProfilePtrOutput) DataDisks() DataDiskArrayOutput { }).(DataDiskArrayOutput) } +// Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. +func (o StorageProfilePtrOutput) DiskControllerType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageProfile) *string { + if v == nil { + return nil + } + return v.DiskControllerType + }).(pulumi.StringPtrOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o StorageProfilePtrOutput) ImageReference() ImageReferencePtrOutput { return o.ApplyT(func(v *StorageProfile) *ImageReference { @@ -23473,7 +31062,7 @@ func (o StorageProfilePtrOutput) ImageReference() ImageReferencePtrOutput { }).(ImageReferencePtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfilePtrOutput) OsDisk() OSDiskPtrOutput { return o.ApplyT(func(v *StorageProfile) *OSDisk { if v == nil { @@ -23485,11 +31074,13 @@ func (o StorageProfilePtrOutput) OsDisk() OSDiskPtrOutput { // Specifies the storage settings for the virtual machine disks. type StorageProfileResponse struct { - // Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). DataDisks []DataDiskResponse `pulumi:"dataDisks"` + // Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. + DiskControllerType *string `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference *ImageReferenceResponse `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *OSDiskResponse `pulumi:"osDisk"` } @@ -23508,17 +31099,22 @@ func (o StorageProfileResponseOutput) ToStorageProfileResponseOutputWithContext( return o } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileResponseOutput) DataDisks() DataDiskResponseArrayOutput { return o.ApplyT(func(v StorageProfileResponse) []DataDiskResponse { return v.DataDisks }).(DataDiskResponseArrayOutput) } +// Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. +func (o StorageProfileResponseOutput) DiskControllerType() pulumi.StringPtrOutput { + return o.ApplyT(func(v StorageProfileResponse) *string { return v.DiskControllerType }).(pulumi.StringPtrOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o StorageProfileResponseOutput) ImageReference() ImageReferenceResponsePtrOutput { return o.ApplyT(func(v StorageProfileResponse) *ImageReferenceResponse { return v.ImageReference }).(ImageReferenceResponsePtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileResponseOutput) OsDisk() OSDiskResponsePtrOutput { return o.ApplyT(func(v StorageProfileResponse) *OSDiskResponse { return v.OsDisk }).(OSDiskResponsePtrOutput) } @@ -23547,7 +31143,7 @@ func (o StorageProfileResponsePtrOutput) Elem() StorageProfileResponseOutput { }).(StorageProfileResponseOutput) } -// Specifies the parameters that are used to add a data disk to a virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileResponsePtrOutput) DataDisks() DataDiskResponseArrayOutput { return o.ApplyT(func(v *StorageProfileResponse) []DataDiskResponse { if v == nil { @@ -23557,6 +31153,16 @@ func (o StorageProfileResponsePtrOutput) DataDisks() DataDiskResponseArrayOutput }).(DataDiskResponseArrayOutput) } +// Specifies the disk controller type configured for the VM. **Note:** This property will be set to the default disk controller type if not specified provided virtual machine is being created with 'hyperVGeneration' set to V2 based on the capabilities of the operating system disk and VM size from the the specified minimum api version. You need to deallocate the VM before updating its disk controller type unless you are updating the VM size in the VM configuration which implicitly deallocates and reallocates the VM. Minimum api-version: 2022-08-01. +func (o StorageProfileResponsePtrOutput) DiskControllerType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageProfileResponse) *string { + if v == nil { + return nil + } + return v.DiskControllerType + }).(pulumi.StringPtrOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o StorageProfileResponsePtrOutput) ImageReference() ImageReferenceResponsePtrOutput { return o.ApplyT(func(v *StorageProfileResponse) *ImageReferenceResponse { @@ -23567,7 +31173,7 @@ func (o StorageProfileResponsePtrOutput) ImageReference() ImageReferenceResponse }).(ImageReferenceResponsePtrOutput) } -// Specifies information about the operating system disk used by the virtual machine.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o StorageProfileResponsePtrOutput) OsDisk() OSDiskResponsePtrOutput { return o.ApplyT(func(v *StorageProfileResponse) *OSDiskResponse { if v == nil { @@ -23578,7 +31184,10 @@ func (o StorageProfileResponsePtrOutput) OsDisk() OSDiskResponsePtrOutput { } type SubResource struct { - // Resource Id + // Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. + // An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. + // A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. + // Example of a relative ID: $self/frontEndConfigurations/my-frontend. Id *string `pulumi:"id"` } @@ -23594,7 +31203,10 @@ type SubResourceInput interface { } type SubResourceArgs struct { - // Resource Id + // Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. + // An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. + // A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. + // Example of a relative ID: $self/frontEndConfigurations/my-frontend. Id pulumi.StringPtrInput `pulumi:"id"` } @@ -23700,7 +31312,10 @@ func (o SubResourceOutput) ToSubResourcePtrOutputWithContext(ctx context.Context }).(SubResourcePtrOutput) } -// Resource Id +// Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. +// An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. +// A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. +// Example of a relative ID: $self/frontEndConfigurations/my-frontend. func (o SubResourceOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v SubResource) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -23729,7 +31344,10 @@ func (o SubResourcePtrOutput) Elem() SubResourceOutput { }).(SubResourceOutput) } -// Resource Id +// Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. +// An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. +// A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. +// Example of a relative ID: $self/frontEndConfigurations/my-frontend. func (o SubResourcePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *SubResource) *string { if v == nil { @@ -23932,10 +31550,361 @@ func (o SubResourceWithColocationStatusResponseArrayOutput) Index(i pulumi.IntIn }).(SubResourceWithColocationStatusResponseOutput) } +// List of supported capabilities persisted on the disk resource for VM use. +type SupportedCapabilities struct { + // True if the image from which the OS disk is created supports accelerated networking. + AcceleratedNetwork *bool `pulumi:"acceleratedNetwork"` + // CPU architecture supported by an OS disk. + Architecture *string `pulumi:"architecture"` + // The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. + DiskControllerTypes *string `pulumi:"diskControllerTypes"` +} + +// SupportedCapabilitiesInput is an input type that accepts SupportedCapabilitiesArgs and SupportedCapabilitiesOutput values. +// You can construct a concrete instance of `SupportedCapabilitiesInput` via: +// +// SupportedCapabilitiesArgs{...} +type SupportedCapabilitiesInput interface { + pulumi.Input + + ToSupportedCapabilitiesOutput() SupportedCapabilitiesOutput + ToSupportedCapabilitiesOutputWithContext(context.Context) SupportedCapabilitiesOutput +} + +// List of supported capabilities persisted on the disk resource for VM use. +type SupportedCapabilitiesArgs struct { + // True if the image from which the OS disk is created supports accelerated networking. + AcceleratedNetwork pulumi.BoolPtrInput `pulumi:"acceleratedNetwork"` + // CPU architecture supported by an OS disk. + Architecture pulumi.StringPtrInput `pulumi:"architecture"` + // The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. + DiskControllerTypes pulumi.StringPtrInput `pulumi:"diskControllerTypes"` +} + +func (SupportedCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SupportedCapabilities)(nil)).Elem() +} + +func (i SupportedCapabilitiesArgs) ToSupportedCapabilitiesOutput() SupportedCapabilitiesOutput { + return i.ToSupportedCapabilitiesOutputWithContext(context.Background()) +} + +func (i SupportedCapabilitiesArgs) ToSupportedCapabilitiesOutputWithContext(ctx context.Context) SupportedCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(SupportedCapabilitiesOutput) +} + +func (i SupportedCapabilitiesArgs) ToSupportedCapabilitiesPtrOutput() SupportedCapabilitiesPtrOutput { + return i.ToSupportedCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i SupportedCapabilitiesArgs) ToSupportedCapabilitiesPtrOutputWithContext(ctx context.Context) SupportedCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SupportedCapabilitiesOutput).ToSupportedCapabilitiesPtrOutputWithContext(ctx) +} + +// SupportedCapabilitiesPtrInput is an input type that accepts SupportedCapabilitiesArgs, SupportedCapabilitiesPtr and SupportedCapabilitiesPtrOutput values. +// You can construct a concrete instance of `SupportedCapabilitiesPtrInput` via: +// +// SupportedCapabilitiesArgs{...} +// +// or: +// +// nil +type SupportedCapabilitiesPtrInput interface { + pulumi.Input + + ToSupportedCapabilitiesPtrOutput() SupportedCapabilitiesPtrOutput + ToSupportedCapabilitiesPtrOutputWithContext(context.Context) SupportedCapabilitiesPtrOutput +} + +type supportedCapabilitiesPtrType SupportedCapabilitiesArgs + +func SupportedCapabilitiesPtr(v *SupportedCapabilitiesArgs) SupportedCapabilitiesPtrInput { + return (*supportedCapabilitiesPtrType)(v) +} + +func (*supportedCapabilitiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SupportedCapabilities)(nil)).Elem() +} + +func (i *supportedCapabilitiesPtrType) ToSupportedCapabilitiesPtrOutput() SupportedCapabilitiesPtrOutput { + return i.ToSupportedCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i *supportedCapabilitiesPtrType) ToSupportedCapabilitiesPtrOutputWithContext(ctx context.Context) SupportedCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SupportedCapabilitiesPtrOutput) +} + +// List of supported capabilities persisted on the disk resource for VM use. +type SupportedCapabilitiesOutput struct{ *pulumi.OutputState } + +func (SupportedCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SupportedCapabilities)(nil)).Elem() +} + +func (o SupportedCapabilitiesOutput) ToSupportedCapabilitiesOutput() SupportedCapabilitiesOutput { + return o +} + +func (o SupportedCapabilitiesOutput) ToSupportedCapabilitiesOutputWithContext(ctx context.Context) SupportedCapabilitiesOutput { + return o +} + +func (o SupportedCapabilitiesOutput) ToSupportedCapabilitiesPtrOutput() SupportedCapabilitiesPtrOutput { + return o.ToSupportedCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (o SupportedCapabilitiesOutput) ToSupportedCapabilitiesPtrOutputWithContext(ctx context.Context) SupportedCapabilitiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SupportedCapabilities) *SupportedCapabilities { + return &v + }).(SupportedCapabilitiesPtrOutput) +} + +// True if the image from which the OS disk is created supports accelerated networking. +func (o SupportedCapabilitiesOutput) AcceleratedNetwork() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SupportedCapabilities) *bool { return v.AcceleratedNetwork }).(pulumi.BoolPtrOutput) +} + +// CPU architecture supported by an OS disk. +func (o SupportedCapabilitiesOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v SupportedCapabilities) *string { return v.Architecture }).(pulumi.StringPtrOutput) +} + +// The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. +func (o SupportedCapabilitiesOutput) DiskControllerTypes() pulumi.StringPtrOutput { + return o.ApplyT(func(v SupportedCapabilities) *string { return v.DiskControllerTypes }).(pulumi.StringPtrOutput) +} + +type SupportedCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (SupportedCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SupportedCapabilities)(nil)).Elem() +} + +func (o SupportedCapabilitiesPtrOutput) ToSupportedCapabilitiesPtrOutput() SupportedCapabilitiesPtrOutput { + return o +} + +func (o SupportedCapabilitiesPtrOutput) ToSupportedCapabilitiesPtrOutputWithContext(ctx context.Context) SupportedCapabilitiesPtrOutput { + return o +} + +func (o SupportedCapabilitiesPtrOutput) Elem() SupportedCapabilitiesOutput { + return o.ApplyT(func(v *SupportedCapabilities) SupportedCapabilities { + if v != nil { + return *v + } + var ret SupportedCapabilities + return ret + }).(SupportedCapabilitiesOutput) +} + +// True if the image from which the OS disk is created supports accelerated networking. +func (o SupportedCapabilitiesPtrOutput) AcceleratedNetwork() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SupportedCapabilities) *bool { + if v == nil { + return nil + } + return v.AcceleratedNetwork + }).(pulumi.BoolPtrOutput) +} + +// CPU architecture supported by an OS disk. +func (o SupportedCapabilitiesPtrOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SupportedCapabilities) *string { + if v == nil { + return nil + } + return v.Architecture + }).(pulumi.StringPtrOutput) +} + +// The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. +func (o SupportedCapabilitiesPtrOutput) DiskControllerTypes() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SupportedCapabilities) *string { + if v == nil { + return nil + } + return v.DiskControllerTypes + }).(pulumi.StringPtrOutput) +} + +// List of supported capabilities persisted on the disk resource for VM use. +type SupportedCapabilitiesResponse struct { + // True if the image from which the OS disk is created supports accelerated networking. + AcceleratedNetwork *bool `pulumi:"acceleratedNetwork"` + // CPU architecture supported by an OS disk. + Architecture *string `pulumi:"architecture"` + // The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. + DiskControllerTypes *string `pulumi:"diskControllerTypes"` +} + +// List of supported capabilities persisted on the disk resource for VM use. +type SupportedCapabilitiesResponseOutput struct{ *pulumi.OutputState } + +func (SupportedCapabilitiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SupportedCapabilitiesResponse)(nil)).Elem() +} + +func (o SupportedCapabilitiesResponseOutput) ToSupportedCapabilitiesResponseOutput() SupportedCapabilitiesResponseOutput { + return o +} + +func (o SupportedCapabilitiesResponseOutput) ToSupportedCapabilitiesResponseOutputWithContext(ctx context.Context) SupportedCapabilitiesResponseOutput { + return o +} + +// True if the image from which the OS disk is created supports accelerated networking. +func (o SupportedCapabilitiesResponseOutput) AcceleratedNetwork() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SupportedCapabilitiesResponse) *bool { return v.AcceleratedNetwork }).(pulumi.BoolPtrOutput) +} + +// CPU architecture supported by an OS disk. +func (o SupportedCapabilitiesResponseOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v SupportedCapabilitiesResponse) *string { return v.Architecture }).(pulumi.StringPtrOutput) +} + +// The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. +func (o SupportedCapabilitiesResponseOutput) DiskControllerTypes() pulumi.StringPtrOutput { + return o.ApplyT(func(v SupportedCapabilitiesResponse) *string { return v.DiskControllerTypes }).(pulumi.StringPtrOutput) +} + +type SupportedCapabilitiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (SupportedCapabilitiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SupportedCapabilitiesResponse)(nil)).Elem() +} + +func (o SupportedCapabilitiesResponsePtrOutput) ToSupportedCapabilitiesResponsePtrOutput() SupportedCapabilitiesResponsePtrOutput { + return o +} + +func (o SupportedCapabilitiesResponsePtrOutput) ToSupportedCapabilitiesResponsePtrOutputWithContext(ctx context.Context) SupportedCapabilitiesResponsePtrOutput { + return o +} + +func (o SupportedCapabilitiesResponsePtrOutput) Elem() SupportedCapabilitiesResponseOutput { + return o.ApplyT(func(v *SupportedCapabilitiesResponse) SupportedCapabilitiesResponse { + if v != nil { + return *v + } + var ret SupportedCapabilitiesResponse + return ret + }).(SupportedCapabilitiesResponseOutput) +} + +// True if the image from which the OS disk is created supports accelerated networking. +func (o SupportedCapabilitiesResponsePtrOutput) AcceleratedNetwork() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SupportedCapabilitiesResponse) *bool { + if v == nil { + return nil + } + return v.AcceleratedNetwork + }).(pulumi.BoolPtrOutput) +} + +// CPU architecture supported by an OS disk. +func (o SupportedCapabilitiesResponsePtrOutput) Architecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SupportedCapabilitiesResponse) *string { + if v == nil { + return nil + } + return v.Architecture + }).(pulumi.StringPtrOutput) +} + +// The disk controllers that an OS disk supports. If set it can be SCSI or SCSI, NVME or NVME, SCSI. +func (o SupportedCapabilitiesResponsePtrOutput) DiskControllerTypes() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SupportedCapabilitiesResponse) *string { + if v == nil { + return nil + } + return v.DiskControllerTypes + }).(pulumi.StringPtrOutput) +} + +// The system meta data relating to this resource. +type SystemDataResponse struct { + // Specifies the time in UTC at which the Cloud Service (extended support) resource was created.
    Minimum api-version: 2022-04-04. + CreatedAt string `pulumi:"createdAt"` + // Specifies the time in UTC at which the Cloud Service (extended support) resource was last modified.
    Minimum api-version: 2022-04-04. + LastModifiedAt string `pulumi:"lastModifiedAt"` +} + +// The system meta data relating to this resource. +type SystemDataResponseOutput struct{ *pulumi.OutputState } + +func (SystemDataResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SystemDataResponse)(nil)).Elem() +} + +func (o SystemDataResponseOutput) ToSystemDataResponseOutput() SystemDataResponseOutput { + return o +} + +func (o SystemDataResponseOutput) ToSystemDataResponseOutputWithContext(ctx context.Context) SystemDataResponseOutput { + return o +} + +// Specifies the time in UTC at which the Cloud Service (extended support) resource was created.
    Minimum api-version: 2022-04-04. +func (o SystemDataResponseOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v SystemDataResponse) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Specifies the time in UTC at which the Cloud Service (extended support) resource was last modified.
    Minimum api-version: 2022-04-04. +func (o SystemDataResponseOutput) LastModifiedAt() pulumi.StringOutput { + return o.ApplyT(func(v SystemDataResponse) string { return v.LastModifiedAt }).(pulumi.StringOutput) +} + +type SystemDataResponsePtrOutput struct{ *pulumi.OutputState } + +func (SystemDataResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SystemDataResponse)(nil)).Elem() +} + +func (o SystemDataResponsePtrOutput) ToSystemDataResponsePtrOutput() SystemDataResponsePtrOutput { + return o +} + +func (o SystemDataResponsePtrOutput) ToSystemDataResponsePtrOutputWithContext(ctx context.Context) SystemDataResponsePtrOutput { + return o +} + +func (o SystemDataResponsePtrOutput) Elem() SystemDataResponseOutput { + return o.ApplyT(func(v *SystemDataResponse) SystemDataResponse { + if v != nil { + return *v + } + var ret SystemDataResponse + return ret + }).(SystemDataResponseOutput) +} + +// Specifies the time in UTC at which the Cloud Service (extended support) resource was created.
    Minimum api-version: 2022-04-04. +func (o SystemDataResponsePtrOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SystemDataResponse) *string { + if v == nil { + return nil + } + return &v.CreatedAt + }).(pulumi.StringPtrOutput) +} + +// Specifies the time in UTC at which the Cloud Service (extended support) resource was last modified.
    Minimum api-version: 2022-04-04. +func (o SystemDataResponsePtrOutput) LastModifiedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SystemDataResponse) *string { + if v == nil { + return nil + } + return &v.LastModifiedAt + }).(pulumi.StringPtrOutput) +} + // Describes the target region information. type TargetRegion struct { // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. Encryption *EncryptionImages `pulumi:"encryption"` + // Contains the flag setting to hide an image when users specify version='latest' + ExcludeFromLatest *bool `pulumi:"excludeFromLatest"` // The name of the region. Name string `pulumi:"name"` // The number of replicas of the Image Version to be created per region. This property is updatable. @@ -23959,6 +31928,8 @@ type TargetRegionInput interface { type TargetRegionArgs struct { // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. Encryption EncryptionImagesPtrInput `pulumi:"encryption"` + // Contains the flag setting to hide an image when users specify version='latest' + ExcludeFromLatest pulumi.BoolPtrInput `pulumi:"excludeFromLatest"` // The name of the region. Name pulumi.StringInput `pulumi:"name"` // The number of replicas of the Image Version to be created per region. This property is updatable. @@ -24024,6 +31995,11 @@ func (o TargetRegionOutput) Encryption() EncryptionImagesPtrOutput { return o.ApplyT(func(v TargetRegion) *EncryptionImages { return v.Encryption }).(EncryptionImagesPtrOutput) } +// Contains the flag setting to hide an image when users specify version='latest' +func (o TargetRegionOutput) ExcludeFromLatest() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TargetRegion) *bool { return v.ExcludeFromLatest }).(pulumi.BoolPtrOutput) +} + // The name of the region. func (o TargetRegionOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v TargetRegion) string { return v.Name }).(pulumi.StringOutput) @@ -24063,6 +32039,8 @@ func (o TargetRegionArrayOutput) Index(i pulumi.IntInput) TargetRegionOutput { type TargetRegionResponse struct { // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. Encryption *EncryptionImagesResponse `pulumi:"encryption"` + // Contains the flag setting to hide an image when users specify version='latest' + ExcludeFromLatest *bool `pulumi:"excludeFromLatest"` // The name of the region. Name string `pulumi:"name"` // The number of replicas of the Image Version to be created per region. This property is updatable. @@ -24091,6 +32069,11 @@ func (o TargetRegionResponseOutput) Encryption() EncryptionImagesResponsePtrOutp return o.ApplyT(func(v TargetRegionResponse) *EncryptionImagesResponse { return v.Encryption }).(EncryptionImagesResponsePtrOutput) } +// Contains the flag setting to hide an image when users specify version='latest' +func (o TargetRegionResponseOutput) ExcludeFromLatest() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TargetRegionResponse) *bool { return v.ExcludeFromLatest }).(pulumi.BoolPtrOutput) +} + // The name of the region. func (o TargetRegionResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v TargetRegionResponse) string { return v.Name }).(pulumi.StringOutput) @@ -24357,11 +32340,11 @@ func (o TerminateNotificationProfileResponsePtrOutput) NotBeforeTimeout() pulumi }).(pulumi.StringPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. type UefiSettings struct { - // Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. SecureBootEnabled *bool `pulumi:"secureBootEnabled"` - // Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. VTpmEnabled *bool `pulumi:"vTpmEnabled"` } @@ -24376,11 +32359,11 @@ type UefiSettingsInput interface { ToUefiSettingsOutputWithContext(context.Context) UefiSettingsOutput } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. type UefiSettingsArgs struct { - // Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. SecureBootEnabled pulumi.BoolPtrInput `pulumi:"secureBootEnabled"` - // Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. VTpmEnabled pulumi.BoolPtrInput `pulumi:"vTpmEnabled"` } @@ -24437,7 +32420,7 @@ func (i *uefiSettingsPtrType) ToUefiSettingsPtrOutputWithContext(ctx context.Con return pulumi.ToOutputWithContext(ctx, i).(UefiSettingsPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. type UefiSettingsOutput struct{ *pulumi.OutputState } func (UefiSettingsOutput) ElementType() reflect.Type { @@ -24462,12 +32445,12 @@ func (o UefiSettingsOutput) ToUefiSettingsPtrOutputWithContext(ctx context.Conte }).(UefiSettingsPtrOutput) } -// Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsOutput) SecureBootEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v UefiSettings) *bool { return v.SecureBootEnabled }).(pulumi.BoolPtrOutput) } -// Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsOutput) VTpmEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v UefiSettings) *bool { return v.VTpmEnabled }).(pulumi.BoolPtrOutput) } @@ -24496,7 +32479,7 @@ func (o UefiSettingsPtrOutput) Elem() UefiSettingsOutput { }).(UefiSettingsOutput) } -// Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsPtrOutput) SecureBootEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *UefiSettings) *bool { if v == nil { @@ -24506,7 +32489,7 @@ func (o UefiSettingsPtrOutput) SecureBootEnabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsPtrOutput) VTpmEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *UefiSettings) *bool { if v == nil { @@ -24516,15 +32499,15 @@ func (o UefiSettingsPtrOutput) VTpmEnabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. type UefiSettingsResponse struct { - // Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. SecureBootEnabled *bool `pulumi:"secureBootEnabled"` - // Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 + // Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. VTpmEnabled *bool `pulumi:"vTpmEnabled"` } -// Specifies the security settings like secure boot and vTPM used while creating the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01. type UefiSettingsResponseOutput struct{ *pulumi.OutputState } func (UefiSettingsResponseOutput) ElementType() reflect.Type { @@ -24539,12 +32522,12 @@ func (o UefiSettingsResponseOutput) ToUefiSettingsResponseOutputWithContext(ctx return o } -// Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsResponseOutput) SecureBootEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v UefiSettingsResponse) *bool { return v.SecureBootEnabled }).(pulumi.BoolPtrOutput) } -// Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsResponseOutput) VTpmEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v UefiSettingsResponse) *bool { return v.VTpmEnabled }).(pulumi.BoolPtrOutput) } @@ -24573,7 +32556,7 @@ func (o UefiSettingsResponsePtrOutput) Elem() UefiSettingsResponseOutput { }).(UefiSettingsResponseOutput) } -// Specifies whether secure boot should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether secure boot should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsResponsePtrOutput) SecureBootEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *UefiSettingsResponse) *bool { if v == nil { @@ -24583,7 +32566,7 @@ func (o UefiSettingsResponsePtrOutput) SecureBootEnabled() pulumi.BoolPtrOutput }).(pulumi.BoolPtrOutput) } -// Specifies whether vTPM should be enabled on the virtual machine.

    Minimum api-version: 2020-12-01 +// Specifies whether vTPM should be enabled on the virtual machine. Minimum api-version: 2020-12-01. func (o UefiSettingsResponsePtrOutput) VTpmEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *UefiSettingsResponse) *bool { if v == nil { @@ -25132,6 +33115,242 @@ func (o UserArtifactManageResponsePtrOutput) Update() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +type UserArtifactSettings struct { + // Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". + ConfigFileName *string `pulumi:"configFileName"` + // Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. + PackageFileName *string `pulumi:"packageFileName"` +} + +// UserArtifactSettingsInput is an input type that accepts UserArtifactSettingsArgs and UserArtifactSettingsOutput values. +// You can construct a concrete instance of `UserArtifactSettingsInput` via: +// +// UserArtifactSettingsArgs{...} +type UserArtifactSettingsInput interface { + pulumi.Input + + ToUserArtifactSettingsOutput() UserArtifactSettingsOutput + ToUserArtifactSettingsOutputWithContext(context.Context) UserArtifactSettingsOutput +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +type UserArtifactSettingsArgs struct { + // Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". + ConfigFileName pulumi.StringPtrInput `pulumi:"configFileName"` + // Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. + PackageFileName pulumi.StringPtrInput `pulumi:"packageFileName"` +} + +func (UserArtifactSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*UserArtifactSettings)(nil)).Elem() +} + +func (i UserArtifactSettingsArgs) ToUserArtifactSettingsOutput() UserArtifactSettingsOutput { + return i.ToUserArtifactSettingsOutputWithContext(context.Background()) +} + +func (i UserArtifactSettingsArgs) ToUserArtifactSettingsOutputWithContext(ctx context.Context) UserArtifactSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserArtifactSettingsOutput) +} + +func (i UserArtifactSettingsArgs) ToUserArtifactSettingsPtrOutput() UserArtifactSettingsPtrOutput { + return i.ToUserArtifactSettingsPtrOutputWithContext(context.Background()) +} + +func (i UserArtifactSettingsArgs) ToUserArtifactSettingsPtrOutputWithContext(ctx context.Context) UserArtifactSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserArtifactSettingsOutput).ToUserArtifactSettingsPtrOutputWithContext(ctx) +} + +// UserArtifactSettingsPtrInput is an input type that accepts UserArtifactSettingsArgs, UserArtifactSettingsPtr and UserArtifactSettingsPtrOutput values. +// You can construct a concrete instance of `UserArtifactSettingsPtrInput` via: +// +// UserArtifactSettingsArgs{...} +// +// or: +// +// nil +type UserArtifactSettingsPtrInput interface { + pulumi.Input + + ToUserArtifactSettingsPtrOutput() UserArtifactSettingsPtrOutput + ToUserArtifactSettingsPtrOutputWithContext(context.Context) UserArtifactSettingsPtrOutput +} + +type userArtifactSettingsPtrType UserArtifactSettingsArgs + +func UserArtifactSettingsPtr(v *UserArtifactSettingsArgs) UserArtifactSettingsPtrInput { + return (*userArtifactSettingsPtrType)(v) +} + +func (*userArtifactSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**UserArtifactSettings)(nil)).Elem() +} + +func (i *userArtifactSettingsPtrType) ToUserArtifactSettingsPtrOutput() UserArtifactSettingsPtrOutput { + return i.ToUserArtifactSettingsPtrOutputWithContext(context.Background()) +} + +func (i *userArtifactSettingsPtrType) ToUserArtifactSettingsPtrOutputWithContext(ctx context.Context) UserArtifactSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserArtifactSettingsPtrOutput) +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +type UserArtifactSettingsOutput struct{ *pulumi.OutputState } + +func (UserArtifactSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserArtifactSettings)(nil)).Elem() +} + +func (o UserArtifactSettingsOutput) ToUserArtifactSettingsOutput() UserArtifactSettingsOutput { + return o +} + +func (o UserArtifactSettingsOutput) ToUserArtifactSettingsOutputWithContext(ctx context.Context) UserArtifactSettingsOutput { + return o +} + +func (o UserArtifactSettingsOutput) ToUserArtifactSettingsPtrOutput() UserArtifactSettingsPtrOutput { + return o.ToUserArtifactSettingsPtrOutputWithContext(context.Background()) +} + +func (o UserArtifactSettingsOutput) ToUserArtifactSettingsPtrOutputWithContext(ctx context.Context) UserArtifactSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v UserArtifactSettings) *UserArtifactSettings { + return &v + }).(UserArtifactSettingsPtrOutput) +} + +// Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". +func (o UserArtifactSettingsOutput) ConfigFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserArtifactSettings) *string { return v.ConfigFileName }).(pulumi.StringPtrOutput) +} + +// Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. +func (o UserArtifactSettingsOutput) PackageFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserArtifactSettings) *string { return v.PackageFileName }).(pulumi.StringPtrOutput) +} + +type UserArtifactSettingsPtrOutput struct{ *pulumi.OutputState } + +func (UserArtifactSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserArtifactSettings)(nil)).Elem() +} + +func (o UserArtifactSettingsPtrOutput) ToUserArtifactSettingsPtrOutput() UserArtifactSettingsPtrOutput { + return o +} + +func (o UserArtifactSettingsPtrOutput) ToUserArtifactSettingsPtrOutputWithContext(ctx context.Context) UserArtifactSettingsPtrOutput { + return o +} + +func (o UserArtifactSettingsPtrOutput) Elem() UserArtifactSettingsOutput { + return o.ApplyT(func(v *UserArtifactSettings) UserArtifactSettings { + if v != nil { + return *v + } + var ret UserArtifactSettings + return ret + }).(UserArtifactSettingsOutput) +} + +// Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". +func (o UserArtifactSettingsPtrOutput) ConfigFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserArtifactSettings) *string { + if v == nil { + return nil + } + return v.ConfigFileName + }).(pulumi.StringPtrOutput) +} + +// Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. +func (o UserArtifactSettingsPtrOutput) PackageFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserArtifactSettings) *string { + if v == nil { + return nil + } + return v.PackageFileName + }).(pulumi.StringPtrOutput) +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +type UserArtifactSettingsResponse struct { + // Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". + ConfigFileName *string `pulumi:"configFileName"` + // Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. + PackageFileName *string `pulumi:"packageFileName"` +} + +// Additional settings for the VM app that contains the target package and config file name when it is deployed to target VM or VM scale set. +type UserArtifactSettingsResponseOutput struct{ *pulumi.OutputState } + +func (UserArtifactSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserArtifactSettingsResponse)(nil)).Elem() +} + +func (o UserArtifactSettingsResponseOutput) ToUserArtifactSettingsResponseOutput() UserArtifactSettingsResponseOutput { + return o +} + +func (o UserArtifactSettingsResponseOutput) ToUserArtifactSettingsResponseOutputWithContext(ctx context.Context) UserArtifactSettingsResponseOutput { + return o +} + +// Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". +func (o UserArtifactSettingsResponseOutput) ConfigFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserArtifactSettingsResponse) *string { return v.ConfigFileName }).(pulumi.StringPtrOutput) +} + +// Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. +func (o UserArtifactSettingsResponseOutput) PackageFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v UserArtifactSettingsResponse) *string { return v.PackageFileName }).(pulumi.StringPtrOutput) +} + +type UserArtifactSettingsResponsePtrOutput struct{ *pulumi.OutputState } + +func (UserArtifactSettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserArtifactSettingsResponse)(nil)).Elem() +} + +func (o UserArtifactSettingsResponsePtrOutput) ToUserArtifactSettingsResponsePtrOutput() UserArtifactSettingsResponsePtrOutput { + return o +} + +func (o UserArtifactSettingsResponsePtrOutput) ToUserArtifactSettingsResponsePtrOutputWithContext(ctx context.Context) UserArtifactSettingsResponsePtrOutput { + return o +} + +func (o UserArtifactSettingsResponsePtrOutput) Elem() UserArtifactSettingsResponseOutput { + return o.ApplyT(func(v *UserArtifactSettingsResponse) UserArtifactSettingsResponse { + if v != nil { + return *v + } + var ret UserArtifactSettingsResponse + return ret + }).(UserArtifactSettingsResponseOutput) +} + +// Optional. The name to assign the downloaded config file on the VM. This is limited to 4096 characters. If not specified, the config file will be named the Gallery Application name appended with "_config". +func (o UserArtifactSettingsResponsePtrOutput) ConfigFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserArtifactSettingsResponse) *string { + if v == nil { + return nil + } + return v.ConfigFileName + }).(pulumi.StringPtrOutput) +} + +// Optional. The name to assign the downloaded package file on the VM. This is limited to 4096 characters. If not specified, the package file will be named the same as the Gallery Application name. +func (o UserArtifactSettingsResponsePtrOutput) PackageFileName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserArtifactSettingsResponse) *string { + if v == nil { + return nil + } + return v.PackageFileName + }).(pulumi.StringPtrOutput) +} + // The source image from which the Image Version is going to be created. type UserArtifactSource struct { // Optional. The defaultConfigurationLink of the artifact, must be a readable storage page blob. @@ -25229,11 +33448,760 @@ func (o UserArtifactSourceResponseOutput) MediaLink() pulumi.StringOutput { return o.ApplyT(func(v UserArtifactSourceResponse) string { return v.MediaLink }).(pulumi.StringOutput) } +type UserAssignedIdentitiesResponseUserAssignedIdentities struct { + // The client id of user assigned identity. + ClientId string `pulumi:"clientId"` + // The principal id of user assigned identity. + PrincipalId string `pulumi:"principalId"` +} + +type UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput struct{ *pulumi.OutputState } + +func (UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*UserAssignedIdentitiesResponseUserAssignedIdentities)(nil)).Elem() +} + +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) ToUserAssignedIdentitiesResponseUserAssignedIdentitiesOutput() UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput { + return o +} + +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) ToUserAssignedIdentitiesResponseUserAssignedIdentitiesOutputWithContext(ctx context.Context) UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput { + return o +} + +// The client id of user assigned identity. +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v UserAssignedIdentitiesResponseUserAssignedIdentities) string { return v.ClientId }).(pulumi.StringOutput) +} + +// The principal id of user assigned identity. +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) PrincipalId() pulumi.StringOutput { + return o.ApplyT(func(v UserAssignedIdentitiesResponseUserAssignedIdentities) string { return v.PrincipalId }).(pulumi.StringOutput) +} + +type UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput struct{ *pulumi.OutputState } + +func (UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]UserAssignedIdentitiesResponseUserAssignedIdentities)(nil)).Elem() +} + +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) ToUserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o +} + +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) ToUserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutputWithContext(ctx context.Context) UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o +} + +func (o UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) MapIndex(k pulumi.StringInput) UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) UserAssignedIdentitiesResponseUserAssignedIdentities { + return vs[0].(map[string]UserAssignedIdentitiesResponseUserAssignedIdentities)[vs[1].(string)] + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput) +} + +// Specifies the security profile settings for the managed disk. **Note:** It can only be set for Confidential VMs. +type VMDiskSecurityProfile struct { + // Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. + DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` + // Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. + SecurityEncryptionType *string `pulumi:"securityEncryptionType"` +} + +// VMDiskSecurityProfileInput is an input type that accepts VMDiskSecurityProfileArgs and VMDiskSecurityProfileOutput values. +// You can construct a concrete instance of `VMDiskSecurityProfileInput` via: +// +// VMDiskSecurityProfileArgs{...} +type VMDiskSecurityProfileInput interface { + pulumi.Input + + ToVMDiskSecurityProfileOutput() VMDiskSecurityProfileOutput + ToVMDiskSecurityProfileOutputWithContext(context.Context) VMDiskSecurityProfileOutput +} + +// Specifies the security profile settings for the managed disk. **Note:** It can only be set for Confidential VMs. +type VMDiskSecurityProfileArgs struct { + // Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. + DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` + // Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. + SecurityEncryptionType pulumi.StringPtrInput `pulumi:"securityEncryptionType"` +} + +func (VMDiskSecurityProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VMDiskSecurityProfile)(nil)).Elem() +} + +func (i VMDiskSecurityProfileArgs) ToVMDiskSecurityProfileOutput() VMDiskSecurityProfileOutput { + return i.ToVMDiskSecurityProfileOutputWithContext(context.Background()) +} + +func (i VMDiskSecurityProfileArgs) ToVMDiskSecurityProfileOutputWithContext(ctx context.Context) VMDiskSecurityProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMDiskSecurityProfileOutput) +} + +func (i VMDiskSecurityProfileArgs) ToVMDiskSecurityProfilePtrOutput() VMDiskSecurityProfilePtrOutput { + return i.ToVMDiskSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (i VMDiskSecurityProfileArgs) ToVMDiskSecurityProfilePtrOutputWithContext(ctx context.Context) VMDiskSecurityProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMDiskSecurityProfileOutput).ToVMDiskSecurityProfilePtrOutputWithContext(ctx) +} + +// VMDiskSecurityProfilePtrInput is an input type that accepts VMDiskSecurityProfileArgs, VMDiskSecurityProfilePtr and VMDiskSecurityProfilePtrOutput values. +// You can construct a concrete instance of `VMDiskSecurityProfilePtrInput` via: +// +// VMDiskSecurityProfileArgs{...} +// +// or: +// +// nil +type VMDiskSecurityProfilePtrInput interface { + pulumi.Input + + ToVMDiskSecurityProfilePtrOutput() VMDiskSecurityProfilePtrOutput + ToVMDiskSecurityProfilePtrOutputWithContext(context.Context) VMDiskSecurityProfilePtrOutput +} + +type vmdiskSecurityProfilePtrType VMDiskSecurityProfileArgs + +func VMDiskSecurityProfilePtr(v *VMDiskSecurityProfileArgs) VMDiskSecurityProfilePtrInput { + return (*vmdiskSecurityProfilePtrType)(v) +} + +func (*vmdiskSecurityProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VMDiskSecurityProfile)(nil)).Elem() +} + +func (i *vmdiskSecurityProfilePtrType) ToVMDiskSecurityProfilePtrOutput() VMDiskSecurityProfilePtrOutput { + return i.ToVMDiskSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (i *vmdiskSecurityProfilePtrType) ToVMDiskSecurityProfilePtrOutputWithContext(ctx context.Context) VMDiskSecurityProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMDiskSecurityProfilePtrOutput) +} + +// Specifies the security profile settings for the managed disk. **Note:** It can only be set for Confidential VMs. +type VMDiskSecurityProfileOutput struct{ *pulumi.OutputState } + +func (VMDiskSecurityProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMDiskSecurityProfile)(nil)).Elem() +} + +func (o VMDiskSecurityProfileOutput) ToVMDiskSecurityProfileOutput() VMDiskSecurityProfileOutput { + return o +} + +func (o VMDiskSecurityProfileOutput) ToVMDiskSecurityProfileOutputWithContext(ctx context.Context) VMDiskSecurityProfileOutput { + return o +} + +func (o VMDiskSecurityProfileOutput) ToVMDiskSecurityProfilePtrOutput() VMDiskSecurityProfilePtrOutput { + return o.ToVMDiskSecurityProfilePtrOutputWithContext(context.Background()) +} + +func (o VMDiskSecurityProfileOutput) ToVMDiskSecurityProfilePtrOutputWithContext(ctx context.Context) VMDiskSecurityProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VMDiskSecurityProfile) *VMDiskSecurityProfile { + return &v + }).(VMDiskSecurityProfilePtrOutput) +} + +// Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. +func (o VMDiskSecurityProfileOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrOutput { + return o.ApplyT(func(v VMDiskSecurityProfile) *DiskEncryptionSetParameters { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersPtrOutput) +} + +// Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. +func (o VMDiskSecurityProfileOutput) SecurityEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMDiskSecurityProfile) *string { return v.SecurityEncryptionType }).(pulumi.StringPtrOutput) +} + +type VMDiskSecurityProfilePtrOutput struct{ *pulumi.OutputState } + +func (VMDiskSecurityProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VMDiskSecurityProfile)(nil)).Elem() +} + +func (o VMDiskSecurityProfilePtrOutput) ToVMDiskSecurityProfilePtrOutput() VMDiskSecurityProfilePtrOutput { + return o +} + +func (o VMDiskSecurityProfilePtrOutput) ToVMDiskSecurityProfilePtrOutputWithContext(ctx context.Context) VMDiskSecurityProfilePtrOutput { + return o +} + +func (o VMDiskSecurityProfilePtrOutput) Elem() VMDiskSecurityProfileOutput { + return o.ApplyT(func(v *VMDiskSecurityProfile) VMDiskSecurityProfile { + if v != nil { + return *v + } + var ret VMDiskSecurityProfile + return ret + }).(VMDiskSecurityProfileOutput) +} + +// Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. +func (o VMDiskSecurityProfilePtrOutput) DiskEncryptionSet() DiskEncryptionSetParametersPtrOutput { + return o.ApplyT(func(v *VMDiskSecurityProfile) *DiskEncryptionSetParameters { + if v == nil { + return nil + } + return v.DiskEncryptionSet + }).(DiskEncryptionSetParametersPtrOutput) +} + +// Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. +func (o VMDiskSecurityProfilePtrOutput) SecurityEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VMDiskSecurityProfile) *string { + if v == nil { + return nil + } + return v.SecurityEncryptionType + }).(pulumi.StringPtrOutput) +} + +// Specifies the security profile settings for the managed disk. **Note:** It can only be set for Confidential VMs. +type VMDiskSecurityProfileResponse struct { + // Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. + DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` + // Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. + SecurityEncryptionType *string `pulumi:"securityEncryptionType"` +} + +// Specifies the security profile settings for the managed disk. **Note:** It can only be set for Confidential VMs. +type VMDiskSecurityProfileResponseOutput struct{ *pulumi.OutputState } + +func (VMDiskSecurityProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMDiskSecurityProfileResponse)(nil)).Elem() +} + +func (o VMDiskSecurityProfileResponseOutput) ToVMDiskSecurityProfileResponseOutput() VMDiskSecurityProfileResponseOutput { + return o +} + +func (o VMDiskSecurityProfileResponseOutput) ToVMDiskSecurityProfileResponseOutputWithContext(ctx context.Context) VMDiskSecurityProfileResponseOutput { + return o +} + +// Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. +func (o VMDiskSecurityProfileResponseOutput) DiskEncryptionSet() DiskEncryptionSetParametersResponsePtrOutput { + return o.ApplyT(func(v VMDiskSecurityProfileResponse) *DiskEncryptionSetParametersResponse { return v.DiskEncryptionSet }).(DiskEncryptionSetParametersResponsePtrOutput) +} + +// Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. +func (o VMDiskSecurityProfileResponseOutput) SecurityEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMDiskSecurityProfileResponse) *string { return v.SecurityEncryptionType }).(pulumi.StringPtrOutput) +} + +type VMDiskSecurityProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (VMDiskSecurityProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VMDiskSecurityProfileResponse)(nil)).Elem() +} + +func (o VMDiskSecurityProfileResponsePtrOutput) ToVMDiskSecurityProfileResponsePtrOutput() VMDiskSecurityProfileResponsePtrOutput { + return o +} + +func (o VMDiskSecurityProfileResponsePtrOutput) ToVMDiskSecurityProfileResponsePtrOutputWithContext(ctx context.Context) VMDiskSecurityProfileResponsePtrOutput { + return o +} + +func (o VMDiskSecurityProfileResponsePtrOutput) Elem() VMDiskSecurityProfileResponseOutput { + return o.ApplyT(func(v *VMDiskSecurityProfileResponse) VMDiskSecurityProfileResponse { + if v != nil { + return *v + } + var ret VMDiskSecurityProfileResponse + return ret + }).(VMDiskSecurityProfileResponseOutput) +} + +// Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. +func (o VMDiskSecurityProfileResponsePtrOutput) DiskEncryptionSet() DiskEncryptionSetParametersResponsePtrOutput { + return o.ApplyT(func(v *VMDiskSecurityProfileResponse) *DiskEncryptionSetParametersResponse { + if v == nil { + return nil + } + return v.DiskEncryptionSet + }).(DiskEncryptionSetParametersResponsePtrOutput) +} + +// Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, and VMGuestStateOnly for encryption of just the VMGuestState blob. **Note:** It can be set for only Confidential VMs. +func (o VMDiskSecurityProfileResponsePtrOutput) SecurityEncryptionType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VMDiskSecurityProfileResponse) *string { + if v == nil { + return nil + } + return v.SecurityEncryptionType + }).(pulumi.StringPtrOutput) +} + +// Specifies the required information to reference a compute gallery application version +type VMGalleryApplication struct { + // Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided + ConfigurationReference *string `pulumi:"configurationReference"` + // If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS + EnableAutomaticUpgrade *bool `pulumi:"enableAutomaticUpgrade"` + // Optional, Specifies the order in which the packages have to be installed + Order *int `pulumi:"order"` + // Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} + PackageReferenceId string `pulumi:"packageReferenceId"` + // Optional, Specifies a passthrough value for more generic context. + Tags *string `pulumi:"tags"` + // Optional, If true, any failure for any operation in the VmApplication will fail the deployment + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` +} + +// VMGalleryApplicationInput is an input type that accepts VMGalleryApplicationArgs and VMGalleryApplicationOutput values. +// You can construct a concrete instance of `VMGalleryApplicationInput` via: +// +// VMGalleryApplicationArgs{...} +type VMGalleryApplicationInput interface { + pulumi.Input + + ToVMGalleryApplicationOutput() VMGalleryApplicationOutput + ToVMGalleryApplicationOutputWithContext(context.Context) VMGalleryApplicationOutput +} + +// Specifies the required information to reference a compute gallery application version +type VMGalleryApplicationArgs struct { + // Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided + ConfigurationReference pulumi.StringPtrInput `pulumi:"configurationReference"` + // If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS + EnableAutomaticUpgrade pulumi.BoolPtrInput `pulumi:"enableAutomaticUpgrade"` + // Optional, Specifies the order in which the packages have to be installed + Order pulumi.IntPtrInput `pulumi:"order"` + // Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} + PackageReferenceId pulumi.StringInput `pulumi:"packageReferenceId"` + // Optional, Specifies a passthrough value for more generic context. + Tags pulumi.StringPtrInput `pulumi:"tags"` + // Optional, If true, any failure for any operation in the VmApplication will fail the deployment + TreatFailureAsDeploymentFailure pulumi.BoolPtrInput `pulumi:"treatFailureAsDeploymentFailure"` +} + +func (VMGalleryApplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VMGalleryApplication)(nil)).Elem() +} + +func (i VMGalleryApplicationArgs) ToVMGalleryApplicationOutput() VMGalleryApplicationOutput { + return i.ToVMGalleryApplicationOutputWithContext(context.Background()) +} + +func (i VMGalleryApplicationArgs) ToVMGalleryApplicationOutputWithContext(ctx context.Context) VMGalleryApplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMGalleryApplicationOutput) +} + +// VMGalleryApplicationArrayInput is an input type that accepts VMGalleryApplicationArray and VMGalleryApplicationArrayOutput values. +// You can construct a concrete instance of `VMGalleryApplicationArrayInput` via: +// +// VMGalleryApplicationArray{ VMGalleryApplicationArgs{...} } +type VMGalleryApplicationArrayInput interface { + pulumi.Input + + ToVMGalleryApplicationArrayOutput() VMGalleryApplicationArrayOutput + ToVMGalleryApplicationArrayOutputWithContext(context.Context) VMGalleryApplicationArrayOutput +} + +type VMGalleryApplicationArray []VMGalleryApplicationInput + +func (VMGalleryApplicationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VMGalleryApplication)(nil)).Elem() +} + +func (i VMGalleryApplicationArray) ToVMGalleryApplicationArrayOutput() VMGalleryApplicationArrayOutput { + return i.ToVMGalleryApplicationArrayOutputWithContext(context.Background()) +} + +func (i VMGalleryApplicationArray) ToVMGalleryApplicationArrayOutputWithContext(ctx context.Context) VMGalleryApplicationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMGalleryApplicationArrayOutput) +} + +// Specifies the required information to reference a compute gallery application version +type VMGalleryApplicationOutput struct{ *pulumi.OutputState } + +func (VMGalleryApplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMGalleryApplication)(nil)).Elem() +} + +func (o VMGalleryApplicationOutput) ToVMGalleryApplicationOutput() VMGalleryApplicationOutput { + return o +} + +func (o VMGalleryApplicationOutput) ToVMGalleryApplicationOutputWithContext(ctx context.Context) VMGalleryApplicationOutput { + return o +} + +// Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided +func (o VMGalleryApplicationOutput) ConfigurationReference() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMGalleryApplication) *string { return v.ConfigurationReference }).(pulumi.StringPtrOutput) +} + +// If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS +func (o VMGalleryApplicationOutput) EnableAutomaticUpgrade() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VMGalleryApplication) *bool { return v.EnableAutomaticUpgrade }).(pulumi.BoolPtrOutput) +} + +// Optional, Specifies the order in which the packages have to be installed +func (o VMGalleryApplicationOutput) Order() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMGalleryApplication) *int { return v.Order }).(pulumi.IntPtrOutput) +} + +// Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} +func (o VMGalleryApplicationOutput) PackageReferenceId() pulumi.StringOutput { + return o.ApplyT(func(v VMGalleryApplication) string { return v.PackageReferenceId }).(pulumi.StringOutput) +} + +// Optional, Specifies a passthrough value for more generic context. +func (o VMGalleryApplicationOutput) Tags() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMGalleryApplication) *string { return v.Tags }).(pulumi.StringPtrOutput) +} + +// Optional, If true, any failure for any operation in the VmApplication will fail the deployment +func (o VMGalleryApplicationOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VMGalleryApplication) *bool { return v.TreatFailureAsDeploymentFailure }).(pulumi.BoolPtrOutput) +} + +type VMGalleryApplicationArrayOutput struct{ *pulumi.OutputState } + +func (VMGalleryApplicationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VMGalleryApplication)(nil)).Elem() +} + +func (o VMGalleryApplicationArrayOutput) ToVMGalleryApplicationArrayOutput() VMGalleryApplicationArrayOutput { + return o +} + +func (o VMGalleryApplicationArrayOutput) ToVMGalleryApplicationArrayOutputWithContext(ctx context.Context) VMGalleryApplicationArrayOutput { + return o +} + +func (o VMGalleryApplicationArrayOutput) Index(i pulumi.IntInput) VMGalleryApplicationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VMGalleryApplication { + return vs[0].([]VMGalleryApplication)[vs[1].(int)] + }).(VMGalleryApplicationOutput) +} + +// Specifies the required information to reference a compute gallery application version +type VMGalleryApplicationResponse struct { + // Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided + ConfigurationReference *string `pulumi:"configurationReference"` + // If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS + EnableAutomaticUpgrade *bool `pulumi:"enableAutomaticUpgrade"` + // Optional, Specifies the order in which the packages have to be installed + Order *int `pulumi:"order"` + // Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} + PackageReferenceId string `pulumi:"packageReferenceId"` + // Optional, Specifies a passthrough value for more generic context. + Tags *string `pulumi:"tags"` + // Optional, If true, any failure for any operation in the VmApplication will fail the deployment + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` +} + +// Specifies the required information to reference a compute gallery application version +type VMGalleryApplicationResponseOutput struct{ *pulumi.OutputState } + +func (VMGalleryApplicationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMGalleryApplicationResponse)(nil)).Elem() +} + +func (o VMGalleryApplicationResponseOutput) ToVMGalleryApplicationResponseOutput() VMGalleryApplicationResponseOutput { + return o +} + +func (o VMGalleryApplicationResponseOutput) ToVMGalleryApplicationResponseOutputWithContext(ctx context.Context) VMGalleryApplicationResponseOutput { + return o +} + +// Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided +func (o VMGalleryApplicationResponseOutput) ConfigurationReference() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) *string { return v.ConfigurationReference }).(pulumi.StringPtrOutput) +} + +// If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS +func (o VMGalleryApplicationResponseOutput) EnableAutomaticUpgrade() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) *bool { return v.EnableAutomaticUpgrade }).(pulumi.BoolPtrOutput) +} + +// Optional, Specifies the order in which the packages have to be installed +func (o VMGalleryApplicationResponseOutput) Order() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) *int { return v.Order }).(pulumi.IntPtrOutput) +} + +// Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version} +func (o VMGalleryApplicationResponseOutput) PackageReferenceId() pulumi.StringOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) string { return v.PackageReferenceId }).(pulumi.StringOutput) +} + +// Optional, Specifies a passthrough value for more generic context. +func (o VMGalleryApplicationResponseOutput) Tags() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) *string { return v.Tags }).(pulumi.StringPtrOutput) +} + +// Optional, If true, any failure for any operation in the VmApplication will fail the deployment +func (o VMGalleryApplicationResponseOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VMGalleryApplicationResponse) *bool { return v.TreatFailureAsDeploymentFailure }).(pulumi.BoolPtrOutput) +} + +type VMGalleryApplicationResponseArrayOutput struct{ *pulumi.OutputState } + +func (VMGalleryApplicationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VMGalleryApplicationResponse)(nil)).Elem() +} + +func (o VMGalleryApplicationResponseArrayOutput) ToVMGalleryApplicationResponseArrayOutput() VMGalleryApplicationResponseArrayOutput { + return o +} + +func (o VMGalleryApplicationResponseArrayOutput) ToVMGalleryApplicationResponseArrayOutputWithContext(ctx context.Context) VMGalleryApplicationResponseArrayOutput { + return o +} + +func (o VMGalleryApplicationResponseArrayOutput) Index(i pulumi.IntInput) VMGalleryApplicationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VMGalleryApplicationResponse { + return vs[0].([]VMGalleryApplicationResponse)[vs[1].(int)] + }).(VMGalleryApplicationResponseOutput) +} + +// Specifies VM Size Property settings on the virtual machine. +type VMSizeProperties struct { + // Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). + VCPUsAvailable *int `pulumi:"vCPUsAvailable"` + // Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** + VCPUsPerCore *int `pulumi:"vCPUsPerCore"` +} + +// VMSizePropertiesInput is an input type that accepts VMSizePropertiesArgs and VMSizePropertiesOutput values. +// You can construct a concrete instance of `VMSizePropertiesInput` via: +// +// VMSizePropertiesArgs{...} +type VMSizePropertiesInput interface { + pulumi.Input + + ToVMSizePropertiesOutput() VMSizePropertiesOutput + ToVMSizePropertiesOutputWithContext(context.Context) VMSizePropertiesOutput +} + +// Specifies VM Size Property settings on the virtual machine. +type VMSizePropertiesArgs struct { + // Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). + VCPUsAvailable pulumi.IntPtrInput `pulumi:"vCPUsAvailable"` + // Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** + VCPUsPerCore pulumi.IntPtrInput `pulumi:"vCPUsPerCore"` +} + +func (VMSizePropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VMSizeProperties)(nil)).Elem() +} + +func (i VMSizePropertiesArgs) ToVMSizePropertiesOutput() VMSizePropertiesOutput { + return i.ToVMSizePropertiesOutputWithContext(context.Background()) +} + +func (i VMSizePropertiesArgs) ToVMSizePropertiesOutputWithContext(ctx context.Context) VMSizePropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMSizePropertiesOutput) +} + +func (i VMSizePropertiesArgs) ToVMSizePropertiesPtrOutput() VMSizePropertiesPtrOutput { + return i.ToVMSizePropertiesPtrOutputWithContext(context.Background()) +} + +func (i VMSizePropertiesArgs) ToVMSizePropertiesPtrOutputWithContext(ctx context.Context) VMSizePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMSizePropertiesOutput).ToVMSizePropertiesPtrOutputWithContext(ctx) +} + +// VMSizePropertiesPtrInput is an input type that accepts VMSizePropertiesArgs, VMSizePropertiesPtr and VMSizePropertiesPtrOutput values. +// You can construct a concrete instance of `VMSizePropertiesPtrInput` via: +// +// VMSizePropertiesArgs{...} +// +// or: +// +// nil +type VMSizePropertiesPtrInput interface { + pulumi.Input + + ToVMSizePropertiesPtrOutput() VMSizePropertiesPtrOutput + ToVMSizePropertiesPtrOutputWithContext(context.Context) VMSizePropertiesPtrOutput +} + +type vmsizePropertiesPtrType VMSizePropertiesArgs + +func VMSizePropertiesPtr(v *VMSizePropertiesArgs) VMSizePropertiesPtrInput { + return (*vmsizePropertiesPtrType)(v) +} + +func (*vmsizePropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VMSizeProperties)(nil)).Elem() +} + +func (i *vmsizePropertiesPtrType) ToVMSizePropertiesPtrOutput() VMSizePropertiesPtrOutput { + return i.ToVMSizePropertiesPtrOutputWithContext(context.Background()) +} + +func (i *vmsizePropertiesPtrType) ToVMSizePropertiesPtrOutputWithContext(ctx context.Context) VMSizePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMSizePropertiesPtrOutput) +} + +// Specifies VM Size Property settings on the virtual machine. +type VMSizePropertiesOutput struct{ *pulumi.OutputState } + +func (VMSizePropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMSizeProperties)(nil)).Elem() +} + +func (o VMSizePropertiesOutput) ToVMSizePropertiesOutput() VMSizePropertiesOutput { + return o +} + +func (o VMSizePropertiesOutput) ToVMSizePropertiesOutputWithContext(ctx context.Context) VMSizePropertiesOutput { + return o +} + +func (o VMSizePropertiesOutput) ToVMSizePropertiesPtrOutput() VMSizePropertiesPtrOutput { + return o.ToVMSizePropertiesPtrOutputWithContext(context.Background()) +} + +func (o VMSizePropertiesOutput) ToVMSizePropertiesPtrOutputWithContext(ctx context.Context) VMSizePropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VMSizeProperties) *VMSizeProperties { + return &v + }).(VMSizePropertiesPtrOutput) +} + +// Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). +func (o VMSizePropertiesOutput) VCPUsAvailable() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMSizeProperties) *int { return v.VCPUsAvailable }).(pulumi.IntPtrOutput) +} + +// Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** +func (o VMSizePropertiesOutput) VCPUsPerCore() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMSizeProperties) *int { return v.VCPUsPerCore }).(pulumi.IntPtrOutput) +} + +type VMSizePropertiesPtrOutput struct{ *pulumi.OutputState } + +func (VMSizePropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VMSizeProperties)(nil)).Elem() +} + +func (o VMSizePropertiesPtrOutput) ToVMSizePropertiesPtrOutput() VMSizePropertiesPtrOutput { + return o +} + +func (o VMSizePropertiesPtrOutput) ToVMSizePropertiesPtrOutputWithContext(ctx context.Context) VMSizePropertiesPtrOutput { + return o +} + +func (o VMSizePropertiesPtrOutput) Elem() VMSizePropertiesOutput { + return o.ApplyT(func(v *VMSizeProperties) VMSizeProperties { + if v != nil { + return *v + } + var ret VMSizeProperties + return ret + }).(VMSizePropertiesOutput) +} + +// Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). +func (o VMSizePropertiesPtrOutput) VCPUsAvailable() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VMSizeProperties) *int { + if v == nil { + return nil + } + return v.VCPUsAvailable + }).(pulumi.IntPtrOutput) +} + +// Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** +func (o VMSizePropertiesPtrOutput) VCPUsPerCore() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VMSizeProperties) *int { + if v == nil { + return nil + } + return v.VCPUsPerCore + }).(pulumi.IntPtrOutput) +} + +// Specifies VM Size Property settings on the virtual machine. +type VMSizePropertiesResponse struct { + // Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). + VCPUsAvailable *int `pulumi:"vCPUsAvailable"` + // Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** + VCPUsPerCore *int `pulumi:"vCPUsPerCore"` +} + +// Specifies VM Size Property settings on the virtual machine. +type VMSizePropertiesResponseOutput struct{ *pulumi.OutputState } + +func (VMSizePropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMSizePropertiesResponse)(nil)).Elem() +} + +func (o VMSizePropertiesResponseOutput) ToVMSizePropertiesResponseOutput() VMSizePropertiesResponseOutput { + return o +} + +func (o VMSizePropertiesResponseOutput) ToVMSizePropertiesResponseOutputWithContext(ctx context.Context) VMSizePropertiesResponseOutput { + return o +} + +// Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). +func (o VMSizePropertiesResponseOutput) VCPUsAvailable() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMSizePropertiesResponse) *int { return v.VCPUsAvailable }).(pulumi.IntPtrOutput) +} + +// Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** +func (o VMSizePropertiesResponseOutput) VCPUsPerCore() pulumi.IntPtrOutput { + return o.ApplyT(func(v VMSizePropertiesResponse) *int { return v.VCPUsPerCore }).(pulumi.IntPtrOutput) +} + +type VMSizePropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (VMSizePropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VMSizePropertiesResponse)(nil)).Elem() +} + +func (o VMSizePropertiesResponsePtrOutput) ToVMSizePropertiesResponsePtrOutput() VMSizePropertiesResponsePtrOutput { + return o +} + +func (o VMSizePropertiesResponsePtrOutput) ToVMSizePropertiesResponsePtrOutputWithContext(ctx context.Context) VMSizePropertiesResponsePtrOutput { + return o +} + +func (o VMSizePropertiesResponsePtrOutput) Elem() VMSizePropertiesResponseOutput { + return o.ApplyT(func(v *VMSizePropertiesResponse) VMSizePropertiesResponse { + if v != nil { + return *v + } + var ret VMSizePropertiesResponse + return ret + }).(VMSizePropertiesResponseOutput) +} + +// Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). +func (o VMSizePropertiesResponsePtrOutput) VCPUsAvailable() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VMSizePropertiesResponse) *int { + if v == nil { + return nil + } + return v.VCPUsAvailable + }).(pulumi.IntPtrOutput) +} + +// Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.** +func (o VMSizePropertiesResponsePtrOutput) VCPUsPerCore() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VMSizePropertiesResponse) *int { + if v == nil { + return nil + } + return v.VCPUsPerCore + }).(pulumi.IntPtrOutput) +} + // Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. type VaultCertificate struct { - // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.

    For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. + // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. CertificateStore *string `pulumi:"certificateStore"` - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl *string `pulumi:"certificateUrl"` } @@ -25250,9 +34218,9 @@ type VaultCertificateInput interface { // Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. type VaultCertificateArgs struct { - // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.

    For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. + // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. CertificateStore pulumi.StringPtrInput `pulumi:"certificateStore"` - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl pulumi.StringPtrInput `pulumi:"certificateUrl"` } @@ -25308,12 +34276,12 @@ func (o VaultCertificateOutput) ToVaultCertificateOutputWithContext(ctx context. return o } -// For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.

    For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. +// For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. func (o VaultCertificateOutput) CertificateStore() pulumi.StringPtrOutput { return o.ApplyT(func(v VaultCertificate) *string { return v.CertificateStore }).(pulumi.StringPtrOutput) } -// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). +// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VaultCertificateOutput) CertificateUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v VaultCertificate) *string { return v.CertificateUrl }).(pulumi.StringPtrOutput) } @@ -25340,9 +34308,9 @@ func (o VaultCertificateArrayOutput) Index(i pulumi.IntInput) VaultCertificateOu // Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. type VaultCertificateResponse struct { - // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.

    For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. + // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. CertificateStore *string `pulumi:"certificateStore"` - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl *string `pulumi:"certificateUrl"` } @@ -25361,12 +34329,12 @@ func (o VaultCertificateResponseOutput) ToVaultCertificateResponseOutputWithCont return o } -// For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account.

    For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. +// For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is implicitly in the LocalMachine account. For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of these files are .pem formatted. func (o VaultCertificateResponseOutput) CertificateStore() pulumi.StringPtrOutput { return o.ApplyT(func(v VaultCertificateResponse) *string { return v.CertificateStore }).(pulumi.StringPtrOutput) } -// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). +// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VaultCertificateResponseOutput) CertificateUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v VaultCertificateResponse) *string { return v.CertificateUrl }).(pulumi.StringPtrOutput) } @@ -25849,6 +34817,223 @@ func (o VirtualMachineAgentInstanceViewResponsePtrOutput) VmAgentVersion() pulum }).(pulumi.StringPtrOutput) } +// Describes a Virtual Machine Extension. +type VirtualMachineExtensionType struct { + // Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. + AutoUpgradeMinorVersion *bool `pulumi:"autoUpgradeMinorVersion"` + // Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. + EnableAutomaticUpgrade *bool `pulumi:"enableAutomaticUpgrade"` + // How the extension handler should be forced to update even if the extension configuration has not changed. + ForceUpdateTag *string `pulumi:"forceUpdateTag"` + // The virtual machine extension instance view. + InstanceView *VirtualMachineExtensionInstanceView `pulumi:"instanceView"` + // Resource location + Location *string `pulumi:"location"` + // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. + ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReference `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` + // The name of the extension handler publisher. + Publisher *string `pulumi:"publisher"` + // Json formatted public settings for the extension. + Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` + // Resource tags + Tags map[string]string `pulumi:"tags"` + // Specifies the type of the extension; an example is "CustomScriptExtension". + Type *string `pulumi:"type"` + // Specifies the version of the script handler. + TypeHandlerVersion *string `pulumi:"typeHandlerVersion"` +} + +// VirtualMachineExtensionTypeInput is an input type that accepts VirtualMachineExtensionTypeArgs and VirtualMachineExtensionTypeOutput values. +// You can construct a concrete instance of `VirtualMachineExtensionTypeInput` via: +// +// VirtualMachineExtensionTypeArgs{...} +type VirtualMachineExtensionTypeInput interface { + pulumi.Input + + ToVirtualMachineExtensionTypeOutput() VirtualMachineExtensionTypeOutput + ToVirtualMachineExtensionTypeOutputWithContext(context.Context) VirtualMachineExtensionTypeOutput +} + +// Describes a Virtual Machine Extension. +type VirtualMachineExtensionTypeArgs struct { + // Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. + AutoUpgradeMinorVersion pulumi.BoolPtrInput `pulumi:"autoUpgradeMinorVersion"` + // Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. + EnableAutomaticUpgrade pulumi.BoolPtrInput `pulumi:"enableAutomaticUpgrade"` + // How the extension handler should be forced to update even if the extension configuration has not changed. + ForceUpdateTag pulumi.StringPtrInput `pulumi:"forceUpdateTag"` + // The virtual machine extension instance view. + InstanceView VirtualMachineExtensionInstanceViewPtrInput `pulumi:"instanceView"` + // Resource location + Location pulumi.StringPtrInput `pulumi:"location"` + // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. + ProtectedSettings pulumi.Input `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferencePtrInput `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions pulumi.StringArrayInput `pulumi:"provisionAfterExtensions"` + // The name of the extension handler publisher. + Publisher pulumi.StringPtrInput `pulumi:"publisher"` + // Json formatted public settings for the extension. + Settings pulumi.Input `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrInput `pulumi:"suppressFailures"` + // Resource tags + Tags pulumi.StringMapInput `pulumi:"tags"` + // Specifies the type of the extension; an example is "CustomScriptExtension". + Type pulumi.StringPtrInput `pulumi:"type"` + // Specifies the version of the script handler. + TypeHandlerVersion pulumi.StringPtrInput `pulumi:"typeHandlerVersion"` +} + +func (VirtualMachineExtensionTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualMachineExtensionType)(nil)).Elem() +} + +func (i VirtualMachineExtensionTypeArgs) ToVirtualMachineExtensionTypeOutput() VirtualMachineExtensionTypeOutput { + return i.ToVirtualMachineExtensionTypeOutputWithContext(context.Background()) +} + +func (i VirtualMachineExtensionTypeArgs) ToVirtualMachineExtensionTypeOutputWithContext(ctx context.Context) VirtualMachineExtensionTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineExtensionTypeOutput) +} + +// VirtualMachineExtensionTypeArrayInput is an input type that accepts VirtualMachineExtensionTypeArray and VirtualMachineExtensionTypeArrayOutput values. +// You can construct a concrete instance of `VirtualMachineExtensionTypeArrayInput` via: +// +// VirtualMachineExtensionTypeArray{ VirtualMachineExtensionTypeArgs{...} } +type VirtualMachineExtensionTypeArrayInput interface { + pulumi.Input + + ToVirtualMachineExtensionTypeArrayOutput() VirtualMachineExtensionTypeArrayOutput + ToVirtualMachineExtensionTypeArrayOutputWithContext(context.Context) VirtualMachineExtensionTypeArrayOutput +} + +type VirtualMachineExtensionTypeArray []VirtualMachineExtensionTypeInput + +func (VirtualMachineExtensionTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualMachineExtensionType)(nil)).Elem() +} + +func (i VirtualMachineExtensionTypeArray) ToVirtualMachineExtensionTypeArrayOutput() VirtualMachineExtensionTypeArrayOutput { + return i.ToVirtualMachineExtensionTypeArrayOutputWithContext(context.Background()) +} + +func (i VirtualMachineExtensionTypeArray) ToVirtualMachineExtensionTypeArrayOutputWithContext(ctx context.Context) VirtualMachineExtensionTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineExtensionTypeArrayOutput) +} + +// Describes a Virtual Machine Extension. +type VirtualMachineExtensionTypeOutput struct{ *pulumi.OutputState } + +func (VirtualMachineExtensionTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualMachineExtensionType)(nil)).Elem() +} + +func (o VirtualMachineExtensionTypeOutput) ToVirtualMachineExtensionTypeOutput() VirtualMachineExtensionTypeOutput { + return o +} + +func (o VirtualMachineExtensionTypeOutput) ToVirtualMachineExtensionTypeOutputWithContext(ctx context.Context) VirtualMachineExtensionTypeOutput { + return o +} + +// Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. +func (o VirtualMachineExtensionTypeOutput) AutoUpgradeMinorVersion() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *bool { return v.AutoUpgradeMinorVersion }).(pulumi.BoolPtrOutput) +} + +// Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. +func (o VirtualMachineExtensionTypeOutput) EnableAutomaticUpgrade() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *bool { return v.EnableAutomaticUpgrade }).(pulumi.BoolPtrOutput) +} + +// How the extension handler should be forced to update even if the extension configuration has not changed. +func (o VirtualMachineExtensionTypeOutput) ForceUpdateTag() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *string { return v.ForceUpdateTag }).(pulumi.StringPtrOutput) +} + +// The virtual machine extension instance view. +func (o VirtualMachineExtensionTypeOutput) InstanceView() VirtualMachineExtensionInstanceViewPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *VirtualMachineExtensionInstanceView { return v.InstanceView }).(VirtualMachineExtensionInstanceViewPtrOutput) +} + +// Resource location +func (o VirtualMachineExtensionTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. +func (o VirtualMachineExtensionTypeOutput) ProtectedSettings() pulumi.AnyOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) +} + +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineExtensionTypeOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferencePtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *KeyVaultSecretReference { return v.ProtectedSettingsFromKeyVault }).(KeyVaultSecretReferencePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o VirtualMachineExtensionTypeOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + +// The name of the extension handler publisher. +func (o VirtualMachineExtensionTypeOutput) Publisher() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *string { return v.Publisher }).(pulumi.StringPtrOutput) +} + +// Json formatted public settings for the extension. +func (o VirtualMachineExtensionTypeOutput) Settings() pulumi.AnyOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) interface{} { return v.Settings }).(pulumi.AnyOutput) +} + +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineExtensionTypeOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + +// Resource tags +func (o VirtualMachineExtensionTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Specifies the type of the extension; an example is "CustomScriptExtension". +func (o VirtualMachineExtensionTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +// Specifies the version of the script handler. +func (o VirtualMachineExtensionTypeOutput) TypeHandlerVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionType) *string { return v.TypeHandlerVersion }).(pulumi.StringPtrOutput) +} + +type VirtualMachineExtensionTypeArrayOutput struct{ *pulumi.OutputState } + +func (VirtualMachineExtensionTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualMachineExtensionType)(nil)).Elem() +} + +func (o VirtualMachineExtensionTypeArrayOutput) ToVirtualMachineExtensionTypeArrayOutput() VirtualMachineExtensionTypeArrayOutput { + return o +} + +func (o VirtualMachineExtensionTypeArrayOutput) ToVirtualMachineExtensionTypeArrayOutputWithContext(ctx context.Context) VirtualMachineExtensionTypeArrayOutput { + return o +} + +func (o VirtualMachineExtensionTypeArrayOutput) Index(i pulumi.IntInput) VirtualMachineExtensionTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualMachineExtensionType { + return vs[0].([]VirtualMachineExtensionType)[vs[1].(int)] + }).(VirtualMachineExtensionTypeOutput) +} + // The instance view of a virtual machine extension handler. type VirtualMachineExtensionHandlerInstanceViewResponse struct { // The extension handler status. @@ -26288,17 +35473,23 @@ type VirtualMachineExtensionResponse struct { // The virtual machine extension instance view. InstanceView *VirtualMachineExtensionInstanceViewResponse `pulumi:"instanceView"` // Resource location - Location string `pulumi:"location"` + Location *string `pulumi:"location"` // Resource name Name string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. ProvisioningState string `pulumi:"provisioningState"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource tags Tags map[string]string `pulumi:"tags"` // Resource type @@ -26350,8 +35541,8 @@ func (o VirtualMachineExtensionResponseOutput) InstanceView() VirtualMachineExte } // Resource location -func (o VirtualMachineExtensionResponseOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v VirtualMachineExtensionResponse) string { return v.Location }).(pulumi.StringOutput) +func (o VirtualMachineExtensionResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } // Resource name @@ -26364,6 +35555,18 @@ func (o VirtualMachineExtensionResponseOutput) ProtectedSettings() pulumi.AnyOut return o.ApplyT(func(v VirtualMachineExtensionResponse) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineExtensionResponseOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionResponse) *KeyVaultSecretReferenceResponse { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o VirtualMachineExtensionResponseOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineExtensionResponse) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + // The provisioning state, which only appears in the response. func (o VirtualMachineExtensionResponseOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineExtensionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -26379,6 +35582,11 @@ func (o VirtualMachineExtensionResponseOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v VirtualMachineExtensionResponse) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineExtensionResponseOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineExtensionResponse) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource tags func (o VirtualMachineExtensionResponseOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v VirtualMachineExtensionResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) @@ -26445,7 +35653,7 @@ type VirtualMachineIdentity struct { // The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Type *ResourceIdentityType `pulumi:"type"` // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // VirtualMachineIdentityInput is an input type that accepts VirtualMachineIdentityArgs and VirtualMachineIdentityOutput values. @@ -26464,7 +35672,7 @@ type VirtualMachineIdentityArgs struct { // The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Type ResourceIdentityTypePtrInput `pulumi:"type"` // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (VirtualMachineIdentityArgs) ElementType() reflect.Type { @@ -26551,8 +35759,8 @@ func (o VirtualMachineIdentityOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineIdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v VirtualMachineIdentity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +func (o VirtualMachineIdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineIdentity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) } type VirtualMachineIdentityPtrOutput struct{ *pulumi.OutputState } @@ -26590,13 +35798,13 @@ func (o VirtualMachineIdentityPtrOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineIdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *VirtualMachineIdentity) map[string]interface{} { +func (o VirtualMachineIdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineIdentity) []string { if v == nil { return nil } return v.UserAssignedIdentities - }).(pulumi.MapOutput) + }).(pulumi.StringArrayOutput) } // Identity for the virtual machine. @@ -26608,7 +35816,7 @@ type VirtualMachineIdentityResponse struct { // The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Type *string `pulumi:"type"` // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]VirtualMachineIdentityResponseUserAssignedIdentities `pulumi:"userAssignedIdentities"` + UserAssignedIdentities map[string]UserAssignedIdentitiesResponseUserAssignedIdentities `pulumi:"userAssignedIdentities"` } // Identity for the virtual machine. @@ -26642,10 +35850,10 @@ func (o VirtualMachineIdentityResponseOutput) Type() pulumi.StringPtrOutput { } // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineIdentityResponseOutput) UserAssignedIdentities() VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput { - return o.ApplyT(func(v VirtualMachineIdentityResponse) map[string]VirtualMachineIdentityResponseUserAssignedIdentities { +func (o VirtualMachineIdentityResponseOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v VirtualMachineIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { return v.UserAssignedIdentities - }).(VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) } type VirtualMachineIdentityResponsePtrOutput struct{ *pulumi.OutputState } @@ -26703,71 +35911,20 @@ func (o VirtualMachineIdentityResponsePtrOutput) Type() pulumi.StringPtrOutput { } // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineIdentityResponsePtrOutput) UserAssignedIdentities() VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput { - return o.ApplyT(func(v *VirtualMachineIdentityResponse) map[string]VirtualMachineIdentityResponseUserAssignedIdentities { +func (o VirtualMachineIdentityResponsePtrOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v *VirtualMachineIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { if v == nil { return nil } return v.UserAssignedIdentities - }).(VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) -} - -type VirtualMachineIdentityResponseUserAssignedIdentities struct { - // The client id of user assigned identity. - ClientId string `pulumi:"clientId"` - // The principal id of user assigned identity. - PrincipalId string `pulumi:"principalId"` -} - -type VirtualMachineIdentityResponseUserAssignedIdentitiesOutput struct{ *pulumi.OutputState } - -func (VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualMachineIdentityResponseUserAssignedIdentities)(nil)).Elem() -} - -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) ToVirtualMachineIdentityResponseUserAssignedIdentitiesOutput() VirtualMachineIdentityResponseUserAssignedIdentitiesOutput { - return o -} - -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) ToVirtualMachineIdentityResponseUserAssignedIdentitiesOutputWithContext(ctx context.Context) VirtualMachineIdentityResponseUserAssignedIdentitiesOutput { - return o -} - -// The client id of user assigned identity. -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) ClientId() pulumi.StringOutput { - return o.ApplyT(func(v VirtualMachineIdentityResponseUserAssignedIdentities) string { return v.ClientId }).(pulumi.StringOutput) -} - -// The principal id of user assigned identity. -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) PrincipalId() pulumi.StringOutput { - return o.ApplyT(func(v VirtualMachineIdentityResponseUserAssignedIdentities) string { return v.PrincipalId }).(pulumi.StringOutput) -} - -type VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput struct{ *pulumi.OutputState } - -func (VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]VirtualMachineIdentityResponseUserAssignedIdentities)(nil)).Elem() -} - -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) ToVirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput() VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput { - return o -} - -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) ToVirtualMachineIdentityResponseUserAssignedIdentitiesMapOutputWithContext(ctx context.Context) VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput { - return o -} - -func (o VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput) MapIndex(k pulumi.StringInput) VirtualMachineIdentityResponseUserAssignedIdentitiesOutput { - return pulumi.All(o, k).ApplyT(func(vs []interface{}) VirtualMachineIdentityResponseUserAssignedIdentities { - return vs[0].(map[string]VirtualMachineIdentityResponseUserAssignedIdentities)[vs[1].(string)] - }).(VirtualMachineIdentityResponseUserAssignedIdentitiesOutput) + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) } // The instance view of a virtual machine. type VirtualMachineInstanceViewResponse struct { - // Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.

    Minimum api-version: 2020-06-01. + // Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01. AssignedHost string `pulumi:"assignedHost"` - // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. + // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. BootDiagnostics *BootDiagnosticsInstanceViewResponse `pulumi:"bootDiagnostics"` // The computer name assigned to the virtual machine. ComputerName *string `pulumi:"computerName"` @@ -26814,12 +35971,12 @@ func (o VirtualMachineInstanceViewResponseOutput) ToVirtualMachineInstanceViewRe return o } -// Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.

    Minimum api-version: 2020-06-01. +// Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01. func (o VirtualMachineInstanceViewResponseOutput) AssignedHost() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineInstanceViewResponse) string { return v.AssignedHost }).(pulumi.StringOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o VirtualMachineInstanceViewResponseOutput) BootDiagnostics() BootDiagnosticsInstanceViewResponsePtrOutput { return o.ApplyT(func(v VirtualMachineInstanceViewResponse) *BootDiagnosticsInstanceViewResponse { return v.BootDiagnostics @@ -27066,6 +36223,8 @@ func (o VirtualMachineIpTagResponseArrayOutput) Index(i pulumi.IntInput) Virtual type VirtualMachineNetworkInterfaceConfiguration struct { // Specify what happens to the network interface when the VM is deleted DeleteOption *string `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings *VirtualMachineNetworkInterfaceDnsSettingsConfiguration `pulumi:"dnsSettings"` DscpConfiguration *SubResource `pulumi:"dscpConfiguration"` @@ -27100,6 +36259,8 @@ type VirtualMachineNetworkInterfaceConfigurationInput interface { type VirtualMachineNetworkInterfaceConfigurationArgs struct { // Specify what happens to the network interface when the VM is deleted DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking pulumi.BoolPtrInput `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings VirtualMachineNetworkInterfaceDnsSettingsConfigurationPtrInput `pulumi:"dnsSettings"` DscpConfiguration SubResourcePtrInput `pulumi:"dscpConfiguration"` @@ -27176,6 +36337,11 @@ func (o VirtualMachineNetworkInterfaceConfigurationOutput) DeleteOption() pulumi return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfiguration) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } +// Specifies whether the network interface is disabled for tcp state tracking. +func (o VirtualMachineNetworkInterfaceConfigurationOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfiguration) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The dns settings to be applied on the network interfaces. func (o VirtualMachineNetworkInterfaceConfigurationOutput) DnsSettings() VirtualMachineNetworkInterfaceDnsSettingsConfigurationPtrOutput { return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfiguration) *VirtualMachineNetworkInterfaceDnsSettingsConfiguration { @@ -27248,6 +36414,8 @@ func (o VirtualMachineNetworkInterfaceConfigurationArrayOutput) Index(i pulumi.I type VirtualMachineNetworkInterfaceConfigurationResponse struct { // Specify what happens to the network interface when the VM is deleted DeleteOption *string `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings *VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse `pulumi:"dnsSettings"` DscpConfiguration *SubResourceResponse `pulumi:"dscpConfiguration"` @@ -27287,6 +36455,11 @@ func (o VirtualMachineNetworkInterfaceConfigurationResponseOutput) DeleteOption( return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfigurationResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } +// Specifies whether the network interface is disabled for tcp state tracking. +func (o VirtualMachineNetworkInterfaceConfigurationResponseOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfigurationResponse) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The dns settings to be applied on the network interfaces. func (o VirtualMachineNetworkInterfaceConfigurationResponseOutput) DnsSettings() VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponsePtrOutput { return o.ApplyT(func(v VirtualMachineNetworkInterfaceConfigurationResponse) *VirtualMachineNetworkInterfaceDnsSettingsConfigurationResponse { @@ -27953,7 +37126,7 @@ type VirtualMachinePublicIPAddressConfiguration struct { PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix *SubResource `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku *PublicIPAddressSku `pulumi:"sku"` } @@ -27986,7 +37159,7 @@ type VirtualMachinePublicIPAddressConfigurationArgs struct { PublicIPAllocationMethod pulumi.StringPtrInput `pulumi:"publicIPAllocationMethod"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix SubResourcePtrInput `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku PublicIPAddressSkuPtrInput `pulumi:"sku"` } @@ -28110,7 +37283,7 @@ func (o VirtualMachinePublicIPAddressConfigurationOutput) PublicIPPrefix() SubRe return o.ApplyT(func(v VirtualMachinePublicIPAddressConfiguration) *SubResource { return v.PublicIPPrefix }).(SubResourcePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachinePublicIPAddressConfigurationOutput) Sku() PublicIPAddressSkuPtrOutput { return o.ApplyT(func(v VirtualMachinePublicIPAddressConfiguration) *PublicIPAddressSku { return v.Sku }).(PublicIPAddressSkuPtrOutput) } @@ -28219,7 +37392,7 @@ func (o VirtualMachinePublicIPAddressConfigurationPtrOutput) PublicIPPrefix() Su }).(SubResourcePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachinePublicIPAddressConfigurationPtrOutput) Sku() PublicIPAddressSkuPtrOutput { return o.ApplyT(func(v *VirtualMachinePublicIPAddressConfiguration) *PublicIPAddressSku { if v == nil { @@ -28247,7 +37420,7 @@ type VirtualMachinePublicIPAddressConfigurationResponse struct { PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix *SubResourceResponse `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku *PublicIPAddressSkuResponse `pulumi:"sku"` } @@ -28312,7 +37485,7 @@ func (o VirtualMachinePublicIPAddressConfigurationResponseOutput) PublicIPPrefix }).(SubResourceResponsePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachinePublicIPAddressConfigurationResponseOutput) Sku() PublicIPAddressSkuResponsePtrOutput { return o.ApplyT(func(v VirtualMachinePublicIPAddressConfigurationResponse) *PublicIPAddressSkuResponse { return v.Sku }).(PublicIPAddressSkuResponsePtrOutput) } @@ -28421,7 +37594,7 @@ func (o VirtualMachinePublicIPAddressConfigurationResponsePtrOutput) PublicIPPre }).(SubResourceResponsePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachinePublicIPAddressConfigurationResponsePtrOutput) Sku() PublicIPAddressSkuResponsePtrOutput { return o.ApplyT(func(v *VirtualMachinePublicIPAddressConfigurationResponse) *PublicIPAddressSkuResponse { if v == nil { @@ -28706,14 +37879,16 @@ func (o VirtualMachineRunCommandInstanceViewResponseOutput) Statuses() InstanceV return o.ApplyT(func(v VirtualMachineRunCommandInstanceViewResponse) []InstanceViewStatusResponse { return v.Statuses }).(InstanceViewStatusResponseArrayOutput) } -// Describes the script sources for run command. +// Describes the script sources for run command. Use only one of script, scriptUri, commandId. type VirtualMachineRunCommandScriptSource struct { // Specifies a commandId of predefined built-in script. CommandId *string `pulumi:"commandId"` // Specifies the script content to be executed on the VM. Script *string `pulumi:"script"` - // Specifies the script download location. + // Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. ScriptUri *string `pulumi:"scriptUri"` + // User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. + ScriptUriManagedIdentity *RunCommandManagedIdentity `pulumi:"scriptUriManagedIdentity"` } // VirtualMachineRunCommandScriptSourceInput is an input type that accepts VirtualMachineRunCommandScriptSourceArgs and VirtualMachineRunCommandScriptSourceOutput values. @@ -28727,14 +37902,16 @@ type VirtualMachineRunCommandScriptSourceInput interface { ToVirtualMachineRunCommandScriptSourceOutputWithContext(context.Context) VirtualMachineRunCommandScriptSourceOutput } -// Describes the script sources for run command. +// Describes the script sources for run command. Use only one of script, scriptUri, commandId. type VirtualMachineRunCommandScriptSourceArgs struct { // Specifies a commandId of predefined built-in script. CommandId pulumi.StringPtrInput `pulumi:"commandId"` // Specifies the script content to be executed on the VM. Script pulumi.StringPtrInput `pulumi:"script"` - // Specifies the script download location. + // Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. ScriptUri pulumi.StringPtrInput `pulumi:"scriptUri"` + // User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. + ScriptUriManagedIdentity RunCommandManagedIdentityPtrInput `pulumi:"scriptUriManagedIdentity"` } func (VirtualMachineRunCommandScriptSourceArgs) ElementType() reflect.Type { @@ -28790,7 +37967,7 @@ func (i *virtualMachineRunCommandScriptSourcePtrType) ToVirtualMachineRunCommand return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineRunCommandScriptSourcePtrOutput) } -// Describes the script sources for run command. +// Describes the script sources for run command. Use only one of script, scriptUri, commandId. type VirtualMachineRunCommandScriptSourceOutput struct{ *pulumi.OutputState } func (VirtualMachineRunCommandScriptSourceOutput) ElementType() reflect.Type { @@ -28825,11 +38002,18 @@ func (o VirtualMachineRunCommandScriptSourceOutput) Script() pulumi.StringPtrOut return o.ApplyT(func(v VirtualMachineRunCommandScriptSource) *string { return v.Script }).(pulumi.StringPtrOutput) } -// Specifies the script download location. +// Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. func (o VirtualMachineRunCommandScriptSourceOutput) ScriptUri() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineRunCommandScriptSource) *string { return v.ScriptUri }).(pulumi.StringPtrOutput) } +// User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +func (o VirtualMachineRunCommandScriptSourceOutput) ScriptUriManagedIdentity() RunCommandManagedIdentityPtrOutput { + return o.ApplyT(func(v VirtualMachineRunCommandScriptSource) *RunCommandManagedIdentity { + return v.ScriptUriManagedIdentity + }).(RunCommandManagedIdentityPtrOutput) +} + type VirtualMachineRunCommandScriptSourcePtrOutput struct{ *pulumi.OutputState } func (VirtualMachineRunCommandScriptSourcePtrOutput) ElementType() reflect.Type { @@ -28874,7 +38058,7 @@ func (o VirtualMachineRunCommandScriptSourcePtrOutput) Script() pulumi.StringPtr }).(pulumi.StringPtrOutput) } -// Specifies the script download location. +// Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. func (o VirtualMachineRunCommandScriptSourcePtrOutput) ScriptUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineRunCommandScriptSource) *string { if v == nil { @@ -28884,17 +38068,29 @@ func (o VirtualMachineRunCommandScriptSourcePtrOutput) ScriptUri() pulumi.String }).(pulumi.StringPtrOutput) } -// Describes the script sources for run command. +// User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +func (o VirtualMachineRunCommandScriptSourcePtrOutput) ScriptUriManagedIdentity() RunCommandManagedIdentityPtrOutput { + return o.ApplyT(func(v *VirtualMachineRunCommandScriptSource) *RunCommandManagedIdentity { + if v == nil { + return nil + } + return v.ScriptUriManagedIdentity + }).(RunCommandManagedIdentityPtrOutput) +} + +// Describes the script sources for run command. Use only one of script, scriptUri, commandId. type VirtualMachineRunCommandScriptSourceResponse struct { // Specifies a commandId of predefined built-in script. CommandId *string `pulumi:"commandId"` // Specifies the script content to be executed on the VM. Script *string `pulumi:"script"` - // Specifies the script download location. + // Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. ScriptUri *string `pulumi:"scriptUri"` + // User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. + ScriptUriManagedIdentity *RunCommandManagedIdentityResponse `pulumi:"scriptUriManagedIdentity"` } -// Describes the script sources for run command. +// Describes the script sources for run command. Use only one of script, scriptUri, commandId. type VirtualMachineRunCommandScriptSourceResponseOutput struct{ *pulumi.OutputState } func (VirtualMachineRunCommandScriptSourceResponseOutput) ElementType() reflect.Type { @@ -28919,11 +38115,18 @@ func (o VirtualMachineRunCommandScriptSourceResponseOutput) Script() pulumi.Stri return o.ApplyT(func(v VirtualMachineRunCommandScriptSourceResponse) *string { return v.Script }).(pulumi.StringPtrOutput) } -// Specifies the script download location. +// Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. func (o VirtualMachineRunCommandScriptSourceResponseOutput) ScriptUri() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineRunCommandScriptSourceResponse) *string { return v.ScriptUri }).(pulumi.StringPtrOutput) } +// User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +func (o VirtualMachineRunCommandScriptSourceResponseOutput) ScriptUriManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineRunCommandScriptSourceResponse) *RunCommandManagedIdentityResponse { + return v.ScriptUriManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + type VirtualMachineRunCommandScriptSourceResponsePtrOutput struct{ *pulumi.OutputState } func (VirtualMachineRunCommandScriptSourceResponsePtrOutput) ElementType() reflect.Type { @@ -28968,7 +38171,7 @@ func (o VirtualMachineRunCommandScriptSourceResponsePtrOutput) Script() pulumi.S }).(pulumi.StringPtrOutput) } -// Specifies the script download location. +// Specifies the script download location. It can be either SAS URI of an Azure storage blob with read access or public URI. func (o VirtualMachineRunCommandScriptSourceResponsePtrOutput) ScriptUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineRunCommandScriptSourceResponse) *string { if v == nil { @@ -28978,17 +38181,29 @@ func (o VirtualMachineRunCommandScriptSourceResponsePtrOutput) ScriptUri() pulum }).(pulumi.StringPtrOutput) } +// User-assigned managed identity that has access to scriptUri in case of Azure storage blob. Use an empty object in case of system-assigned identity. Make sure the Azure storage blob exists, and managed identity has been given access to blob's container with 'Storage Blob Data Reader' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged. +func (o VirtualMachineRunCommandScriptSourceResponsePtrOutput) ScriptUriManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineRunCommandScriptSourceResponse) *RunCommandManagedIdentityResponse { + if v == nil { + return nil + } + return v.ScriptUriManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + // Describes a virtual machine scale set data disk. type VirtualMachineScaleSetDataDisk struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` // The create option. CreateOption string `pulumi:"createOption"` + // Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

    **Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. + DeleteOption *string `pulumi:"deleteOption"` // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskIOPSReadWrite *float64 `pulumi:"diskIOPSReadWrite"` // Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskMBpsReadWrite *float64 `pulumi:"diskMBpsReadWrite"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun int `pulumi:"lun"` @@ -29013,15 +38228,17 @@ type VirtualMachineScaleSetDataDiskInput interface { // Describes a virtual machine scale set data disk. type VirtualMachineScaleSetDataDiskArgs struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` // The create option. CreateOption pulumi.StringInput `pulumi:"createOption"` + // Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

    **Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. + DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskIOPSReadWrite pulumi.Float64PtrInput `pulumi:"diskIOPSReadWrite"` // Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskMBpsReadWrite pulumi.Float64PtrInput `pulumi:"diskMBpsReadWrite"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun pulumi.IntInput `pulumi:"lun"` @@ -29085,7 +38302,7 @@ func (o VirtualMachineScaleSetDataDiskOutput) ToVirtualMachineScaleSetDataDiskOu return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetDataDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } @@ -29095,6 +38312,11 @@ func (o VirtualMachineScaleSetDataDiskOutput) CreateOption() pulumi.StringOutput return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) string { return v.CreateOption }).(pulumi.StringOutput) } +// Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

    **Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. +func (o VirtualMachineScaleSetDataDiskOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. func (o VirtualMachineScaleSetDataDiskOutput) DiskIOPSReadWrite() pulumi.Float64PtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) *float64 { return v.DiskIOPSReadWrite }).(pulumi.Float64PtrOutput) @@ -29105,7 +38327,7 @@ func (o VirtualMachineScaleSetDataDiskOutput) DiskMBpsReadWrite() pulumi.Float64 return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) *float64 { return v.DiskMBpsReadWrite }).(pulumi.Float64PtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetDataDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -29154,15 +38376,17 @@ func (o VirtualMachineScaleSetDataDiskArrayOutput) Index(i pulumi.IntInput) Virt // Describes a virtual machine scale set data disk. type VirtualMachineScaleSetDataDiskResponse struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` // The create option. CreateOption string `pulumi:"createOption"` + // Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

    **Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. + DeleteOption *string `pulumi:"deleteOption"` // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskIOPSReadWrite *float64 `pulumi:"diskIOPSReadWrite"` // Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. DiskMBpsReadWrite *float64 `pulumi:"diskMBpsReadWrite"` - // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM. Lun int `pulumi:"lun"` @@ -29189,7 +38413,7 @@ func (o VirtualMachineScaleSetDataDiskResponseOutput) ToVirtualMachineScaleSetDa return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetDataDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } @@ -29199,6 +38423,11 @@ func (o VirtualMachineScaleSetDataDiskResponseOutput) CreateOption() pulumi.Stri return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) string { return v.CreateOption }).(pulumi.StringOutput) } +// Specifies whether data disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the data disk is deleted when the VMSS Flex VM is deleted.

    **Detach** If this value is used, the data disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. +func (o VirtualMachineScaleSetDataDiskResponseOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be assigned based on diskSizeGB. func (o VirtualMachineScaleSetDataDiskResponseOutput) DiskIOPSReadWrite() pulumi.Float64PtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) *float64 { return v.DiskIOPSReadWrite }).(pulumi.Float64PtrOutput) @@ -29209,7 +38438,7 @@ func (o VirtualMachineScaleSetDataDiskResponseOutput) DiskMBpsReadWrite() pulumi return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) *float64 { return v.DiskMBpsReadWrite }).(pulumi.Float64PtrOutput) } -// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property diskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetDataDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetDataDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -29268,12 +38497,16 @@ type VirtualMachineScaleSetExtensionType struct { Name *string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReference `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Specifies the type of the extension; an example is "CustomScriptExtension". Type *string `pulumi:"type"` // Specifies the version of the script handler. @@ -29303,12 +38536,16 @@ type VirtualMachineScaleSetExtensionTypeArgs struct { Name pulumi.StringPtrInput `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.Input `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferencePtrInput `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions pulumi.StringArrayInput `pulumi:"provisionAfterExtensions"` // The name of the extension handler publisher. Publisher pulumi.StringPtrInput `pulumi:"publisher"` // Json formatted public settings for the extension. Settings pulumi.Input `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrInput `pulumi:"suppressFailures"` // Specifies the type of the extension; an example is "CustomScriptExtension". Type pulumi.StringPtrInput `pulumi:"type"` // Specifies the version of the script handler. @@ -29392,6 +38629,13 @@ func (o VirtualMachineScaleSetExtensionTypeOutput) ProtectedSettings() pulumi.An return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineScaleSetExtensionTypeOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferencePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) *KeyVaultSecretReference { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferencePtrOutput) +} + // Collection of extension names after which this extension needs to be provisioned. func (o VirtualMachineScaleSetExtensionTypeOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) @@ -29407,6 +38651,11 @@ func (o VirtualMachineScaleSetExtensionTypeOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineScaleSetExtensionTypeOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Specifies the type of the extension; an example is "CustomScriptExtension". func (o VirtualMachineScaleSetExtensionTypeOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionType) *string { return v.Type }).(pulumi.StringPtrOutput) @@ -29441,7 +38690,7 @@ func (o VirtualMachineScaleSetExtensionTypeArrayOutput) Index(i pulumi.IntInput) type VirtualMachineScaleSetExtensionProfile struct { // The virtual machine scale set child extension resources. Extensions []VirtualMachineScaleSetExtensionType `pulumi:"extensions"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget *string `pulumi:"extensionsTimeBudget"` } @@ -29460,7 +38709,7 @@ type VirtualMachineScaleSetExtensionProfileInput interface { type VirtualMachineScaleSetExtensionProfileArgs struct { // The virtual machine scale set child extension resources. Extensions VirtualMachineScaleSetExtensionTypeArrayInput `pulumi:"extensions"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget pulumi.StringPtrInput `pulumi:"extensionsTimeBudget"` } @@ -29549,7 +38798,7 @@ func (o VirtualMachineScaleSetExtensionProfileOutput) Extensions() VirtualMachin }).(VirtualMachineScaleSetExtensionTypeArrayOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetExtensionProfileOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionProfile) *string { return v.ExtensionsTimeBudget }).(pulumi.StringPtrOutput) } @@ -29588,7 +38837,7 @@ func (o VirtualMachineScaleSetExtensionProfilePtrOutput) Extensions() VirtualMac }).(VirtualMachineScaleSetExtensionTypeArrayOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetExtensionProfilePtrOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetExtensionProfile) *string { if v == nil { @@ -29602,7 +38851,7 @@ func (o VirtualMachineScaleSetExtensionProfilePtrOutput) ExtensionsTimeBudget() type VirtualMachineScaleSetExtensionProfileResponse struct { // The virtual machine scale set child extension resources. Extensions []VirtualMachineScaleSetExtensionResponse `pulumi:"extensions"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget *string `pulumi:"extensionsTimeBudget"` } @@ -29628,7 +38877,7 @@ func (o VirtualMachineScaleSetExtensionProfileResponseOutput) Extensions() Virtu }).(VirtualMachineScaleSetExtensionResponseArrayOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetExtensionProfileResponseOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionProfileResponse) *string { return v.ExtensionsTimeBudget }).(pulumi.StringPtrOutput) } @@ -29667,7 +38916,7 @@ func (o VirtualMachineScaleSetExtensionProfileResponsePtrOutput) Extensions() Vi }).(VirtualMachineScaleSetExtensionResponseArrayOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetExtensionProfileResponsePtrOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetExtensionProfileResponse) *string { if v == nil { @@ -29691,6 +38940,8 @@ type VirtualMachineScaleSetExtensionResponse struct { Name *string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReferenceResponse `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. @@ -29699,6 +38950,8 @@ type VirtualMachineScaleSetExtensionResponse struct { Publisher *string `pulumi:"publisher"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource type Type string `pulumi:"type"` // Specifies the version of the script handler. @@ -29750,6 +39003,13 @@ func (o VirtualMachineScaleSetExtensionResponseOutput) ProtectedSettings() pulum return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) interface{} { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineScaleSetExtensionResponseOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) *KeyVaultSecretReferenceResponse { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + // Collection of extension names after which this extension needs to be provisioned. func (o VirtualMachineScaleSetExtensionResponseOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) []string { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) @@ -29770,6 +39030,11 @@ func (o VirtualMachineScaleSetExtensionResponseOutput) Settings() pulumi.AnyOutp return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) interface{} { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineScaleSetExtensionResponseOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) *bool { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource type func (o VirtualMachineScaleSetExtensionResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineScaleSetExtensionResponse) string { return v.Type }).(pulumi.StringOutput) @@ -29800,14 +39065,214 @@ func (o VirtualMachineScaleSetExtensionResponseArrayOutput) Index(i pulumi.IntIn }).(VirtualMachineScaleSetExtensionResponseOutput) } +// Specifies the hardware settings for the virtual machine scale set. +type VirtualMachineScaleSetHardwareProfile struct { + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties *VMSizeProperties `pulumi:"vmSizeProperties"` +} + +// VirtualMachineScaleSetHardwareProfileInput is an input type that accepts VirtualMachineScaleSetHardwareProfileArgs and VirtualMachineScaleSetHardwareProfileOutput values. +// You can construct a concrete instance of `VirtualMachineScaleSetHardwareProfileInput` via: +// +// VirtualMachineScaleSetHardwareProfileArgs{...} +type VirtualMachineScaleSetHardwareProfileInput interface { + pulumi.Input + + ToVirtualMachineScaleSetHardwareProfileOutput() VirtualMachineScaleSetHardwareProfileOutput + ToVirtualMachineScaleSetHardwareProfileOutputWithContext(context.Context) VirtualMachineScaleSetHardwareProfileOutput +} + +// Specifies the hardware settings for the virtual machine scale set. +type VirtualMachineScaleSetHardwareProfileArgs struct { + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties VMSizePropertiesPtrInput `pulumi:"vmSizeProperties"` +} + +func (VirtualMachineScaleSetHardwareProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualMachineScaleSetHardwareProfile)(nil)).Elem() +} + +func (i VirtualMachineScaleSetHardwareProfileArgs) ToVirtualMachineScaleSetHardwareProfileOutput() VirtualMachineScaleSetHardwareProfileOutput { + return i.ToVirtualMachineScaleSetHardwareProfileOutputWithContext(context.Background()) +} + +func (i VirtualMachineScaleSetHardwareProfileArgs) ToVirtualMachineScaleSetHardwareProfileOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineScaleSetHardwareProfileOutput) +} + +func (i VirtualMachineScaleSetHardwareProfileArgs) ToVirtualMachineScaleSetHardwareProfilePtrOutput() VirtualMachineScaleSetHardwareProfilePtrOutput { + return i.ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(context.Background()) +} + +func (i VirtualMachineScaleSetHardwareProfileArgs) ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineScaleSetHardwareProfileOutput).ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(ctx) +} + +// VirtualMachineScaleSetHardwareProfilePtrInput is an input type that accepts VirtualMachineScaleSetHardwareProfileArgs, VirtualMachineScaleSetHardwareProfilePtr and VirtualMachineScaleSetHardwareProfilePtrOutput values. +// You can construct a concrete instance of `VirtualMachineScaleSetHardwareProfilePtrInput` via: +// +// VirtualMachineScaleSetHardwareProfileArgs{...} +// +// or: +// +// nil +type VirtualMachineScaleSetHardwareProfilePtrInput interface { + pulumi.Input + + ToVirtualMachineScaleSetHardwareProfilePtrOutput() VirtualMachineScaleSetHardwareProfilePtrOutput + ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(context.Context) VirtualMachineScaleSetHardwareProfilePtrOutput +} + +type virtualMachineScaleSetHardwareProfilePtrType VirtualMachineScaleSetHardwareProfileArgs + +func VirtualMachineScaleSetHardwareProfilePtr(v *VirtualMachineScaleSetHardwareProfileArgs) VirtualMachineScaleSetHardwareProfilePtrInput { + return (*virtualMachineScaleSetHardwareProfilePtrType)(v) +} + +func (*virtualMachineScaleSetHardwareProfilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualMachineScaleSetHardwareProfile)(nil)).Elem() +} + +func (i *virtualMachineScaleSetHardwareProfilePtrType) ToVirtualMachineScaleSetHardwareProfilePtrOutput() VirtualMachineScaleSetHardwareProfilePtrOutput { + return i.ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(context.Background()) +} + +func (i *virtualMachineScaleSetHardwareProfilePtrType) ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMachineScaleSetHardwareProfilePtrOutput) +} + +// Specifies the hardware settings for the virtual machine scale set. +type VirtualMachineScaleSetHardwareProfileOutput struct{ *pulumi.OutputState } + +func (VirtualMachineScaleSetHardwareProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualMachineScaleSetHardwareProfile)(nil)).Elem() +} + +func (o VirtualMachineScaleSetHardwareProfileOutput) ToVirtualMachineScaleSetHardwareProfileOutput() VirtualMachineScaleSetHardwareProfileOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfileOutput) ToVirtualMachineScaleSetHardwareProfileOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfileOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfileOutput) ToVirtualMachineScaleSetHardwareProfilePtrOutput() VirtualMachineScaleSetHardwareProfilePtrOutput { + return o.ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(context.Background()) +} + +func (o VirtualMachineScaleSetHardwareProfileOutput) ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfilePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualMachineScaleSetHardwareProfile) *VirtualMachineScaleSetHardwareProfile { + return &v + }).(VirtualMachineScaleSetHardwareProfilePtrOutput) +} + +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o VirtualMachineScaleSetHardwareProfileOutput) VmSizeProperties() VMSizePropertiesPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetHardwareProfile) *VMSizeProperties { return v.VmSizeProperties }).(VMSizePropertiesPtrOutput) +} + +type VirtualMachineScaleSetHardwareProfilePtrOutput struct{ *pulumi.OutputState } + +func (VirtualMachineScaleSetHardwareProfilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualMachineScaleSetHardwareProfile)(nil)).Elem() +} + +func (o VirtualMachineScaleSetHardwareProfilePtrOutput) ToVirtualMachineScaleSetHardwareProfilePtrOutput() VirtualMachineScaleSetHardwareProfilePtrOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfilePtrOutput) ToVirtualMachineScaleSetHardwareProfilePtrOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfilePtrOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfilePtrOutput) Elem() VirtualMachineScaleSetHardwareProfileOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetHardwareProfile) VirtualMachineScaleSetHardwareProfile { + if v != nil { + return *v + } + var ret VirtualMachineScaleSetHardwareProfile + return ret + }).(VirtualMachineScaleSetHardwareProfileOutput) +} + +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o VirtualMachineScaleSetHardwareProfilePtrOutput) VmSizeProperties() VMSizePropertiesPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetHardwareProfile) *VMSizeProperties { + if v == nil { + return nil + } + return v.VmSizeProperties + }).(VMSizePropertiesPtrOutput) +} + +// Specifies the hardware settings for the virtual machine scale set. +type VirtualMachineScaleSetHardwareProfileResponse struct { + // Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. + VmSizeProperties *VMSizePropertiesResponse `pulumi:"vmSizeProperties"` +} + +// Specifies the hardware settings for the virtual machine scale set. +type VirtualMachineScaleSetHardwareProfileResponseOutput struct{ *pulumi.OutputState } + +func (VirtualMachineScaleSetHardwareProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualMachineScaleSetHardwareProfileResponse)(nil)).Elem() +} + +func (o VirtualMachineScaleSetHardwareProfileResponseOutput) ToVirtualMachineScaleSetHardwareProfileResponseOutput() VirtualMachineScaleSetHardwareProfileResponseOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfileResponseOutput) ToVirtualMachineScaleSetHardwareProfileResponseOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfileResponseOutput { + return o +} + +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o VirtualMachineScaleSetHardwareProfileResponseOutput) VmSizeProperties() VMSizePropertiesResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetHardwareProfileResponse) *VMSizePropertiesResponse { + return v.VmSizeProperties + }).(VMSizePropertiesResponsePtrOutput) +} + +type VirtualMachineScaleSetHardwareProfileResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualMachineScaleSetHardwareProfileResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualMachineScaleSetHardwareProfileResponse)(nil)).Elem() +} + +func (o VirtualMachineScaleSetHardwareProfileResponsePtrOutput) ToVirtualMachineScaleSetHardwareProfileResponsePtrOutput() VirtualMachineScaleSetHardwareProfileResponsePtrOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfileResponsePtrOutput) ToVirtualMachineScaleSetHardwareProfileResponsePtrOutputWithContext(ctx context.Context) VirtualMachineScaleSetHardwareProfileResponsePtrOutput { + return o +} + +func (o VirtualMachineScaleSetHardwareProfileResponsePtrOutput) Elem() VirtualMachineScaleSetHardwareProfileResponseOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetHardwareProfileResponse) VirtualMachineScaleSetHardwareProfileResponse { + if v != nil { + return *v + } + var ret VirtualMachineScaleSetHardwareProfileResponse + return ret + }).(VirtualMachineScaleSetHardwareProfileResponseOutput) +} + +// Specifies the properties for customizing the size of the virtual machine. Minimum api-version: 2021-11-01. Please follow the instructions in [VM Customization](https://aka.ms/vmcustomization) for more details. +func (o VirtualMachineScaleSetHardwareProfileResponsePtrOutput) VmSizeProperties() VMSizePropertiesResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetHardwareProfileResponse) *VMSizePropertiesResponse { + if v == nil { + return nil + } + return v.VmSizeProperties + }).(VMSizePropertiesResponsePtrOutput) +} + // Describes a virtual machine scale set network profile's IP configuration. type VirtualMachineScaleSetIPConfiguration struct { // Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application gateways. Multiple scale sets cannot use the same application gateway. ApplicationGatewayBackendAddressPools []SubResource `pulumi:"applicationGatewayBackendAddressPools"` // Specifies an array of references to application security group. ApplicationSecurityGroups []SubResource `pulumi:"applicationSecurityGroups"` - // Resource Id - Id *string `pulumi:"id"` // Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. LoadBalancerBackendAddressPools []SubResource `pulumi:"loadBalancerBackendAddressPools"` // Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. @@ -29841,8 +39306,6 @@ type VirtualMachineScaleSetIPConfigurationArgs struct { ApplicationGatewayBackendAddressPools SubResourceArrayInput `pulumi:"applicationGatewayBackendAddressPools"` // Specifies an array of references to application security group. ApplicationSecurityGroups SubResourceArrayInput `pulumi:"applicationSecurityGroups"` - // Resource Id - Id pulumi.StringPtrInput `pulumi:"id"` // Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. LoadBalancerBackendAddressPools SubResourceArrayInput `pulumi:"loadBalancerBackendAddressPools"` // Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. @@ -29923,11 +39386,6 @@ func (o VirtualMachineScaleSetIPConfigurationOutput) ApplicationSecurityGroups() return o.ApplyT(func(v VirtualMachineScaleSetIPConfiguration) []SubResource { return v.ApplicationSecurityGroups }).(SubResourceArrayOutput) } -// Resource Id -func (o VirtualMachineScaleSetIPConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIPConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) -} - // Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. func (o VirtualMachineScaleSetIPConfigurationOutput) LoadBalancerBackendAddressPools() SubResourceArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetIPConfiguration) []SubResource { return v.LoadBalancerBackendAddressPools }).(SubResourceArrayOutput) @@ -29991,8 +39449,6 @@ type VirtualMachineScaleSetIPConfigurationResponse struct { ApplicationGatewayBackendAddressPools []SubResourceResponse `pulumi:"applicationGatewayBackendAddressPools"` // Specifies an array of references to application security group. ApplicationSecurityGroups []SubResourceResponse `pulumi:"applicationSecurityGroups"` - // Resource Id - Id *string `pulumi:"id"` // Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. LoadBalancerBackendAddressPools []SubResourceResponse `pulumi:"loadBalancerBackendAddressPools"` // Specifies an array of references to inbound Nat pools of the load balancers. A scale set can reference inbound nat pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. @@ -30038,11 +39494,6 @@ func (o VirtualMachineScaleSetIPConfigurationResponseOutput) ApplicationSecurity }).(SubResourceResponseArrayOutput) } -// Resource Id -func (o VirtualMachineScaleSetIPConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIPConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - // Specifies an array of references to backend address pools of load balancers. A scale set can reference backend address pools of one public and one internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. func (o VirtualMachineScaleSetIPConfigurationResponseOutput) LoadBalancerBackendAddressPools() SubResourceResponseArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetIPConfigurationResponse) []SubResourceResponse { @@ -30109,7 +39560,7 @@ type VirtualMachineScaleSetIdentity struct { // The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. Type *ResourceIdentityType `pulumi:"type"` // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // VirtualMachineScaleSetIdentityInput is an input type that accepts VirtualMachineScaleSetIdentityArgs and VirtualMachineScaleSetIdentityOutput values. @@ -30128,7 +39579,7 @@ type VirtualMachineScaleSetIdentityArgs struct { // The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. Type ResourceIdentityTypePtrInput `pulumi:"type"` // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (VirtualMachineScaleSetIdentityArgs) ElementType() reflect.Type { @@ -30215,8 +39666,8 @@ func (o VirtualMachineScaleSetIdentityOutput) Type() ResourceIdentityTypePtrOutp } // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineScaleSetIdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIdentity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +func (o VirtualMachineScaleSetIdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineScaleSetIdentity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) } type VirtualMachineScaleSetIdentityPtrOutput struct{ *pulumi.OutputState } @@ -30254,13 +39705,13 @@ func (o VirtualMachineScaleSetIdentityPtrOutput) Type() ResourceIdentityTypePtrO } // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineScaleSetIdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *VirtualMachineScaleSetIdentity) map[string]interface{} { +func (o VirtualMachineScaleSetIdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetIdentity) []string { if v == nil { return nil } return v.UserAssignedIdentities - }).(pulumi.MapOutput) + }).(pulumi.StringArrayOutput) } // Identity for the virtual machine scale set. @@ -30272,7 +39723,7 @@ type VirtualMachineScaleSetIdentityResponse struct { // The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set. Type *string `pulumi:"type"` // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]VirtualMachineScaleSetIdentityResponseUserAssignedIdentities `pulumi:"userAssignedIdentities"` + UserAssignedIdentities map[string]UserAssignedIdentitiesResponseUserAssignedIdentities `pulumi:"userAssignedIdentities"` } // Identity for the virtual machine scale set. @@ -30306,10 +39757,10 @@ func (o VirtualMachineScaleSetIdentityResponseOutput) Type() pulumi.StringPtrOut } // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineScaleSetIdentityResponseOutput) UserAssignedIdentities() VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIdentityResponse) map[string]VirtualMachineScaleSetIdentityResponseUserAssignedIdentities { +func (o VirtualMachineScaleSetIdentityResponseOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v VirtualMachineScaleSetIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { return v.UserAssignedIdentities - }).(VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) } type VirtualMachineScaleSetIdentityResponsePtrOutput struct{ *pulumi.OutputState } @@ -30367,64 +39818,13 @@ func (o VirtualMachineScaleSetIdentityResponsePtrOutput) Type() pulumi.StringPtr } // The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o VirtualMachineScaleSetIdentityResponsePtrOutput) UserAssignedIdentities() VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput { - return o.ApplyT(func(v *VirtualMachineScaleSetIdentityResponse) map[string]VirtualMachineScaleSetIdentityResponseUserAssignedIdentities { +func (o VirtualMachineScaleSetIdentityResponsePtrOutput) UserAssignedIdentities() UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetIdentityResponse) map[string]UserAssignedIdentitiesResponseUserAssignedIdentities { if v == nil { return nil } return v.UserAssignedIdentities - }).(VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) -} - -type VirtualMachineScaleSetIdentityResponseUserAssignedIdentities struct { - // The client id of user assigned identity. - ClientId string `pulumi:"clientId"` - // The principal id of user assigned identity. - PrincipalId string `pulumi:"principalId"` -} - -type VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput struct{ *pulumi.OutputState } - -func (VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualMachineScaleSetIdentityResponseUserAssignedIdentities)(nil)).Elem() -} - -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) ToVirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput() VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput { - return o -} - -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) ToVirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutputWithContext(ctx context.Context) VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput { - return o -} - -// The client id of user assigned identity. -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) ClientId() pulumi.StringOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIdentityResponseUserAssignedIdentities) string { return v.ClientId }).(pulumi.StringOutput) -} - -// The principal id of user assigned identity. -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) PrincipalId() pulumi.StringOutput { - return o.ApplyT(func(v VirtualMachineScaleSetIdentityResponseUserAssignedIdentities) string { return v.PrincipalId }).(pulumi.StringOutput) -} - -type VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput struct{ *pulumi.OutputState } - -func (VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]VirtualMachineScaleSetIdentityResponseUserAssignedIdentities)(nil)).Elem() -} - -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) ToVirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput() VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput { - return o -} - -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) ToVirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutputWithContext(ctx context.Context) VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput { - return o -} - -func (o VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput) MapIndex(k pulumi.StringInput) VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput { - return pulumi.All(o, k).ApplyT(func(vs []interface{}) VirtualMachineScaleSetIdentityResponseUserAssignedIdentities { - return vs[0].(map[string]VirtualMachineScaleSetIdentityResponseUserAssignedIdentities)[vs[1].(string)] - }).(VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput) + }).(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput) } // Contains the IP tag associated with the public IP address. @@ -30593,6 +39993,8 @@ func (o VirtualMachineScaleSetIpTagResponseArrayOutput) Index(i pulumi.IntInput) type VirtualMachineScaleSetManagedDiskParameters struct { // Specifies the customer managed disk encryption set resource id for the managed disk. DiskEncryptionSet *DiskEncryptionSetParameters `pulumi:"diskEncryptionSet"` + // Specifies the security profile for the managed disk. + SecurityProfile *VMDiskSecurityProfile `pulumi:"securityProfile"` // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType *string `pulumi:"storageAccountType"` } @@ -30612,6 +40014,8 @@ type VirtualMachineScaleSetManagedDiskParametersInput interface { type VirtualMachineScaleSetManagedDiskParametersArgs struct { // Specifies the customer managed disk encryption set resource id for the managed disk. DiskEncryptionSet DiskEncryptionSetParametersPtrInput `pulumi:"diskEncryptionSet"` + // Specifies the security profile for the managed disk. + SecurityProfile VMDiskSecurityProfilePtrInput `pulumi:"securityProfile"` // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType pulumi.StringPtrInput `pulumi:"storageAccountType"` } @@ -30701,6 +40105,11 @@ func (o VirtualMachineScaleSetManagedDiskParametersOutput) DiskEncryptionSet() D }).(DiskEncryptionSetParametersPtrOutput) } +// Specifies the security profile for the managed disk. +func (o VirtualMachineScaleSetManagedDiskParametersOutput) SecurityProfile() VMDiskSecurityProfilePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetManagedDiskParameters) *VMDiskSecurityProfile { return v.SecurityProfile }).(VMDiskSecurityProfilePtrOutput) +} + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o VirtualMachineScaleSetManagedDiskParametersOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetManagedDiskParameters) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) @@ -30740,6 +40149,16 @@ func (o VirtualMachineScaleSetManagedDiskParametersPtrOutput) DiskEncryptionSet( }).(DiskEncryptionSetParametersPtrOutput) } +// Specifies the security profile for the managed disk. +func (o VirtualMachineScaleSetManagedDiskParametersPtrOutput) SecurityProfile() VMDiskSecurityProfilePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetManagedDiskParameters) *VMDiskSecurityProfile { + if v == nil { + return nil + } + return v.SecurityProfile + }).(VMDiskSecurityProfilePtrOutput) +} + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o VirtualMachineScaleSetManagedDiskParametersPtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetManagedDiskParameters) *string { @@ -30754,6 +40173,8 @@ func (o VirtualMachineScaleSetManagedDiskParametersPtrOutput) StorageAccountType type VirtualMachineScaleSetManagedDiskParametersResponse struct { // Specifies the customer managed disk encryption set resource id for the managed disk. DiskEncryptionSet *DiskEncryptionSetParametersResponse `pulumi:"diskEncryptionSet"` + // Specifies the security profile for the managed disk. + SecurityProfile *VMDiskSecurityProfileResponse `pulumi:"securityProfile"` // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. StorageAccountType *string `pulumi:"storageAccountType"` } @@ -30780,6 +40201,13 @@ func (o VirtualMachineScaleSetManagedDiskParametersResponseOutput) DiskEncryptio }).(DiskEncryptionSetParametersResponsePtrOutput) } +// Specifies the security profile for the managed disk. +func (o VirtualMachineScaleSetManagedDiskParametersResponseOutput) SecurityProfile() VMDiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetManagedDiskParametersResponse) *VMDiskSecurityProfileResponse { + return v.SecurityProfile + }).(VMDiskSecurityProfileResponsePtrOutput) +} + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o VirtualMachineScaleSetManagedDiskParametersResponseOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetManagedDiskParametersResponse) *string { return v.StorageAccountType }).(pulumi.StringPtrOutput) @@ -30819,6 +40247,16 @@ func (o VirtualMachineScaleSetManagedDiskParametersResponsePtrOutput) DiskEncryp }).(DiskEncryptionSetParametersResponsePtrOutput) } +// Specifies the security profile for the managed disk. +func (o VirtualMachineScaleSetManagedDiskParametersResponsePtrOutput) SecurityProfile() VMDiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetManagedDiskParametersResponse) *VMDiskSecurityProfileResponse { + if v == nil { + return nil + } + return v.SecurityProfile + }).(VMDiskSecurityProfileResponsePtrOutput) +} + // Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. func (o VirtualMachineScaleSetManagedDiskParametersResponsePtrOutput) StorageAccountType() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetManagedDiskParametersResponse) *string { @@ -30833,6 +40271,8 @@ func (o VirtualMachineScaleSetManagedDiskParametersResponsePtrOutput) StorageAcc type VirtualMachineScaleSetNetworkConfiguration struct { // Specify what happens to the network interface when the VM is deleted DeleteOption *string `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings *VirtualMachineScaleSetNetworkConfigurationDnsSettings `pulumi:"dnsSettings"` // Specifies whether the network interface is accelerated networking-enabled. @@ -30841,8 +40281,6 @@ type VirtualMachineScaleSetNetworkConfiguration struct { EnableFpga *bool `pulumi:"enableFpga"` // Whether IP forwarding enabled on this NIC. EnableIPForwarding *bool `pulumi:"enableIPForwarding"` - // Resource Id - Id *string `pulumi:"id"` // Specifies the IP configurations of the network interface. IpConfigurations []VirtualMachineScaleSetIPConfiguration `pulumi:"ipConfigurations"` // The network configuration name. @@ -30868,6 +40306,8 @@ type VirtualMachineScaleSetNetworkConfigurationInput interface { type VirtualMachineScaleSetNetworkConfigurationArgs struct { // Specify what happens to the network interface when the VM is deleted DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking pulumi.BoolPtrInput `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings VirtualMachineScaleSetNetworkConfigurationDnsSettingsPtrInput `pulumi:"dnsSettings"` // Specifies whether the network interface is accelerated networking-enabled. @@ -30876,8 +40316,6 @@ type VirtualMachineScaleSetNetworkConfigurationArgs struct { EnableFpga pulumi.BoolPtrInput `pulumi:"enableFpga"` // Whether IP forwarding enabled on this NIC. EnableIPForwarding pulumi.BoolPtrInput `pulumi:"enableIPForwarding"` - // Resource Id - Id pulumi.StringPtrInput `pulumi:"id"` // Specifies the IP configurations of the network interface. IpConfigurations VirtualMachineScaleSetIPConfigurationArrayInput `pulumi:"ipConfigurations"` // The network configuration name. @@ -30945,6 +40383,11 @@ func (o VirtualMachineScaleSetNetworkConfigurationOutput) DeleteOption() pulumi. return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } +// Specifies whether the network interface is disabled for tcp state tracking. +func (o VirtualMachineScaleSetNetworkConfigurationOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The dns settings to be applied on the network interfaces. func (o VirtualMachineScaleSetNetworkConfigurationOutput) DnsSettings() VirtualMachineScaleSetNetworkConfigurationDnsSettingsPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) *VirtualMachineScaleSetNetworkConfigurationDnsSettings { @@ -30967,11 +40410,6 @@ func (o VirtualMachineScaleSetNetworkConfigurationOutput) EnableIPForwarding() p return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) *bool { return v.EnableIPForwarding }).(pulumi.BoolPtrOutput) } -// Resource Id -func (o VirtualMachineScaleSetNetworkConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) -} - // Specifies the IP configurations of the network interface. func (o VirtualMachineScaleSetNetworkConfigurationOutput) IpConfigurations() VirtualMachineScaleSetIPConfigurationArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfiguration) []VirtualMachineScaleSetIPConfiguration { @@ -31218,6 +40656,8 @@ func (o VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponsePtrOutput) type VirtualMachineScaleSetNetworkConfigurationResponse struct { // Specify what happens to the network interface when the VM is deleted DeleteOption *string `pulumi:"deleteOption"` + // Specifies whether the network interface is disabled for tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The dns settings to be applied on the network interfaces. DnsSettings *VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse `pulumi:"dnsSettings"` // Specifies whether the network interface is accelerated networking-enabled. @@ -31226,8 +40666,6 @@ type VirtualMachineScaleSetNetworkConfigurationResponse struct { EnableFpga *bool `pulumi:"enableFpga"` // Whether IP forwarding enabled on this NIC. EnableIPForwarding *bool `pulumi:"enableIPForwarding"` - // Resource Id - Id *string `pulumi:"id"` // Specifies the IP configurations of the network interface. IpConfigurations []VirtualMachineScaleSetIPConfigurationResponse `pulumi:"ipConfigurations"` // The network configuration name. @@ -31258,6 +40696,11 @@ func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) DeleteOption() return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } +// Specifies whether the network interface is disabled for tcp state tracking. +func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The dns settings to be applied on the network interfaces. func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) DnsSettings() VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) *VirtualMachineScaleSetNetworkConfigurationDnsSettingsResponse { @@ -31280,11 +40723,6 @@ func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) EnableIPForwar return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) *bool { return v.EnableIPForwarding }).(pulumi.BoolPtrOutput) } -// Resource Id -func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - // Specifies the IP configurations of the network interface. func (o VirtualMachineScaleSetNetworkConfigurationResponseOutput) IpConfigurations() VirtualMachineScaleSetIPConfigurationResponseArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetNetworkConfigurationResponse) []VirtualMachineScaleSetIPConfigurationResponse { @@ -31607,13 +41045,15 @@ func (o VirtualMachineScaleSetNetworkProfileResponsePtrOutput) NetworkInterfaceC // Describes a virtual machine scale set operating system disk. type VirtualMachineScaleSetOSDisk struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *CachingTypes `pulumi:"caching"` - // Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. CreateOption string `pulumi:"createOption"` + // Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. + DeleteOption *string `pulumi:"deleteOption"` // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. DiffDiskSettings *DiffDiskSettings `pulumi:"diffDiskSettings"` - // Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies information about the unmanaged user image to base the scale set on. Image *VirtualHardDisk `pulumi:"image"` @@ -31621,7 +41061,7 @@ type VirtualMachineScaleSetOSDisk struct { ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `pulumi:"managedDisk"` // The disk name. Name *string `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType *OperatingSystemTypes `pulumi:"osType"` // Specifies the container urls that are used to store operating system disks for the scale set. VhdContainers []string `pulumi:"vhdContainers"` @@ -31642,13 +41082,15 @@ type VirtualMachineScaleSetOSDiskInput interface { // Describes a virtual machine scale set operating system disk. type VirtualMachineScaleSetOSDiskArgs struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching CachingTypesPtrInput `pulumi:"caching"` - // Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. CreateOption pulumi.StringInput `pulumi:"createOption"` + // Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. + DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. DiffDiskSettings DiffDiskSettingsPtrInput `pulumi:"diffDiskSettings"` - // Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB pulumi.IntPtrInput `pulumi:"diskSizeGB"` // Specifies information about the unmanaged user image to base the scale set on. Image VirtualHardDiskPtrInput `pulumi:"image"` @@ -31656,7 +41098,7 @@ type VirtualMachineScaleSetOSDiskArgs struct { ManagedDisk VirtualMachineScaleSetManagedDiskParametersPtrInput `pulumi:"managedDisk"` // The disk name. Name pulumi.StringPtrInput `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType OperatingSystemTypesPtrInput `pulumi:"osType"` // Specifies the container urls that are used to store operating system disks for the scale set. VhdContainers pulumi.StringArrayInput `pulumi:"vhdContainers"` @@ -31742,22 +41184,27 @@ func (o VirtualMachineScaleSetOSDiskOutput) ToVirtualMachineScaleSetOSDiskPtrOut }).(VirtualMachineScaleSetOSDiskPtrOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetOSDiskOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *CachingTypes { return v.Caching }).(CachingTypesPtrOutput) } -// Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. func (o VirtualMachineScaleSetOSDiskOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) string { return v.CreateOption }).(pulumi.StringOutput) } +// Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. +func (o VirtualMachineScaleSetOSDiskOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. func (o VirtualMachineScaleSetOSDiskOutput) DiffDiskSettings() DiffDiskSettingsPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *DiffDiskSettings { return v.DiffDiskSettings }).(DiffDiskSettingsPtrOutput) } -// Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetOSDiskOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -31779,7 +41226,7 @@ func (o VirtualMachineScaleSetOSDiskOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *string { return v.Name }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o VirtualMachineScaleSetOSDiskOutput) OsType() OperatingSystemTypesPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDisk) *OperatingSystemTypes { return v.OsType }).(OperatingSystemTypesPtrOutput) } @@ -31818,7 +41265,7 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) Elem() VirtualMachineScaleSetOSDi }).(VirtualMachineScaleSetOSDiskOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetOSDiskPtrOutput) Caching() CachingTypesPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *CachingTypes { if v == nil { @@ -31828,7 +41275,7 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) Caching() CachingTypesPtrOutput { }).(CachingTypesPtrOutput) } -// Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. func (o VirtualMachineScaleSetOSDiskPtrOutput) CreateOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *string { if v == nil { @@ -31838,6 +41285,16 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) CreateOption() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } +// Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. +func (o VirtualMachineScaleSetOSDiskPtrOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *string { + if v == nil { + return nil + } + return v.DeleteOption + }).(pulumi.StringPtrOutput) +} + // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. func (o VirtualMachineScaleSetOSDiskPtrOutput) DiffDiskSettings() DiffDiskSettingsPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *DiffDiskSettings { @@ -31848,7 +41305,7 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) DiffDiskSettings() DiffDiskSettin }).(DiffDiskSettingsPtrOutput) } -// Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetOSDiskPtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *int { if v == nil { @@ -31888,7 +41345,7 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o VirtualMachineScaleSetOSDiskPtrOutput) OsType() OperatingSystemTypesPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDisk) *OperatingSystemTypes { if v == nil { @@ -31920,13 +41377,15 @@ func (o VirtualMachineScaleSetOSDiskPtrOutput) WriteAcceleratorEnabled() pulumi. // Describes a virtual machine scale set operating system disk. type VirtualMachineScaleSetOSDiskResponse struct { - // Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** + // Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** Caching *string `pulumi:"caching"` - // Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. + // Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. CreateOption string `pulumi:"createOption"` + // Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. + DeleteOption *string `pulumi:"deleteOption"` // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. DiffDiskSettings *DiffDiskSettingsResponse `pulumi:"diffDiskSettings"` - // Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB + // Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. DiskSizeGB *int `pulumi:"diskSizeGB"` // Specifies information about the unmanaged user image to base the scale set on. Image *VirtualHardDiskResponse `pulumi:"image"` @@ -31934,7 +41393,7 @@ type VirtualMachineScaleSetOSDiskResponse struct { ManagedDisk *VirtualMachineScaleSetManagedDiskParametersResponse `pulumi:"managedDisk"` // The disk name. Name *string `pulumi:"name"` - // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** + // This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** OsType *string `pulumi:"osType"` // Specifies the container urls that are used to store operating system disks for the scale set. VhdContainers []string `pulumi:"vhdContainers"` @@ -31957,22 +41416,27 @@ func (o VirtualMachineScaleSetOSDiskResponseOutput) ToVirtualMachineScaleSetOSDi return o } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetOSDiskResponseOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *string { return v.Caching }).(pulumi.StringPtrOutput) } -// Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. func (o VirtualMachineScaleSetOSDiskResponseOutput) CreateOption() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) string { return v.CreateOption }).(pulumi.StringOutput) } +// Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. +func (o VirtualMachineScaleSetOSDiskResponseOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. func (o VirtualMachineScaleSetOSDiskResponseOutput) DiffDiskSettings() DiffDiskSettingsResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *DiffDiskSettingsResponse { return v.DiffDiskSettings }).(DiffDiskSettingsResponsePtrOutput) } -// Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetOSDiskResponseOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *int { return v.DiskSizeGB }).(pulumi.IntPtrOutput) } @@ -31994,7 +41458,7 @@ func (o VirtualMachineScaleSetOSDiskResponseOutput) Name() pulumi.StringPtrOutpu return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o VirtualMachineScaleSetOSDiskResponseOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSDiskResponse) *string { return v.OsType }).(pulumi.StringPtrOutput) } @@ -32033,7 +41497,7 @@ func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) Elem() VirtualMachineScal }).(VirtualMachineScaleSetOSDiskResponseOutput) } -// Specifies the caching requirements.

    Possible values are:

    **None**

    **ReadOnly**

    **ReadWrite**

    Default: **None for Standard storage. ReadOnly for Premium storage** +// Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage.** func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) Caching() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *string { if v == nil { @@ -32043,7 +41507,7 @@ func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) Caching() pulumi.StringPt }).(pulumi.StringPtrOutput) } -// Specifies how the virtual machines in the scale set should be created.

    The only allowed value is: **FromImage** \u2013 This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. +// Specifies how the virtual machines in the scale set should be created. The only allowed value is: **FromImage.** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you also use the imageReference element described above. If you are using a marketplace image, you also use the plan element previously described. func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) CreateOption() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *string { if v == nil { @@ -32053,6 +41517,16 @@ func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) CreateOption() pulumi.Str }).(pulumi.StringPtrOutput) } +// Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion (This feature is available for VMSS with Flexible OrchestrationMode only).

    Possible values:

    **Delete** If this value is used, the OS disk is deleted when VMSS Flex VM is deleted.

    **Detach** If this value is used, the OS disk is retained after VMSS Flex VM is deleted.

    The default value is set to **Delete**. For an Ephemeral OS Disk, the default value is set to **Delete**. User cannot change the delete option for Ephemeral OS Disk. +func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *string { + if v == nil { + return nil + } + return v.DeleteOption + }).(pulumi.StringPtrOutput) +} + // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) DiffDiskSettings() DiffDiskSettingsResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *DiffDiskSettingsResponse { @@ -32063,7 +41537,7 @@ func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) DiffDiskSettings() DiffDi }).(DiffDiskSettingsResponsePtrOutput) } -// Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image.

    This value cannot be larger than 1023 GB +// Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023. func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) DiskSizeGB() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *int { if v == nil { @@ -32103,7 +41577,7 @@ func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) Name() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD.

    Possible values are:

    **Windows**

    **Linux** +// This property allows you to specify the type of the OS that is included in the disk if creating a VM from user-image or a specialized VHD. Possible values are: **Windows,** **Linux.** func (o VirtualMachineScaleSetOSDiskResponsePtrOutput) OsType() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSDiskResponse) *string { if v == nil { @@ -32139,12 +41613,16 @@ type VirtualMachineScaleSetOSProfile struct { AdminPassword *string `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters AdminUsername *string `pulumi:"adminUsername"` + // Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. + AllowExtensionOperations *bool `pulumi:"allowExtensionOperations"` // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. ComputerNamePrefix *string `pulumi:"computerNamePrefix"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) CustomData *string `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration *LinuxConfiguration `pulumi:"linuxConfiguration"` + // Optional property which must either be set to True or omitted. + RequireGuestProvisionSignal *bool `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets []VaultSecretGroup `pulumi:"secrets"` // Specifies Windows operating system settings on the virtual machine. @@ -32168,12 +41646,16 @@ type VirtualMachineScaleSetOSProfileArgs struct { AdminPassword pulumi.StringPtrInput `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters AdminUsername pulumi.StringPtrInput `pulumi:"adminUsername"` + // Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. + AllowExtensionOperations pulumi.BoolPtrInput `pulumi:"allowExtensionOperations"` // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. ComputerNamePrefix pulumi.StringPtrInput `pulumi:"computerNamePrefix"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) CustomData pulumi.StringPtrInput `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration LinuxConfigurationPtrInput `pulumi:"linuxConfiguration"` + // Optional property which must either be set to True or omitted. + RequireGuestProvisionSignal pulumi.BoolPtrInput `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets VaultSecretGroupArrayInput `pulumi:"secrets"` // Specifies Windows operating system settings on the virtual machine. @@ -32268,21 +41750,31 @@ func (o VirtualMachineScaleSetOSProfileOutput) AdminUsername() pulumi.StringPtrO return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *string { return v.AdminUsername }).(pulumi.StringPtrOutput) } +// Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. +func (o VirtualMachineScaleSetOSProfileOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *bool { return v.AllowExtensionOperations }).(pulumi.BoolPtrOutput) +} + // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. func (o VirtualMachineScaleSetOSProfileOutput) ComputerNamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *string { return v.ComputerNamePrefix }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) func (o VirtualMachineScaleSetOSProfileOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *string { return v.CustomData }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o VirtualMachineScaleSetOSProfileOutput) LinuxConfiguration() LinuxConfigurationPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *LinuxConfiguration { return v.LinuxConfiguration }).(LinuxConfigurationPtrOutput) } +// Optional property which must either be set to True or omitted. +func (o VirtualMachineScaleSetOSProfileOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) *bool { return v.RequireGuestProvisionSignal }).(pulumi.BoolPtrOutput) +} + // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VirtualMachineScaleSetOSProfileOutput) Secrets() VaultSecretGroupArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfile) []VaultSecretGroup { return v.Secrets }).(VaultSecretGroupArrayOutput) @@ -32337,6 +41829,16 @@ func (o VirtualMachineScaleSetOSProfilePtrOutput) AdminUsername() pulumi.StringP }).(pulumi.StringPtrOutput) } +// Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. +func (o VirtualMachineScaleSetOSProfilePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) *bool { + if v == nil { + return nil + } + return v.AllowExtensionOperations + }).(pulumi.BoolPtrOutput) +} + // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. func (o VirtualMachineScaleSetOSProfilePtrOutput) ComputerNamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) *string { @@ -32347,7 +41849,7 @@ func (o VirtualMachineScaleSetOSProfilePtrOutput) ComputerNamePrefix() pulumi.St }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) func (o VirtualMachineScaleSetOSProfilePtrOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) *string { if v == nil { @@ -32357,7 +41859,7 @@ func (o VirtualMachineScaleSetOSProfilePtrOutput) CustomData() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o VirtualMachineScaleSetOSProfilePtrOutput) LinuxConfiguration() LinuxConfigurationPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) *LinuxConfiguration { if v == nil { @@ -32367,6 +41869,16 @@ func (o VirtualMachineScaleSetOSProfilePtrOutput) LinuxConfiguration() LinuxConf }).(LinuxConfigurationPtrOutput) } +// Optional property which must either be set to True or omitted. +func (o VirtualMachineScaleSetOSProfilePtrOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) *bool { + if v == nil { + return nil + } + return v.RequireGuestProvisionSignal + }).(pulumi.BoolPtrOutput) +} + // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VirtualMachineScaleSetOSProfilePtrOutput) Secrets() VaultSecretGroupArrayOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfile) []VaultSecretGroup { @@ -32393,12 +41905,16 @@ type VirtualMachineScaleSetOSProfileResponse struct { AdminPassword *string `pulumi:"adminPassword"` // Specifies the name of the administrator account.

    **Windows-only restriction:** Cannot end in "."

    **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5".

    **Minimum-length (Linux):** 1 character

    **Max-length (Linux):** 64 characters

    **Max-length (Windows):** 20 characters AdminUsername *string `pulumi:"adminUsername"` + // Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. + AllowExtensionOperations *bool `pulumi:"allowExtensionOperations"` // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. ComputerNamePrefix *string `pulumi:"computerNamePrefix"` - // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) + // Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) CustomData *string `pulumi:"customData"` - // Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). + // Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). LinuxConfiguration *LinuxConfigurationResponse `pulumi:"linuxConfiguration"` + // Optional property which must either be set to True or omitted. + RequireGuestProvisionSignal *bool `pulumi:"requireGuestProvisionSignal"` // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). Secrets []VaultSecretGroupResponse `pulumi:"secrets"` // Specifies Windows operating system settings on the virtual machine. @@ -32430,23 +41946,33 @@ func (o VirtualMachineScaleSetOSProfileResponseOutput) AdminUsername() pulumi.St return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *string { return v.AdminUsername }).(pulumi.StringPtrOutput) } +// Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. +func (o VirtualMachineScaleSetOSProfileResponseOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *bool { return v.AllowExtensionOperations }).(pulumi.BoolPtrOutput) +} + // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. func (o VirtualMachineScaleSetOSProfileResponseOutput) ComputerNamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *string { return v.ComputerNamePrefix }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) func (o VirtualMachineScaleSetOSProfileResponseOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *string { return v.CustomData }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o VirtualMachineScaleSetOSProfileResponseOutput) LinuxConfiguration() LinuxConfigurationResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *LinuxConfigurationResponse { return v.LinuxConfiguration }).(LinuxConfigurationResponsePtrOutput) } +// Optional property which must either be set to True or omitted. +func (o VirtualMachineScaleSetOSProfileResponseOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) *bool { return v.RequireGuestProvisionSignal }).(pulumi.BoolPtrOutput) +} + // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VirtualMachineScaleSetOSProfileResponseOutput) Secrets() VaultSecretGroupResponseArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetOSProfileResponse) []VaultSecretGroupResponse { return v.Secrets }).(VaultSecretGroupResponseArrayOutput) @@ -32503,6 +42029,16 @@ func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) AdminUsername() pulumi }).(pulumi.StringPtrOutput) } +// Specifies whether extension operations should be allowed on the virtual machine scale set. This may only be set to False when no extensions are present on the virtual machine scale set. +func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) AllowExtensionOperations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) *bool { + if v == nil { + return nil + } + return v.AllowExtensionOperations + }).(pulumi.BoolPtrOutput) +} + // Specifies the computer name prefix for all of the virtual machines in the scale set. Computer name prefixes must be 1 to 15 characters long. func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) ComputerNamePrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) *string { @@ -32513,7 +42049,7 @@ func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) ComputerNamePrefix() p }).(pulumi.StringPtrOutput) } -// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes.

    For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) +// Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. For using cloud-init for your VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init) func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) CustomData() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) *string { if v == nil { @@ -32523,7 +42059,7 @@ func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) CustomData() pulumi.St }).(pulumi.StringPtrOutput) } -// Specifies the Linux operating system settings on the virtual machine.

    For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). +// Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros). func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) LinuxConfiguration() LinuxConfigurationResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) *LinuxConfigurationResponse { if v == nil { @@ -32533,6 +42069,16 @@ func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) LinuxConfiguration() L }).(LinuxConfigurationResponsePtrOutput) } +// Optional property which must either be set to True or omitted. +func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) RequireGuestProvisionSignal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) *bool { + if v == nil { + return nil + } + return v.RequireGuestProvisionSignal + }).(pulumi.BoolPtrOutput) +} + // Specifies set of certificates that should be installed onto the virtual machines in the scale set. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o VirtualMachineScaleSetOSProfileResponsePtrOutput) Secrets() VaultSecretGroupResponseArrayOutput { return o.ApplyT(func(v *VirtualMachineScaleSetOSProfileResponse) []VaultSecretGroupResponse { @@ -32569,7 +42115,7 @@ type VirtualMachineScaleSetPublicIPAddressConfiguration struct { PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix *SubResource `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku *PublicIPAddressSku `pulumi:"sku"` } @@ -32600,7 +42146,7 @@ type VirtualMachineScaleSetPublicIPAddressConfigurationArgs struct { PublicIPAddressVersion pulumi.StringPtrInput `pulumi:"publicIPAddressVersion"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix SubResourcePtrInput `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku PublicIPAddressSkuPtrInput `pulumi:"sku"` } @@ -32721,7 +42267,7 @@ func (o VirtualMachineScaleSetPublicIPAddressConfigurationOutput) PublicIPPrefix return o.ApplyT(func(v VirtualMachineScaleSetPublicIPAddressConfiguration) *SubResource { return v.PublicIPPrefix }).(SubResourcePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachineScaleSetPublicIPAddressConfigurationOutput) Sku() PublicIPAddressSkuPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetPublicIPAddressConfiguration) *PublicIPAddressSku { return v.Sku }).(PublicIPAddressSkuPtrOutput) } @@ -32820,7 +42366,7 @@ func (o VirtualMachineScaleSetPublicIPAddressConfigurationPtrOutput) PublicIPPre }).(SubResourcePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachineScaleSetPublicIPAddressConfigurationPtrOutput) Sku() PublicIPAddressSkuPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetPublicIPAddressConfiguration) *PublicIPAddressSku { if v == nil { @@ -33048,7 +42594,7 @@ type VirtualMachineScaleSetPublicIPAddressConfigurationResponse struct { PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` // The PublicIPPrefix from which to allocate publicIP addresses. PublicIPPrefix *SubResourceResponse `pulumi:"publicIPPrefix"` - // Describes the public IP Sku + // Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. Sku *PublicIPAddressSkuResponse `pulumi:"sku"` } @@ -33110,7 +42656,7 @@ func (o VirtualMachineScaleSetPublicIPAddressConfigurationResponseOutput) Public }).(SubResourceResponsePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachineScaleSetPublicIPAddressConfigurationResponseOutput) Sku() PublicIPAddressSkuResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetPublicIPAddressConfigurationResponse) *PublicIPAddressSkuResponse { return v.Sku @@ -33211,7 +42757,7 @@ func (o VirtualMachineScaleSetPublicIPAddressConfigurationResponsePtrOutput) Pub }).(SubResourceResponsePtrOutput) } -// Describes the public IP Sku +// Describes the public IP Sku. It can only be set with OrchestrationMode as Flexible. func (o VirtualMachineScaleSetPublicIPAddressConfigurationResponsePtrOutput) Sku() PublicIPAddressSkuResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetPublicIPAddressConfigurationResponse) *PublicIPAddressSkuResponse { if v == nil { @@ -33223,11 +42769,12 @@ func (o VirtualMachineScaleSetPublicIPAddressConfigurationResponsePtrOutput) Sku // Describes a virtual machine scale set storage profile. type VirtualMachineScaleSetStorageProfile struct { - // Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). - DataDisks []VirtualMachineScaleSetDataDisk `pulumi:"dataDisks"` + // Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + DataDisks []VirtualMachineScaleSetDataDisk `pulumi:"dataDisks"` + DiskControllerType []string `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference *ImageReference `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *VirtualMachineScaleSetOSDisk `pulumi:"osDisk"` } @@ -33244,11 +42791,12 @@ type VirtualMachineScaleSetStorageProfileInput interface { // Describes a virtual machine scale set storage profile. type VirtualMachineScaleSetStorageProfileArgs struct { - // Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). - DataDisks VirtualMachineScaleSetDataDiskArrayInput `pulumi:"dataDisks"` + // Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + DataDisks VirtualMachineScaleSetDataDiskArrayInput `pulumi:"dataDisks"` + DiskControllerType pulumi.StringArrayInput `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference ImageReferencePtrInput `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk VirtualMachineScaleSetOSDiskPtrInput `pulumi:"osDisk"` } @@ -33330,17 +42878,21 @@ func (o VirtualMachineScaleSetStorageProfileOutput) ToVirtualMachineScaleSetStor }).(VirtualMachineScaleSetStorageProfilePtrOutput) } -// Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileOutput) DataDisks() VirtualMachineScaleSetDataDiskArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfile) []VirtualMachineScaleSetDataDisk { return v.DataDisks }).(VirtualMachineScaleSetDataDiskArrayOutput) } +func (o VirtualMachineScaleSetStorageProfileOutput) DiskControllerType() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineScaleSetStorageProfile) []string { return v.DiskControllerType }).(pulumi.StringArrayOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o VirtualMachineScaleSetStorageProfileOutput) ImageReference() ImageReferencePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfile) *ImageReference { return v.ImageReference }).(ImageReferencePtrOutput) } -// Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileOutput) OsDisk() VirtualMachineScaleSetOSDiskPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfile) *VirtualMachineScaleSetOSDisk { return v.OsDisk }).(VirtualMachineScaleSetOSDiskPtrOutput) } @@ -33369,7 +42921,7 @@ func (o VirtualMachineScaleSetStorageProfilePtrOutput) Elem() VirtualMachineScal }).(VirtualMachineScaleSetStorageProfileOutput) } -// Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfilePtrOutput) DataDisks() VirtualMachineScaleSetDataDiskArrayOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfile) []VirtualMachineScaleSetDataDisk { if v == nil { @@ -33379,6 +42931,15 @@ func (o VirtualMachineScaleSetStorageProfilePtrOutput) DataDisks() VirtualMachin }).(VirtualMachineScaleSetDataDiskArrayOutput) } +func (o VirtualMachineScaleSetStorageProfilePtrOutput) DiskControllerType() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfile) []string { + if v == nil { + return nil + } + return v.DiskControllerType + }).(pulumi.StringArrayOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o VirtualMachineScaleSetStorageProfilePtrOutput) ImageReference() ImageReferencePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfile) *ImageReference { @@ -33389,7 +42950,7 @@ func (o VirtualMachineScaleSetStorageProfilePtrOutput) ImageReference() ImageRef }).(ImageReferencePtrOutput) } -// Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfilePtrOutput) OsDisk() VirtualMachineScaleSetOSDiskPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfile) *VirtualMachineScaleSetOSDisk { if v == nil { @@ -33401,11 +42962,12 @@ func (o VirtualMachineScaleSetStorageProfilePtrOutput) OsDisk() VirtualMachineSc // Describes a virtual machine scale set storage profile. type VirtualMachineScaleSetStorageProfileResponse struct { - // Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). - DataDisks []VirtualMachineScaleSetDataDiskResponse `pulumi:"dataDisks"` + // Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + DataDisks []VirtualMachineScaleSetDataDiskResponse `pulumi:"dataDisks"` + DiskControllerType []string `pulumi:"diskControllerType"` // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. ImageReference *ImageReferenceResponse `pulumi:"imageReference"` - // Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). + // Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). OsDisk *VirtualMachineScaleSetOSDiskResponse `pulumi:"osDisk"` } @@ -33424,19 +42986,23 @@ func (o VirtualMachineScaleSetStorageProfileResponseOutput) ToVirtualMachineScal return o } -// Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileResponseOutput) DataDisks() VirtualMachineScaleSetDataDiskResponseArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfileResponse) []VirtualMachineScaleSetDataDiskResponse { return v.DataDisks }).(VirtualMachineScaleSetDataDiskResponseArrayOutput) } +func (o VirtualMachineScaleSetStorageProfileResponseOutput) DiskControllerType() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualMachineScaleSetStorageProfileResponse) []string { return v.DiskControllerType }).(pulumi.StringArrayOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o VirtualMachineScaleSetStorageProfileResponseOutput) ImageReference() ImageReferenceResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfileResponse) *ImageReferenceResponse { return v.ImageReference }).(ImageReferenceResponsePtrOutput) } -// Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileResponseOutput) OsDisk() VirtualMachineScaleSetOSDiskResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetStorageProfileResponse) *VirtualMachineScaleSetOSDiskResponse { return v.OsDisk @@ -33467,7 +43033,7 @@ func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) Elem() VirtualMac }).(VirtualMachineScaleSetStorageProfileResponseOutput) } -// Specifies the parameters that are used to add data disks to the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies the parameters that are used to add data disks to the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) DataDisks() VirtualMachineScaleSetDataDiskResponseArrayOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfileResponse) []VirtualMachineScaleSetDataDiskResponse { if v == nil { @@ -33477,6 +43043,15 @@ func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) DataDisks() Virtu }).(VirtualMachineScaleSetDataDiskResponseArrayOutput) } +func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) DiskControllerType() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfileResponse) []string { + if v == nil { + return nil + } + return v.DiskControllerType + }).(pulumi.StringArrayOutput) +} + // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) ImageReference() ImageReferenceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfileResponse) *ImageReferenceResponse { @@ -33487,7 +43062,7 @@ func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) ImageReference() }).(ImageReferenceResponsePtrOutput) } -// Specifies information about the operating system disk used by the virtual machines in the scale set.

    For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). +// Specifies information about the operating system disk used by the virtual machines in the scale set. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview). func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) OsDisk() VirtualMachineScaleSetOSDiskResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetStorageProfileResponse) *VirtualMachineScaleSetOSDiskResponse { if v == nil { @@ -33499,16 +43074,24 @@ func (o VirtualMachineScaleSetStorageProfileResponsePtrOutput) OsDisk() VirtualM // The instance view of a virtual machine scale set VM. type VirtualMachineScaleSetVMInstanceViewResponse struct { - // Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.

    Minimum api-version: 2020-06-01. + // Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01. AssignedHost string `pulumi:"assignedHost"` - // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. + // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. BootDiagnostics *BootDiagnosticsInstanceViewResponse `pulumi:"bootDiagnostics"` + // Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions). + ComputerName *string `pulumi:"computerName"` // The disks information. Disks []DiskInstanceViewResponse `pulumi:"disks"` // The extensions information. Extensions []VirtualMachineExtensionInstanceViewResponse `pulumi:"extensions"` + // The hypervisor generation of the Virtual Machine [V1, V2] + HyperVGeneration *string `pulumi:"hyperVGeneration"` // The Maintenance Operation status on the virtual machine. MaintenanceRedeployStatus *MaintenanceRedeployStatusResponse `pulumi:"maintenanceRedeployStatus"` + // The Operating System running on the hybrid machine. + OsName *string `pulumi:"osName"` + // The version of Operating System running on the hybrid machine. + OsVersion *string `pulumi:"osVersion"` // The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId. PlacementGroupId *string `pulumi:"placementGroupId"` // The Fault Domain count. @@ -33540,18 +43123,23 @@ func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) ToVirtualMachineScal return o } -// Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled.

    Minimum api-version: 2020-06-01. +// Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated with a dedicated host group that has automatic placement enabled. Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) AssignedHost() pulumi.StringOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) string { return v.AssignedHost }).(pulumi.StringOutput) } -// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status.

    You can easily view the output of your console log.

    Azure also enables you to see a screenshot of the VM from the hypervisor. +// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor. func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) BootDiagnostics() BootDiagnosticsInstanceViewResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *BootDiagnosticsInstanceViewResponse { return v.BootDiagnostics }).(BootDiagnosticsInstanceViewResponsePtrOutput) } +// Specifies the host OS name of the virtual machine.

    This name cannot be updated after the VM is created.

    **Max-length (Windows):** 15 characters

    **Max-length (Linux):** 64 characters.

    For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions). +func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) ComputerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *string { return v.ComputerName }).(pulumi.StringPtrOutput) +} + // The disks information. func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) Disks() DiskInstanceViewResponseArrayOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) []DiskInstanceViewResponse { return v.Disks }).(DiskInstanceViewResponseArrayOutput) @@ -33564,6 +43152,11 @@ func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) Extensions() Virtual }).(VirtualMachineExtensionInstanceViewResponseArrayOutput) } +// The hypervisor generation of the Virtual Machine [V1, V2] +func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) HyperVGeneration() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *string { return v.HyperVGeneration }).(pulumi.StringPtrOutput) +} + // The Maintenance Operation status on the virtual machine. func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) MaintenanceRedeployStatus() MaintenanceRedeployStatusResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *MaintenanceRedeployStatusResponse { @@ -33571,6 +43164,16 @@ func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) MaintenanceRedeployS }).(MaintenanceRedeployStatusResponsePtrOutput) } +// The Operating System running on the hybrid machine. +func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) OsName() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *string { return v.OsName }).(pulumi.StringPtrOutput) +} + +// The version of Operating System running on the hybrid machine. +func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) OsVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *string { return v.OsVersion }).(pulumi.StringPtrOutput) +} + // The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId. func (o VirtualMachineScaleSetVMInstanceViewResponseOutput) PlacementGroupId() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMInstanceViewResponse) *string { return v.PlacementGroupId }).(pulumi.StringPtrOutput) @@ -33816,29 +43419,39 @@ func (o VirtualMachineScaleSetVMNetworkProfileConfigurationResponsePtrOutput) Ne // Describes a virtual machine scale set virtual machine profile. type VirtualMachineScaleSetVMProfile struct { - // Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. + // Specifies the gallery applications that should be made available to the VM/VMSS + ApplicationProfile *ApplicationProfile `pulumi:"applicationProfile"` + // Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. BillingProfile *BillingProfile `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. + CapacityReservation *CapacityReservationProfile `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfile `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy *string `pulumi:"evictionPolicy"` // Specifies a collection of settings for extensions installed on virtual machines in the scale set. ExtensionProfile *VirtualMachineScaleSetExtensionProfile `pulumi:"extensionProfile"` + // Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. + HardwareProfile *VirtualMachineScaleSetHardwareProfile `pulumi:"hardwareProfile"` // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 LicenseType *string `pulumi:"licenseType"` // Specifies properties of the network interfaces of the virtual machines in the scale set. NetworkProfile *VirtualMachineScaleSetNetworkProfile `pulumi:"networkProfile"` // Specifies the operating system settings for the virtual machines in the scale set. OsProfile *VirtualMachineScaleSetOSProfile `pulumi:"osProfile"` - // Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview + // Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. Priority *string `pulumi:"priority"` // Specifies Scheduled Event related configurations. ScheduledEventsProfile *ScheduledEventsProfile `pulumi:"scheduledEventsProfile"` + // Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 + SecurityPostureReference *SecurityPostureReference `pulumi:"securityPostureReference"` // Specifies the Security related profile settings for the virtual machines in the scale set. SecurityProfile *SecurityProfile `pulumi:"securityProfile"` + // Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 + ServiceArtifactReference *ServiceArtifactReference `pulumi:"serviceArtifactReference"` // Specifies the storage settings for the virtual machine disks. StorageProfile *VirtualMachineScaleSetStorageProfile `pulumi:"storageProfile"` - // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData *string `pulumi:"userData"` } @@ -33855,29 +43468,39 @@ type VirtualMachineScaleSetVMProfileInput interface { // Describes a virtual machine scale set virtual machine profile. type VirtualMachineScaleSetVMProfileArgs struct { - // Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. + // Specifies the gallery applications that should be made available to the VM/VMSS + ApplicationProfile ApplicationProfilePtrInput `pulumi:"applicationProfile"` + // Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. BillingProfile BillingProfilePtrInput `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. + CapacityReservation CapacityReservationProfilePtrInput `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile DiagnosticsProfilePtrInput `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy pulumi.StringPtrInput `pulumi:"evictionPolicy"` // Specifies a collection of settings for extensions installed on virtual machines in the scale set. ExtensionProfile VirtualMachineScaleSetExtensionProfilePtrInput `pulumi:"extensionProfile"` + // Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. + HardwareProfile VirtualMachineScaleSetHardwareProfilePtrInput `pulumi:"hardwareProfile"` // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 LicenseType pulumi.StringPtrInput `pulumi:"licenseType"` // Specifies properties of the network interfaces of the virtual machines in the scale set. NetworkProfile VirtualMachineScaleSetNetworkProfilePtrInput `pulumi:"networkProfile"` // Specifies the operating system settings for the virtual machines in the scale set. OsProfile VirtualMachineScaleSetOSProfilePtrInput `pulumi:"osProfile"` - // Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview + // Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. Priority pulumi.StringPtrInput `pulumi:"priority"` // Specifies Scheduled Event related configurations. ScheduledEventsProfile ScheduledEventsProfilePtrInput `pulumi:"scheduledEventsProfile"` + // Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 + SecurityPostureReference SecurityPostureReferencePtrInput `pulumi:"securityPostureReference"` // Specifies the Security related profile settings for the virtual machines in the scale set. SecurityProfile SecurityProfilePtrInput `pulumi:"securityProfile"` + // Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 + ServiceArtifactReference ServiceArtifactReferencePtrInput `pulumi:"serviceArtifactReference"` // Specifies the storage settings for the virtual machine disks. StorageProfile VirtualMachineScaleSetStorageProfilePtrInput `pulumi:"storageProfile"` - // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData pulumi.StringPtrInput `pulumi:"userData"` } @@ -33959,17 +43582,27 @@ func (o VirtualMachineScaleSetVMProfileOutput) ToVirtualMachineScaleSetVMProfile }).(VirtualMachineScaleSetVMProfilePtrOutput) } -// Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o VirtualMachineScaleSetVMProfileOutput) ApplicationProfile() ApplicationProfilePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *ApplicationProfile { return v.ApplicationProfile }).(ApplicationProfilePtrOutput) +} + +// Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. func (o VirtualMachineScaleSetVMProfileOutput) BillingProfile() BillingProfilePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *BillingProfile { return v.BillingProfile }).(BillingProfilePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. +func (o VirtualMachineScaleSetVMProfileOutput) CapacityReservation() CapacityReservationProfilePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *CapacityReservationProfile { return v.CapacityReservation }).(CapacityReservationProfilePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineScaleSetVMProfileOutput) DiagnosticsProfile() DiagnosticsProfilePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *DiagnosticsProfile { return v.DiagnosticsProfile }).(DiagnosticsProfilePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *string { return v.EvictionPolicy }).(pulumi.StringPtrOutput) } @@ -33981,6 +43614,13 @@ func (o VirtualMachineScaleSetVMProfileOutput) ExtensionProfile() VirtualMachine }).(VirtualMachineScaleSetExtensionProfilePtrOutput) } +// Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. +func (o VirtualMachineScaleSetVMProfileOutput) HardwareProfile() VirtualMachineScaleSetHardwareProfilePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *VirtualMachineScaleSetHardwareProfile { + return v.HardwareProfile + }).(VirtualMachineScaleSetHardwareProfilePtrOutput) +} + // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 func (o VirtualMachineScaleSetVMProfileOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *string { return v.LicenseType }).(pulumi.StringPtrOutput) @@ -33996,7 +43636,7 @@ func (o VirtualMachineScaleSetVMProfileOutput) OsProfile() VirtualMachineScaleSe return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *VirtualMachineScaleSetOSProfile { return v.OsProfile }).(VirtualMachineScaleSetOSProfilePtrOutput) } -// Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview +// Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *string { return v.Priority }).(pulumi.StringPtrOutput) } @@ -34006,17 +43646,27 @@ func (o VirtualMachineScaleSetVMProfileOutput) ScheduledEventsProfile() Schedule return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *ScheduledEventsProfile { return v.ScheduledEventsProfile }).(ScheduledEventsProfilePtrOutput) } +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +func (o VirtualMachineScaleSetVMProfileOutput) SecurityPostureReference() SecurityPostureReferencePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *SecurityPostureReference { return v.SecurityPostureReference }).(SecurityPostureReferencePtrOutput) +} + // Specifies the Security related profile settings for the virtual machines in the scale set. func (o VirtualMachineScaleSetVMProfileOutput) SecurityProfile() SecurityProfilePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *SecurityProfile { return v.SecurityProfile }).(SecurityProfilePtrOutput) } +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +func (o VirtualMachineScaleSetVMProfileOutput) ServiceArtifactReference() ServiceArtifactReferencePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *ServiceArtifactReference { return v.ServiceArtifactReference }).(ServiceArtifactReferencePtrOutput) +} + // Specifies the storage settings for the virtual machine disks. func (o VirtualMachineScaleSetVMProfileOutput) StorageProfile() VirtualMachineScaleSetStorageProfilePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *VirtualMachineScaleSetStorageProfile { return v.StorageProfile }).(VirtualMachineScaleSetStorageProfilePtrOutput) } -// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o VirtualMachineScaleSetVMProfileOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfile) *string { return v.UserData }).(pulumi.StringPtrOutput) } @@ -34045,7 +43695,17 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) Elem() VirtualMachineScaleSetV }).(VirtualMachineScaleSetVMProfileOutput) } -// Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o VirtualMachineScaleSetVMProfilePtrOutput) ApplicationProfile() ApplicationProfilePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *ApplicationProfile { + if v == nil { + return nil + } + return v.ApplicationProfile + }).(ApplicationProfilePtrOutput) +} + +// Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. func (o VirtualMachineScaleSetVMProfilePtrOutput) BillingProfile() BillingProfilePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *BillingProfile { if v == nil { @@ -34055,7 +43715,17 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) BillingProfile() BillingProfil }).(BillingProfilePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. +func (o VirtualMachineScaleSetVMProfilePtrOutput) CapacityReservation() CapacityReservationProfilePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *CapacityReservationProfile { + if v == nil { + return nil + } + return v.CapacityReservation + }).(CapacityReservationProfilePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineScaleSetVMProfilePtrOutput) DiagnosticsProfile() DiagnosticsProfilePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *DiagnosticsProfile { if v == nil { @@ -34065,7 +43735,7 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) DiagnosticsProfile() Diagnosti }).(DiagnosticsProfilePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfilePtrOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *string { if v == nil { @@ -34085,6 +43755,16 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) ExtensionProfile() VirtualMach }).(VirtualMachineScaleSetExtensionProfilePtrOutput) } +// Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. +func (o VirtualMachineScaleSetVMProfilePtrOutput) HardwareProfile() VirtualMachineScaleSetHardwareProfilePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *VirtualMachineScaleSetHardwareProfile { + if v == nil { + return nil + } + return v.HardwareProfile + }).(VirtualMachineScaleSetHardwareProfilePtrOutput) +} + // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 func (o VirtualMachineScaleSetVMProfilePtrOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *string { @@ -34115,7 +43795,7 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) OsProfile() VirtualMachineScal }).(VirtualMachineScaleSetOSProfilePtrOutput) } -// Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview +// Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfilePtrOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *string { if v == nil { @@ -34135,6 +43815,16 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) ScheduledEventsProfile() Sched }).(ScheduledEventsProfilePtrOutput) } +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +func (o VirtualMachineScaleSetVMProfilePtrOutput) SecurityPostureReference() SecurityPostureReferencePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *SecurityPostureReference { + if v == nil { + return nil + } + return v.SecurityPostureReference + }).(SecurityPostureReferencePtrOutput) +} + // Specifies the Security related profile settings for the virtual machines in the scale set. func (o VirtualMachineScaleSetVMProfilePtrOutput) SecurityProfile() SecurityProfilePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *SecurityProfile { @@ -34145,6 +43835,16 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) SecurityProfile() SecurityProf }).(SecurityProfilePtrOutput) } +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +func (o VirtualMachineScaleSetVMProfilePtrOutput) ServiceArtifactReference() ServiceArtifactReferencePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *ServiceArtifactReference { + if v == nil { + return nil + } + return v.ServiceArtifactReference + }).(ServiceArtifactReferencePtrOutput) +} + // Specifies the storage settings for the virtual machine disks. func (o VirtualMachineScaleSetVMProfilePtrOutput) StorageProfile() VirtualMachineScaleSetStorageProfilePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *VirtualMachineScaleSetStorageProfile { @@ -34155,7 +43855,7 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) StorageProfile() VirtualMachin }).(VirtualMachineScaleSetStorageProfilePtrOutput) } -// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o VirtualMachineScaleSetVMProfilePtrOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfile) *string { if v == nil { @@ -34167,29 +43867,39 @@ func (o VirtualMachineScaleSetVMProfilePtrOutput) UserData() pulumi.StringPtrOut // Describes a virtual machine scale set virtual machine profile. type VirtualMachineScaleSetVMProfileResponse struct { - // Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. + // Specifies the gallery applications that should be made available to the VM/VMSS + ApplicationProfile *ApplicationProfileResponse `pulumi:"applicationProfile"` + // Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. BillingProfile *BillingProfileResponse `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. + CapacityReservation *CapacityReservationProfileResponse `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfileResponse `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy *string `pulumi:"evictionPolicy"` // Specifies a collection of settings for extensions installed on virtual machines in the scale set. ExtensionProfile *VirtualMachineScaleSetExtensionProfileResponse `pulumi:"extensionProfile"` + // Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. + HardwareProfile *VirtualMachineScaleSetHardwareProfileResponse `pulumi:"hardwareProfile"` // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 LicenseType *string `pulumi:"licenseType"` // Specifies properties of the network interfaces of the virtual machines in the scale set. NetworkProfile *VirtualMachineScaleSetNetworkProfileResponse `pulumi:"networkProfile"` // Specifies the operating system settings for the virtual machines in the scale set. OsProfile *VirtualMachineScaleSetOSProfileResponse `pulumi:"osProfile"` - // Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview + // Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. Priority *string `pulumi:"priority"` // Specifies Scheduled Event related configurations. ScheduledEventsProfile *ScheduledEventsProfileResponse `pulumi:"scheduledEventsProfile"` + // Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 + SecurityPostureReference *SecurityPostureReferenceResponse `pulumi:"securityPostureReference"` // Specifies the Security related profile settings for the virtual machines in the scale set. SecurityProfile *SecurityProfileResponse `pulumi:"securityProfile"` + // Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 + ServiceArtifactReference *ServiceArtifactReferenceResponse `pulumi:"serviceArtifactReference"` // Specifies the storage settings for the virtual machine disks. StorageProfile *VirtualMachineScaleSetStorageProfileResponse `pulumi:"storageProfile"` - // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData *string `pulumi:"userData"` } @@ -34208,19 +43918,33 @@ func (o VirtualMachineScaleSetVMProfileResponseOutput) ToVirtualMachineScaleSetV return o } -// Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o VirtualMachineScaleSetVMProfileResponseOutput) ApplicationProfile() ApplicationProfileResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *ApplicationProfileResponse { + return v.ApplicationProfile + }).(ApplicationProfileResponsePtrOutput) +} + +// Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. func (o VirtualMachineScaleSetVMProfileResponseOutput) BillingProfile() BillingProfileResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *BillingProfileResponse { return v.BillingProfile }).(BillingProfileResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. +func (o VirtualMachineScaleSetVMProfileResponseOutput) CapacityReservation() CapacityReservationProfileResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *CapacityReservationProfileResponse { + return v.CapacityReservation + }).(CapacityReservationProfileResponsePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineScaleSetVMProfileResponseOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *DiagnosticsProfileResponse { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileResponseOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *string { return v.EvictionPolicy }).(pulumi.StringPtrOutput) } @@ -34232,6 +43956,13 @@ func (o VirtualMachineScaleSetVMProfileResponseOutput) ExtensionProfile() Virtua }).(VirtualMachineScaleSetExtensionProfileResponsePtrOutput) } +// Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. +func (o VirtualMachineScaleSetVMProfileResponseOutput) HardwareProfile() VirtualMachineScaleSetHardwareProfileResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *VirtualMachineScaleSetHardwareProfileResponse { + return v.HardwareProfile + }).(VirtualMachineScaleSetHardwareProfileResponsePtrOutput) +} + // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 func (o VirtualMachineScaleSetVMProfileResponseOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *string { return v.LicenseType }).(pulumi.StringPtrOutput) @@ -34251,7 +43982,7 @@ func (o VirtualMachineScaleSetVMProfileResponseOutput) OsProfile() VirtualMachin }).(VirtualMachineScaleSetOSProfileResponsePtrOutput) } -// Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview +// Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileResponseOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *string { return v.Priority }).(pulumi.StringPtrOutput) } @@ -34263,11 +43994,25 @@ func (o VirtualMachineScaleSetVMProfileResponseOutput) ScheduledEventsProfile() }).(ScheduledEventsProfileResponsePtrOutput) } +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +func (o VirtualMachineScaleSetVMProfileResponseOutput) SecurityPostureReference() SecurityPostureReferenceResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *SecurityPostureReferenceResponse { + return v.SecurityPostureReference + }).(SecurityPostureReferenceResponsePtrOutput) +} + // Specifies the Security related profile settings for the virtual machines in the scale set. func (o VirtualMachineScaleSetVMProfileResponseOutput) SecurityProfile() SecurityProfileResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *SecurityProfileResponse { return v.SecurityProfile }).(SecurityProfileResponsePtrOutput) } +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +func (o VirtualMachineScaleSetVMProfileResponseOutput) ServiceArtifactReference() ServiceArtifactReferenceResponsePtrOutput { + return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *ServiceArtifactReferenceResponse { + return v.ServiceArtifactReference + }).(ServiceArtifactReferenceResponsePtrOutput) +} + // Specifies the storage settings for the virtual machine disks. func (o VirtualMachineScaleSetVMProfileResponseOutput) StorageProfile() VirtualMachineScaleSetStorageProfileResponsePtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *VirtualMachineScaleSetStorageProfileResponse { @@ -34275,7 +44020,7 @@ func (o VirtualMachineScaleSetVMProfileResponseOutput) StorageProfile() VirtualM }).(VirtualMachineScaleSetStorageProfileResponsePtrOutput) } -// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o VirtualMachineScaleSetVMProfileResponseOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualMachineScaleSetVMProfileResponse) *string { return v.UserData }).(pulumi.StringPtrOutput) } @@ -34304,7 +44049,17 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) Elem() VirtualMachineS }).(VirtualMachineScaleSetVMProfileResponseOutput) } -// Specifies the billing related details of a Azure Spot VMSS.

    Minimum api-version: 2019-03-01. +// Specifies the gallery applications that should be made available to the VM/VMSS +func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) ApplicationProfile() ApplicationProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *ApplicationProfileResponse { + if v == nil { + return nil + } + return v.ApplicationProfile + }).(ApplicationProfileResponsePtrOutput) +} + +// Specifies the billing related details of a Azure Spot VMSS. Minimum api-version: 2019-03-01. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) BillingProfile() BillingProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *BillingProfileResponse { if v == nil { @@ -34314,7 +44069,17 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) BillingProfile() Billi }).(BillingProfileResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the capacity reservation related details of a scale set. Minimum api-version: 2021-04-01. +func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) CapacityReservation() CapacityReservationProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *CapacityReservationProfileResponse { + if v == nil { + return nil + } + return v.CapacityReservation + }).(CapacityReservationProfileResponsePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *DiagnosticsProfileResponse { if v == nil { @@ -34324,7 +44089,7 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) DiagnosticsProfile() D }).(DiagnosticsProfileResponsePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *string { if v == nil { @@ -34344,6 +44109,16 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) ExtensionProfile() Vir }).(VirtualMachineScaleSetExtensionProfileResponsePtrOutput) } +// Specifies the hardware profile related details of a scale set. Minimum api-version: 2021-11-01. +func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) HardwareProfile() VirtualMachineScaleSetHardwareProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *VirtualMachineScaleSetHardwareProfileResponse { + if v == nil { + return nil + } + return v.HardwareProfile + }).(VirtualMachineScaleSetHardwareProfileResponsePtrOutput) +} + // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) LicenseType() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *string { @@ -34374,7 +44149,7 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) OsProfile() VirtualMac }).(VirtualMachineScaleSetOSProfileResponsePtrOutput) } -// Specifies the priority for the virtual machines in the scale set.

    Minimum api-version: 2017-10-30-preview +// Specifies the priority for the virtual machines in the scale set. Minimum api-version: 2017-10-30-preview. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *string { if v == nil { @@ -34394,6 +44169,16 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) ScheduledEventsProfile }).(ScheduledEventsProfileResponsePtrOutput) } +// Specifies the security posture to be used for all virtual machines in the scale set. Minimum api-version: 2023-03-01 +func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) SecurityPostureReference() SecurityPostureReferenceResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *SecurityPostureReferenceResponse { + if v == nil { + return nil + } + return v.SecurityPostureReference + }).(SecurityPostureReferenceResponsePtrOutput) +} + // Specifies the Security related profile settings for the virtual machines in the scale set. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) SecurityProfile() SecurityProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *SecurityProfileResponse { @@ -34404,6 +44189,16 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) SecurityProfile() Secu }).(SecurityProfileResponsePtrOutput) } +// Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. Minimum api-version: 2022-11-01 +func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) ServiceArtifactReference() ServiceArtifactReferenceResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *ServiceArtifactReferenceResponse { + if v == nil { + return nil + } + return v.ServiceArtifactReference + }).(ServiceArtifactReferenceResponsePtrOutput) +} + // Specifies the storage settings for the virtual machine disks. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) StorageProfile() VirtualMachineScaleSetStorageProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *VirtualMachineScaleSetStorageProfileResponse { @@ -34414,7 +44209,7 @@ func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) StorageProfile() Virtu }).(VirtualMachineScaleSetStorageProfileResponsePtrOutput) } -// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the virtual machines in the scale set, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o VirtualMachineScaleSetVMProfileResponsePtrOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMProfileResponse) *string { if v == nil { @@ -34862,9 +44657,9 @@ func (o WinRMConfigurationResponsePtrOutput) Listeners() WinRMListenerResponseAr // Describes Protocol and thumbprint of Windows Remote Management listener type WinRMListener struct { - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl *string `pulumi:"certificateUrl"` - // Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** + // Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** Protocol *ProtocolTypes `pulumi:"protocol"` } @@ -34881,9 +44676,9 @@ type WinRMListenerInput interface { // Describes Protocol and thumbprint of Windows Remote Management listener type WinRMListenerArgs struct { - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl pulumi.StringPtrInput `pulumi:"certificateUrl"` - // Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** + // Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** Protocol ProtocolTypesPtrInput `pulumi:"protocol"` } @@ -34939,12 +44734,12 @@ func (o WinRMListenerOutput) ToWinRMListenerOutputWithContext(ctx context.Contex return o } -// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). +// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o WinRMListenerOutput) CertificateUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v WinRMListener) *string { return v.CertificateUrl }).(pulumi.StringPtrOutput) } -// Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** +// Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** func (o WinRMListenerOutput) Protocol() ProtocolTypesPtrOutput { return o.ApplyT(func(v WinRMListener) *ProtocolTypes { return v.Protocol }).(ProtocolTypesPtrOutput) } @@ -34971,9 +44766,9 @@ func (o WinRMListenerArrayOutput) Index(i pulumi.IntInput) WinRMListenerOutput { // Describes Protocol and thumbprint of Windows Remote Management listener type WinRMListenerResponse struct { - // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). + // This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). CertificateUrl *string `pulumi:"certificateUrl"` - // Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** + // Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** Protocol *string `pulumi:"protocol"` } @@ -34992,12 +44787,12 @@ func (o WinRMListenerResponseOutput) ToWinRMListenerResponseOutputWithContext(ct return o } -// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). +// This is the URL of a certificate that has been uploaded to Key Vault as a secret. For adding a secret to the Key Vault, see [Add a key or secret to the key vault](https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add). In this case, your certificate needs to be the Base64 encoding of the following JSON Object which is encoded in UTF-8:

    {
    "data":"",
    "dataType":"pfx",
    "password":""
    }
    To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows). func (o WinRMListenerResponseOutput) CertificateUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v WinRMListenerResponse) *string { return v.CertificateUrl }).(pulumi.StringPtrOutput) } -// Specifies the protocol of WinRM listener.

    Possible values are:
    **http**

    **https** +// Specifies the protocol of WinRM listener. Possible values are: **http,** **https.** func (o WinRMListenerResponseOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v WinRMListenerResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) } @@ -35026,13 +44821,15 @@ func (o WinRMListenerResponseArrayOutput) Index(i pulumi.IntInput) WinRMListener type WindowsConfiguration struct { // Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. AdditionalUnattendContent []AdditionalUnattendContent `pulumi:"additionalUnattendContent"` - // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. + // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. EnableAutomaticUpdates *bool `pulumi:"enableAutomaticUpdates"` + // Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. + EnableVMAgentPlatformUpdates *bool `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. PatchSettings *PatchSettings `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent *bool `pulumi:"provisionVMAgent"` - // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). + // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). TimeZone *string `pulumi:"timeZone"` // Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell. WinRM *WinRMConfiguration `pulumi:"winRM"` @@ -35053,13 +44850,15 @@ type WindowsConfigurationInput interface { type WindowsConfigurationArgs struct { // Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. AdditionalUnattendContent AdditionalUnattendContentArrayInput `pulumi:"additionalUnattendContent"` - // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. + // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. EnableAutomaticUpdates pulumi.BoolPtrInput `pulumi:"enableAutomaticUpdates"` + // Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. + EnableVMAgentPlatformUpdates pulumi.BoolPtrInput `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. PatchSettings PatchSettingsPtrInput `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent pulumi.BoolPtrInput `pulumi:"provisionVMAgent"` - // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). + // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). TimeZone pulumi.StringPtrInput `pulumi:"timeZone"` // Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell. WinRM WinRMConfigurationPtrInput `pulumi:"winRM"` @@ -35148,22 +44947,27 @@ func (o WindowsConfigurationOutput) AdditionalUnattendContent() AdditionalUnatte return o.ApplyT(func(v WindowsConfiguration) []AdditionalUnattendContent { return v.AdditionalUnattendContent }).(AdditionalUnattendContentArrayOutput) } -// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. +// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. func (o WindowsConfigurationOutput) EnableAutomaticUpdates() pulumi.BoolPtrOutput { return o.ApplyT(func(v WindowsConfiguration) *bool { return v.EnableAutomaticUpdates }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. +func (o WindowsConfigurationOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v WindowsConfiguration) *bool { return v.EnableVMAgentPlatformUpdates }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. func (o WindowsConfigurationOutput) PatchSettings() PatchSettingsPtrOutput { return o.ApplyT(func(v WindowsConfiguration) *PatchSettings { return v.PatchSettings }).(PatchSettingsPtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o WindowsConfigurationOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v WindowsConfiguration) *bool { return v.ProvisionVMAgent }).(pulumi.BoolPtrOutput) } -// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). +// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). func (o WindowsConfigurationOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v WindowsConfiguration) *string { return v.TimeZone }).(pulumi.StringPtrOutput) } @@ -35207,7 +45011,7 @@ func (o WindowsConfigurationPtrOutput) AdditionalUnattendContent() AdditionalUna }).(AdditionalUnattendContentArrayOutput) } -// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. +// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. func (o WindowsConfigurationPtrOutput) EnableAutomaticUpdates() pulumi.BoolPtrOutput { return o.ApplyT(func(v *WindowsConfiguration) *bool { if v == nil { @@ -35217,6 +45021,16 @@ func (o WindowsConfigurationPtrOutput) EnableAutomaticUpdates() pulumi.BoolPtrOu }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. +func (o WindowsConfigurationPtrOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *WindowsConfiguration) *bool { + if v == nil { + return nil + } + return v.EnableVMAgentPlatformUpdates + }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. func (o WindowsConfigurationPtrOutput) PatchSettings() PatchSettingsPtrOutput { return o.ApplyT(func(v *WindowsConfiguration) *PatchSettings { @@ -35227,7 +45041,7 @@ func (o WindowsConfigurationPtrOutput) PatchSettings() PatchSettingsPtrOutput { }).(PatchSettingsPtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o WindowsConfigurationPtrOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v *WindowsConfiguration) *bool { if v == nil { @@ -35237,7 +45051,7 @@ func (o WindowsConfigurationPtrOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). +// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). func (o WindowsConfigurationPtrOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v *WindowsConfiguration) *string { if v == nil { @@ -35261,13 +45075,15 @@ func (o WindowsConfigurationPtrOutput) WinRM() WinRMConfigurationPtrOutput { type WindowsConfigurationResponse struct { // Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. AdditionalUnattendContent []AdditionalUnattendContentResponse `pulumi:"additionalUnattendContent"` - // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. + // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. EnableAutomaticUpdates *bool `pulumi:"enableAutomaticUpdates"` + // Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. + EnableVMAgentPlatformUpdates *bool `pulumi:"enableVMAgentPlatformUpdates"` // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. PatchSettings *PatchSettingsResponse `pulumi:"patchSettings"` - // Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. + // Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. ProvisionVMAgent *bool `pulumi:"provisionVMAgent"` - // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). + // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). TimeZone *string `pulumi:"timeZone"` // Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell. WinRM *WinRMConfigurationResponse `pulumi:"winRM"` @@ -35295,22 +45111,27 @@ func (o WindowsConfigurationResponseOutput) AdditionalUnattendContent() Addition }).(AdditionalUnattendContentResponseArrayOutput) } -// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. +// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. func (o WindowsConfigurationResponseOutput) EnableAutomaticUpdates() pulumi.BoolPtrOutput { return o.ApplyT(func(v WindowsConfigurationResponse) *bool { return v.EnableAutomaticUpdates }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. +func (o WindowsConfigurationResponseOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v WindowsConfigurationResponse) *bool { return v.EnableVMAgentPlatformUpdates }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. func (o WindowsConfigurationResponseOutput) PatchSettings() PatchSettingsResponsePtrOutput { return o.ApplyT(func(v WindowsConfigurationResponse) *PatchSettingsResponse { return v.PatchSettings }).(PatchSettingsResponsePtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o WindowsConfigurationResponseOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v WindowsConfigurationResponse) *bool { return v.ProvisionVMAgent }).(pulumi.BoolPtrOutput) } -// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). +// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). func (o WindowsConfigurationResponseOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v WindowsConfigurationResponse) *string { return v.TimeZone }).(pulumi.StringPtrOutput) } @@ -35354,7 +45175,7 @@ func (o WindowsConfigurationResponsePtrOutput) AdditionalUnattendContent() Addit }).(AdditionalUnattendContentResponseArrayOutput) } -// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true.

    For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. +// Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. func (o WindowsConfigurationResponsePtrOutput) EnableAutomaticUpdates() pulumi.BoolPtrOutput { return o.ApplyT(func(v *WindowsConfigurationResponse) *bool { if v == nil { @@ -35364,6 +45185,16 @@ func (o WindowsConfigurationResponsePtrOutput) EnableAutomaticUpdates() pulumi.B }).(pulumi.BoolPtrOutput) } +// Indicates whether VMAgent Platform Updates is enabled for the Windows virtual machine. Default value is false. +func (o WindowsConfigurationResponsePtrOutput) EnableVMAgentPlatformUpdates() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *WindowsConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.EnableVMAgentPlatformUpdates + }).(pulumi.BoolPtrOutput) +} + // [Preview Feature] Specifies settings related to VM Guest Patching on Windows. func (o WindowsConfigurationResponsePtrOutput) PatchSettings() PatchSettingsResponsePtrOutput { return o.ApplyT(func(v *WindowsConfigurationResponse) *PatchSettingsResponse { @@ -35374,7 +45205,7 @@ func (o WindowsConfigurationResponsePtrOutput) PatchSettings() PatchSettingsResp }).(PatchSettingsResponsePtrOutput) } -// Indicates whether virtual machine agent should be provisioned on the virtual machine.

    When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. +// Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later. func (o WindowsConfigurationResponsePtrOutput) ProvisionVMAgent() pulumi.BoolPtrOutput { return o.ApplyT(func(v *WindowsConfigurationResponse) *bool { if v == nil { @@ -35384,7 +45215,7 @@ func (o WindowsConfigurationResponsePtrOutput) ProvisionVMAgent() pulumi.BoolPtr }).(pulumi.BoolPtrOutput) } -// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time".

    Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). +// Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones). func (o WindowsConfigurationResponsePtrOutput) TimeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v *WindowsConfigurationResponse) *string { if v == nil { @@ -35404,6 +45235,246 @@ func (o WindowsConfigurationResponsePtrOutput) WinRM() WinRMConfigurationRespons }).(WinRMConfigurationResponsePtrOutput) } +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Windows patch settings. +type WindowsVMGuestPatchAutomaticByPlatformSettings struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule *bool `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting *string `pulumi:"rebootSetting"` +} + +// WindowsVMGuestPatchAutomaticByPlatformSettingsInput is an input type that accepts WindowsVMGuestPatchAutomaticByPlatformSettingsArgs and WindowsVMGuestPatchAutomaticByPlatformSettingsOutput values. +// You can construct a concrete instance of `WindowsVMGuestPatchAutomaticByPlatformSettingsInput` via: +// +// WindowsVMGuestPatchAutomaticByPlatformSettingsArgs{...} +type WindowsVMGuestPatchAutomaticByPlatformSettingsInput interface { + pulumi.Input + + ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsOutput + ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsOutput +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Windows patch settings. +type WindowsVMGuestPatchAutomaticByPlatformSettingsArgs struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule pulumi.BoolPtrInput `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting pulumi.StringPtrInput `pulumi:"rebootSetting"` +} + +func (WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*WindowsVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (i WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsOutput { + return i.ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(context.Background()) +} + +func (i WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) +} + +func (i WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return i.ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (i WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WindowsVMGuestPatchAutomaticByPlatformSettingsOutput).ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx) +} + +// WindowsVMGuestPatchAutomaticByPlatformSettingsPtrInput is an input type that accepts WindowsVMGuestPatchAutomaticByPlatformSettingsArgs, WindowsVMGuestPatchAutomaticByPlatformSettingsPtr and WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput values. +// You can construct a concrete instance of `WindowsVMGuestPatchAutomaticByPlatformSettingsPtrInput` via: +// +// WindowsVMGuestPatchAutomaticByPlatformSettingsArgs{...} +// +// or: +// +// nil +type WindowsVMGuestPatchAutomaticByPlatformSettingsPtrInput interface { + pulumi.Input + + ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput + ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput +} + +type windowsVMGuestPatchAutomaticByPlatformSettingsPtrType WindowsVMGuestPatchAutomaticByPlatformSettingsArgs + +func WindowsVMGuestPatchAutomaticByPlatformSettingsPtr(v *WindowsVMGuestPatchAutomaticByPlatformSettingsArgs) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrInput { + return (*windowsVMGuestPatchAutomaticByPlatformSettingsPtrType)(v) +} + +func (*windowsVMGuestPatchAutomaticByPlatformSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**WindowsVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (i *windowsVMGuestPatchAutomaticByPlatformSettingsPtrType) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return i.ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (i *windowsVMGuestPatchAutomaticByPlatformSettingsPtrType) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Windows patch settings. +type WindowsVMGuestPatchAutomaticByPlatformSettingsOutput struct{ *pulumi.OutputState } + +func (WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WindowsVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(context.Background()) +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v WindowsVMGuestPatchAutomaticByPlatformSettings) *WindowsVMGuestPatchAutomaticByPlatformSettings { + return &v + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v WindowsVMGuestPatchAutomaticByPlatformSettings) *bool { + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v WindowsVMGuestPatchAutomaticByPlatformSettings) *string { return v.RebootSetting }).(pulumi.StringPtrOutput) +} + +type WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput struct{ *pulumi.OutputState } + +func (WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WindowsVMGuestPatchAutomaticByPlatformSettings)(nil)).Elem() +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) Elem() WindowsVMGuestPatchAutomaticByPlatformSettingsOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettings) WindowsVMGuestPatchAutomaticByPlatformSettings { + if v != nil { + return *v + } + var ret WindowsVMGuestPatchAutomaticByPlatformSettings + return ret + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettings) *bool { + if v == nil { + return nil + } + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettings) *string { + if v == nil { + return nil + } + return v.RebootSetting + }).(pulumi.StringPtrOutput) +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Windows patch settings. +type WindowsVMGuestPatchAutomaticByPlatformSettingsResponse struct { + // Enables customer to schedule patching without accidental upgrades + BypassPlatformSafetyChecksOnUserSchedule *bool `pulumi:"bypassPlatformSafetyChecksOnUserSchedule"` + // Specifies the reboot setting for all AutomaticByPlatform patch installation operations. + RebootSetting *string `pulumi:"rebootSetting"` +} + +// Specifies additional settings to be applied when patch mode AutomaticByPlatform is selected in Windows patch settings. +type WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput struct{ *pulumi.OutputState } + +func (WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WindowsVMGuestPatchAutomaticByPlatformSettingsResponse)(nil)).Elem() +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o +} + +// Enables customer to schedule patching without accidental upgrades +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v WindowsVMGuestPatchAutomaticByPlatformSettingsResponse) *bool { + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v WindowsVMGuestPatchAutomaticByPlatformSettingsResponse) *string { return v.RebootSetting }).(pulumi.StringPtrOutput) +} + +type WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput struct{ *pulumi.OutputState } + +func (WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WindowsVMGuestPatchAutomaticByPlatformSettingsResponse)(nil)).Elem() +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput() WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) ToWindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutputWithContext(ctx context.Context) WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput { + return o +} + +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) Elem() WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse) WindowsVMGuestPatchAutomaticByPlatformSettingsResponse { + if v != nil { + return *v + } + var ret WindowsVMGuestPatchAutomaticByPlatformSettingsResponse + return ret + }).(WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput) +} + +// Enables customer to schedule patching without accidental upgrades +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) BypassPlatformSafetyChecksOnUserSchedule() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse) *bool { + if v == nil { + return nil + } + return v.BypassPlatformSafetyChecksOnUserSchedule + }).(pulumi.BoolPtrOutput) +} + +// Specifies the reboot setting for all AutomaticByPlatform patch installation operations. +func (o WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput) RebootSetting() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WindowsVMGuestPatchAutomaticByPlatformSettingsResponse) *string { + if v == nil { + return nil + } + return v.RebootSetting + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterOutputType(AdditionalCapabilitiesOutput{}) pulumi.RegisterOutputType(AdditionalCapabilitiesPtrOutput{}) @@ -35423,6 +45494,10 @@ func init() { pulumi.RegisterOutputType(ApiErrorBaseResponseArrayOutput{}) pulumi.RegisterOutputType(ApiErrorResponseOutput{}) pulumi.RegisterOutputType(ApiErrorResponsePtrOutput{}) + pulumi.RegisterOutputType(ApplicationProfileOutput{}) + pulumi.RegisterOutputType(ApplicationProfilePtrOutput{}) + pulumi.RegisterOutputType(ApplicationProfileResponseOutput{}) + pulumi.RegisterOutputType(ApplicationProfileResponsePtrOutput{}) pulumi.RegisterOutputType(AutomaticOSUpgradePolicyOutput{}) pulumi.RegisterOutputType(AutomaticOSUpgradePolicyPtrOutput{}) pulumi.RegisterOutputType(AutomaticOSUpgradePolicyResponseOutput{}) @@ -35447,6 +45522,10 @@ func init() { pulumi.RegisterOutputType(CapacityReservationInstanceViewResponseOutput{}) pulumi.RegisterOutputType(CapacityReservationInstanceViewWithNameResponseOutput{}) pulumi.RegisterOutputType(CapacityReservationInstanceViewWithNameResponseArrayOutput{}) + pulumi.RegisterOutputType(CapacityReservationProfileOutput{}) + pulumi.RegisterOutputType(CapacityReservationProfilePtrOutput{}) + pulumi.RegisterOutputType(CapacityReservationProfileResponseOutput{}) + pulumi.RegisterOutputType(CapacityReservationProfileResponsePtrOutput{}) pulumi.RegisterOutputType(CapacityReservationUtilizationResponseOutput{}) pulumi.RegisterOutputType(CapacityReservationUtilizationResponsePtrOutput{}) pulumi.RegisterOutputType(CloudServiceExtensionProfileOutput{}) @@ -35492,6 +45571,14 @@ func init() { pulumi.RegisterOutputType(CloudServiceVaultSecretGroupArrayOutput{}) pulumi.RegisterOutputType(CloudServiceVaultSecretGroupResponseOutput{}) pulumi.RegisterOutputType(CloudServiceVaultSecretGroupResponseArrayOutput{}) + pulumi.RegisterOutputType(CommunityGalleryInfoOutput{}) + pulumi.RegisterOutputType(CommunityGalleryInfoPtrOutput{}) + pulumi.RegisterOutputType(CommunityGalleryInfoResponseOutput{}) + pulumi.RegisterOutputType(CommunityGalleryInfoResponsePtrOutput{}) + pulumi.RegisterOutputType(CopyCompletionErrorOutput{}) + pulumi.RegisterOutputType(CopyCompletionErrorPtrOutput{}) + pulumi.RegisterOutputType(CopyCompletionErrorResponseOutput{}) + pulumi.RegisterOutputType(CopyCompletionErrorResponsePtrOutput{}) pulumi.RegisterOutputType(CreationDataOutput{}) pulumi.RegisterOutputType(CreationDataResponseOutput{}) pulumi.RegisterOutputType(DataDiskOutput{}) @@ -35507,6 +45594,10 @@ func init() { pulumi.RegisterOutputType(DedicatedHostAvailableCapacityResponseOutput{}) pulumi.RegisterOutputType(DedicatedHostAvailableCapacityResponsePtrOutput{}) pulumi.RegisterOutputType(DedicatedHostGroupInstanceViewResponseOutput{}) + pulumi.RegisterOutputType(DedicatedHostGroupPropertiesAdditionalCapabilitiesOutput{}) + pulumi.RegisterOutputType(DedicatedHostGroupPropertiesAdditionalCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesOutput{}) + pulumi.RegisterOutputType(DedicatedHostGroupPropertiesResponseAdditionalCapabilitiesPtrOutput{}) pulumi.RegisterOutputType(DedicatedHostInstanceViewResponseOutput{}) pulumi.RegisterOutputType(DedicatedHostInstanceViewWithNameResponseOutput{}) pulumi.RegisterOutputType(DedicatedHostInstanceViewWithNameResponseArrayOutput{}) @@ -35533,6 +45624,14 @@ func init() { pulumi.RegisterOutputType(DiskEncryptionSettingsResponseArrayOutput{}) pulumi.RegisterOutputType(DiskInstanceViewResponseOutput{}) pulumi.RegisterOutputType(DiskInstanceViewResponseArrayOutput{}) + pulumi.RegisterOutputType(DiskRestorePointAttributesOutput{}) + pulumi.RegisterOutputType(DiskRestorePointAttributesPtrOutput{}) + pulumi.RegisterOutputType(DiskRestorePointAttributesResponseOutput{}) + pulumi.RegisterOutputType(DiskRestorePointAttributesResponsePtrOutput{}) + pulumi.RegisterOutputType(DiskRestorePointInstanceViewResponseOutput{}) + pulumi.RegisterOutputType(DiskRestorePointInstanceViewResponseArrayOutput{}) + pulumi.RegisterOutputType(DiskRestorePointReplicationStatusResponseOutput{}) + pulumi.RegisterOutputType(DiskRestorePointReplicationStatusResponsePtrOutput{}) pulumi.RegisterOutputType(DiskSecurityProfileOutput{}) pulumi.RegisterOutputType(DiskSecurityProfilePtrOutput{}) pulumi.RegisterOutputType(DiskSecurityProfileResponseOutput{}) @@ -35569,16 +45668,36 @@ func init() { pulumi.RegisterOutputType(ExtensionArrayOutput{}) pulumi.RegisterOutputType(ExtensionResponseOutput{}) pulumi.RegisterOutputType(ExtensionResponseArrayOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionArrayOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterArrayOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterResponseOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionParameterResponseArrayOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionResponseOutput{}) + pulumi.RegisterOutputType(GalleryApplicationCustomActionResponseArrayOutput{}) pulumi.RegisterOutputType(GalleryApplicationVersionPublishingProfileOutput{}) pulumi.RegisterOutputType(GalleryApplicationVersionPublishingProfileResponseOutput{}) - pulumi.RegisterOutputType(GalleryArtifactVersionSourceOutput{}) - pulumi.RegisterOutputType(GalleryArtifactVersionSourcePtrOutput{}) - pulumi.RegisterOutputType(GalleryArtifactVersionSourceResponseOutput{}) - pulumi.RegisterOutputType(GalleryArtifactVersionSourceResponsePtrOutput{}) + pulumi.RegisterOutputType(GalleryApplicationVersionSafetyProfileOutput{}) + pulumi.RegisterOutputType(GalleryApplicationVersionSafetyProfilePtrOutput{}) + pulumi.RegisterOutputType(GalleryApplicationVersionSafetyProfileResponseOutput{}) + pulumi.RegisterOutputType(GalleryApplicationVersionSafetyProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(GalleryArtifactVersionFullSourceOutput{}) + pulumi.RegisterOutputType(GalleryArtifactVersionFullSourcePtrOutput{}) + pulumi.RegisterOutputType(GalleryArtifactVersionFullSourceResponseOutput{}) + pulumi.RegisterOutputType(GalleryArtifactVersionFullSourceResponsePtrOutput{}) pulumi.RegisterOutputType(GalleryDataDiskImageOutput{}) pulumi.RegisterOutputType(GalleryDataDiskImageArrayOutput{}) pulumi.RegisterOutputType(GalleryDataDiskImageResponseOutput{}) pulumi.RegisterOutputType(GalleryDataDiskImageResponseArrayOutput{}) + pulumi.RegisterOutputType(GalleryDiskImageSourceOutput{}) + pulumi.RegisterOutputType(GalleryDiskImageSourcePtrOutput{}) + pulumi.RegisterOutputType(GalleryDiskImageSourceResponseOutput{}) + pulumi.RegisterOutputType(GalleryDiskImageSourceResponsePtrOutput{}) + pulumi.RegisterOutputType(GalleryExtendedLocationOutput{}) + pulumi.RegisterOutputType(GalleryExtendedLocationPtrOutput{}) + pulumi.RegisterOutputType(GalleryExtendedLocationResponseOutput{}) + pulumi.RegisterOutputType(GalleryExtendedLocationResponsePtrOutput{}) pulumi.RegisterOutputType(GalleryIdentifierResponseOutput{}) pulumi.RegisterOutputType(GalleryIdentifierResponsePtrOutput{}) pulumi.RegisterOutputType(GalleryImageFeatureOutput{}) @@ -35591,12 +45710,20 @@ func init() { pulumi.RegisterOutputType(GalleryImageVersionPublishingProfilePtrOutput{}) pulumi.RegisterOutputType(GalleryImageVersionPublishingProfileResponseOutput{}) pulumi.RegisterOutputType(GalleryImageVersionPublishingProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(GalleryImageVersionSafetyProfileOutput{}) + pulumi.RegisterOutputType(GalleryImageVersionSafetyProfilePtrOutput{}) + pulumi.RegisterOutputType(GalleryImageVersionSafetyProfileResponseOutput{}) + pulumi.RegisterOutputType(GalleryImageVersionSafetyProfileResponsePtrOutput{}) pulumi.RegisterOutputType(GalleryImageVersionStorageProfileOutput{}) pulumi.RegisterOutputType(GalleryImageVersionStorageProfileResponseOutput{}) pulumi.RegisterOutputType(GalleryOSDiskImageOutput{}) pulumi.RegisterOutputType(GalleryOSDiskImagePtrOutput{}) pulumi.RegisterOutputType(GalleryOSDiskImageResponseOutput{}) pulumi.RegisterOutputType(GalleryOSDiskImageResponsePtrOutput{}) + pulumi.RegisterOutputType(GalleryTargetExtendedLocationOutput{}) + pulumi.RegisterOutputType(GalleryTargetExtendedLocationArrayOutput{}) + pulumi.RegisterOutputType(GalleryTargetExtendedLocationResponseOutput{}) + pulumi.RegisterOutputType(GalleryTargetExtendedLocationResponseArrayOutput{}) pulumi.RegisterOutputType(HardwareProfileOutput{}) pulumi.RegisterOutputType(HardwareProfilePtrOutput{}) pulumi.RegisterOutputType(HardwareProfileResponseOutput{}) @@ -35664,18 +45791,22 @@ func init() { pulumi.RegisterOutputType(LinuxPatchSettingsPtrOutput{}) pulumi.RegisterOutputType(LinuxPatchSettingsResponseOutput{}) pulumi.RegisterOutputType(LinuxPatchSettingsResponsePtrOutput{}) + pulumi.RegisterOutputType(LinuxVMGuestPatchAutomaticByPlatformSettingsOutput{}) + pulumi.RegisterOutputType(LinuxVMGuestPatchAutomaticByPlatformSettingsPtrOutput{}) + pulumi.RegisterOutputType(LinuxVMGuestPatchAutomaticByPlatformSettingsResponseOutput{}) + pulumi.RegisterOutputType(LinuxVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationArrayOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationPropertiesOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationPropertiesResponseOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationResponseOutput{}) pulumi.RegisterOutputType(LoadBalancerConfigurationResponseArrayOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationArrayOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationPropertiesOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationPropertiesResponseOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationResponseOutput{}) - pulumi.RegisterOutputType(LoadBalancerFrontendIPConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationArrayOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationPropertiesOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationPropertiesResponseOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationResponseOutput{}) + pulumi.RegisterOutputType(LoadBalancerFrontendIpConfigurationResponseArrayOutput{}) pulumi.RegisterOutputType(LogAnalyticsOutputResponseOutput{}) pulumi.RegisterOutputType(MaintenanceRedeployStatusResponseOutput{}) pulumi.RegisterOutputType(MaintenanceRedeployStatusResponsePtrOutput{}) @@ -35697,8 +45828,16 @@ func init() { pulumi.RegisterOutputType(OSDiskImageEncryptionPtrOutput{}) pulumi.RegisterOutputType(OSDiskImageEncryptionResponseOutput{}) pulumi.RegisterOutputType(OSDiskImageEncryptionResponsePtrOutput{}) + pulumi.RegisterOutputType(OSDiskImageSecurityProfileOutput{}) + pulumi.RegisterOutputType(OSDiskImageSecurityProfilePtrOutput{}) + pulumi.RegisterOutputType(OSDiskImageSecurityProfileResponseOutput{}) + pulumi.RegisterOutputType(OSDiskImageSecurityProfileResponsePtrOutput{}) pulumi.RegisterOutputType(OSDiskResponseOutput{}) pulumi.RegisterOutputType(OSDiskResponsePtrOutput{}) + pulumi.RegisterOutputType(OSImageNotificationProfileOutput{}) + pulumi.RegisterOutputType(OSImageNotificationProfilePtrOutput{}) + pulumi.RegisterOutputType(OSImageNotificationProfileResponseOutput{}) + pulumi.RegisterOutputType(OSImageNotificationProfileResponsePtrOutput{}) pulumi.RegisterOutputType(OSProfileOutput{}) pulumi.RegisterOutputType(OSProfilePtrOutput{}) pulumi.RegisterOutputType(OSProfileResponseOutput{}) @@ -35711,12 +45850,22 @@ func init() { pulumi.RegisterOutputType(PlanPtrOutput{}) pulumi.RegisterOutputType(PlanResponseOutput{}) pulumi.RegisterOutputType(PlanResponsePtrOutput{}) + pulumi.RegisterOutputType(PolicyViolationResponseOutput{}) + pulumi.RegisterOutputType(PolicyViolationResponseArrayOutput{}) + pulumi.RegisterOutputType(PriorityMixPolicyOutput{}) + pulumi.RegisterOutputType(PriorityMixPolicyPtrOutput{}) + pulumi.RegisterOutputType(PriorityMixPolicyResponseOutput{}) + pulumi.RegisterOutputType(PriorityMixPolicyResponsePtrOutput{}) pulumi.RegisterOutputType(PrivateEndpointConnectionResponseOutput{}) pulumi.RegisterOutputType(PrivateEndpointConnectionResponseArrayOutput{}) pulumi.RegisterOutputType(PrivateEndpointResponseOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponseOutput{}) pulumi.RegisterOutputType(PropertyUpdatesInProgressResponseOutput{}) + pulumi.RegisterOutputType(ProximityPlacementGroupPropertiesIntentOutput{}) + pulumi.RegisterOutputType(ProximityPlacementGroupPropertiesIntentPtrOutput{}) + pulumi.RegisterOutputType(ProximityPlacementGroupPropertiesResponseIntentOutput{}) + pulumi.RegisterOutputType(ProximityPlacementGroupPropertiesResponseIntentPtrOutput{}) pulumi.RegisterOutputType(PublicIPAddressSkuOutput{}) pulumi.RegisterOutputType(PublicIPAddressSkuPtrOutput{}) pulumi.RegisterOutputType(PublicIPAddressSkuResponseOutput{}) @@ -35731,6 +45880,8 @@ func init() { pulumi.RegisterOutputType(RecommendedMachineConfigurationResponsePtrOutput{}) pulumi.RegisterOutputType(RegionalReplicationStatusResponseOutput{}) pulumi.RegisterOutputType(RegionalReplicationStatusResponseArrayOutput{}) + pulumi.RegisterOutputType(RegionalSharingStatusResponseOutput{}) + pulumi.RegisterOutputType(RegionalSharingStatusResponseArrayOutput{}) pulumi.RegisterOutputType(ReplicationStatusResponseOutput{}) pulumi.RegisterOutputType(ResourceRangeOutput{}) pulumi.RegisterOutputType(ResourceRangePtrOutput{}) @@ -35740,13 +45891,27 @@ func init() { pulumi.RegisterOutputType(RestorePointCollectionSourcePropertiesPtrOutput{}) pulumi.RegisterOutputType(RestorePointCollectionSourcePropertiesResponseOutput{}) pulumi.RegisterOutputType(RestorePointCollectionSourcePropertiesResponsePtrOutput{}) + pulumi.RegisterOutputType(RestorePointEncryptionOutput{}) + pulumi.RegisterOutputType(RestorePointEncryptionPtrOutput{}) + pulumi.RegisterOutputType(RestorePointEncryptionResponseOutput{}) + pulumi.RegisterOutputType(RestorePointEncryptionResponsePtrOutput{}) + pulumi.RegisterOutputType(RestorePointInstanceViewResponseOutput{}) pulumi.RegisterOutputType(RestorePointResponseOutput{}) pulumi.RegisterOutputType(RestorePointResponseArrayOutput{}) + pulumi.RegisterOutputType(RestorePointSourceMetadataOutput{}) + pulumi.RegisterOutputType(RestorePointSourceMetadataPtrOutput{}) pulumi.RegisterOutputType(RestorePointSourceMetadataResponseOutput{}) + pulumi.RegisterOutputType(RestorePointSourceMetadataResponsePtrOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMDataDiskOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMDataDiskArrayOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMDataDiskResponseOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMDataDiskResponseArrayOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMOSDiskOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMOSDiskPtrOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMOSDiskResponseOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMOSDiskResponsePtrOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMStorageProfileOutput{}) + pulumi.RegisterOutputType(RestorePointSourceVMStorageProfilePtrOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMStorageProfileResponseOutput{}) pulumi.RegisterOutputType(RestorePointSourceVMStorageProfileResponsePtrOutput{}) pulumi.RegisterOutputType(RollingUpgradePolicyOutput{}) @@ -35757,6 +45922,10 @@ func init() { pulumi.RegisterOutputType(RunCommandInputParameterArrayOutput{}) pulumi.RegisterOutputType(RunCommandInputParameterResponseOutput{}) pulumi.RegisterOutputType(RunCommandInputParameterResponseArrayOutput{}) + pulumi.RegisterOutputType(RunCommandManagedIdentityOutput{}) + pulumi.RegisterOutputType(RunCommandManagedIdentityPtrOutput{}) + pulumi.RegisterOutputType(RunCommandManagedIdentityResponseOutput{}) + pulumi.RegisterOutputType(RunCommandManagedIdentityResponsePtrOutput{}) pulumi.RegisterOutputType(ScaleInPolicyOutput{}) pulumi.RegisterOutputType(ScaleInPolicyPtrOutput{}) pulumi.RegisterOutputType(ScaleInPolicyResponseOutput{}) @@ -35765,10 +45934,18 @@ func init() { pulumi.RegisterOutputType(ScheduledEventsProfilePtrOutput{}) pulumi.RegisterOutputType(ScheduledEventsProfileResponseOutput{}) pulumi.RegisterOutputType(ScheduledEventsProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(SecurityPostureReferenceOutput{}) + pulumi.RegisterOutputType(SecurityPostureReferencePtrOutput{}) + pulumi.RegisterOutputType(SecurityPostureReferenceResponseOutput{}) + pulumi.RegisterOutputType(SecurityPostureReferenceResponsePtrOutput{}) pulumi.RegisterOutputType(SecurityProfileOutput{}) pulumi.RegisterOutputType(SecurityProfilePtrOutput{}) pulumi.RegisterOutputType(SecurityProfileResponseOutput{}) pulumi.RegisterOutputType(SecurityProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(ServiceArtifactReferenceOutput{}) + pulumi.RegisterOutputType(ServiceArtifactReferencePtrOutput{}) + pulumi.RegisterOutputType(ServiceArtifactReferenceResponseOutput{}) + pulumi.RegisterOutputType(ServiceArtifactReferenceResponsePtrOutput{}) pulumi.RegisterOutputType(ShareInfoElementResponseOutput{}) pulumi.RegisterOutputType(ShareInfoElementResponseArrayOutput{}) pulumi.RegisterOutputType(SharingProfileOutput{}) @@ -35777,6 +45954,7 @@ func init() { pulumi.RegisterOutputType(SharingProfileGroupResponseArrayOutput{}) pulumi.RegisterOutputType(SharingProfileResponseOutput{}) pulumi.RegisterOutputType(SharingProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(SharingStatusResponseOutput{}) pulumi.RegisterOutputType(SkuOutput{}) pulumi.RegisterOutputType(SkuPtrOutput{}) pulumi.RegisterOutputType(SkuResponseOutput{}) @@ -35785,10 +45963,18 @@ func init() { pulumi.RegisterOutputType(SnapshotSkuPtrOutput{}) pulumi.RegisterOutputType(SnapshotSkuResponseOutput{}) pulumi.RegisterOutputType(SnapshotSkuResponsePtrOutput{}) + pulumi.RegisterOutputType(SoftDeletePolicyOutput{}) + pulumi.RegisterOutputType(SoftDeletePolicyPtrOutput{}) + pulumi.RegisterOutputType(SoftDeletePolicyResponseOutput{}) + pulumi.RegisterOutputType(SoftDeletePolicyResponsePtrOutput{}) pulumi.RegisterOutputType(SourceVaultOutput{}) pulumi.RegisterOutputType(SourceVaultPtrOutput{}) pulumi.RegisterOutputType(SourceVaultResponseOutput{}) pulumi.RegisterOutputType(SourceVaultResponsePtrOutput{}) + pulumi.RegisterOutputType(SpotRestorePolicyOutput{}) + pulumi.RegisterOutputType(SpotRestorePolicyPtrOutput{}) + pulumi.RegisterOutputType(SpotRestorePolicyResponseOutput{}) + pulumi.RegisterOutputType(SpotRestorePolicyResponsePtrOutput{}) pulumi.RegisterOutputType(SshConfigurationOutput{}) pulumi.RegisterOutputType(SshConfigurationPtrOutput{}) pulumi.RegisterOutputType(SshConfigurationResponseOutput{}) @@ -35811,6 +45997,12 @@ func init() { pulumi.RegisterOutputType(SubResourceResponseArrayOutput{}) pulumi.RegisterOutputType(SubResourceWithColocationStatusResponseOutput{}) pulumi.RegisterOutputType(SubResourceWithColocationStatusResponseArrayOutput{}) + pulumi.RegisterOutputType(SupportedCapabilitiesOutput{}) + pulumi.RegisterOutputType(SupportedCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(SupportedCapabilitiesResponseOutput{}) + pulumi.RegisterOutputType(SupportedCapabilitiesResponsePtrOutput{}) + pulumi.RegisterOutputType(SystemDataResponseOutput{}) + pulumi.RegisterOutputType(SystemDataResponsePtrOutput{}) pulumi.RegisterOutputType(TargetRegionOutput{}) pulumi.RegisterOutputType(TargetRegionArrayOutput{}) pulumi.RegisterOutputType(TargetRegionResponseOutput{}) @@ -35831,8 +46023,26 @@ func init() { pulumi.RegisterOutputType(UserArtifactManagePtrOutput{}) pulumi.RegisterOutputType(UserArtifactManageResponseOutput{}) pulumi.RegisterOutputType(UserArtifactManageResponsePtrOutput{}) + pulumi.RegisterOutputType(UserArtifactSettingsOutput{}) + pulumi.RegisterOutputType(UserArtifactSettingsPtrOutput{}) + pulumi.RegisterOutputType(UserArtifactSettingsResponseOutput{}) + pulumi.RegisterOutputType(UserArtifactSettingsResponsePtrOutput{}) pulumi.RegisterOutputType(UserArtifactSourceOutput{}) pulumi.RegisterOutputType(UserArtifactSourceResponseOutput{}) + pulumi.RegisterOutputType(UserAssignedIdentitiesResponseUserAssignedIdentitiesOutput{}) + pulumi.RegisterOutputType(UserAssignedIdentitiesResponseUserAssignedIdentitiesMapOutput{}) + pulumi.RegisterOutputType(VMDiskSecurityProfileOutput{}) + pulumi.RegisterOutputType(VMDiskSecurityProfilePtrOutput{}) + pulumi.RegisterOutputType(VMDiskSecurityProfileResponseOutput{}) + pulumi.RegisterOutputType(VMDiskSecurityProfileResponsePtrOutput{}) + pulumi.RegisterOutputType(VMGalleryApplicationOutput{}) + pulumi.RegisterOutputType(VMGalleryApplicationArrayOutput{}) + pulumi.RegisterOutputType(VMGalleryApplicationResponseOutput{}) + pulumi.RegisterOutputType(VMGalleryApplicationResponseArrayOutput{}) + pulumi.RegisterOutputType(VMSizePropertiesOutput{}) + pulumi.RegisterOutputType(VMSizePropertiesPtrOutput{}) + pulumi.RegisterOutputType(VMSizePropertiesResponseOutput{}) + pulumi.RegisterOutputType(VMSizePropertiesResponsePtrOutput{}) pulumi.RegisterOutputType(VaultCertificateOutput{}) pulumi.RegisterOutputType(VaultCertificateArrayOutput{}) pulumi.RegisterOutputType(VaultCertificateResponseOutput{}) @@ -35847,6 +46057,8 @@ func init() { pulumi.RegisterOutputType(VirtualHardDiskResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualMachineAgentInstanceViewResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineAgentInstanceViewResponsePtrOutput{}) + pulumi.RegisterOutputType(VirtualMachineExtensionTypeOutput{}) + pulumi.RegisterOutputType(VirtualMachineExtensionTypeArrayOutput{}) pulumi.RegisterOutputType(VirtualMachineExtensionHandlerInstanceViewResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineExtensionHandlerInstanceViewResponseArrayOutput{}) pulumi.RegisterOutputType(VirtualMachineExtensionInstanceViewOutput{}) @@ -35861,8 +46073,6 @@ func init() { pulumi.RegisterOutputType(VirtualMachineIdentityPtrOutput{}) pulumi.RegisterOutputType(VirtualMachineIdentityResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineIdentityResponsePtrOutput{}) - pulumi.RegisterOutputType(VirtualMachineIdentityResponseUserAssignedIdentitiesOutput{}) - pulumi.RegisterOutputType(VirtualMachineIdentityResponseUserAssignedIdentitiesMapOutput{}) pulumi.RegisterOutputType(VirtualMachineInstanceViewResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineIpTagOutput{}) pulumi.RegisterOutputType(VirtualMachineIpTagArrayOutput{}) @@ -35907,6 +46117,10 @@ func init() { pulumi.RegisterOutputType(VirtualMachineScaleSetExtensionProfileResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetExtensionResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetExtensionResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualMachineScaleSetHardwareProfileOutput{}) + pulumi.RegisterOutputType(VirtualMachineScaleSetHardwareProfilePtrOutput{}) + pulumi.RegisterOutputType(VirtualMachineScaleSetHardwareProfileResponseOutput{}) + pulumi.RegisterOutputType(VirtualMachineScaleSetHardwareProfileResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIPConfigurationOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIPConfigurationArrayOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIPConfigurationResponseOutput{}) @@ -35915,8 +46129,6 @@ func init() { pulumi.RegisterOutputType(VirtualMachineScaleSetIdentityPtrOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIdentityResponseOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIdentityResponsePtrOutput{}) - pulumi.RegisterOutputType(VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesOutput{}) - pulumi.RegisterOutputType(VirtualMachineScaleSetIdentityResponseUserAssignedIdentitiesMapOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIpTagOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIpTagArrayOutput{}) pulumi.RegisterOutputType(VirtualMachineScaleSetIpTagResponseOutput{}) @@ -35982,4 +46194,8 @@ func init() { pulumi.RegisterOutputType(WindowsConfigurationPtrOutput{}) pulumi.RegisterOutputType(WindowsConfigurationResponseOutput{}) pulumi.RegisterOutputType(WindowsConfigurationResponsePtrOutput{}) + pulumi.RegisterOutputType(WindowsVMGuestPatchAutomaticByPlatformSettingsOutput{}) + pulumi.RegisterOutputType(WindowsVMGuestPatchAutomaticByPlatformSettingsPtrOutput{}) + pulumi.RegisterOutputType(WindowsVMGuestPatchAutomaticByPlatformSettingsResponseOutput{}) + pulumi.RegisterOutputType(WindowsVMGuestPatchAutomaticByPlatformSettingsResponsePtrOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePoint.go similarity index 68% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePoint.go index 5b5e2899..80203690 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePoint.go @@ -7,25 +7,30 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Restore Point details. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type RestorePoint struct { pulumi.CustomResourceState - // Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. - ConsistencyMode pulumi.StringOutput `pulumi:"consistencyMode"` + // ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. + ConsistencyMode pulumi.StringPtrOutput `pulumi:"consistencyMode"` // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. ExcludeDisks ApiEntityReferenceResponseArrayOutput `pulumi:"excludeDisks"` + // The restore point instance view. + InstanceView RestorePointInstanceViewResponseOutput `pulumi:"instanceView"` // Resource name Name pulumi.StringOutput `pulumi:"name"` // Gets the provisioning state of the restore point. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Gets the details of the VM captured at the time of the restore point creation. - SourceMetadata RestorePointSourceMetadataResponseOutput `pulumi:"sourceMetadata"` + SourceMetadata RestorePointSourceMetadataResponsePtrOutput `pulumi:"sourceMetadata"` + // Resource Id of the source restore point from which a copy needs to be created. + SourceRestorePoint ApiEntityReferenceResponsePtrOutput `pulumi:"sourceRestorePoint"` // Gets the creation time of the restore point. TimeCreated pulumi.StringPtrOutput `pulumi:"timeCreated"` // Resource type @@ -67,8 +72,15 @@ func NewRestorePoint(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:RestorePoint"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:RestorePoint"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:RestorePoint"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RestorePoint err := ctx.RegisterResource("azure-native:compute:RestorePoint", name, args, &resource, opts...) if err != nil { @@ -101,6 +113,8 @@ func (RestorePointState) ElementType() reflect.Type { } type restorePointArgs struct { + // ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. + ConsistencyMode *string `pulumi:"consistencyMode"` // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. ExcludeDisks []ApiEntityReference `pulumi:"excludeDisks"` // The name of the resource group. @@ -109,12 +123,18 @@ type restorePointArgs struct { RestorePointCollectionName string `pulumi:"restorePointCollectionName"` // The name of the restore point. RestorePointName *string `pulumi:"restorePointName"` + // Gets the details of the VM captured at the time of the restore point creation. + SourceMetadata *RestorePointSourceMetadata `pulumi:"sourceMetadata"` + // Resource Id of the source restore point from which a copy needs to be created. + SourceRestorePoint *ApiEntityReference `pulumi:"sourceRestorePoint"` // Gets the creation time of the restore point. TimeCreated *string `pulumi:"timeCreated"` } // The set of arguments for constructing a RestorePoint resource. type RestorePointArgs struct { + // ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. + ConsistencyMode pulumi.StringPtrInput // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. ExcludeDisks ApiEntityReferenceArrayInput // The name of the resource group. @@ -123,6 +143,10 @@ type RestorePointArgs struct { RestorePointCollectionName pulumi.StringInput // The name of the restore point. RestorePointName pulumi.StringPtrInput + // Gets the details of the VM captured at the time of the restore point creation. + SourceMetadata RestorePointSourceMetadataPtrInput + // Resource Id of the source restore point from which a copy needs to be created. + SourceRestorePoint ApiEntityReferencePtrInput // Gets the creation time of the restore point. TimeCreated pulumi.StringPtrInput } @@ -164,9 +188,9 @@ func (o RestorePointOutput) ToRestorePointOutputWithContext(ctx context.Context) return o } -// Gets the consistency mode for the restore point. Please refer to https://aka.ms/RestorePoints for more details. -func (o RestorePointOutput) ConsistencyMode() pulumi.StringOutput { - return o.ApplyT(func(v *RestorePoint) pulumi.StringOutput { return v.ConsistencyMode }).(pulumi.StringOutput) +// ConsistencyMode of the RestorePoint. Can be specified in the input while creating a restore point. For now, only CrashConsistent is accepted as a valid input. Please refer to https://aka.ms/RestorePoints for more details. +func (o RestorePointOutput) ConsistencyMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePoint) pulumi.StringPtrOutput { return v.ConsistencyMode }).(pulumi.StringPtrOutput) } // List of disk resource ids that the customer wishes to exclude from the restore point. If no disks are specified, all disks will be included. @@ -174,6 +198,11 @@ func (o RestorePointOutput) ExcludeDisks() ApiEntityReferenceResponseArrayOutput return o.ApplyT(func(v *RestorePoint) ApiEntityReferenceResponseArrayOutput { return v.ExcludeDisks }).(ApiEntityReferenceResponseArrayOutput) } +// The restore point instance view. +func (o RestorePointOutput) InstanceView() RestorePointInstanceViewResponseOutput { + return o.ApplyT(func(v *RestorePoint) RestorePointInstanceViewResponseOutput { return v.InstanceView }).(RestorePointInstanceViewResponseOutput) +} + // Resource name func (o RestorePointOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *RestorePoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) @@ -185,8 +214,13 @@ func (o RestorePointOutput) ProvisioningState() pulumi.StringOutput { } // Gets the details of the VM captured at the time of the restore point creation. -func (o RestorePointOutput) SourceMetadata() RestorePointSourceMetadataResponseOutput { - return o.ApplyT(func(v *RestorePoint) RestorePointSourceMetadataResponseOutput { return v.SourceMetadata }).(RestorePointSourceMetadataResponseOutput) +func (o RestorePointOutput) SourceMetadata() RestorePointSourceMetadataResponsePtrOutput { + return o.ApplyT(func(v *RestorePoint) RestorePointSourceMetadataResponsePtrOutput { return v.SourceMetadata }).(RestorePointSourceMetadataResponsePtrOutput) +} + +// Resource Id of the source restore point from which a copy needs to be created. +func (o RestorePointOutput) SourceRestorePoint() ApiEntityReferenceResponsePtrOutput { + return o.ApplyT(func(v *RestorePoint) ApiEntityReferenceResponsePtrOutput { return v.SourceRestorePoint }).(ApiEntityReferenceResponsePtrOutput) } // Gets the creation time of the restore point. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePointCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePointCollection.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePointCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePointCollection.go index 5aa33db5..9abf4205 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/restorePointCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/restorePointCollection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Create or update Restore Point collection parameters. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type RestorePointCollection struct { pulumi.CustomResourceState @@ -66,8 +67,15 @@ func NewRestorePointCollection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:RestorePointCollection"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:RestorePointCollection"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:RestorePointCollection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RestorePointCollection err := ctx.RegisterResource("azure-native:compute:RestorePointCollection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/snapshot.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/snapshot.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/snapshot.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/snapshot.go index 38551b22..a07219be 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/snapshot.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/snapshot.go @@ -7,17 +7,24 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Snapshot resource. -// API Version: 2020-12-01. +// Azure REST API version: 2022-07-02. Prior API version in Azure Native 1.x: 2020-12-01 type Snapshot struct { pulumi.CustomResourceState + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent pulumi.Float64PtrOutput `pulumi:"completionPercent"` + // Indicates the error details if the background copy of a resource created via the CopyStart operation fails. + CopyCompletionError CopyCompletionErrorResponsePtrOutput `pulumi:"copyCompletionError"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataResponseOutput `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode pulumi.StringPtrOutput `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId pulumi.StringPtrOutput `pulumi:"diskAccessId"` // The size of the disk in bytes. This field is read only. @@ -36,6 +43,8 @@ type Snapshot struct { HyperVGeneration pulumi.StringPtrOutput `pulumi:"hyperVGeneration"` // Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed. Incremental pulumi.BoolPtrOutput `pulumi:"incremental"` + // Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id. + IncrementalSnapshotFamilyId pulumi.StringOutput `pulumi:"incrementalSnapshotFamilyId"` // Resource location Location pulumi.StringOutput `pulumi:"location"` // Unused. Always Null. @@ -48,10 +57,16 @@ type Snapshot struct { OsType pulumi.StringPtrOutput `pulumi:"osType"` // The disk provisioning state. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Policy for controlling export on the disk. + PublicNetworkAccess pulumi.StringPtrOutput `pulumi:"publicNetworkAccess"` // Purchase plan information for the image from which the source disk for the snapshot was originally created. PurchasePlan PurchasePlanResponsePtrOutput `pulumi:"purchasePlan"` + // Contains the security related information for the resource. + SecurityProfile DiskSecurityProfileResponsePtrOutput `pulumi:"securityProfile"` // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot Sku SnapshotSkuResponsePtrOutput `pulumi:"sku"` + // List of supported capabilities for the image from which the source disk from the snapshot was originally created. + SupportedCapabilities SupportedCapabilitiesResponsePtrOutput `pulumi:"supportedCapabilities"` // Indicates the OS on a snapshot supports hibernation. SupportsHibernation pulumi.BoolPtrOutput `pulumi:"supportsHibernation"` // Resource tags @@ -129,8 +144,15 @@ func NewSnapshot(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20220702:Snapshot"), }, + { + Type: pulumi.String("azure-native:compute/v20230102:Snapshot"), + }, + { + Type: pulumi.String("azure-native:compute/v20230402:Snapshot"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Snapshot err := ctx.RegisterResource("azure-native:compute:Snapshot", name, args, &resource, opts...) if err != nil { @@ -163,8 +185,14 @@ func (SnapshotState) ElementType() reflect.Type { } type snapshotArgs struct { + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent *float64 `pulumi:"completionPercent"` + // Indicates the error details if the background copy of a resource created via the CopyStart operation fails. + CopyCompletionError *CopyCompletionError `pulumi:"copyCompletionError"` // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationData `pulumi:"creationData"` + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode *string `pulumi:"dataAccessAuthMode"` // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId *string `pulumi:"diskAccessId"` // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. @@ -185,14 +213,20 @@ type snapshotArgs struct { NetworkAccessPolicy *string `pulumi:"networkAccessPolicy"` // The Operating System type. OsType *OperatingSystemTypes `pulumi:"osType"` + // Policy for controlling export on the disk. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // Purchase plan information for the image from which the source disk for the snapshot was originally created. PurchasePlan *PurchasePlan `pulumi:"purchasePlan"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // Contains the security related information for the resource. + SecurityProfile *DiskSecurityProfile `pulumi:"securityProfile"` // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot Sku *SnapshotSku `pulumi:"sku"` - // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The max name length is 80 characters. + // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The max name length is 80 characters. SnapshotName *string `pulumi:"snapshotName"` + // List of supported capabilities for the image from which the source disk from the snapshot was originally created. + SupportedCapabilities *SupportedCapabilities `pulumi:"supportedCapabilities"` // Indicates the OS on a snapshot supports hibernation. SupportsHibernation *bool `pulumi:"supportsHibernation"` // Resource tags @@ -201,8 +235,14 @@ type snapshotArgs struct { // The set of arguments for constructing a Snapshot resource. type SnapshotArgs struct { + // Percentage complete for the background copy when a resource is created via the CopyStart operation. + CompletionPercent pulumi.Float64PtrInput + // Indicates the error details if the background copy of a resource created via the CopyStart operation fails. + CopyCompletionError CopyCompletionErrorPtrInput // Disk source information. CreationData information cannot be changed after the disk has been created. CreationData CreationDataInput + // Additional authentication requirements when exporting or uploading to a disk or snapshot. + DataAccessAuthMode pulumi.StringPtrInput // ARM id of the DiskAccess resource for using private endpoints on disks. DiskAccessId pulumi.StringPtrInput // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. @@ -223,14 +263,20 @@ type SnapshotArgs struct { NetworkAccessPolicy pulumi.StringPtrInput // The Operating System type. OsType OperatingSystemTypesPtrInput + // Policy for controlling export on the disk. + PublicNetworkAccess pulumi.StringPtrInput // Purchase plan information for the image from which the source disk for the snapshot was originally created. PurchasePlan PurchasePlanPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // Contains the security related information for the resource. + SecurityProfile DiskSecurityProfilePtrInput // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot Sku SnapshotSkuPtrInput - // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9 and _. The max name length is 80 characters. + // The name of the snapshot that is being created. The name can't be changed after the snapshot is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The max name length is 80 characters. SnapshotName pulumi.StringPtrInput + // List of supported capabilities for the image from which the source disk from the snapshot was originally created. + SupportedCapabilities SupportedCapabilitiesPtrInput // Indicates the OS on a snapshot supports hibernation. SupportsHibernation pulumi.BoolPtrInput // Resource tags @@ -274,11 +320,26 @@ func (o SnapshotOutput) ToSnapshotOutputWithContext(ctx context.Context) Snapsho return o } +// Percentage complete for the background copy when a resource is created via the CopyStart operation. +func (o SnapshotOutput) CompletionPercent() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *Snapshot) pulumi.Float64PtrOutput { return v.CompletionPercent }).(pulumi.Float64PtrOutput) +} + +// Indicates the error details if the background copy of a resource created via the CopyStart operation fails. +func (o SnapshotOutput) CopyCompletionError() CopyCompletionErrorResponsePtrOutput { + return o.ApplyT(func(v *Snapshot) CopyCompletionErrorResponsePtrOutput { return v.CopyCompletionError }).(CopyCompletionErrorResponsePtrOutput) +} + // Disk source information. CreationData information cannot be changed after the disk has been created. func (o SnapshotOutput) CreationData() CreationDataResponseOutput { return o.ApplyT(func(v *Snapshot) CreationDataResponseOutput { return v.CreationData }).(CreationDataResponseOutput) } +// Additional authentication requirements when exporting or uploading to a disk or snapshot. +func (o SnapshotOutput) DataAccessAuthMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Snapshot) pulumi.StringPtrOutput { return v.DataAccessAuthMode }).(pulumi.StringPtrOutput) +} + // ARM id of the DiskAccess resource for using private endpoints on disks. func (o SnapshotOutput) DiskAccessId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Snapshot) pulumi.StringPtrOutput { return v.DiskAccessId }).(pulumi.StringPtrOutput) @@ -324,6 +385,11 @@ func (o SnapshotOutput) Incremental() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Snapshot) pulumi.BoolPtrOutput { return v.Incremental }).(pulumi.BoolPtrOutput) } +// Incremental snapshots for a disk share an incremental snapshot family id. The Get Page Range Diff API can only be called on incremental snapshots with the same family id. +func (o SnapshotOutput) IncrementalSnapshotFamilyId() pulumi.StringOutput { + return o.ApplyT(func(v *Snapshot) pulumi.StringOutput { return v.IncrementalSnapshotFamilyId }).(pulumi.StringOutput) +} + // Resource location func (o SnapshotOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *Snapshot) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) @@ -354,16 +420,31 @@ func (o SnapshotOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *Snapshot) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Policy for controlling export on the disk. +func (o SnapshotOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Snapshot) pulumi.StringPtrOutput { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Purchase plan information for the image from which the source disk for the snapshot was originally created. func (o SnapshotOutput) PurchasePlan() PurchasePlanResponsePtrOutput { return o.ApplyT(func(v *Snapshot) PurchasePlanResponsePtrOutput { return v.PurchasePlan }).(PurchasePlanResponsePtrOutput) } +// Contains the security related information for the resource. +func (o SnapshotOutput) SecurityProfile() DiskSecurityProfileResponsePtrOutput { + return o.ApplyT(func(v *Snapshot) DiskSecurityProfileResponsePtrOutput { return v.SecurityProfile }).(DiskSecurityProfileResponsePtrOutput) +} + // The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot func (o SnapshotOutput) Sku() SnapshotSkuResponsePtrOutput { return o.ApplyT(func(v *Snapshot) SnapshotSkuResponsePtrOutput { return v.Sku }).(SnapshotSkuResponsePtrOutput) } +// List of supported capabilities for the image from which the source disk from the snapshot was originally created. +func (o SnapshotOutput) SupportedCapabilities() SupportedCapabilitiesResponsePtrOutput { + return o.ApplyT(func(v *Snapshot) SupportedCapabilitiesResponsePtrOutput { return v.SupportedCapabilities }).(SupportedCapabilitiesResponsePtrOutput) +} + // Indicates the OS on a snapshot supports hibernation. func (o SnapshotOutput) SupportsHibernation() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Snapshot) pulumi.BoolPtrOutput { return v.SupportsHibernation }).(pulumi.BoolPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/sshPublicKey.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/sshPublicKey.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/sshPublicKey.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/sshPublicKey.go index 352969e5..b307dda7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/sshPublicKey.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/sshPublicKey.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Specifies information about the SSH public key. -// API Version: 2020-12-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2020-12-01 type SshPublicKey struct { pulumi.CustomResourceState @@ -69,8 +70,15 @@ func NewSshPublicKey(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:SshPublicKey"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:SshPublicKey"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:SshPublicKey"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SshPublicKey err := ctx.RegisterResource("azure-native:compute:SshPublicKey", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachine.go similarity index 73% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachine.go index ce621b5f..c47a5e4c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachine.go @@ -7,34 +7,39 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachine struct { pulumi.CustomResourceState // Specifies additional capabilities enabled or disabled on the virtual machine. AdditionalCapabilities AdditionalCapabilitiesResponsePtrOutput `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. + // Specifies the gallery applications that should be made available to the VM/VMSS. + ApplicationProfile ApplicationProfileResponsePtrOutput `pulumi:"applicationProfile"` + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. AvailabilitySet SubResourceResponsePtrOutput `pulumi:"availabilitySet"` - // Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. + // Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. BillingProfile BillingProfileResponsePtrOutput `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. + CapacityReservation CapacityReservationProfileResponsePtrOutput `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile DiagnosticsProfileResponsePtrOutput `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy pulumi.StringPtrOutput `pulumi:"evictionPolicy"` // The extended location of the Virtual Machine. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget pulumi.StringPtrOutput `pulumi:"extensionsTimeBudget"` // Specifies the hardware settings for the virtual machine. HardwareProfile HardwareProfileResponsePtrOutput `pulumi:"hardwareProfile"` - // Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. + // Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. Host SubResourceResponsePtrOutput `pulumi:"host"` - // Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. + // Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. HostGroup SubResourceResponsePtrOutput `pulumi:"hostGroup"` // The identity of the virtual machine, if configured. Identity VirtualMachineIdentityResponsePtrOutput `pulumi:"identity"` @@ -52,13 +57,13 @@ type VirtualMachine struct { OsProfile OSProfileResponsePtrOutput `pulumi:"osProfile"` // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. Plan PlanResponsePtrOutput `pulumi:"plan"` - // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 + // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. PlatformFaultDomain pulumi.IntPtrOutput `pulumi:"platformFaultDomain"` - // Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 + // Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 Priority pulumi.StringPtrOutput `pulumi:"priority"` // The provisioning state, which only appears in the response. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourceResponsePtrOutput `pulumi:"proximityPlacementGroup"` // The virtual machine child extension resources. Resources VirtualMachineExtensionResponseArrayOutput `pulumi:"resources"` @@ -70,11 +75,13 @@ type VirtualMachine struct { StorageProfile StorageProfileResponsePtrOutput `pulumi:"storageProfile"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` + // Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01. + TimeCreated pulumi.StringOutput `pulumi:"timeCreated"` // Resource type Type pulumi.StringOutput `pulumi:"type"` - // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData pulumi.StringPtrOutput `pulumi:"userData"` - // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 + // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. VirtualMachineScaleSet SubResourceResponsePtrOutput `pulumi:"virtualMachineScaleSet"` // Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. VmId pulumi.StringOutput `pulumi:"vmId"` @@ -153,8 +160,15 @@ func NewVirtualMachine(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachine"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachine"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachine"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachine err := ctx.RegisterResource("azure-native:compute:VirtualMachine", name, args, &resource, opts...) if err != nil { @@ -189,23 +203,27 @@ func (VirtualMachineState) ElementType() reflect.Type { type virtualMachineArgs struct { // Specifies additional capabilities enabled or disabled on the virtual machine. AdditionalCapabilities *AdditionalCapabilities `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. + // Specifies the gallery applications that should be made available to the VM/VMSS. + ApplicationProfile *ApplicationProfile `pulumi:"applicationProfile"` + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. AvailabilitySet *SubResource `pulumi:"availabilitySet"` - // Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. + // Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. BillingProfile *BillingProfile `pulumi:"billingProfile"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. + CapacityReservation *CapacityReservationProfile `pulumi:"capacityReservation"` + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfile `pulumi:"diagnosticsProfile"` - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy *string `pulumi:"evictionPolicy"` // The extended location of the Virtual Machine. ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget *string `pulumi:"extensionsTimeBudget"` // Specifies the hardware settings for the virtual machine. HardwareProfile *HardwareProfile `pulumi:"hardwareProfile"` - // Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. + // Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. Host *SubResource `pulumi:"host"` - // Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. + // Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. HostGroup *SubResource `pulumi:"hostGroup"` // The identity of the virtual machine, if configured. Identity *VirtualMachineIdentity `pulumi:"identity"` @@ -219,11 +237,11 @@ type virtualMachineArgs struct { OsProfile *OSProfile `pulumi:"osProfile"` // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. Plan *Plan `pulumi:"plan"` - // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 + // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. PlatformFaultDomain *int `pulumi:"platformFaultDomain"` - // Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 + // Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 Priority *string `pulumi:"priority"` - // Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResource `pulumi:"proximityPlacementGroup"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -235,9 +253,9 @@ type virtualMachineArgs struct { StorageProfile *StorageProfile `pulumi:"storageProfile"` // Resource tags Tags map[string]string `pulumi:"tags"` - // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData *string `pulumi:"userData"` - // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 + // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. VirtualMachineScaleSet *SubResource `pulumi:"virtualMachineScaleSet"` // The name of the virtual machine. VmName *string `pulumi:"vmName"` @@ -249,23 +267,27 @@ type virtualMachineArgs struct { type VirtualMachineArgs struct { // Specifies additional capabilities enabled or disabled on the virtual machine. AdditionalCapabilities AdditionalCapabilitiesPtrInput - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. + // Specifies the gallery applications that should be made available to the VM/VMSS. + ApplicationProfile ApplicationProfilePtrInput + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. AvailabilitySet SubResourcePtrInput - // Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. + // Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. BillingProfile BillingProfilePtrInput - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. + CapacityReservation CapacityReservationProfilePtrInput + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile DiagnosticsProfilePtrInput - // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. + // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. EvictionPolicy pulumi.StringPtrInput // The extended location of the Virtual Machine. ExtendedLocation ExtendedLocationPtrInput - // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 + // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. ExtensionsTimeBudget pulumi.StringPtrInput // Specifies the hardware settings for the virtual machine. HardwareProfile HardwareProfilePtrInput - // Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. + // Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. Host SubResourcePtrInput - // Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. + // Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. HostGroup SubResourcePtrInput // The identity of the virtual machine, if configured. Identity VirtualMachineIdentityPtrInput @@ -279,11 +301,11 @@ type VirtualMachineArgs struct { OsProfile OSProfilePtrInput // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. Plan PlanPtrInput - // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 + // Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. PlatformFaultDomain pulumi.IntPtrInput - // Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 + // Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 Priority pulumi.StringPtrInput - // Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourcePtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput @@ -295,9 +317,9 @@ type VirtualMachineArgs struct { StorageProfile StorageProfilePtrInput // Resource tags Tags pulumi.StringMapInput - // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 + // UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. UserData pulumi.StringPtrInput - // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 + // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. VirtualMachineScaleSet SubResourcePtrInput // The name of the virtual machine. VmName pulumi.StringPtrInput @@ -347,22 +369,32 @@ func (o VirtualMachineOutput) AdditionalCapabilities() AdditionalCapabilitiesRes return o.ApplyT(func(v *VirtualMachine) AdditionalCapabilitiesResponsePtrOutput { return v.AdditionalCapabilities }).(AdditionalCapabilitiesResponsePtrOutput) } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set.

    This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. +// Specifies the gallery applications that should be made available to the VM/VMSS. +func (o VirtualMachineOutput) ApplicationProfile() ApplicationProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachine) ApplicationProfileResponsePtrOutput { return v.ApplicationProfile }).(ApplicationProfileResponsePtrOutput) +} + +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same resource group as the availability set resource. An existing VM cannot be added to an availability set. This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. func (o VirtualMachineOutput) AvailabilitySet() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) SubResourceResponsePtrOutput { return v.AvailabilitySet }).(SubResourceResponsePtrOutput) } -// Specifies the billing related details of a Azure Spot virtual machine.

    Minimum api-version: 2019-03-01. +// Specifies the billing related details of a Azure Spot virtual machine. Minimum api-version: 2019-03-01. func (o VirtualMachineOutput) BillingProfile() BillingProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) BillingProfileResponsePtrOutput { return v.BillingProfile }).(BillingProfileResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies information about the capacity reservation that is used to allocate virtual machine. Minimum api-version: 2021-04-01. +func (o VirtualMachineOutput) CapacityReservation() CapacityReservationProfileResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachine) CapacityReservationProfileResponsePtrOutput { return v.CapacityReservation }).(CapacityReservationProfileResponsePtrOutput) +} + +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) DiagnosticsProfileResponsePtrOutput { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) } -// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set.

    For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01.

    For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. +// Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. func (o VirtualMachineOutput) EvictionPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringPtrOutput { return v.EvictionPolicy }).(pulumi.StringPtrOutput) } @@ -372,7 +404,7 @@ func (o VirtualMachineOutput) ExtendedLocation() ExtendedLocationResponsePtrOutp return o.ApplyT(func(v *VirtualMachine) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M).

    Minimum api-version: 2020-06-01 +// Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum api-version: 2020-06-01. func (o VirtualMachineOutput) ExtensionsTimeBudget() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringPtrOutput { return v.ExtensionsTimeBudget }).(pulumi.StringPtrOutput) } @@ -382,12 +414,12 @@ func (o VirtualMachineOutput) HardwareProfile() HardwareProfileResponsePtrOutput return o.ApplyT(func(v *VirtualMachine) HardwareProfileResponsePtrOutput { return v.HardwareProfile }).(HardwareProfileResponsePtrOutput) } -// Specifies information about the dedicated host that the virtual machine resides in.

    Minimum api-version: 2018-10-01. +// Specifies information about the dedicated host that the virtual machine resides in. Minimum api-version: 2018-10-01. func (o VirtualMachineOutput) Host() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) SubResourceResponsePtrOutput { return v.Host }).(SubResourceResponsePtrOutput) } -// Specifies information about the dedicated host group that the virtual machine resides in.

    Minimum api-version: 2020-06-01.

    NOTE: User cannot specify both host and hostGroup properties. +// Specifies information about the dedicated host group that the virtual machine resides in. **Note:** User cannot specify both host and hostGroup properties. Minimum api-version: 2020-06-01. func (o VirtualMachineOutput) HostGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) SubResourceResponsePtrOutput { return v.HostGroup }).(SubResourceResponsePtrOutput) } @@ -432,12 +464,12 @@ func (o VirtualMachineOutput) Plan() PlanResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) PlanResponsePtrOutput { return v.Plan }).(PlanResponsePtrOutput) } -// Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains.
  • This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set.
  • The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' > 1.
  • This property cannot be updated once the Virtual Machine is created.
  • Fault domain assignment can be viewed in the Virtual Machine Instance View.

    Minimum api‐version: 2020‐12‐01 +// Specifies the scale set logical fault domain into which the Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned to a fault domain that best maintains balance across available fault domains. This is applicable only if the 'virtualMachineScaleSet' property of this Virtual Machine is set. The Virtual Machine Scale Set that is referenced, must have 'platformFaultDomainCount' greater than 1. This property cannot be updated once the Virtual Machine is created. Fault domain assignment can be viewed in the Virtual Machine Instance View. Minimum api‐version: 2020‐12‐01. func (o VirtualMachineOutput) PlatformFaultDomain() pulumi.IntPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.IntPtrOutput { return v.PlatformFaultDomain }).(pulumi.IntPtrOutput) } -// Specifies the priority for the virtual machine.

    Minimum api-version: 2019-03-01 +// Specifies the priority for the virtual machine. Minimum api-version: 2019-03-01 func (o VirtualMachineOutput) Priority() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringPtrOutput { return v.Priority }).(pulumi.StringPtrOutput) } @@ -447,7 +479,7 @@ func (o VirtualMachineOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// Specifies information about the proximity placement group that the virtual machine should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the virtual machine should be assigned to. Minimum api-version: 2018-04-01. func (o VirtualMachineOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) SubResourceResponsePtrOutput { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } @@ -477,17 +509,22 @@ func (o VirtualMachineOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Virtual Machine resource was created. Minimum api-version: 2021-11-01. +func (o VirtualMachineOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMachine) pulumi.StringOutput { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o VirtualMachineOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } -// UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here.

    Minimum api-version: 2021-03-01 +// UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum api-version: 2021-03-01. func (o VirtualMachineOutput) UserData() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachine) pulumi.StringPtrOutput { return v.UserData }).(pulumi.StringPtrOutput) } -// Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set.

    This property cannot exist along with a non-null properties.availabilitySet reference.

    Minimum api‐version: 2019‐03‐01 +// Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual machine scale set are allocated to different nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a virtual machine scale set. This property cannot exist along with a non-null properties.availabilitySet reference. Minimum api‐version: 2019‐03‐01. func (o VirtualMachineOutput) VirtualMachineScaleSet() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachine) SubResourceResponsePtrOutput { return v.VirtualMachineScaleSet }).(SubResourceResponsePtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineExtension.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineExtension.go index 08fc1a21..38b392b3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineExtension.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine Extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineExtension struct { pulumi.CustomResourceState @@ -25,17 +26,23 @@ type VirtualMachineExtension struct { // The virtual machine extension instance view. InstanceView VirtualMachineExtensionInstanceViewResponsePtrOutput `pulumi:"instanceView"` // Resource location - Location pulumi.StringOutput `pulumi:"location"` + Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name Name pulumi.StringOutput `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.AnyOutput `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponsePtrOutput `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions pulumi.StringArrayOutput `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The name of the extension handler publisher. Publisher pulumi.StringPtrOutput `pulumi:"publisher"` // Json formatted public settings for the extension. Settings pulumi.AnyOutput `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrOutput `pulumi:"suppressFailures"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type @@ -118,8 +125,15 @@ func NewVirtualMachineExtension(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineExtension"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineExtension"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineExtension"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineExtension err := ctx.RegisterResource("azure-native:compute:VirtualMachineExtension", name, args, &resource, opts...) if err != nil { @@ -164,12 +178,18 @@ type virtualMachineExtensionArgs struct { Location *string `pulumi:"location"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReference `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Resource tags Tags map[string]string `pulumi:"tags"` // Specifies the type of the extension; an example is "CustomScriptExtension". @@ -196,12 +216,18 @@ type VirtualMachineExtensionArgs struct { Location pulumi.StringPtrInput // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.Input + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferencePtrInput + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions pulumi.StringArrayInput // The name of the extension handler publisher. Publisher pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Json formatted public settings for the extension. Settings pulumi.Input + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrInput // Resource tags Tags pulumi.StringMapInput // Specifies the type of the extension; an example is "CustomScriptExtension". @@ -274,8 +300,8 @@ func (o VirtualMachineExtensionOutput) InstanceView() VirtualMachineExtensionIns } // Resource location -func (o VirtualMachineExtensionOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v *VirtualMachineExtension) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +func (o VirtualMachineExtensionOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualMachineExtension) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) } // Resource name @@ -288,6 +314,18 @@ func (o VirtualMachineExtensionOutput) ProtectedSettings() pulumi.AnyOutput { return o.ApplyT(func(v *VirtualMachineExtension) pulumi.AnyOutput { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineExtensionOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineExtension) KeyVaultSecretReferenceResponsePtrOutput { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o VirtualMachineExtensionOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineExtension) pulumi.StringArrayOutput { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + // The provisioning state, which only appears in the response. func (o VirtualMachineExtensionOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineExtension) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) @@ -303,6 +341,11 @@ func (o VirtualMachineExtensionOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v *VirtualMachineExtension) pulumi.AnyOutput { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineExtensionOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineExtension) pulumi.BoolPtrOutput { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource tags func (o VirtualMachineExtensionOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *VirtualMachineExtension) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineRunCommandByVirtualMachine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineRunCommandByVirtualMachine.go similarity index 58% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineRunCommandByVirtualMachine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineRunCommandByVirtualMachine.go index 61055295..159a82e6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineRunCommandByVirtualMachine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineRunCommandByVirtualMachine.go @@ -7,18 +7,21 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine run command. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineRunCommandByVirtualMachine struct { pulumi.CustomResourceState // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution pulumi.BoolPtrOutput `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity RunCommandManagedIdentityResponsePtrOutput `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri pulumi.StringPtrOutput `pulumi:"errorBlobUri"` // The virtual machine run command instance view. InstanceView VirtualMachineRunCommandInstanceViewResponseOutput `pulumi:"instanceView"` @@ -26,13 +29,15 @@ type VirtualMachineRunCommandByVirtualMachine struct { Location pulumi.StringOutput `pulumi:"location"` // Resource name Name pulumi.StringOutput `pulumi:"name"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity RunCommandManagedIdentityResponsePtrOutput `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri pulumi.StringPtrOutput `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters RunCommandInputParameterResponseArrayOutput `pulumi:"parameters"` // The parameters used by the script. ProtectedParameters RunCommandInputParameterResponseArrayOutput `pulumi:"protectedParameters"` - // The provisioning state, which only appears in the response. + // The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Specifies the user account password on the VM when executing the run command. RunAsPassword pulumi.StringPtrOutput `pulumi:"runAsPassword"` @@ -44,6 +49,8 @@ type VirtualMachineRunCommandByVirtualMachine struct { Tags pulumi.StringMapOutput `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds pulumi.IntPtrOutput `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure pulumi.BoolPtrOutput `pulumi:"treatFailureAsDeploymentFailure"` // Resource type Type pulumi.StringOutput `pulumi:"type"` } @@ -61,9 +68,12 @@ func NewVirtualMachineRunCommandByVirtualMachine(ctx *pulumi.Context, if args.VmName == nil { return nil, errors.New("invalid value for required argument 'VmName'") } - if isZero(args.AsyncExecution) { + if args.AsyncExecution == nil { args.AsyncExecution = pulumi.BoolPtr(false) } + if args.TreatFailureAsDeploymentFailure == nil { + args.TreatFailureAsDeploymentFailure = pulumi.BoolPtr(false) + } aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:compute/v20200601:VirtualMachineRunCommandByVirtualMachine"), @@ -92,8 +102,15 @@ func NewVirtualMachineRunCommandByVirtualMachine(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineRunCommandByVirtualMachine"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineRunCommandByVirtualMachine"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineRunCommandByVirtualMachine"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineRunCommandByVirtualMachine err := ctx.RegisterResource("azure-native:compute:VirtualMachineRunCommandByVirtualMachine", name, args, &resource, opts...) if err != nil { @@ -128,11 +145,15 @@ func (VirtualMachineRunCommandByVirtualMachineState) ElementType() reflect.Type type virtualMachineRunCommandByVirtualMachineArgs struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution *bool `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity *RunCommandManagedIdentity `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri *string `pulumi:"errorBlobUri"` // Resource location Location *string `pulumi:"location"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity *RunCommandManagedIdentity `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri *string `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters []RunCommandInputParameter `pulumi:"parameters"` @@ -152,6 +173,8 @@ type virtualMachineRunCommandByVirtualMachineArgs struct { Tags map[string]string `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds *int `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` // The name of the virtual machine where the run command should be created or updated. VmName string `pulumi:"vmName"` } @@ -160,11 +183,15 @@ type virtualMachineRunCommandByVirtualMachineArgs struct { type VirtualMachineRunCommandByVirtualMachineArgs struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution pulumi.BoolPtrInput - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity RunCommandManagedIdentityPtrInput + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri pulumi.StringPtrInput // Resource location Location pulumi.StringPtrInput - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity RunCommandManagedIdentityPtrInput + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri pulumi.StringPtrInput // The parameters used by the script. Parameters RunCommandInputParameterArrayInput @@ -184,6 +211,8 @@ type VirtualMachineRunCommandByVirtualMachineArgs struct { Tags pulumi.StringMapInput // The timeout in seconds to execute the run command. TimeoutInSeconds pulumi.IntPtrInput + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure pulumi.BoolPtrInput // The name of the virtual machine where the run command should be created or updated. VmName pulumi.StringInput } @@ -230,7 +259,14 @@ func (o VirtualMachineRunCommandByVirtualMachineOutput) AsyncExecution() pulumi. return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.BoolPtrOutput { return v.AsyncExecution }).(pulumi.BoolPtrOutput) } -// Specifies the Azure storage blob where script error stream will be uploaded. +// User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o VirtualMachineRunCommandByVirtualMachineOutput) ErrorBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) RunCommandManagedIdentityResponsePtrOutput { + return v.ErrorBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. func (o VirtualMachineRunCommandByVirtualMachineOutput) ErrorBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.StringPtrOutput { return v.ErrorBlobUri }).(pulumi.StringPtrOutput) } @@ -252,7 +288,14 @@ func (o VirtualMachineRunCommandByVirtualMachineOutput) Name() pulumi.StringOutp return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Specifies the Azure storage blob where script output stream will be uploaded. +// User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o VirtualMachineRunCommandByVirtualMachineOutput) OutputBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) RunCommandManagedIdentityResponsePtrOutput { + return v.OutputBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. func (o VirtualMachineRunCommandByVirtualMachineOutput) OutputBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.StringPtrOutput { return v.OutputBlobUri }).(pulumi.StringPtrOutput) } @@ -271,7 +314,7 @@ func (o VirtualMachineRunCommandByVirtualMachineOutput) ProtectedParameters() Ru }).(RunCommandInputParameterResponseArrayOutput) } -// The provisioning state, which only appears in the response. +// The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results func (o VirtualMachineRunCommandByVirtualMachineOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } @@ -303,6 +346,13 @@ func (o VirtualMachineRunCommandByVirtualMachineOutput) TimeoutInSeconds() pulum return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.IntPtrOutput { return v.TimeoutInSeconds }).(pulumi.IntPtrOutput) } +// Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results +func (o VirtualMachineRunCommandByVirtualMachineOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.BoolPtrOutput { + return v.TreatFailureAsDeploymentFailure + }).(pulumi.BoolPtrOutput) +} + // Resource type func (o VirtualMachineRunCommandByVirtualMachineOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineRunCommandByVirtualMachine) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSet.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSet.go index 1fbe9ae8..efe635fc 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSet.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine Scale Set. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineScaleSet struct { pulumi.CustomResourceState @@ -20,11 +21,13 @@ type VirtualMachineScaleSet struct { AdditionalCapabilities AdditionalCapabilitiesResponsePtrOutput `pulumi:"additionalCapabilities"` // Policy for automatic repairs. AutomaticRepairsPolicy AutomaticRepairsPolicyResponsePtrOutput `pulumi:"automaticRepairsPolicy"` + // Optional property which must either be set to True or omitted. + ConstrainedMaximumCapacity pulumi.BoolPtrOutput `pulumi:"constrainedMaximumCapacity"` // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. DoNotRunExtensionsOnOverprovisionedVMs pulumi.BoolPtrOutput `pulumi:"doNotRunExtensionsOnOverprovisionedVMs"` // The extended location of the Virtual Machine Scale Set. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` - // Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. + // Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. HostGroup SubResourceResponsePtrOutput `pulumi:"hostGroup"` // The identity of the virtual machine scale set, if configured. Identity VirtualMachineScaleSetIdentityResponsePtrOutput `pulumi:"identity"` @@ -40,18 +43,24 @@ type VirtualMachineScaleSet struct { Plan PlanResponsePtrOutput `pulumi:"plan"` // Fault Domain count for each placement group. PlatformFaultDomainCount pulumi.IntPtrOutput `pulumi:"platformFaultDomainCount"` + // Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. + PriorityMixPolicy PriorityMixPolicyResponsePtrOutput `pulumi:"priorityMixPolicy"` // The provisioning state, which only appears in the response. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourceResponsePtrOutput `pulumi:"proximityPlacementGroup"` - // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. + // Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. ScaleInPolicy ScaleInPolicyResponsePtrOutput `pulumi:"scaleInPolicy"` // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. SinglePlacementGroup pulumi.BoolPtrOutput `pulumi:"singlePlacementGroup"` // The virtual machine scale set sku. Sku SkuResponsePtrOutput `pulumi:"sku"` + // Specifies the Spot Restore properties for the virtual machine scale set. + SpotRestorePolicy SpotRestorePolicyResponsePtrOutput `pulumi:"spotRestorePolicy"` // Resource tags Tags pulumi.StringMapOutput `pulumi:"tags"` + // Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01. + TimeCreated pulumi.StringOutput `pulumi:"timeCreated"` // Resource type Type pulumi.StringOutput `pulumi:"type"` // Specifies the ID which uniquely identifies a Virtual Machine Scale Set. @@ -60,7 +69,7 @@ type VirtualMachineScaleSet struct { UpgradePolicy UpgradePolicyResponsePtrOutput `pulumi:"upgradePolicy"` // The virtual machine profile. VirtualMachineProfile VirtualMachineScaleSetVMProfileResponsePtrOutput `pulumi:"virtualMachineProfile"` - // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. + // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. ZoneBalance pulumi.BoolPtrOutput `pulumi:"zoneBalance"` // The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set Zones pulumi.StringArrayOutput `pulumi:"zones"` @@ -137,8 +146,15 @@ func NewVirtualMachineScaleSet(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineScaleSet"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineScaleSet"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineScaleSet"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineScaleSet err := ctx.RegisterResource("azure-native:compute:VirtualMachineScaleSet", name, args, &resource, opts...) if err != nil { @@ -175,11 +191,13 @@ type virtualMachineScaleSetArgs struct { AdditionalCapabilities *AdditionalCapabilities `pulumi:"additionalCapabilities"` // Policy for automatic repairs. AutomaticRepairsPolicy *AutomaticRepairsPolicy `pulumi:"automaticRepairsPolicy"` + // Optional property which must either be set to True or omitted. + ConstrainedMaximumCapacity *bool `pulumi:"constrainedMaximumCapacity"` // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. DoNotRunExtensionsOnOverprovisionedVMs *bool `pulumi:"doNotRunExtensionsOnOverprovisionedVMs"` // The extended location of the Virtual Machine Scale Set. ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` - // Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. + // Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. HostGroup *SubResource `pulumi:"hostGroup"` // The identity of the virtual machine scale set, if configured. Identity *VirtualMachineScaleSetIdentity `pulumi:"identity"` @@ -193,16 +211,20 @@ type virtualMachineScaleSetArgs struct { Plan *Plan `pulumi:"plan"` // Fault Domain count for each placement group. PlatformFaultDomainCount *int `pulumi:"platformFaultDomainCount"` - // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. + PriorityMixPolicy *PriorityMixPolicy `pulumi:"priorityMixPolicy"` + // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup *SubResource `pulumi:"proximityPlacementGroup"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` - // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. + // Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. ScaleInPolicy *ScaleInPolicy `pulumi:"scaleInPolicy"` // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. SinglePlacementGroup *bool `pulumi:"singlePlacementGroup"` // The virtual machine scale set sku. Sku *Sku `pulumi:"sku"` + // Specifies the Spot Restore properties for the virtual machine scale set. + SpotRestorePolicy *SpotRestorePolicy `pulumi:"spotRestorePolicy"` // Resource tags Tags map[string]string `pulumi:"tags"` // The upgrade policy. @@ -211,7 +233,7 @@ type virtualMachineScaleSetArgs struct { VirtualMachineProfile *VirtualMachineScaleSetVMProfile `pulumi:"virtualMachineProfile"` // The name of the VM scale set to create or update. VmScaleSetName *string `pulumi:"vmScaleSetName"` - // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. + // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. ZoneBalance *bool `pulumi:"zoneBalance"` // The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set Zones []string `pulumi:"zones"` @@ -223,11 +245,13 @@ type VirtualMachineScaleSetArgs struct { AdditionalCapabilities AdditionalCapabilitiesPtrInput // Policy for automatic repairs. AutomaticRepairsPolicy AutomaticRepairsPolicyPtrInput + // Optional property which must either be set to True or omitted. + ConstrainedMaximumCapacity pulumi.BoolPtrInput // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. DoNotRunExtensionsOnOverprovisionedVMs pulumi.BoolPtrInput // The extended location of the Virtual Machine Scale Set. ExtendedLocation ExtendedLocationPtrInput - // Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. + // Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. HostGroup SubResourcePtrInput // The identity of the virtual machine scale set, if configured. Identity VirtualMachineScaleSetIdentityPtrInput @@ -241,16 +265,20 @@ type VirtualMachineScaleSetArgs struct { Plan PlanPtrInput // Fault Domain count for each placement group. PlatformFaultDomainCount pulumi.IntPtrInput - // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. + // Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. + PriorityMixPolicy PriorityMixPolicyPtrInput + // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. ProximityPlacementGroup SubResourcePtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput - // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. + // Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. ScaleInPolicy ScaleInPolicyPtrInput // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to false. However, if singlePlacementGroup is false, it may not be modified to true. SinglePlacementGroup pulumi.BoolPtrInput // The virtual machine scale set sku. Sku SkuPtrInput + // Specifies the Spot Restore properties for the virtual machine scale set. + SpotRestorePolicy SpotRestorePolicyPtrInput // Resource tags Tags pulumi.StringMapInput // The upgrade policy. @@ -259,7 +287,7 @@ type VirtualMachineScaleSetArgs struct { VirtualMachineProfile VirtualMachineScaleSetVMProfilePtrInput // The name of the VM scale set to create or update. VmScaleSetName pulumi.StringPtrInput - // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. + // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. ZoneBalance pulumi.BoolPtrInput // The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set Zones pulumi.StringArrayInput @@ -316,6 +344,11 @@ func (o VirtualMachineScaleSetOutput) AutomaticRepairsPolicy() AutomaticRepairsP }).(AutomaticRepairsPolicyResponsePtrOutput) } +// Optional property which must either be set to True or omitted. +func (o VirtualMachineScaleSetOutput) ConstrainedMaximumCapacity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.BoolPtrOutput { return v.ConstrainedMaximumCapacity }).(pulumi.BoolPtrOutput) +} + // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that the extensions do not run on the extra overprovisioned VMs. func (o VirtualMachineScaleSetOutput) DoNotRunExtensionsOnOverprovisionedVMs() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.BoolPtrOutput { return v.DoNotRunExtensionsOnOverprovisionedVMs }).(pulumi.BoolPtrOutput) @@ -326,7 +359,7 @@ func (o VirtualMachineScaleSetOutput) ExtendedLocation() ExtendedLocationRespons return o.ApplyT(func(v *VirtualMachineScaleSet) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -// Specifies information about the dedicated host group that the virtual machine scale set resides in.

    Minimum api-version: 2020-06-01. +// Specifies information about the dedicated host group that the virtual machine scale set resides in. Minimum api-version: 2020-06-01. func (o VirtualMachineScaleSetOutput) HostGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) SubResourceResponsePtrOutput { return v.HostGroup }).(SubResourceResponsePtrOutput) } @@ -366,17 +399,22 @@ func (o VirtualMachineScaleSetOutput) PlatformFaultDomainCount() pulumi.IntPtrOu return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.IntPtrOutput { return v.PlatformFaultDomainCount }).(pulumi.IntPtrOutput) } +// Specifies the desired targets for mixing Spot and Regular priority VMs within the same VMSS Flex instance. +func (o VirtualMachineScaleSetOutput) PriorityMixPolicy() PriorityMixPolicyResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSet) PriorityMixPolicyResponsePtrOutput { return v.PriorityMixPolicy }).(PriorityMixPolicyResponsePtrOutput) +} + // The provisioning state, which only appears in the response. func (o VirtualMachineScaleSetOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// Specifies information about the proximity placement group that the virtual machine scale set should be assigned to.

    Minimum api-version: 2018-04-01. +// Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. Minimum api-version: 2018-04-01. func (o VirtualMachineScaleSetOutput) ProximityPlacementGroup() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) SubResourceResponsePtrOutput { return v.ProximityPlacementGroup }).(SubResourceResponsePtrOutput) } -// Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. +// Specifies the policies applied when scaling in Virtual Machines in the Virtual Machine Scale Set. func (o VirtualMachineScaleSetOutput) ScaleInPolicy() ScaleInPolicyResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) ScaleInPolicyResponsePtrOutput { return v.ScaleInPolicy }).(ScaleInPolicyResponsePtrOutput) } @@ -391,11 +429,21 @@ func (o VirtualMachineScaleSetOutput) Sku() SkuResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) SkuResponsePtrOutput { return v.Sku }).(SkuResponsePtrOutput) } +// Specifies the Spot Restore properties for the virtual machine scale set. +func (o VirtualMachineScaleSetOutput) SpotRestorePolicy() SpotRestorePolicyResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSet) SpotRestorePolicyResponsePtrOutput { return v.SpotRestorePolicy }).(SpotRestorePolicyResponsePtrOutput) +} + // Resource tags func (o VirtualMachineScaleSetOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) } +// Specifies the time at which the Virtual Machine Scale Set resource was created. Minimum api-version: 2021-11-01. +func (o VirtualMachineScaleSetOutput) TimeCreated() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.StringOutput { return v.TimeCreated }).(pulumi.StringOutput) +} + // Resource type func (o VirtualMachineScaleSetOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) @@ -418,7 +466,7 @@ func (o VirtualMachineScaleSetOutput) VirtualMachineProfile() VirtualMachineScal }).(VirtualMachineScaleSetVMProfileResponsePtrOutput) } -// Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. +// Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. zoneBalance property can only be set if the zones property of the scale set contains more than one zone. If there are no zones or only one zone specified, then zoneBalance property should not be set. func (o VirtualMachineScaleSetOutput) ZoneBalance() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSet) pulumi.BoolPtrOutput { return v.ZoneBalance }).(pulumi.BoolPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetExtension.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetExtension.go index 6ea1bc63..d92376ed 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetExtension.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine Scale Set Extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineScaleSetExtension struct { pulumi.CustomResourceState @@ -26,6 +27,8 @@ type VirtualMachineScaleSetExtension struct { Name pulumi.StringPtrOutput `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.AnyOutput `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponsePtrOutput `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions pulumi.StringArrayOutput `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. @@ -34,6 +37,8 @@ type VirtualMachineScaleSetExtension struct { Publisher pulumi.StringPtrOutput `pulumi:"publisher"` // Json formatted public settings for the extension. Settings pulumi.AnyOutput `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrOutput `pulumi:"suppressFailures"` // Resource type Type pulumi.StringOutput `pulumi:"type"` // Specifies the version of the script handler. @@ -105,8 +110,15 @@ func NewVirtualMachineScaleSetExtension(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineScaleSetExtension"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineScaleSetExtension"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineScaleSetExtension"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineScaleSetExtension err := ctx.RegisterResource("azure-native:compute:VirtualMachineScaleSetExtension", name, args, &resource, opts...) if err != nil { @@ -149,6 +161,8 @@ type virtualMachineScaleSetExtensionArgs struct { Name *string `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReference `pulumi:"protectedSettingsFromKeyVault"` // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The name of the extension handler publisher. @@ -157,6 +171,8 @@ type virtualMachineScaleSetExtensionArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Specifies the type of the extension; an example is "CustomScriptExtension". Type *string `pulumi:"type"` // Specifies the version of the script handler. @@ -179,6 +195,8 @@ type VirtualMachineScaleSetExtensionArgs struct { Name pulumi.StringPtrInput // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.Input + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferencePtrInput // Collection of extension names after which this extension needs to be provisioned. ProvisionAfterExtensions pulumi.StringArrayInput // The name of the extension handler publisher. @@ -187,6 +205,8 @@ type VirtualMachineScaleSetExtensionArgs struct { ResourceGroupName pulumi.StringInput // Json formatted public settings for the extension. Settings pulumi.Input + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrInput // Specifies the type of the extension; an example is "CustomScriptExtension". Type pulumi.StringPtrInput // Specifies the version of the script handler. @@ -259,6 +279,13 @@ func (o VirtualMachineScaleSetExtensionOutput) ProtectedSettings() pulumi.AnyOut return o.ApplyT(func(v *VirtualMachineScaleSetExtension) pulumi.AnyOutput { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineScaleSetExtensionOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetExtension) KeyVaultSecretReferenceResponsePtrOutput { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + // Collection of extension names after which this extension needs to be provisioned. func (o VirtualMachineScaleSetExtensionOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { return o.ApplyT(func(v *VirtualMachineScaleSetExtension) pulumi.StringArrayOutput { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) @@ -279,6 +306,11 @@ func (o VirtualMachineScaleSetExtensionOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v *VirtualMachineScaleSetExtension) pulumi.AnyOutput { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineScaleSetExtensionOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetExtension) pulumi.BoolPtrOutput { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource type func (o VirtualMachineScaleSetExtensionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetExtension) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVM.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVM.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVM.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVM.go index ef42632d..121ec877 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVM.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVM.go @@ -7,23 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a virtual machine scale set virtual machine. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineScaleSetVM struct { pulumi.CustomResourceState // Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. AdditionalCapabilities AdditionalCapabilitiesResponsePtrOutput `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. AvailabilitySet SubResourceResponsePtrOutput `pulumi:"availabilitySet"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile DiagnosticsProfileResponsePtrOutput `pulumi:"diagnosticsProfile"` // Specifies the hardware settings for the virtual machine. HardwareProfile HardwareProfileResponsePtrOutput `pulumi:"hardwareProfile"` + // The identity of the virtual machine, if configured. + Identity VirtualMachineIdentityResponsePtrOutput `pulumi:"identity"` // The virtual machine instance ID. InstanceId pulumi.StringOutput `pulumi:"instanceId"` // The virtual machine instance view. @@ -132,8 +135,15 @@ func NewVirtualMachineScaleSetVM(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineScaleSetVM"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineScaleSetVM"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineScaleSetVM"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineScaleSetVM err := ctx.RegisterResource("azure-native:compute:VirtualMachineScaleSetVM", name, args, &resource, opts...) if err != nil { @@ -168,12 +178,14 @@ func (VirtualMachineScaleSetVMState) ElementType() reflect.Type { type virtualMachineScaleSetVMArgs struct { // Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. AdditionalCapabilities *AdditionalCapabilities `pulumi:"additionalCapabilities"` - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. AvailabilitySet *SubResource `pulumi:"availabilitySet"` - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile *DiagnosticsProfile `pulumi:"diagnosticsProfile"` // Specifies the hardware settings for the virtual machine. HardwareProfile *HardwareProfile `pulumi:"hardwareProfile"` + // The identity of the virtual machine, if configured. + Identity *VirtualMachineIdentity `pulumi:"identity"` // The instance ID of the virtual machine. InstanceId *string `pulumi:"instanceId"` // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 @@ -208,12 +220,14 @@ type virtualMachineScaleSetVMArgs struct { type VirtualMachineScaleSetVMArgs struct { // Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. AdditionalCapabilities AdditionalCapabilitiesPtrInput - // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. + // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. AvailabilitySet SubResourcePtrInput - // Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. + // Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. DiagnosticsProfile DiagnosticsProfilePtrInput // Specifies the hardware settings for the virtual machine. HardwareProfile HardwareProfilePtrInput + // The identity of the virtual machine, if configured. + Identity VirtualMachineIdentityPtrInput // The instance ID of the virtual machine. InstanceId pulumi.StringPtrInput // Specifies that the image or disk that is being used was licensed on-premises.

    Possible values for Windows Server operating system are:

    Windows_Client

    Windows_Server

    Possible values for Linux Server operating system are:

    RHEL_BYOS (for RHEL)

    SLES_BYOS (for SUSE)

    For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)

    [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)

    Minimum api-version: 2015-06-15 @@ -288,12 +302,12 @@ func (o VirtualMachineScaleSetVMOutput) AdditionalCapabilities() AdditionalCapab }).(AdditionalCapabilitiesResponsePtrOutput) } -// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview).

    For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates)

    Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. +// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see [Availability sets overview](https://docs.microsoft.com/azure/virtual-machines/availability-set-overview). For more information on Azure planned maintenance, see [Maintenance and updates for Virtual Machines in Azure](https://docs.microsoft.com/azure/virtual-machines/maintenance-and-updates). Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. func (o VirtualMachineScaleSetVMOutput) AvailabilitySet() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVM) SubResourceResponsePtrOutput { return v.AvailabilitySet }).(SubResourceResponsePtrOutput) } -// Specifies the boot diagnostic settings state.

    Minimum api-version: 2015-06-15. +// Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15. func (o VirtualMachineScaleSetVMOutput) DiagnosticsProfile() DiagnosticsProfileResponsePtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVM) DiagnosticsProfileResponsePtrOutput { return v.DiagnosticsProfile }).(DiagnosticsProfileResponsePtrOutput) } @@ -303,6 +317,11 @@ func (o VirtualMachineScaleSetVMOutput) HardwareProfile() HardwareProfileRespons return o.ApplyT(func(v *VirtualMachineScaleSetVM) HardwareProfileResponsePtrOutput { return v.HardwareProfile }).(HardwareProfileResponsePtrOutput) } +// The identity of the virtual machine, if configured. +func (o VirtualMachineScaleSetVMOutput) Identity() VirtualMachineIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVM) VirtualMachineIdentityResponsePtrOutput { return v.Identity }).(VirtualMachineIdentityResponsePtrOutput) +} + // The virtual machine instance ID. func (o VirtualMachineScaleSetVMOutput) InstanceId() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVM) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMExtension.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMExtension.go similarity index 78% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMExtension.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMExtension.go index a3e18ff8..b756f0bf 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMExtension.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMExtension.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a VMSS VM Extension. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineScaleSetVMExtension struct { pulumi.CustomResourceState @@ -24,16 +25,24 @@ type VirtualMachineScaleSetVMExtension struct { ForceUpdateTag pulumi.StringPtrOutput `pulumi:"forceUpdateTag"` // The virtual machine extension instance view. InstanceView VirtualMachineExtensionInstanceViewResponsePtrOutput `pulumi:"instanceView"` + // The location of the extension. + Location pulumi.StringPtrOutput `pulumi:"location"` // The name of the extension. Name pulumi.StringOutput `pulumi:"name"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.AnyOutput `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferenceResponsePtrOutput `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions pulumi.StringArrayOutput `pulumi:"provisionAfterExtensions"` // The provisioning state, which only appears in the response. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The name of the extension handler publisher. Publisher pulumi.StringPtrOutput `pulumi:"publisher"` // Json formatted public settings for the extension. Settings pulumi.AnyOutput `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrOutput `pulumi:"suppressFailures"` // Resource type Type pulumi.StringOutput `pulumi:"type"` // Specifies the version of the script handler. @@ -90,8 +99,15 @@ func NewVirtualMachineScaleSetVMExtension(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineScaleSetVMExtension"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineScaleSetVMExtension"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineScaleSetVMExtension"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineScaleSetVMExtension err := ctx.RegisterResource("azure-native:compute:VirtualMachineScaleSetVMExtension", name, args, &resource, opts...) if err != nil { @@ -134,14 +150,22 @@ type virtualMachineScaleSetVMExtensionArgs struct { InstanceId string `pulumi:"instanceId"` // The virtual machine extension instance view. InstanceView *VirtualMachineExtensionInstanceView `pulumi:"instanceView"` + // The location of the extension. + Location *string `pulumi:"location"` // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings interface{} `pulumi:"protectedSettings"` + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault *KeyVaultSecretReference `pulumi:"protectedSettingsFromKeyVault"` + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions []string `pulumi:"provisionAfterExtensions"` // The name of the extension handler publisher. Publisher *string `pulumi:"publisher"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Json formatted public settings for the extension. Settings interface{} `pulumi:"settings"` + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures *bool `pulumi:"suppressFailures"` // Specifies the type of the extension; an example is "CustomScriptExtension". Type *string `pulumi:"type"` // Specifies the version of the script handler. @@ -164,14 +188,22 @@ type VirtualMachineScaleSetVMExtensionArgs struct { InstanceId pulumi.StringInput // The virtual machine extension instance view. InstanceView VirtualMachineExtensionInstanceViewPtrInput + // The location of the extension. + Location pulumi.StringPtrInput // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. ProtectedSettings pulumi.Input + // The extensions protected settings that are passed by reference, and consumed from key vault + ProtectedSettingsFromKeyVault KeyVaultSecretReferencePtrInput + // Collection of extension names after which this extension needs to be provisioned. + ProvisionAfterExtensions pulumi.StringArrayInput // The name of the extension handler publisher. Publisher pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Json formatted public settings for the extension. Settings pulumi.Input + // Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. + SuppressFailures pulumi.BoolPtrInput // Specifies the type of the extension; an example is "CustomScriptExtension". Type pulumi.StringPtrInput // Specifies the version of the script handler. @@ -241,6 +273,11 @@ func (o VirtualMachineScaleSetVMExtensionOutput) InstanceView() VirtualMachineEx }).(VirtualMachineExtensionInstanceViewResponsePtrOutput) } +// The location of the extension. +func (o VirtualMachineScaleSetVMExtensionOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the extension. func (o VirtualMachineScaleSetVMExtensionOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) @@ -251,6 +288,18 @@ func (o VirtualMachineScaleSetVMExtensionOutput) ProtectedSettings() pulumi.AnyO return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.AnyOutput { return v.ProtectedSettings }).(pulumi.AnyOutput) } +// The extensions protected settings that are passed by reference, and consumed from key vault +func (o VirtualMachineScaleSetVMExtensionOutput) ProtectedSettingsFromKeyVault() KeyVaultSecretReferenceResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) KeyVaultSecretReferenceResponsePtrOutput { + return v.ProtectedSettingsFromKeyVault + }).(KeyVaultSecretReferenceResponsePtrOutput) +} + +// Collection of extension names after which this extension needs to be provisioned. +func (o VirtualMachineScaleSetVMExtensionOutput) ProvisionAfterExtensions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.StringArrayOutput { return v.ProvisionAfterExtensions }).(pulumi.StringArrayOutput) +} + // The provisioning state, which only appears in the response. func (o VirtualMachineScaleSetVMExtensionOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) @@ -266,6 +315,11 @@ func (o VirtualMachineScaleSetVMExtensionOutput) Settings() pulumi.AnyOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.AnyOutput { return v.Settings }).(pulumi.AnyOutput) } +// Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false. +func (o VirtualMachineScaleSetVMExtensionOutput) SuppressFailures() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.BoolPtrOutput { return v.SuppressFailures }).(pulumi.BoolPtrOutput) +} + // Resource type func (o VirtualMachineScaleSetVMExtensionOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMExtension) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMRunCommand.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMRunCommand.go similarity index 57% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMRunCommand.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMRunCommand.go index 71430a9a..0f5668ee 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/virtualMachineScaleSetVMRunCommand.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/v2/virtualMachineScaleSetVMRunCommand.go @@ -7,18 +7,21 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Virtual Machine run command. -// API Version: 2021-03-01. +// Azure REST API version: 2023-03-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualMachineScaleSetVMRunCommand struct { pulumi.CustomResourceState // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution pulumi.BoolPtrOutput `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity RunCommandManagedIdentityResponsePtrOutput `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri pulumi.StringPtrOutput `pulumi:"errorBlobUri"` // The virtual machine run command instance view. InstanceView VirtualMachineRunCommandInstanceViewResponseOutput `pulumi:"instanceView"` @@ -26,13 +29,15 @@ type VirtualMachineScaleSetVMRunCommand struct { Location pulumi.StringOutput `pulumi:"location"` // Resource name Name pulumi.StringOutput `pulumi:"name"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity RunCommandManagedIdentityResponsePtrOutput `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri pulumi.StringPtrOutput `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters RunCommandInputParameterResponseArrayOutput `pulumi:"parameters"` // The parameters used by the script. ProtectedParameters RunCommandInputParameterResponseArrayOutput `pulumi:"protectedParameters"` - // The provisioning state, which only appears in the response. + // The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Specifies the user account password on the VM when executing the run command. RunAsPassword pulumi.StringPtrOutput `pulumi:"runAsPassword"` @@ -44,6 +49,8 @@ type VirtualMachineScaleSetVMRunCommand struct { Tags pulumi.StringMapOutput `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds pulumi.IntPtrOutput `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure pulumi.BoolPtrOutput `pulumi:"treatFailureAsDeploymentFailure"` // Resource type Type pulumi.StringOutput `pulumi:"type"` } @@ -64,9 +71,12 @@ func NewVirtualMachineScaleSetVMRunCommand(ctx *pulumi.Context, if args.VmScaleSetName == nil { return nil, errors.New("invalid value for required argument 'VmScaleSetName'") } - if isZero(args.AsyncExecution) { + if args.AsyncExecution == nil { args.AsyncExecution = pulumi.BoolPtr(false) } + if args.TreatFailureAsDeploymentFailure == nil { + args.TreatFailureAsDeploymentFailure = pulumi.BoolPtr(false) + } aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:compute/v20200601:VirtualMachineScaleSetVMRunCommand"), @@ -95,8 +105,15 @@ func NewVirtualMachineScaleSetVMRunCommand(ctx *pulumi.Context, { Type: pulumi.String("azure-native:compute/v20221101:VirtualMachineScaleSetVMRunCommand"), }, + { + Type: pulumi.String("azure-native:compute/v20230301:VirtualMachineScaleSetVMRunCommand"), + }, + { + Type: pulumi.String("azure-native:compute/v20230701:VirtualMachineScaleSetVMRunCommand"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualMachineScaleSetVMRunCommand err := ctx.RegisterResource("azure-native:compute:VirtualMachineScaleSetVMRunCommand", name, args, &resource, opts...) if err != nil { @@ -131,13 +148,17 @@ func (VirtualMachineScaleSetVMRunCommandState) ElementType() reflect.Type { type virtualMachineScaleSetVMRunCommandArgs struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution *bool `pulumi:"asyncExecution"` - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity *RunCommandManagedIdentity `pulumi:"errorBlobManagedIdentity"` + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri *string `pulumi:"errorBlobUri"` // The instance ID of the virtual machine. InstanceId string `pulumi:"instanceId"` // Resource location Location *string `pulumi:"location"` - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity *RunCommandManagedIdentity `pulumi:"outputBlobManagedIdentity"` + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri *string `pulumi:"outputBlobUri"` // The parameters used by the script. Parameters []RunCommandInputParameter `pulumi:"parameters"` @@ -157,6 +178,8 @@ type virtualMachineScaleSetVMRunCommandArgs struct { Tags map[string]string `pulumi:"tags"` // The timeout in seconds to execute the run command. TimeoutInSeconds *int `pulumi:"timeoutInSeconds"` + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure *bool `pulumi:"treatFailureAsDeploymentFailure"` // The name of the VM scale set. VmScaleSetName string `pulumi:"vmScaleSetName"` } @@ -165,13 +188,17 @@ type virtualMachineScaleSetVMRunCommandArgs struct { type VirtualMachineScaleSetVMRunCommandArgs struct { // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. AsyncExecution pulumi.BoolPtrInput - // Specifies the Azure storage blob where script error stream will be uploaded. + // User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + ErrorBlobManagedIdentity RunCommandManagedIdentityPtrInput + // Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. ErrorBlobUri pulumi.StringPtrInput // The instance ID of the virtual machine. InstanceId pulumi.StringInput // Resource location Location pulumi.StringPtrInput - // Specifies the Azure storage blob where script output stream will be uploaded. + // User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged + OutputBlobManagedIdentity RunCommandManagedIdentityPtrInput + // Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. OutputBlobUri pulumi.StringPtrInput // The parameters used by the script. Parameters RunCommandInputParameterArrayInput @@ -191,6 +218,8 @@ type VirtualMachineScaleSetVMRunCommandArgs struct { Tags pulumi.StringMapInput // The timeout in seconds to execute the run command. TimeoutInSeconds pulumi.IntPtrInput + // Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results + TreatFailureAsDeploymentFailure pulumi.BoolPtrInput // The name of the VM scale set. VmScaleSetName pulumi.StringInput } @@ -237,7 +266,14 @@ func (o VirtualMachineScaleSetVMRunCommandOutput) AsyncExecution() pulumi.BoolPt return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.BoolPtrOutput { return v.AsyncExecution }).(pulumi.BoolPtrOutput) } -// Specifies the Azure storage blob where script error stream will be uploaded. +// User-assigned managed identity that has access to errorBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o VirtualMachineScaleSetVMRunCommandOutput) ErrorBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) RunCommandManagedIdentityResponsePtrOutput { + return v.ErrorBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script error stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer errorBlobManagedIdentity parameter. func (o VirtualMachineScaleSetVMRunCommandOutput) ErrorBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.StringPtrOutput { return v.ErrorBlobUri }).(pulumi.StringPtrOutput) } @@ -259,7 +295,14 @@ func (o VirtualMachineScaleSetVMRunCommandOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Specifies the Azure storage blob where script output stream will be uploaded. +// User-assigned managed identity that has access to outputBlobUri storage blob. Use an empty object in case of system-assigned identity. Make sure managed identity has been given access to blob's container with 'Storage Blob Data Contributor' role assignment. In case of user-assigned identity, make sure you add it under VM's identity. For more info on managed identity and Run Command, refer https://aka.ms/ManagedIdentity and https://aka.ms/RunCommandManaged +func (o VirtualMachineScaleSetVMRunCommandOutput) OutputBlobManagedIdentity() RunCommandManagedIdentityResponsePtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) RunCommandManagedIdentityResponsePtrOutput { + return v.OutputBlobManagedIdentity + }).(RunCommandManagedIdentityResponsePtrOutput) +} + +// Specifies the Azure storage blob where script output stream will be uploaded. Use a SAS URI with read, append, create, write access OR use managed identity to provide the VM access to the blob. Refer outputBlobManagedIdentity parameter. func (o VirtualMachineScaleSetVMRunCommandOutput) OutputBlobUri() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.StringPtrOutput { return v.OutputBlobUri }).(pulumi.StringPtrOutput) } @@ -278,7 +321,7 @@ func (o VirtualMachineScaleSetVMRunCommandOutput) ProtectedParameters() RunComma }).(RunCommandInputParameterResponseArrayOutput) } -// The provisioning state, which only appears in the response. +// The provisioning state, which only appears in the response. If treatFailureAsDeploymentFailure set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If treatFailureAsDeploymentFailure set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results func (o VirtualMachineScaleSetVMRunCommandOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } @@ -310,6 +353,13 @@ func (o VirtualMachineScaleSetVMRunCommandOutput) TimeoutInSeconds() pulumi.IntP return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.IntPtrOutput { return v.TimeoutInSeconds }).(pulumi.IntPtrOutput) } +// Optional. If set to true, any failure in the script will fail the deployment and ProvisioningState will be marked as Failed. If set to false, ProvisioningState would only reflect whether the run command was run or not by the extensions platform, it would not indicate whether script failed in case of script failures. See instance view of run command in case of script failures to see executionMessage, output, error: https://aka.ms/runcommandmanaged#get-execution-status-and-results +func (o VirtualMachineScaleSetVMRunCommandOutput) TreatFailureAsDeploymentFailure() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.BoolPtrOutput { + return v.TreatFailureAsDeploymentFailure + }).(pulumi.BoolPtrOutput) +} + // Resource type func (o VirtualMachineScaleSetVMRunCommandOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *VirtualMachineScaleSetVMRunCommand) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/doc.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/doc.go deleted file mode 100644 index 2fecd0f4..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// A native Pulumi package for creating and managing Azure resources. -package pulumiazurenativesdk diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/init.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/init.go deleted file mode 100644 index 8629677d..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/init.go +++ /dev/null @@ -1,37 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package pulumiazurenativesdk - -import ( - "fmt" - - "github.com/blang/semver" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -type pkg struct { - version semver.Version -} - -func (p *pkg) Version() semver.Version { - return p.version -} - -func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) { - if typ != "pulumi:providers:azure-native" { - return nil, fmt.Errorf("unknown provider type: %s", typ) - } - - r := &Provider{} - err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) - return r, err -} - -func init() { - version, _ := PkgVersion() - pulumi.RegisterResourcePackage( - "azure-native", - &pkg{version}, - ) -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRule.go deleted file mode 100644 index 306bf3e0..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRule.go +++ /dev/null @@ -1,208 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package network - -import ( - "context" - "reflect" - - "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// Network base admin rule. -// API Version: 2021-02-01-preview. -// -// Deprecated: Please use one of the variants: AdminRule, DefaultAdminRule. -type AdminRule struct { - pulumi.CustomResourceState - - // A unique read-only string that changes whenever the resource is updated. - Etag pulumi.StringOutput `pulumi:"etag"` - // Whether the rule is custom or default. - Kind pulumi.StringOutput `pulumi:"kind"` - // Resource name. - Name pulumi.StringOutput `pulumi:"name"` - // The system metadata related to this resource. - SystemData SystemDataResponseOutput `pulumi:"systemData"` - // Resource type. - Type pulumi.StringOutput `pulumi:"type"` -} - -// NewAdminRule registers a new resource with the given unique name, arguments, and options. -func NewAdminRule(ctx *pulumi.Context, - name string, args *AdminRuleArgs, opts ...pulumi.ResourceOption) (*AdminRule, error) { - if args == nil { - return nil, errors.New("missing one or more required arguments") - } - - if args.ConfigurationName == nil { - return nil, errors.New("invalid value for required argument 'ConfigurationName'") - } - if args.Kind == nil { - return nil, errors.New("invalid value for required argument 'Kind'") - } - if args.NetworkManagerName == nil { - return nil, errors.New("invalid value for required argument 'NetworkManagerName'") - } - if args.ResourceGroupName == nil { - return nil, errors.New("invalid value for required argument 'ResourceGroupName'") - } - if args.RuleCollectionName == nil { - return nil, errors.New("invalid value for required argument 'RuleCollectionName'") - } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("azure-native:network/v20210201preview:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20210501preview:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220101:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220201preview:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220401preview:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220501:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220701:AdminRule"), - }, - { - Type: pulumi.String("azure-native:network/v20220901:AdminRule"), - }, - }) - opts = append(opts, aliases) - var resource AdminRule - err := ctx.RegisterResource("azure-native:network:AdminRule", name, args, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// GetAdminRule gets an existing AdminRule resource's state with the given name, ID, and optional -// state properties that are used to uniquely qualify the lookup (nil if not required). -func GetAdminRule(ctx *pulumi.Context, - name string, id pulumi.IDInput, state *AdminRuleState, opts ...pulumi.ResourceOption) (*AdminRule, error) { - var resource AdminRule - err := ctx.ReadResource("azure-native:network:AdminRule", name, id, state, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// Input properties used for looking up and filtering AdminRule resources. -type adminRuleState struct { -} - -type AdminRuleState struct { -} - -func (AdminRuleState) ElementType() reflect.Type { - return reflect.TypeOf((*adminRuleState)(nil)).Elem() -} - -type adminRuleArgs struct { - // The name of the network manager security Configuration. - ConfigurationName string `pulumi:"configurationName"` - // Whether the rule is custom or default. - Kind string `pulumi:"kind"` - // The name of the network manager. - NetworkManagerName string `pulumi:"networkManagerName"` - // The name of the resource group. - ResourceGroupName string `pulumi:"resourceGroupName"` - // The name of the network manager security Configuration rule collection. - RuleCollectionName string `pulumi:"ruleCollectionName"` - // The name of the rule. - RuleName *string `pulumi:"ruleName"` -} - -// The set of arguments for constructing a AdminRule resource. -type AdminRuleArgs struct { - // The name of the network manager security Configuration. - ConfigurationName pulumi.StringInput - // Whether the rule is custom or default. - Kind pulumi.StringInput - // The name of the network manager. - NetworkManagerName pulumi.StringInput - // The name of the resource group. - ResourceGroupName pulumi.StringInput - // The name of the network manager security Configuration rule collection. - RuleCollectionName pulumi.StringInput - // The name of the rule. - RuleName pulumi.StringPtrInput -} - -func (AdminRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*adminRuleArgs)(nil)).Elem() -} - -type AdminRuleInput interface { - pulumi.Input - - ToAdminRuleOutput() AdminRuleOutput - ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput -} - -func (*AdminRule) ElementType() reflect.Type { - return reflect.TypeOf((**AdminRule)(nil)).Elem() -} - -func (i *AdminRule) ToAdminRuleOutput() AdminRuleOutput { - return i.ToAdminRuleOutputWithContext(context.Background()) -} - -func (i *AdminRule) ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(AdminRuleOutput) -} - -type AdminRuleOutput struct{ *pulumi.OutputState } - -func (AdminRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AdminRule)(nil)).Elem() -} - -func (o AdminRuleOutput) ToAdminRuleOutput() AdminRuleOutput { - return o -} - -func (o AdminRuleOutput) ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o AdminRuleOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) -} - -// Whether the rule is custom or default. -func (o AdminRuleOutput) Kind() pulumi.StringOutput { - return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) -} - -// Resource name. -func (o AdminRuleOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) -} - -// The system metadata related to this resource. -func (o AdminRuleOutput) SystemData() SystemDataResponseOutput { - return o.ApplyT(func(v *AdminRule) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) -} - -// Resource type. -func (o AdminRuleOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) -} - -func init() { - pulumi.RegisterOutputType(AdminRuleOutput{}) -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiUtilities.go deleted file mode 100644 index 13c8d5ec..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiUtilities.go +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package network - -import ( - "fmt" - "os" - "reflect" - "regexp" - "strconv" - "strings" - - "github.com/blang/semver" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -type envParser func(v string) interface{} - -func parseEnvBool(v string) interface{} { - b, err := strconv.ParseBool(v) - if err != nil { - return nil - } - return b -} - -func parseEnvInt(v string) interface{} { - i, err := strconv.ParseInt(v, 0, 0) - if err != nil { - return nil - } - return int(i) -} - -func parseEnvFloat(v string) interface{} { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - return nil - } - return f -} - -func parseEnvStringArray(v string) interface{} { - var result pulumi.StringArray - for _, item := range strings.Split(v, ";") { - result = append(result, pulumi.String(item)) - } - return result -} - -func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { - for _, v := range vars { - if value := os.Getenv(v); value != "" { - if parser != nil { - return parser(value) - } - return value - } - } - return def -} - -// PkgVersion uses reflection to determine the version of the current package. -// If a version cannot be determined, v1 will be assumed. The second return -// value is always nil. -func PkgVersion() (semver.Version, error) { - type sentinal struct{} - pkgPath := reflect.TypeOf(sentinal{}).PkgPath() - re := regexp.MustCompile("^.*/pulumi-azure-native/sdk(/v\\d+)?") - if match := re.FindStringSubmatch(pkgPath); match != nil { - vStr := match[1] - if len(vStr) == 0 { // If the version capture group was empty, default to v1. - return semver.Version{Major: 1}, nil - } - return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil - } - return semver.Version{Major: 1}, nil -} - -// isZero is a null safe check for if a value is it's types zero value. -func isZero(v interface{}) bool { - if v == nil { - return true - } - return reflect.ValueOf(v).IsZero() -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/LICENSE b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/LICENSE similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/compute/LICENSE rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/LICENSE diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRule.go new file mode 100644 index 00000000..8b687ce1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRule.go @@ -0,0 +1,350 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Network admin rule. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview +type AdminRule struct { + pulumi.CustomResourceState + + // Indicates the access allowed for this particular rule + Access pulumi.StringOutput `pulumi:"access"` + // A description for this rule. Restricted to 140 chars. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges pulumi.StringArrayOutput `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations AddressPrefixItemResponseArrayOutput `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction pulumi.StringOutput `pulumi:"direction"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringOutput `pulumi:"etag"` + // Whether the rule is custom or default. + // Expected value is 'Custom'. + Kind pulumi.StringOutput `pulumi:"kind"` + // Resource name. + Name pulumi.StringOutput `pulumi:"name"` + // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority pulumi.IntOutput `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol pulumi.StringOutput `pulumi:"protocol"` + // The provisioning state of the resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` + // The source port ranges. + SourcePortRanges pulumi.StringArrayOutput `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources AddressPrefixItemResponseArrayOutput `pulumi:"sources"` + // The system metadata related to this resource. + SystemData SystemDataResponseOutput `pulumi:"systemData"` + // Resource type. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewAdminRule registers a new resource with the given unique name, arguments, and options. +func NewAdminRule(ctx *pulumi.Context, + name string, args *AdminRuleArgs, opts ...pulumi.ResourceOption) (*AdminRule, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Access == nil { + return nil, errors.New("invalid value for required argument 'Access'") + } + if args.ConfigurationName == nil { + return nil, errors.New("invalid value for required argument 'ConfigurationName'") + } + if args.Direction == nil { + return nil, errors.New("invalid value for required argument 'Direction'") + } + if args.Kind == nil { + return nil, errors.New("invalid value for required argument 'Kind'") + } + if args.NetworkManagerName == nil { + return nil, errors.New("invalid value for required argument 'NetworkManagerName'") + } + if args.Priority == nil { + return nil, errors.New("invalid value for required argument 'Priority'") + } + if args.Protocol == nil { + return nil, errors.New("invalid value for required argument 'Protocol'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.RuleCollectionName == nil { + return nil, errors.New("invalid value for required argument 'RuleCollectionName'") + } + args.Kind = pulumi.String("Custom") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20210201preview:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20210501preview:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220101:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220201preview:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220401preview:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220501:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220701:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20220901:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20221101:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:AdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:AdminRule"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource AdminRule + err := ctx.RegisterResource("azure-native:network:AdminRule", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAdminRule gets an existing AdminRule resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAdminRule(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AdminRuleState, opts ...pulumi.ResourceOption) (*AdminRule, error) { + var resource AdminRule + err := ctx.ReadResource("azure-native:network:AdminRule", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AdminRule resources. +type adminRuleState struct { +} + +type AdminRuleState struct { +} + +func (AdminRuleState) ElementType() reflect.Type { + return reflect.TypeOf((*adminRuleState)(nil)).Elem() +} + +type adminRuleArgs struct { + // Indicates the access allowed for this particular rule + Access string `pulumi:"access"` + // The name of the network manager Security Configuration. + ConfigurationName string `pulumi:"configurationName"` + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations []AddressPrefixItem `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction string `pulumi:"direction"` + // Whether the rule is custom or default. + // Expected value is 'Custom'. + Kind string `pulumi:"kind"` + // The name of the network manager. + NetworkManagerName string `pulumi:"networkManagerName"` + // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority int `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The name of the network manager security Configuration rule collection. + RuleCollectionName string `pulumi:"ruleCollectionName"` + // The name of the rule. + RuleName *string `pulumi:"ruleName"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources []AddressPrefixItem `pulumi:"sources"` +} + +// The set of arguments for constructing a AdminRule resource. +type AdminRuleArgs struct { + // Indicates the access allowed for this particular rule + Access pulumi.StringInput + // The name of the network manager Security Configuration. + ConfigurationName pulumi.StringInput + // A description for this rule. Restricted to 140 chars. + Description pulumi.StringPtrInput + // The destination port ranges. + DestinationPortRanges pulumi.StringArrayInput + // The destination address prefixes. CIDR or destination IP ranges. + Destinations AddressPrefixItemArrayInput + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction pulumi.StringInput + // Whether the rule is custom or default. + // Expected value is 'Custom'. + Kind pulumi.StringInput + // The name of the network manager. + NetworkManagerName pulumi.StringInput + // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority pulumi.IntInput + // Network protocol this rule applies to. + Protocol pulumi.StringInput + // The name of the resource group. + ResourceGroupName pulumi.StringInput + // The name of the network manager security Configuration rule collection. + RuleCollectionName pulumi.StringInput + // The name of the rule. + RuleName pulumi.StringPtrInput + // The source port ranges. + SourcePortRanges pulumi.StringArrayInput + // The CIDR or source IP ranges. + Sources AddressPrefixItemArrayInput +} + +func (AdminRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*adminRuleArgs)(nil)).Elem() +} + +type AdminRuleInput interface { + pulumi.Input + + ToAdminRuleOutput() AdminRuleOutput + ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput +} + +func (*AdminRule) ElementType() reflect.Type { + return reflect.TypeOf((**AdminRule)(nil)).Elem() +} + +func (i *AdminRule) ToAdminRuleOutput() AdminRuleOutput { + return i.ToAdminRuleOutputWithContext(context.Background()) +} + +func (i *AdminRule) ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(AdminRuleOutput) +} + +type AdminRuleOutput struct{ *pulumi.OutputState } + +func (AdminRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AdminRule)(nil)).Elem() +} + +func (o AdminRuleOutput) ToAdminRuleOutput() AdminRuleOutput { + return o +} + +func (o AdminRuleOutput) ToAdminRuleOutputWithContext(ctx context.Context) AdminRuleOutput { + return o +} + +// Indicates the access allowed for this particular rule +func (o AdminRuleOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Access }).(pulumi.StringOutput) +} + +// A description for this rule. Restricted to 140 chars. +func (o AdminRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o AdminRuleOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringArrayOutput { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o AdminRuleOutput) Destinations() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v *AdminRule) AddressPrefixItemResponseArrayOutput { return v.Destinations }).(AddressPrefixItemResponseArrayOutput) +} + +// Indicates if the traffic matched against the rule in inbound or outbound. +func (o AdminRuleOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o AdminRuleOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Whether the rule is custom or default. +// Expected value is 'Custom'. +func (o AdminRuleOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Resource name. +func (o AdminRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. +func (o AdminRuleOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v *AdminRule) pulumi.IntOutput { return v.Priority }).(pulumi.IntOutput) +} + +// Network protocol this rule applies to. +func (o AdminRuleOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the resource. +func (o AdminRuleOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Unique identifier for this resource. +func (o AdminRuleOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + +// The source port ranges. +func (o AdminRuleOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringArrayOutput { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The CIDR or source IP ranges. +func (o AdminRuleOutput) Sources() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v *AdminRule) AddressPrefixItemResponseArrayOutput { return v.Sources }).(AddressPrefixItemResponseArrayOutput) +} + +// The system metadata related to this resource. +func (o AdminRuleOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v *AdminRule) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) +} + +// Resource type. +func (o AdminRuleOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRule) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(AdminRuleOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRuleCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRuleCollection.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRuleCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRuleCollection.go index 668f9302..9d64ea5c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/adminRuleCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/adminRuleCollection.go @@ -7,27 +7,28 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Defines the rule collection. -// API Version: 2021-02-01-preview. +// Defines the admin rule collection. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type AdminRuleCollection struct { pulumi.CustomResourceState // Groups for configuration AppliesToGroups NetworkManagerSecurityGroupItemResponseArrayOutput `pulumi:"appliesToGroups"` - // A description of the rule collection. + // A description of the admin rule collection. Description pulumi.StringPtrOutput `pulumi:"description"` - // A display name of the rule collection. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -41,6 +42,9 @@ func NewAdminRuleCollection(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } + if args.AppliesToGroups == nil { + return nil, errors.New("invalid value for required argument 'AppliesToGroups'") + } if args.ConfigurationName == nil { return nil, errors.New("invalid value for required argument 'ConfigurationName'") } @@ -75,8 +79,21 @@ func NewAdminRuleCollection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:AdminRuleCollection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:AdminRuleCollection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:AdminRuleCollection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:AdminRuleCollection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:AdminRuleCollection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource AdminRuleCollection err := ctx.RegisterResource("azure-native:network:AdminRuleCollection", name, args, &resource, opts...) if err != nil { @@ -111,12 +128,10 @@ func (AdminRuleCollectionState) ElementType() reflect.Type { type adminRuleCollectionArgs struct { // Groups for configuration AppliesToGroups []NetworkManagerSecurityGroupItem `pulumi:"appliesToGroups"` - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` - // A description of the rule collection. + // A description of the admin rule collection. Description *string `pulumi:"description"` - // A display name of the rule collection. - DisplayName *string `pulumi:"displayName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` // The name of the resource group. @@ -129,12 +144,10 @@ type adminRuleCollectionArgs struct { type AdminRuleCollectionArgs struct { // Groups for configuration AppliesToGroups NetworkManagerSecurityGroupItemArrayInput - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput - // A description of the rule collection. + // A description of the admin rule collection. Description pulumi.StringPtrInput - // A display name of the rule collection. - DisplayName pulumi.StringPtrInput // The name of the network manager. NetworkManagerName pulumi.StringInput // The name of the resource group. @@ -187,16 +200,11 @@ func (o AdminRuleCollectionOutput) AppliesToGroups() NetworkManagerSecurityGroup }).(NetworkManagerSecurityGroupItemResponseArrayOutput) } -// A description of the rule collection. +// A description of the admin rule collection. func (o AdminRuleCollectionOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *AdminRuleCollection) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the rule collection. -func (o AdminRuleCollectionOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AdminRuleCollection) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o AdminRuleCollectionOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *AdminRuleCollection) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -212,6 +220,11 @@ func (o AdminRuleCollectionOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *AdminRuleCollection) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o AdminRuleCollectionOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *AdminRuleCollection) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o AdminRuleCollectionOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *AdminRuleCollection) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGateway.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGateway.go index 16edc5cb..bcd7c8f6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGateway.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Application gateway resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ApplicationGateway struct { pulumi.CustomResourceState @@ -24,8 +25,12 @@ type ApplicationGateway struct { BackendAddressPools ApplicationGatewayBackendAddressPoolResponseArrayOutput `pulumi:"backendAddressPools"` // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). BackendHttpSettingsCollection ApplicationGatewayBackendHttpSettingsResponseArrayOutput `pulumi:"backendHttpSettingsCollection"` + // Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendSettingsCollection ApplicationGatewayBackendSettingsResponseArrayOutput `pulumi:"backendSettingsCollection"` // Custom error configurations of the application gateway resource. CustomErrorConfigurations ApplicationGatewayCustomErrorResponseArrayOutput `pulumi:"customErrorConfigurations"` + // The default predefined SSL Policy applied on the application gateway resource. + DefaultPredefinedSslPolicy pulumi.StringOutput `pulumi:"defaultPredefinedSslPolicy"` // Whether FIPS is enabled on the application gateway resource. EnableFips pulumi.BoolPtrOutput `pulumi:"enableFips"` // Whether HTTP2 is enabled on the application gateway resource. @@ -42,10 +47,16 @@ type ApplicationGateway struct { FrontendPorts ApplicationGatewayFrontendPortResponseArrayOutput `pulumi:"frontendPorts"` // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). GatewayIPConfigurations ApplicationGatewayIPConfigurationResponseArrayOutput `pulumi:"gatewayIPConfigurations"` + // Global Configuration. + GlobalConfiguration ApplicationGatewayGlobalConfigurationResponsePtrOutput `pulumi:"globalConfiguration"` // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). HttpListeners ApplicationGatewayHttpListenerResponseArrayOutput `pulumi:"httpListeners"` // The identity of the application gateway, if configured. Identity ManagedServiceIdentityResponsePtrOutput `pulumi:"identity"` + // Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + Listeners ApplicationGatewayListenerResponseArrayOutput `pulumi:"listeners"` + // Load distribution policies of the application gateway resource. + LoadDistributionPolicies ApplicationGatewayLoadDistributionPolicyResponseArrayOutput `pulumi:"loadDistributionPolicies"` // Resource location. Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. @@ -68,6 +79,8 @@ type ApplicationGateway struct { ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // Rewrite rules for the application gateway resource. RewriteRuleSets ApplicationGatewayRewriteRuleSetResponseArrayOutput `pulumi:"rewriteRuleSets"` + // Routing rules of the application gateway resource. + RoutingRules ApplicationGatewayRoutingRuleResponseArrayOutput `pulumi:"routingRules"` // SKU of the application gateway resource. Sku ApplicationGatewaySkuResponsePtrOutput `pulumi:"sku"` // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). @@ -235,8 +248,21 @@ func NewApplicationGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ApplicationGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ApplicationGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ApplicationGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ApplicationGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ApplicationGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ApplicationGateway err := ctx.RegisterResource("azure-native:network:ApplicationGateway", name, args, &resource, opts...) if err != nil { @@ -279,6 +305,8 @@ type applicationGatewayArgs struct { BackendAddressPools []ApplicationGatewayBackendAddressPool `pulumi:"backendAddressPools"` // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). BackendHttpSettingsCollection []ApplicationGatewayBackendHttpSettings `pulumi:"backendHttpSettingsCollection"` + // Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendSettingsCollection []ApplicationGatewayBackendSettings `pulumi:"backendSettingsCollection"` // Custom error configurations of the application gateway resource. CustomErrorConfigurations []ApplicationGatewayCustomError `pulumi:"customErrorConfigurations"` // Whether FIPS is enabled on the application gateway resource. @@ -295,12 +323,18 @@ type applicationGatewayArgs struct { FrontendPorts []ApplicationGatewayFrontendPort `pulumi:"frontendPorts"` // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). GatewayIPConfigurations []ApplicationGatewayIPConfiguration `pulumi:"gatewayIPConfigurations"` + // Global Configuration. + GlobalConfiguration *ApplicationGatewayGlobalConfiguration `pulumi:"globalConfiguration"` // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). HttpListeners []ApplicationGatewayHttpListener `pulumi:"httpListeners"` // Resource ID. Id *string `pulumi:"id"` // The identity of the application gateway, if configured. Identity *ManagedServiceIdentity `pulumi:"identity"` + // Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + Listeners []ApplicationGatewayListener `pulumi:"listeners"` + // Load distribution policies of the application gateway resource. + LoadDistributionPolicies []ApplicationGatewayLoadDistributionPolicy `pulumi:"loadDistributionPolicies"` // Resource location. Location *string `pulumi:"location"` // PrivateLink configurations on application gateway. @@ -315,6 +349,8 @@ type applicationGatewayArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Rewrite rules for the application gateway resource. RewriteRuleSets []ApplicationGatewayRewriteRuleSet `pulumi:"rewriteRuleSets"` + // Routing rules of the application gateway resource. + RoutingRules []ApplicationGatewayRoutingRule `pulumi:"routingRules"` // SKU of the application gateway resource. Sku *ApplicationGatewaySku `pulumi:"sku"` // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). @@ -349,6 +385,8 @@ type ApplicationGatewayArgs struct { BackendAddressPools ApplicationGatewayBackendAddressPoolArrayInput // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). BackendHttpSettingsCollection ApplicationGatewayBackendHttpSettingsArrayInput + // Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendSettingsCollection ApplicationGatewayBackendSettingsArrayInput // Custom error configurations of the application gateway resource. CustomErrorConfigurations ApplicationGatewayCustomErrorArrayInput // Whether FIPS is enabled on the application gateway resource. @@ -365,12 +403,18 @@ type ApplicationGatewayArgs struct { FrontendPorts ApplicationGatewayFrontendPortArrayInput // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). GatewayIPConfigurations ApplicationGatewayIPConfigurationArrayInput + // Global Configuration. + GlobalConfiguration ApplicationGatewayGlobalConfigurationPtrInput // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). HttpListeners ApplicationGatewayHttpListenerArrayInput // Resource ID. Id pulumi.StringPtrInput // The identity of the application gateway, if configured. Identity ManagedServiceIdentityPtrInput + // Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + Listeners ApplicationGatewayListenerArrayInput + // Load distribution policies of the application gateway resource. + LoadDistributionPolicies ApplicationGatewayLoadDistributionPolicyArrayInput // Resource location. Location pulumi.StringPtrInput // PrivateLink configurations on application gateway. @@ -385,6 +429,8 @@ type ApplicationGatewayArgs struct { ResourceGroupName pulumi.StringInput // Rewrite rules for the application gateway resource. RewriteRuleSets ApplicationGatewayRewriteRuleSetArrayInput + // Routing rules of the application gateway resource. + RoutingRules ApplicationGatewayRoutingRuleArrayInput // SKU of the application gateway resource. Sku ApplicationGatewaySkuPtrInput // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). @@ -472,6 +518,13 @@ func (o ApplicationGatewayOutput) BackendHttpSettingsCollection() ApplicationGat }).(ApplicationGatewayBackendHttpSettingsResponseArrayOutput) } +// Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayOutput) BackendSettingsCollection() ApplicationGatewayBackendSettingsResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayBackendSettingsResponseArrayOutput { + return v.BackendSettingsCollection + }).(ApplicationGatewayBackendSettingsResponseArrayOutput) +} + // Custom error configurations of the application gateway resource. func (o ApplicationGatewayOutput) CustomErrorConfigurations() ApplicationGatewayCustomErrorResponseArrayOutput { return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayCustomErrorResponseArrayOutput { @@ -479,6 +532,11 @@ func (o ApplicationGatewayOutput) CustomErrorConfigurations() ApplicationGateway }).(ApplicationGatewayCustomErrorResponseArrayOutput) } +// The default predefined SSL Policy applied on the application gateway resource. +func (o ApplicationGatewayOutput) DefaultPredefinedSslPolicy() pulumi.StringOutput { + return o.ApplyT(func(v *ApplicationGateway) pulumi.StringOutput { return v.DefaultPredefinedSslPolicy }).(pulumi.StringOutput) +} + // Whether FIPS is enabled on the application gateway resource. func (o ApplicationGatewayOutput) EnableFips() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ApplicationGateway) pulumi.BoolPtrOutput { return v.EnableFips }).(pulumi.BoolPtrOutput) @@ -523,6 +581,13 @@ func (o ApplicationGatewayOutput) GatewayIPConfigurations() ApplicationGatewayIP }).(ApplicationGatewayIPConfigurationResponseArrayOutput) } +// Global Configuration. +func (o ApplicationGatewayOutput) GlobalConfiguration() ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return v.GlobalConfiguration + }).(ApplicationGatewayGlobalConfigurationResponsePtrOutput) +} + // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). func (o ApplicationGatewayOutput) HttpListeners() ApplicationGatewayHttpListenerResponseArrayOutput { return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayHttpListenerResponseArrayOutput { return v.HttpListeners }).(ApplicationGatewayHttpListenerResponseArrayOutput) @@ -533,6 +598,18 @@ func (o ApplicationGatewayOutput) Identity() ManagedServiceIdentityResponsePtrOu return o.ApplyT(func(v *ApplicationGateway) ManagedServiceIdentityResponsePtrOutput { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) } +// Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayOutput) Listeners() ApplicationGatewayListenerResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayListenerResponseArrayOutput { return v.Listeners }).(ApplicationGatewayListenerResponseArrayOutput) +} + +// Load distribution policies of the application gateway resource. +func (o ApplicationGatewayOutput) LoadDistributionPolicies() ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { + return v.LoadDistributionPolicies + }).(ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) +} + // Resource location. func (o ApplicationGatewayOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *ApplicationGateway) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) @@ -598,6 +675,11 @@ func (o ApplicationGatewayOutput) RewriteRuleSets() ApplicationGatewayRewriteRul }).(ApplicationGatewayRewriteRuleSetResponseArrayOutput) } +// Routing rules of the application gateway resource. +func (o ApplicationGatewayOutput) RoutingRules() ApplicationGatewayRoutingRuleResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewayRoutingRuleResponseArrayOutput { return v.RoutingRules }).(ApplicationGatewayRoutingRuleResponseArrayOutput) +} + // SKU of the application gateway resource. func (o ApplicationGatewayOutput) Sku() ApplicationGatewaySkuResponsePtrOutput { return o.ApplyT(func(v *ApplicationGateway) ApplicationGatewaySkuResponsePtrOutput { return v.Sku }).(ApplicationGatewaySkuResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGatewayPrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGatewayPrivateEndpointConnection.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGatewayPrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGatewayPrivateEndpointConnection.go index 61e3cbe6..4ee596f3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationGatewayPrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationGatewayPrivateEndpointConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Private Endpoint connection on an application gateway. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ApplicationGatewayPrivateEndpointConnection struct { pulumi.CustomResourceState @@ -85,8 +86,21 @@ func NewApplicationGatewayPrivateEndpointConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ApplicationGatewayPrivateEndpointConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ApplicationGatewayPrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ApplicationGatewayPrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ApplicationGatewayPrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ApplicationGatewayPrivateEndpointConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ApplicationGatewayPrivateEndpointConnection err := ctx.RegisterResource("azure-native:network:ApplicationGatewayPrivateEndpointConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationSecurityGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationSecurityGroup.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationSecurityGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationSecurityGroup.go index 988c3905..508871b0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/applicationSecurityGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/applicationSecurityGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // An application security group in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ApplicationSecurityGroup struct { pulumi.CustomResourceState @@ -148,8 +149,21 @@ func NewApplicationSecurityGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ApplicationSecurityGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ApplicationSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ApplicationSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ApplicationSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ApplicationSecurityGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ApplicationSecurityGroup err := ctx.RegisterResource("azure-native:network:ApplicationSecurityGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/azureFirewall.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/azureFirewall.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/azureFirewall.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/azureFirewall.go index e430fcbf..812d62bd 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/azureFirewall.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/azureFirewall.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Azure Firewall resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type AzureFirewall struct { pulumi.CustomResourceState @@ -157,8 +158,21 @@ func NewAzureFirewall(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:AzureFirewall"), }, + { + Type: pulumi.String("azure-native:network/v20221101:AzureFirewall"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:AzureFirewall"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:AzureFirewall"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:AzureFirewall"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource AzureFirewall err := ctx.RegisterResource("azure-native:network:AzureFirewall", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/bastionHost.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/bastionHost.go similarity index 60% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/bastionHost.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/bastionHost.go index c5ca8e54..4cc56012 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/bastionHost.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/bastionHost.go @@ -7,17 +7,30 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Bastion Host resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type BastionHost struct { pulumi.CustomResourceState + // Enable/Disable Copy/Paste feature of the Bastion Host resource. + DisableCopyPaste pulumi.BoolPtrOutput `pulumi:"disableCopyPaste"` // FQDN for the endpoint on which bastion host is accessible. DnsName pulumi.StringPtrOutput `pulumi:"dnsName"` + // Enable/Disable File Copy feature of the Bastion Host resource. + EnableFileCopy pulumi.BoolPtrOutput `pulumi:"enableFileCopy"` + // Enable/Disable IP Connect feature of the Bastion Host resource. + EnableIpConnect pulumi.BoolPtrOutput `pulumi:"enableIpConnect"` + // Enable/Disable Kerberos feature of the Bastion Host resource. + EnableKerberos pulumi.BoolPtrOutput `pulumi:"enableKerberos"` + // Enable/Disable Shareable Link of the Bastion Host resource. + EnableShareableLink pulumi.BoolPtrOutput `pulumi:"enableShareableLink"` + // Enable/Disable Tunneling feature of the Bastion Host resource. + EnableTunneling pulumi.BoolPtrOutput `pulumi:"enableTunneling"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // IP configuration of the Bastion Host resource. @@ -28,6 +41,10 @@ type BastionHost struct { Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the bastion host resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // The scale units for the Bastion Host resource. + ScaleUnits pulumi.IntPtrOutput `pulumi:"scaleUnits"` + // The sku of this Bastion Host. + Sku SkuResponsePtrOutput `pulumi:"sku"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type. @@ -44,6 +61,24 @@ func NewBastionHost(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } + if args.DisableCopyPaste == nil { + args.DisableCopyPaste = pulumi.BoolPtr(false) + } + if args.EnableFileCopy == nil { + args.EnableFileCopy = pulumi.BoolPtr(false) + } + if args.EnableIpConnect == nil { + args.EnableIpConnect = pulumi.BoolPtr(false) + } + if args.EnableKerberos == nil { + args.EnableKerberos = pulumi.BoolPtr(false) + } + if args.EnableShareableLink == nil { + args.EnableShareableLink = pulumi.BoolPtr(false) + } + if args.EnableTunneling == nil { + args.EnableTunneling = pulumi.BoolPtr(false) + } aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:network/v20190401:BastionHost"), @@ -111,8 +146,21 @@ func NewBastionHost(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:BastionHost"), }, + { + Type: pulumi.String("azure-native:network/v20221101:BastionHost"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:BastionHost"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:BastionHost"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:BastionHost"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource BastionHost err := ctx.RegisterResource("azure-native:network:BastionHost", name, args, &resource, opts...) if err != nil { @@ -147,8 +195,20 @@ func (BastionHostState) ElementType() reflect.Type { type bastionHostArgs struct { // The name of the Bastion Host. BastionHostName *string `pulumi:"bastionHostName"` + // Enable/Disable Copy/Paste feature of the Bastion Host resource. + DisableCopyPaste *bool `pulumi:"disableCopyPaste"` // FQDN for the endpoint on which bastion host is accessible. DnsName *string `pulumi:"dnsName"` + // Enable/Disable File Copy feature of the Bastion Host resource. + EnableFileCopy *bool `pulumi:"enableFileCopy"` + // Enable/Disable IP Connect feature of the Bastion Host resource. + EnableIpConnect *bool `pulumi:"enableIpConnect"` + // Enable/Disable Kerberos feature of the Bastion Host resource. + EnableKerberos *bool `pulumi:"enableKerberos"` + // Enable/Disable Shareable Link of the Bastion Host resource. + EnableShareableLink *bool `pulumi:"enableShareableLink"` + // Enable/Disable Tunneling feature of the Bastion Host resource. + EnableTunneling *bool `pulumi:"enableTunneling"` // Resource ID. Id *string `pulumi:"id"` // IP configuration of the Bastion Host resource. @@ -157,6 +217,10 @@ type bastionHostArgs struct { Location *string `pulumi:"location"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // The scale units for the Bastion Host resource. + ScaleUnits *int `pulumi:"scaleUnits"` + // The sku of this Bastion Host. + Sku *Sku `pulumi:"sku"` // Resource tags. Tags map[string]string `pulumi:"tags"` } @@ -165,8 +229,20 @@ type bastionHostArgs struct { type BastionHostArgs struct { // The name of the Bastion Host. BastionHostName pulumi.StringPtrInput + // Enable/Disable Copy/Paste feature of the Bastion Host resource. + DisableCopyPaste pulumi.BoolPtrInput // FQDN for the endpoint on which bastion host is accessible. DnsName pulumi.StringPtrInput + // Enable/Disable File Copy feature of the Bastion Host resource. + EnableFileCopy pulumi.BoolPtrInput + // Enable/Disable IP Connect feature of the Bastion Host resource. + EnableIpConnect pulumi.BoolPtrInput + // Enable/Disable Kerberos feature of the Bastion Host resource. + EnableKerberos pulumi.BoolPtrInput + // Enable/Disable Shareable Link of the Bastion Host resource. + EnableShareableLink pulumi.BoolPtrInput + // Enable/Disable Tunneling feature of the Bastion Host resource. + EnableTunneling pulumi.BoolPtrInput // Resource ID. Id pulumi.StringPtrInput // IP configuration of the Bastion Host resource. @@ -175,6 +251,10 @@ type BastionHostArgs struct { Location pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // The scale units for the Bastion Host resource. + ScaleUnits pulumi.IntPtrInput + // The sku of this Bastion Host. + Sku SkuPtrInput // Resource tags. Tags pulumi.StringMapInput } @@ -216,11 +296,41 @@ func (o BastionHostOutput) ToBastionHostOutputWithContext(ctx context.Context) B return o } +// Enable/Disable Copy/Paste feature of the Bastion Host resource. +func (o BastionHostOutput) DisableCopyPaste() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.DisableCopyPaste }).(pulumi.BoolPtrOutput) +} + // FQDN for the endpoint on which bastion host is accessible. func (o BastionHostOutput) DnsName() pulumi.StringPtrOutput { return o.ApplyT(func(v *BastionHost) pulumi.StringPtrOutput { return v.DnsName }).(pulumi.StringPtrOutput) } +// Enable/Disable File Copy feature of the Bastion Host resource. +func (o BastionHostOutput) EnableFileCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.EnableFileCopy }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable IP Connect feature of the Bastion Host resource. +func (o BastionHostOutput) EnableIpConnect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.EnableIpConnect }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Kerberos feature of the Bastion Host resource. +func (o BastionHostOutput) EnableKerberos() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.EnableKerberos }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Shareable Link of the Bastion Host resource. +func (o BastionHostOutput) EnableShareableLink() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.EnableShareableLink }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Tunneling feature of the Bastion Host resource. +func (o BastionHostOutput) EnableTunneling() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.BoolPtrOutput { return v.EnableTunneling }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o BastionHostOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *BastionHost) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -246,6 +356,16 @@ func (o BastionHostOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *BastionHost) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// The scale units for the Bastion Host resource. +func (o BastionHostOutput) ScaleUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BastionHost) pulumi.IntPtrOutput { return v.ScaleUnits }).(pulumi.IntPtrOutput) +} + +// The sku of this Bastion Host. +func (o BastionHostOutput) Sku() SkuResponsePtrOutput { + return o.ApplyT(func(v *BastionHost) SkuResponsePtrOutput { return v.Sku }).(SkuResponsePtrOutput) +} + // Resource tags. func (o BastionHostOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *BastionHost) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/configurationPolicyGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/configurationPolicyGroup.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/configurationPolicyGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/configurationPolicyGroup.go index dbbc7860..347b6576 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/configurationPolicyGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/configurationPolicyGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnServerConfigurationPolicyGroup Resource. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-01-01 type ConfigurationPolicyGroup struct { pulumi.CustomResourceState @@ -63,8 +64,21 @@ func NewConfigurationPolicyGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ConfigurationPolicyGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ConfigurationPolicyGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ConfigurationPolicyGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ConfigurationPolicyGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ConfigurationPolicyGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ConfigurationPolicyGroup err := ctx.RegisterResource("azure-native:network:ConfigurationPolicyGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectionMonitor.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectionMonitor.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectionMonitor.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectionMonitor.go index a5f79f4e..248bbf71 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectionMonitor.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectionMonitor.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Information about the connection monitor. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ConnectionMonitor struct { pulumi.CustomResourceState @@ -67,10 +68,10 @@ func NewConnectionMonitor(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } - if isZero(args.AutoStart) { + if args.AutoStart == nil { args.AutoStart = pulumi.BoolPtr(true) } - if isZero(args.MonitoringIntervalInSeconds) { + if args.MonitoringIntervalInSeconds == nil { args.MonitoringIntervalInSeconds = pulumi.IntPtr(60) } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -176,8 +177,21 @@ func NewConnectionMonitor(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ConnectionMonitor"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ConnectionMonitor"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ConnectionMonitor"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ConnectionMonitor"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ConnectionMonitor"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ConnectionMonitor err := ctx.RegisterResource("azure-native:network:ConnectionMonitor", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectivityConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectivityConfiguration.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectivityConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectivityConfiguration.go index 18ebefc7..30f66b22 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/connectivityConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/connectivityConfiguration.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The network manager connectivity configuration resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type ConnectivityConfiguration struct { pulumi.CustomResourceState @@ -24,8 +25,6 @@ type ConnectivityConfiguration struct { DeleteExistingPeering pulumi.StringPtrOutput `pulumi:"deleteExistingPeering"` // A description of the connectivity configuration. Description pulumi.StringPtrOutput `pulumi:"description"` - // A friendly name for the resource. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // List of hubItems @@ -36,6 +35,8 @@ type ConnectivityConfiguration struct { Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the connectivity configuration resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -49,6 +50,9 @@ func NewConnectivityConfiguration(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } + if args.AppliesToGroups == nil { + return nil, errors.New("invalid value for required argument 'AppliesToGroups'") + } if args.ConnectivityTopology == nil { return nil, errors.New("invalid value for required argument 'ConnectivityTopology'") } @@ -83,8 +87,21 @@ func NewConnectivityConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ConnectivityConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ConnectivityConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ConnectivityConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ConnectivityConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ConnectivityConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ConnectivityConfiguration err := ctx.RegisterResource("azure-native:network:ConnectivityConfiguration", name, args, &resource, opts...) if err != nil { @@ -127,8 +144,6 @@ type connectivityConfigurationArgs struct { DeleteExistingPeering *string `pulumi:"deleteExistingPeering"` // A description of the connectivity configuration. Description *string `pulumi:"description"` - // A friendly name for the resource. - DisplayName *string `pulumi:"displayName"` // List of hubItems Hubs []Hub `pulumi:"hubs"` // Flag if global mesh is supported. @@ -151,8 +166,6 @@ type ConnectivityConfigurationArgs struct { DeleteExistingPeering pulumi.StringPtrInput // A description of the connectivity configuration. Description pulumi.StringPtrInput - // A friendly name for the resource. - DisplayName pulumi.StringPtrInput // List of hubItems Hubs HubArrayInput // Flag if global mesh is supported. @@ -220,11 +233,6 @@ func (o ConnectivityConfigurationOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectivityConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the resource. -func (o ConnectivityConfigurationOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ConnectivityConfiguration) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o ConnectivityConfigurationOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *ConnectivityConfiguration) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -250,6 +258,11 @@ func (o ConnectivityConfigurationOutput) ProvisioningState() pulumi.StringOutput return o.ApplyT(func(v *ConnectivityConfiguration) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o ConnectivityConfigurationOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *ConnectivityConfiguration) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o ConnectivityConfigurationOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *ConnectivityConfiguration) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/customIPPrefix.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/customIPPrefix.go similarity index 63% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/customIPPrefix.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/customIPPrefix.go index 350d7657..ec0486a5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/customIPPrefix.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/customIPPrefix.go @@ -7,33 +7,54 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Custom IP prefix resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type CustomIPPrefix struct { pulumi.CustomResourceState + // The ASN for CIDR advertising. Should be an integer as string. + Asn pulumi.StringPtrOutput `pulumi:"asn"` + // Authorization message for WAN validation. + AuthorizationMessage pulumi.StringPtrOutput `pulumi:"authorizationMessage"` + // The list of all Children for IPv6 /48 CustomIpPrefix. + ChildCustomIpPrefixes SubResourceResponseArrayOutput `pulumi:"childCustomIpPrefixes"` // The prefix range in CIDR notation. Should include the start address and the prefix length. Cidr pulumi.StringPtrOutput `pulumi:"cidr"` // The commissioned state of the Custom IP Prefix. CommissionedState pulumi.StringPtrOutput `pulumi:"commissionedState"` + // The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. + CustomIpPrefixParent SubResourceResponsePtrOutput `pulumi:"customIpPrefixParent"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` + // Whether to do express route advertise. + ExpressRouteAdvertise pulumi.BoolPtrOutput `pulumi:"expressRouteAdvertise"` // The extended location of the custom IP prefix. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` + // The reason why resource is in failed state. + FailedReason pulumi.StringOutput `pulumi:"failedReason"` + // The Geo for CIDR advertising. Should be an Geo code. + Geo pulumi.StringPtrOutput `pulumi:"geo"` // Resource location. Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` + // Whether to Advertise the range to Internet. + NoInternetAdvertise pulumi.BoolPtrOutput `pulumi:"noInternetAdvertise"` + // Type of custom IP prefix. Should be Singular, Parent, or Child. + PrefixType pulumi.StringPtrOutput `pulumi:"prefixType"` // The provisioning state of the custom IP prefix resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The list of all referenced PublicIpPrefixes. PublicIpPrefixes SubResourceResponseArrayOutput `pulumi:"publicIpPrefixes"` // The resource GUID property of the custom IP prefix resource. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` + // Signed message for WAN validation. + SignedMessage pulumi.StringPtrOutput `pulumi:"signedMessage"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type. @@ -89,8 +110,21 @@ func NewCustomIPPrefix(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:CustomIPPrefix"), }, + { + Type: pulumi.String("azure-native:network/v20221101:CustomIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:CustomIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:CustomIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:CustomIPPrefix"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource CustomIPPrefix err := ctx.RegisterResource("azure-native:network:CustomIPPrefix", name, args, &resource, opts...) if err != nil { @@ -123,20 +157,36 @@ func (CustomIPPrefixState) ElementType() reflect.Type { } type customIPPrefixArgs struct { + // The ASN for CIDR advertising. Should be an integer as string. + Asn *string `pulumi:"asn"` + // Authorization message for WAN validation. + AuthorizationMessage *string `pulumi:"authorizationMessage"` // The prefix range in CIDR notation. Should include the start address and the prefix length. Cidr *string `pulumi:"cidr"` // The commissioned state of the Custom IP Prefix. CommissionedState *string `pulumi:"commissionedState"` // The name of the custom IP prefix. CustomIpPrefixName *string `pulumi:"customIpPrefixName"` + // The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. + CustomIpPrefixParent *SubResource `pulumi:"customIpPrefixParent"` + // Whether to do express route advertise. + ExpressRouteAdvertise *bool `pulumi:"expressRouteAdvertise"` // The extended location of the custom IP prefix. ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` + // The Geo for CIDR advertising. Should be an Geo code. + Geo *string `pulumi:"geo"` // Resource ID. Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` + // Whether to Advertise the range to Internet. + NoInternetAdvertise *bool `pulumi:"noInternetAdvertise"` + // Type of custom IP prefix. Should be Singular, Parent, or Child. + PrefixType *string `pulumi:"prefixType"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // Signed message for WAN validation. + SignedMessage *string `pulumi:"signedMessage"` // Resource tags. Tags map[string]string `pulumi:"tags"` // A list of availability zones denoting the IP allocated for the resource needs to come from. @@ -145,20 +195,36 @@ type customIPPrefixArgs struct { // The set of arguments for constructing a CustomIPPrefix resource. type CustomIPPrefixArgs struct { + // The ASN for CIDR advertising. Should be an integer as string. + Asn pulumi.StringPtrInput + // Authorization message for WAN validation. + AuthorizationMessage pulumi.StringPtrInput // The prefix range in CIDR notation. Should include the start address and the prefix length. Cidr pulumi.StringPtrInput // The commissioned state of the Custom IP Prefix. CommissionedState pulumi.StringPtrInput // The name of the custom IP prefix. CustomIpPrefixName pulumi.StringPtrInput + // The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. + CustomIpPrefixParent SubResourcePtrInput + // Whether to do express route advertise. + ExpressRouteAdvertise pulumi.BoolPtrInput // The extended location of the custom IP prefix. ExtendedLocation ExtendedLocationPtrInput + // The Geo for CIDR advertising. Should be an Geo code. + Geo pulumi.StringPtrInput // Resource ID. Id pulumi.StringPtrInput // Resource location. Location pulumi.StringPtrInput + // Whether to Advertise the range to Internet. + NoInternetAdvertise pulumi.BoolPtrInput + // Type of custom IP prefix. Should be Singular, Parent, or Child. + PrefixType pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // Signed message for WAN validation. + SignedMessage pulumi.StringPtrInput // Resource tags. Tags pulumi.StringMapInput // A list of availability zones denoting the IP allocated for the resource needs to come from. @@ -202,6 +268,21 @@ func (o CustomIPPrefixOutput) ToCustomIPPrefixOutputWithContext(ctx context.Cont return o } +// The ASN for CIDR advertising. Should be an integer as string. +func (o CustomIPPrefixOutput) Asn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.Asn }).(pulumi.StringPtrOutput) +} + +// Authorization message for WAN validation. +func (o CustomIPPrefixOutput) AuthorizationMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.AuthorizationMessage }).(pulumi.StringPtrOutput) +} + +// The list of all Children for IPv6 /48 CustomIpPrefix. +func (o CustomIPPrefixOutput) ChildCustomIpPrefixes() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *CustomIPPrefix) SubResourceResponseArrayOutput { return v.ChildCustomIpPrefixes }).(SubResourceResponseArrayOutput) +} + // The prefix range in CIDR notation. Should include the start address and the prefix length. func (o CustomIPPrefixOutput) Cidr() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.Cidr }).(pulumi.StringPtrOutput) @@ -212,16 +293,36 @@ func (o CustomIPPrefixOutput) CommissionedState() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.CommissionedState }).(pulumi.StringPtrOutput) } +// The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. +func (o CustomIPPrefixOutput) CustomIpPrefixParent() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) SubResourceResponsePtrOutput { return v.CustomIpPrefixParent }).(SubResourceResponsePtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o CustomIPPrefixOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// Whether to do express route advertise. +func (o CustomIPPrefixOutput) ExpressRouteAdvertise() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.BoolPtrOutput { return v.ExpressRouteAdvertise }).(pulumi.BoolPtrOutput) +} + // The extended location of the custom IP prefix. func (o CustomIPPrefixOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { return o.ApplyT(func(v *CustomIPPrefix) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } +// The reason why resource is in failed state. +func (o CustomIPPrefixOutput) FailedReason() pulumi.StringOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringOutput { return v.FailedReason }).(pulumi.StringOutput) +} + +// The Geo for CIDR advertising. Should be an Geo code. +func (o CustomIPPrefixOutput) Geo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.Geo }).(pulumi.StringPtrOutput) +} + // Resource location. func (o CustomIPPrefixOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) @@ -232,6 +333,16 @@ func (o CustomIPPrefixOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// Whether to Advertise the range to Internet. +func (o CustomIPPrefixOutput) NoInternetAdvertise() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.BoolPtrOutput { return v.NoInternetAdvertise }).(pulumi.BoolPtrOutput) +} + +// Type of custom IP prefix. Should be Singular, Parent, or Child. +func (o CustomIPPrefixOutput) PrefixType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.PrefixType }).(pulumi.StringPtrOutput) +} + // The provisioning state of the custom IP prefix resource. func (o CustomIPPrefixOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) @@ -247,6 +358,11 @@ func (o CustomIPPrefixOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) } +// Signed message for WAN validation. +func (o CustomIPPrefixOutput) SignedMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringPtrOutput { return v.SignedMessage }).(pulumi.StringPtrOutput) +} + // Resource tags. func (o CustomIPPrefixOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *CustomIPPrefix) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosCustomPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosCustomPolicy.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosCustomPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosCustomPolicy.go index 12558622..a7583ba3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosCustomPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosCustomPolicy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A DDoS custom policy in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type DdosCustomPolicy struct { pulumi.CustomResourceState @@ -22,12 +23,8 @@ type DdosCustomPolicy struct { Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` - // The protocol-specific DDoS policy customization parameters. - ProtocolCustomSettings ProtocolCustomSettingsFormatResponseArrayOutput `pulumi:"protocolCustomSettings"` // The provisioning state of the DDoS custom policy resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // The list of public IPs associated with the DDoS custom policy resource. This list is read-only. - PublicIPAddresses SubResourceResponseArrayOutput `pulumi:"publicIPAddresses"` // The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // Resource tags. @@ -122,8 +119,21 @@ func NewDdosCustomPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:DdosCustomPolicy"), }, + { + Type: pulumi.String("azure-native:network/v20221101:DdosCustomPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:DdosCustomPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:DdosCustomPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:DdosCustomPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DdosCustomPolicy err := ctx.RegisterResource("azure-native:network:DdosCustomPolicy", name, args, &resource, opts...) if err != nil { @@ -162,8 +172,6 @@ type ddosCustomPolicyArgs struct { Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` - // The protocol-specific DDoS policy customization parameters. - ProtocolCustomSettings []ProtocolCustomSettingsFormat `pulumi:"protocolCustomSettings"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags. @@ -178,8 +186,6 @@ type DdosCustomPolicyArgs struct { Id pulumi.StringPtrInput // Resource location. Location pulumi.StringPtrInput - // The protocol-specific DDoS policy customization parameters. - ProtocolCustomSettings ProtocolCustomSettingsFormatArrayInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Resource tags. @@ -238,23 +244,11 @@ func (o DdosCustomPolicyOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *DdosCustomPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The protocol-specific DDoS policy customization parameters. -func (o DdosCustomPolicyOutput) ProtocolCustomSettings() ProtocolCustomSettingsFormatResponseArrayOutput { - return o.ApplyT(func(v *DdosCustomPolicy) ProtocolCustomSettingsFormatResponseArrayOutput { - return v.ProtocolCustomSettings - }).(ProtocolCustomSettingsFormatResponseArrayOutput) -} - // The provisioning state of the DDoS custom policy resource. func (o DdosCustomPolicyOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *DdosCustomPolicy) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// The list of public IPs associated with the DDoS custom policy resource. This list is read-only. -func (o DdosCustomPolicyOutput) PublicIPAddresses() SubResourceResponseArrayOutput { - return o.ApplyT(func(v *DdosCustomPolicy) SubResourceResponseArrayOutput { return v.PublicIPAddresses }).(SubResourceResponseArrayOutput) -} - // The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. func (o DdosCustomPolicyOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *DdosCustomPolicy) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosProtectionPlan.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosProtectionPlan.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosProtectionPlan.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosProtectionPlan.go index 7736435f..7a949fb2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ddosProtectionPlan.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ddosProtectionPlan.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A DDoS protection plan in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type DdosProtectionPlan struct { pulumi.CustomResourceState @@ -24,6 +25,8 @@ type DdosProtectionPlan struct { Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the DDoS protection plan resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // The list of public IPs associated with the DDoS protection plan resource. This list is read-only. + PublicIPAddresses SubResourceResponseArrayOutput `pulumi:"publicIPAddresses"` // The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // Resource tags. @@ -138,8 +141,21 @@ func NewDdosProtectionPlan(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:DdosProtectionPlan"), }, + { + Type: pulumi.String("azure-native:network/v20221101:DdosProtectionPlan"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:DdosProtectionPlan"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:DdosProtectionPlan"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:DdosProtectionPlan"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DdosProtectionPlan err := ctx.RegisterResource("azure-native:network:DdosProtectionPlan", name, args, &resource, opts...) if err != nil { @@ -251,6 +267,11 @@ func (o DdosProtectionPlanOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *DdosProtectionPlan) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// The list of public IPs associated with the DDoS protection plan resource. This list is read-only. +func (o DdosProtectionPlanOutput) PublicIPAddresses() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *DdosProtectionPlan) SubResourceResponseArrayOutput { return v.PublicIPAddresses }).(SubResourceResponseArrayOutput) +} + // The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. func (o DdosProtectionPlanOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *DdosProtectionPlan) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultAdminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultAdminRule.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultAdminRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultAdminRule.go index 1d6faf28..bb6cafb3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultAdminRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultAdminRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Network default admin rule. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type DefaultAdminRule struct { pulumi.CustomResourceState @@ -26,8 +27,6 @@ type DefaultAdminRule struct { Destinations AddressPrefixItemResponseArrayOutput `pulumi:"destinations"` // Indicates if the traffic matched against the rule in inbound or outbound. Direction pulumi.StringOutput `pulumi:"direction"` - // A friendly name for the rule. - DisplayName pulumi.StringOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Default rule flag. @@ -43,6 +42,8 @@ type DefaultAdminRule struct { Protocol pulumi.StringOutput `pulumi:"protocol"` // The provisioning state of the resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The source port ranges. SourcePortRanges pulumi.StringArrayOutput `pulumi:"sourcePortRanges"` // The CIDR or source IP ranges. @@ -101,8 +102,21 @@ func NewDefaultAdminRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:DefaultAdminRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:DefaultAdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:DefaultAdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:DefaultAdminRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:DefaultAdminRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DefaultAdminRule err := ctx.RegisterResource("azure-native:network:DefaultAdminRule", name, args, &resource, opts...) if err != nil { @@ -135,7 +149,7 @@ func (DefaultAdminRuleState) ElementType() reflect.Type { } type defaultAdminRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // Default rule flag. Flag *string `pulumi:"flag"` @@ -154,7 +168,7 @@ type defaultAdminRuleArgs struct { // The set of arguments for constructing a DefaultAdminRule resource. type DefaultAdminRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput // Default rule flag. Flag pulumi.StringPtrInput @@ -233,11 +247,6 @@ func (o DefaultAdminRuleOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) } -// A friendly name for the rule. -func (o DefaultAdminRuleOutput) DisplayName() pulumi.StringOutput { - return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o DefaultAdminRuleOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -274,6 +283,11 @@ func (o DefaultAdminRuleOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o DefaultAdminRuleOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The source port ranges. func (o DefaultAdminRuleOutput) SourcePortRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *DefaultAdminRule) pulumi.StringArrayOutput { return v.SourcePortRanges }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultUserRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultUserRule.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultUserRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultUserRule.go index 5d28452b..077cd58b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/defaultUserRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/defaultUserRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Network security default user rule. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2022-04-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type DefaultUserRule struct { pulumi.CustomResourceState @@ -24,8 +25,6 @@ type DefaultUserRule struct { Destinations AddressPrefixItemResponseArrayOutput `pulumi:"destinations"` // Indicates if the traffic matched against the rule in inbound or outbound. Direction pulumi.StringOutput `pulumi:"direction"` - // A friendly name for the rule. - DisplayName pulumi.StringOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Default rule flag. @@ -87,6 +86,7 @@ func NewDefaultUserRule(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DefaultUserRule err := ctx.RegisterResource("azure-native:network:DefaultUserRule", name, args, &resource, opts...) if err != nil { @@ -119,7 +119,7 @@ func (DefaultUserRuleState) ElementType() reflect.Type { } type defaultUserRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // Default rule flag. Flag *string `pulumi:"flag"` @@ -138,7 +138,7 @@ type defaultUserRuleArgs struct { // The set of arguments for constructing a DefaultUserRule resource. type DefaultUserRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput // Default rule flag. Flag pulumi.StringPtrInput @@ -212,11 +212,6 @@ func (o DefaultUserRuleOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v *DefaultUserRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) } -// A friendly name for the rule. -func (o DefaultUserRuleOutput) DisplayName() pulumi.StringOutput { - return o.ApplyT(func(v *DefaultUserRule) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o DefaultUserRuleOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *DefaultUserRule) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsForwardingRuleset.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsForwardingRuleset.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsForwardingRuleset.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsForwardingRuleset.go index 7e2f51b1..c3e94290 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsForwardingRuleset.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsForwardingRuleset.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a DNS forwarding ruleset. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. Prior API version in Azure Native 1.x: 2020-04-01-preview type DnsForwardingRuleset struct { pulumi.CustomResourceState @@ -43,6 +44,9 @@ func NewDnsForwardingRuleset(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } + if args.DnsResolverOutboundEndpoints == nil { + return nil, errors.New("invalid value for required argument 'DnsResolverOutboundEndpoints'") + } if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } @@ -55,6 +59,7 @@ func NewDnsForwardingRuleset(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DnsForwardingRuleset err := ctx.RegisterResource("azure-native:network:DnsForwardingRuleset", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsResolver.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsResolver.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsResolver.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsResolver.go index 0da27bd4..954bd2b4 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dnsResolver.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dnsResolver.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. Prior API version in Azure Native 1.x: 2020-04-01-preview type DnsResolver struct { pulumi.CustomResourceState @@ -60,6 +61,7 @@ func NewDnsResolver(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DnsResolver err := ctx.RegisterResource("azure-native:network:DnsResolver", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dscpConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dscpConfiguration.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dscpConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dscpConfiguration.go index 242c9921..e890ab8a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/dscpConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/dscpConfiguration.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// DSCP Configuration in a resource group. -// API Version: 2020-11-01. +// Differentiated Services Code Point configuration for any given network interface +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type DscpConfiguration struct { pulumi.CustomResourceState @@ -36,6 +37,8 @@ type DscpConfiguration struct { ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Qos Collection ID generated by RNM. QosCollectionId pulumi.StringOutput `pulumi:"qosCollectionId"` + // QoS object definitions + QosDefinitionCollection QosDefinitionResponseArrayOutput `pulumi:"qosDefinitionCollection"` // The resource GUID property of the DSCP Configuration resource. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // Source IP ranges. @@ -95,8 +98,21 @@ func NewDscpConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:DscpConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:DscpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:DscpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:DscpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:DscpConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DscpConfiguration err := ctx.RegisterResource("azure-native:network:DscpConfiguration", name, args, &resource, opts...) if err != nil { @@ -143,6 +159,8 @@ type dscpConfigurationArgs struct { Markings []int `pulumi:"markings"` // RNM supported protocol types. Protocol *string `pulumi:"protocol"` + // QoS object definitions + QosDefinitionCollection []QosDefinition `pulumi:"qosDefinitionCollection"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Source IP ranges. @@ -169,6 +187,8 @@ type DscpConfigurationArgs struct { Markings pulumi.IntArrayInput // RNM supported protocol types. Protocol pulumi.StringPtrInput + // QoS object definitions + QosDefinitionCollection QosDefinitionArrayInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Source IP ranges. @@ -266,6 +286,11 @@ func (o DscpConfigurationOutput) QosCollectionId() pulumi.StringOutput { return o.ApplyT(func(v *DscpConfiguration) pulumi.StringOutput { return v.QosCollectionId }).(pulumi.StringOutput) } +// QoS object definitions +func (o DscpConfigurationOutput) QosDefinitionCollection() QosDefinitionResponseArrayOutput { + return o.ApplyT(func(v *DscpConfiguration) QosDefinitionResponseArrayOutput { return v.QosDefinitionCollection }).(QosDefinitionResponseArrayOutput) +} + // The resource GUID property of the DSCP Configuration resource. func (o DscpConfigurationOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *DscpConfiguration) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/endpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/endpoint.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/endpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/endpoint.go index c3737016..0e3a93a2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/endpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/endpoint.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Class representing a Traffic Manager endpoint. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. Prior API version in Azure Native 1.x: 2018-08-01 type Endpoint struct { pulumi.CustomResourceState + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe pulumi.StringPtrOutput `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders EndpointPropertiesResponseCustomHeadersArrayOutput `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -86,11 +89,15 @@ func NewEndpoint(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20180801:Endpoint"), }, + { + Type: pulumi.String("azure-native:network/v20220401:Endpoint"), + }, { Type: pulumi.String("azure-native:network/v20220401preview:Endpoint"), }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Endpoint err := ctx.RegisterResource("azure-native:network:Endpoint", name, args, &resource, opts...) if err != nil { @@ -123,6 +130,8 @@ func (EndpointState) ElementType() reflect.Type { } type endpointArgs struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe *string `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders []EndpointPropertiesCustomHeaders `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -151,7 +160,7 @@ type endpointArgs struct { Priority *float64 `pulumi:"priority"` // The name of the Traffic Manager profile. ProfileName string `pulumi:"profileName"` - // The name of the resource group containing the Traffic Manager endpoint to be created or updated. + // The name of the resource group. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` // The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints. Subnets []EndpointPropertiesSubnets `pulumi:"subnets"` @@ -167,6 +176,8 @@ type endpointArgs struct { // The set of arguments for constructing a Endpoint resource. type EndpointArgs struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe pulumi.StringPtrInput // List of custom headers. CustomHeaders EndpointPropertiesCustomHeadersArrayInput // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -195,7 +206,7 @@ type EndpointArgs struct { Priority pulumi.Float64PtrInput // The name of the Traffic Manager profile. ProfileName pulumi.StringInput - // The name of the resource group containing the Traffic Manager endpoint to be created or updated. + // The name of the resource group. The name is case insensitive. ResourceGroupName pulumi.StringInput // The list of subnets, IP addresses, and/or address ranges mapped to this endpoint when using the 'Subnet' traffic routing method. An empty list will match all ranges not covered by other endpoints. Subnets EndpointPropertiesSubnetsArrayInput @@ -246,6 +257,11 @@ func (o EndpointOutput) ToEndpointOutputWithContext(ctx context.Context) Endpoin return o } +// If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. +func (o EndpointOutput) AlwaysServe() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.AlwaysServe }).(pulumi.StringPtrOutput) +} + // List of custom headers. func (o EndpointOutput) CustomHeaders() EndpointPropertiesResponseCustomHeadersArrayOutput { return o.ApplyT(func(v *Endpoint) EndpointPropertiesResponseCustomHeadersArrayOutput { return v.CustomHeaders }).(EndpointPropertiesResponseCustomHeadersArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/experiment.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/experiment.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/experiment.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/experiment.go index 72e1d5ec..6578fc1e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/experiment.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/experiment.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines the properties of an Experiment -// API Version: 2019-11-01. +// Azure REST API version: 2019-11-01. Prior API version in Azure Native 1.x: 2019-11-01 type Experiment struct { pulumi.CustomResourceState @@ -59,6 +60,7 @@ func NewExperiment(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Experiment err := ctx.RegisterResource("azure-native:network:Experiment", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuit.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuit.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuit.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuit.go index 58b6e55d..676d707b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuit.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuit.go @@ -7,17 +7,22 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // ExpressRouteCircuit resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteCircuit struct { pulumi.CustomResourceState // Allow classic operations. AllowClassicOperations pulumi.BoolPtrOutput `pulumi:"allowClassicOperations"` + // The authorizationKey. + AuthorizationKey pulumi.StringPtrOutput `pulumi:"authorizationKey"` + // The authorization status of the Circuit. + AuthorizationStatus pulumi.StringOutput `pulumi:"authorizationStatus"` // The list of authorizations. Authorizations ExpressRouteCircuitAuthorizationResponseArrayOutput `pulumi:"authorizations"` // The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource. @@ -201,8 +206,21 @@ func NewExpressRouteCircuit(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteCircuit"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteCircuit"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteCircuit"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteCircuit"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteCircuit"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteCircuit err := ctx.RegisterResource("azure-native:network:ExpressRouteCircuit", name, args, &resource, opts...) if err != nil { @@ -237,6 +255,8 @@ func (ExpressRouteCircuitState) ElementType() reflect.Type { type expressRouteCircuitArgs struct { // Allow classic operations. AllowClassicOperations *bool `pulumi:"allowClassicOperations"` + // The authorizationKey. + AuthorizationKey *string `pulumi:"authorizationKey"` // The list of authorizations. Authorizations []ExpressRouteCircuitAuthorizationType `pulumi:"authorizations"` // The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource. @@ -277,6 +297,8 @@ type expressRouteCircuitArgs struct { type ExpressRouteCircuitArgs struct { // Allow classic operations. AllowClassicOperations pulumi.BoolPtrInput + // The authorizationKey. + AuthorizationKey pulumi.StringPtrInput // The list of authorizations. Authorizations ExpressRouteCircuitAuthorizationTypeArrayInput // The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource. @@ -355,6 +377,16 @@ func (o ExpressRouteCircuitOutput) AllowClassicOperations() pulumi.BoolPtrOutput return o.ApplyT(func(v *ExpressRouteCircuit) pulumi.BoolPtrOutput { return v.AllowClassicOperations }).(pulumi.BoolPtrOutput) } +// The authorizationKey. +func (o ExpressRouteCircuitOutput) AuthorizationKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExpressRouteCircuit) pulumi.StringPtrOutput { return v.AuthorizationKey }).(pulumi.StringPtrOutput) +} + +// The authorization status of the Circuit. +func (o ExpressRouteCircuitOutput) AuthorizationStatus() pulumi.StringOutput { + return o.ApplyT(func(v *ExpressRouteCircuit) pulumi.StringOutput { return v.AuthorizationStatus }).(pulumi.StringOutput) +} + // The list of authorizations. func (o ExpressRouteCircuitOutput) Authorizations() ExpressRouteCircuitAuthorizationResponseArrayOutput { return o.ApplyT(func(v *ExpressRouteCircuit) ExpressRouteCircuitAuthorizationResponseArrayOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitAuthorization.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitAuthorization.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitAuthorization.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitAuthorization.go index 1fcd2b61..a72c0849 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitAuthorization.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitAuthorization.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Authorization in an ExpressRouteCircuit resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteCircuitAuthorization struct { pulumi.CustomResourceState @@ -176,8 +177,21 @@ func NewExpressRouteCircuitAuthorization(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteCircuitAuthorization"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteCircuitAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteCircuitAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteCircuitAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteCircuitAuthorization"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteCircuitAuthorization err := ctx.RegisterResource("azure-native:network:ExpressRouteCircuitAuthorization", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitConnection.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitConnection.go index e562f316..db9c7629 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteCircuitConnection struct { pulumi.CustomResourceState @@ -148,8 +149,21 @@ func NewExpressRouteCircuitConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteCircuitConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteCircuitConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteCircuitConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteCircuitConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteCircuitConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteCircuitConnection err := ctx.RegisterResource("azure-native:network:ExpressRouteCircuitConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitPeering.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitPeering.go index 7545f14a..849468db 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCircuitPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCircuitPeering.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Peering in an ExpressRouteCircuit resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteCircuitPeering struct { pulumi.CustomResourceState @@ -210,8 +211,21 @@ func NewExpressRouteCircuitPeering(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteCircuitPeering"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteCircuitPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteCircuitPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteCircuitPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteCircuitPeering"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteCircuitPeering err := ctx.RegisterResource("azure-native:network:ExpressRouteCircuitPeering", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteConnection.go similarity index 88% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteConnection.go index 576939e3..f3a7f22c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // ExpressRouteConnection resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteConnection struct { pulumi.CustomResourceState @@ -20,6 +21,8 @@ type ExpressRouteConnection struct { AuthorizationKey pulumi.StringPtrOutput `pulumi:"authorizationKey"` // Enable internet security. EnableInternetSecurity pulumi.BoolPtrOutput `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath pulumi.BoolPtrOutput `pulumi:"enablePrivateLinkFastPath"` // The ExpressRoute circuit peering. ExpressRouteCircuitPeering ExpressRouteCircuitPeeringIdResponseOutput `pulumi:"expressRouteCircuitPeering"` // Enable FastPath to vWan Firewall hub. @@ -135,8 +138,21 @@ func NewExpressRouteConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteConnection err := ctx.RegisterResource("azure-native:network:ExpressRouteConnection", name, args, &resource, opts...) if err != nil { @@ -175,6 +191,8 @@ type expressRouteConnectionArgs struct { ConnectionName *string `pulumi:"connectionName"` // Enable internet security. EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` // The ExpressRoute circuit peering. ExpressRouteCircuitPeering ExpressRouteCircuitPeeringId `pulumi:"expressRouteCircuitPeering"` // Enable FastPath to vWan Firewall hub. @@ -201,6 +219,8 @@ type ExpressRouteConnectionArgs struct { ConnectionName pulumi.StringPtrInput // Enable internet security. EnableInternetSecurity pulumi.BoolPtrInput + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath pulumi.BoolPtrInput // The ExpressRoute circuit peering. ExpressRouteCircuitPeering ExpressRouteCircuitPeeringIdInput // Enable FastPath to vWan Firewall hub. @@ -266,6 +286,11 @@ func (o ExpressRouteConnectionOutput) EnableInternetSecurity() pulumi.BoolPtrOut return o.ApplyT(func(v *ExpressRouteConnection) pulumi.BoolPtrOutput { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) } +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o ExpressRouteConnectionOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExpressRouteConnection) pulumi.BoolPtrOutput { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + // The ExpressRoute circuit peering. func (o ExpressRouteConnectionOutput) ExpressRouteCircuitPeering() ExpressRouteCircuitPeeringIdResponseOutput { return o.ApplyT(func(v *ExpressRouteConnection) ExpressRouteCircuitPeeringIdResponseOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCrossConnectionPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCrossConnectionPeering.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCrossConnectionPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCrossConnectionPeering.go index 9457f5f9..9686c20b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteCrossConnectionPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteCrossConnectionPeering.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Peering in an ExpressRoute Cross Connection resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteCrossConnectionPeering struct { pulumi.CustomResourceState @@ -159,8 +160,21 @@ func NewExpressRouteCrossConnectionPeering(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteCrossConnectionPeering"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteCrossConnectionPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteCrossConnectionPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteCrossConnectionPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteCrossConnectionPeering"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteCrossConnectionPeering err := ctx.RegisterResource("azure-native:network:ExpressRouteCrossConnectionPeering", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteGateway.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteGateway.go index 140b4798..938c9cb6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRouteGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRouteGateway.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // ExpressRoute gateway resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRouteGateway struct { pulumi.CustomResourceState + // Configures this gateway to accept traffic from non Virtual WAN networks. + AllowNonVirtualWanTraffic pulumi.BoolPtrOutput `pulumi:"allowNonVirtualWanTraffic"` // Configuration for auto scaling. AutoScaleConfiguration ExpressRouteGatewayPropertiesResponseAutoScaleConfigurationPtrOutput `pulumi:"autoScaleConfiguration"` // A unique read-only string that changes whenever the resource is updated. @@ -131,8 +134,21 @@ func NewExpressRouteGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRouteGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRouteGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRouteGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRouteGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRouteGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRouteGateway err := ctx.RegisterResource("azure-native:network:ExpressRouteGateway", name, args, &resource, opts...) if err != nil { @@ -165,8 +181,12 @@ func (ExpressRouteGatewayState) ElementType() reflect.Type { } type expressRouteGatewayArgs struct { + // Configures this gateway to accept traffic from non Virtual WAN networks. + AllowNonVirtualWanTraffic *bool `pulumi:"allowNonVirtualWanTraffic"` // Configuration for auto scaling. AutoScaleConfiguration *ExpressRouteGatewayPropertiesAutoScaleConfiguration `pulumi:"autoScaleConfiguration"` + // List of ExpressRoute connections to the ExpressRoute gateway. + ExpressRouteConnections []ExpressRouteConnectionType `pulumi:"expressRouteConnections"` // The name of the ExpressRoute gateway. ExpressRouteGatewayName *string `pulumi:"expressRouteGatewayName"` // Resource ID. @@ -183,8 +203,12 @@ type expressRouteGatewayArgs struct { // The set of arguments for constructing a ExpressRouteGateway resource. type ExpressRouteGatewayArgs struct { + // Configures this gateway to accept traffic from non Virtual WAN networks. + AllowNonVirtualWanTraffic pulumi.BoolPtrInput // Configuration for auto scaling. AutoScaleConfiguration ExpressRouteGatewayPropertiesAutoScaleConfigurationPtrInput + // List of ExpressRoute connections to the ExpressRoute gateway. + ExpressRouteConnections ExpressRouteConnectionTypeArrayInput // The name of the ExpressRoute gateway. ExpressRouteGatewayName pulumi.StringPtrInput // Resource ID. @@ -236,6 +260,11 @@ func (o ExpressRouteGatewayOutput) ToExpressRouteGatewayOutputWithContext(ctx co return o } +// Configures this gateway to accept traffic from non Virtual WAN networks. +func (o ExpressRouteGatewayOutput) AllowNonVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExpressRouteGateway) pulumi.BoolPtrOutput { return v.AllowNonVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + // Configuration for auto scaling. func (o ExpressRouteGatewayOutput) AutoScaleConfiguration() ExpressRouteGatewayPropertiesResponseAutoScaleConfigurationPtrOutput { return o.ApplyT(func(v *ExpressRouteGateway) ExpressRouteGatewayPropertiesResponseAutoScaleConfigurationPtrOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePort.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePort.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePort.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePort.go index c1febe9d..3f45555a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePort.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePort.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // ExpressRoutePort resource definition. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ExpressRoutePort struct { pulumi.CustomResourceState @@ -20,6 +21,8 @@ type ExpressRoutePort struct { AllocationDate pulumi.StringOutput `pulumi:"allocationDate"` // Bandwidth of procured ports in Gbps. BandwidthInGbps pulumi.IntPtrOutput `pulumi:"bandwidthInGbps"` + // The billing type of the ExpressRoutePort resource. + BillingType pulumi.StringPtrOutput `pulumi:"billingType"` // Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource. Circuits SubResourceResponseArrayOutput `pulumi:"circuits"` // Encapsulation method on physical ports. @@ -144,8 +147,21 @@ func NewExpressRoutePort(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRoutePort"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRoutePort"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRoutePort"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRoutePort"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRoutePort"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRoutePort err := ctx.RegisterResource("azure-native:network:ExpressRoutePort", name, args, &resource, opts...) if err != nil { @@ -180,6 +196,8 @@ func (ExpressRoutePortState) ElementType() reflect.Type { type expressRoutePortArgs struct { // Bandwidth of procured ports in Gbps. BandwidthInGbps *int `pulumi:"bandwidthInGbps"` + // The billing type of the ExpressRoutePort resource. + BillingType *string `pulumi:"billingType"` // Encapsulation method on physical ports. Encapsulation *string `pulumi:"encapsulation"` // The name of the ExpressRoutePort resource. @@ -204,6 +222,8 @@ type expressRoutePortArgs struct { type ExpressRoutePortArgs struct { // Bandwidth of procured ports in Gbps. BandwidthInGbps pulumi.IntPtrInput + // The billing type of the ExpressRoutePort resource. + BillingType pulumi.StringPtrInput // Encapsulation method on physical ports. Encapsulation pulumi.StringPtrInput // The name of the ExpressRoutePort resource. @@ -271,6 +291,11 @@ func (o ExpressRoutePortOutput) BandwidthInGbps() pulumi.IntPtrOutput { return o.ApplyT(func(v *ExpressRoutePort) pulumi.IntPtrOutput { return v.BandwidthInGbps }).(pulumi.IntPtrOutput) } +// The billing type of the ExpressRoutePort resource. +func (o ExpressRoutePortOutput) BillingType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExpressRoutePort) pulumi.StringPtrOutput { return v.BillingType }).(pulumi.StringPtrOutput) +} + // Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource. func (o ExpressRoutePortOutput) Circuits() SubResourceResponseArrayOutput { return o.ApplyT(func(v *ExpressRoutePort) SubResourceResponseArrayOutput { return v.Circuits }).(SubResourceResponseArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePortAuthorization.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePortAuthorization.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePortAuthorization.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePortAuthorization.go index cc682bd5..392908a6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/expressRoutePortAuthorization.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/expressRoutePortAuthorization.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // ExpressRoutePort Authorization resource definition. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-01-01 type ExpressRoutePortAuthorization struct { pulumi.CustomResourceState @@ -61,8 +62,21 @@ func NewExpressRoutePortAuthorization(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ExpressRoutePortAuthorization"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ExpressRoutePortAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ExpressRoutePortAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ExpressRoutePortAuthorization"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ExpressRoutePortAuthorization"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ExpressRoutePortAuthorization err := ctx.RegisterResource("azure-native:network:ExpressRoutePortAuthorization", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicy.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicy.go index 8657bb76..cf14094b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // FirewallPolicy Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type FirewallPolicy struct { pulumi.CustomResourceState @@ -24,6 +25,8 @@ type FirewallPolicy struct { DnsSettings DnsSettingsResponsePtrOutput `pulumi:"dnsSettings"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` + // Explicit Proxy Settings definition. + ExplicitProxy ExplicitProxyResponsePtrOutput `pulumi:"explicitProxy"` // List of references to Azure Firewalls that this Firewall Policy is associated with. Firewalls SubResourceResponseArrayOutput `pulumi:"firewalls"` // The identity of the firewall policy. @@ -44,6 +47,8 @@ type FirewallPolicy struct { Sku FirewallPolicySkuResponsePtrOutput `pulumi:"sku"` // The private IP addresses/IP ranges to which traffic will not be SNAT. Snat FirewallPolicySNATResponsePtrOutput `pulumi:"snat"` + // SQL Settings definition. + Sql FirewallPolicySQLResponsePtrOutput `pulumi:"sql"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // The operation mode for Threat Intelligence. @@ -130,8 +135,21 @@ func NewFirewallPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:FirewallPolicy"), }, + { + Type: pulumi.String("azure-native:network/v20221101:FirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:FirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:FirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:FirewallPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FirewallPolicy err := ctx.RegisterResource("azure-native:network:FirewallPolicy", name, args, &resource, opts...) if err != nil { @@ -168,6 +186,8 @@ type firewallPolicyArgs struct { BasePolicy *SubResource `pulumi:"basePolicy"` // DNS Proxy Settings definition. DnsSettings *DnsSettings `pulumi:"dnsSettings"` + // Explicit Proxy Settings definition. + ExplicitProxy *ExplicitProxy `pulumi:"explicitProxy"` // The name of the Firewall Policy. FirewallPolicyName *string `pulumi:"firewallPolicyName"` // Resource ID. @@ -186,6 +206,8 @@ type firewallPolicyArgs struct { Sku *FirewallPolicySku `pulumi:"sku"` // The private IP addresses/IP ranges to which traffic will not be SNAT. Snat *FirewallPolicySNAT `pulumi:"snat"` + // SQL Settings definition. + Sql *FirewallPolicySQL `pulumi:"sql"` // Resource tags. Tags map[string]string `pulumi:"tags"` // The operation mode for Threat Intelligence. @@ -202,6 +224,8 @@ type FirewallPolicyArgs struct { BasePolicy SubResourcePtrInput // DNS Proxy Settings definition. DnsSettings DnsSettingsPtrInput + // Explicit Proxy Settings definition. + ExplicitProxy ExplicitProxyPtrInput // The name of the Firewall Policy. FirewallPolicyName pulumi.StringPtrInput // Resource ID. @@ -220,6 +244,8 @@ type FirewallPolicyArgs struct { Sku FirewallPolicySkuPtrInput // The private IP addresses/IP ranges to which traffic will not be SNAT. Snat FirewallPolicySNATPtrInput + // SQL Settings definition. + Sql FirewallPolicySQLPtrInput // Resource tags. Tags pulumi.StringMapInput // The operation mode for Threat Intelligence. @@ -287,6 +313,11 @@ func (o FirewallPolicyOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *FirewallPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// Explicit Proxy Settings definition. +func (o FirewallPolicyOutput) ExplicitProxy() ExplicitProxyResponsePtrOutput { + return o.ApplyT(func(v *FirewallPolicy) ExplicitProxyResponsePtrOutput { return v.ExplicitProxy }).(ExplicitProxyResponsePtrOutput) +} + // List of references to Azure Firewalls that this Firewall Policy is associated with. func (o FirewallPolicyOutput) Firewalls() SubResourceResponseArrayOutput { return o.ApplyT(func(v *FirewallPolicy) SubResourceResponseArrayOutput { return v.Firewalls }).(SubResourceResponseArrayOutput) @@ -337,6 +368,11 @@ func (o FirewallPolicyOutput) Snat() FirewallPolicySNATResponsePtrOutput { return o.ApplyT(func(v *FirewallPolicy) FirewallPolicySNATResponsePtrOutput { return v.Snat }).(FirewallPolicySNATResponsePtrOutput) } +// SQL Settings definition. +func (o FirewallPolicyOutput) Sql() FirewallPolicySQLResponsePtrOutput { + return o.ApplyT(func(v *FirewallPolicy) FirewallPolicySQLResponsePtrOutput { return v.Sql }).(FirewallPolicySQLResponsePtrOutput) +} + // Resource tags. func (o FirewallPolicyOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *FirewallPolicy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleCollectionGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleCollectionGroup.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleCollectionGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleCollectionGroup.go index e88f030d..a910ea13 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleCollectionGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleCollectionGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Rule Collection Group resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type FirewallPolicyRuleCollectionGroup struct { pulumi.CustomResourceState @@ -83,8 +84,21 @@ func NewFirewallPolicyRuleCollectionGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:FirewallPolicyRuleCollectionGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:FirewallPolicyRuleCollectionGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:FirewallPolicyRuleCollectionGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:FirewallPolicyRuleCollectionGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:FirewallPolicyRuleCollectionGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FirewallPolicyRuleCollectionGroup err := ctx.RegisterResource("azure-native:network:FirewallPolicyRuleCollectionGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleGroup.go index 0e2a2d14..8ccf78f3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/firewallPolicyRuleGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/firewallPolicyRuleGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Rule Group resource. -// API Version: 2020-04-01. +// Azure REST API version: 2020-04-01. Prior API version in Azure Native 1.x: 2020-04-01 type FirewallPolicyRuleGroup struct { pulumi.CustomResourceState @@ -70,6 +71,7 @@ func NewFirewallPolicyRuleGroup(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FirewallPolicyRuleGroup err := ctx.RegisterResource("azure-native:network:FirewallPolicyRuleGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/flowLog.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/flowLog.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/flowLog.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/flowLog.go index f0fa066a..002bb69c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/flowLog.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/flowLog.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A flow log resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type FlowLog struct { pulumi.CustomResourceState @@ -121,8 +122,21 @@ func NewFlowLog(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:FlowLog"), }, + { + Type: pulumi.String("azure-native:network/v20221101:FlowLog"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:FlowLog"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:FlowLog"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:FlowLog"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FlowLog err := ctx.RegisterResource("azure-native:network:FlowLog", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/forwardingRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/forwardingRule.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/forwardingRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/forwardingRule.go index 37ed5722..47f0b8be 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/forwardingRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/forwardingRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a forwarding rule within a DNS forwarding ruleset. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. Prior API version in Azure Native 1.x: 2020-04-01-preview type ForwardingRule struct { pulumi.CustomResourceState @@ -64,6 +65,7 @@ func NewForwardingRule(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ForwardingRule err := ctx.RegisterResource("azure-native:network:ForwardingRule", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/frontDoor.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/frontDoor.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/frontDoor.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/frontDoor.go index fbde46c7..d0ffc1aa 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/frontDoor.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/frontDoor.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Front Door represents a collection of backend endpoints to route traffic to along with rules that specify how traffic is sent there. -// API Version: 2020-05-01. +// Azure REST API version: 2021-06-01. Prior API version in Azure Native 1.x: 2020-05-01 type FrontDoor struct { pulumi.CustomResourceState @@ -24,6 +25,8 @@ type FrontDoor struct { Cname pulumi.StringOutput `pulumi:"cname"` // Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled' EnabledState pulumi.StringPtrOutput `pulumi:"enabledState"` + // Key-Value pair representing additional properties for frontdoor. + ExtendedProperties pulumi.StringMapOutput `pulumi:"extendedProperties"` // A friendly name for the frontDoor FriendlyName pulumi.StringPtrOutput `pulumi:"friendlyName"` // The Id of the frontdoor. @@ -86,6 +89,7 @@ func NewFrontDoor(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FrontDoor err := ctx.RegisterResource("azure-native:network:FrontDoor", name, args, &resource, opts...) if err != nil { @@ -229,6 +233,11 @@ func (o FrontDoorOutput) EnabledState() pulumi.StringPtrOutput { return o.ApplyT(func(v *FrontDoor) pulumi.StringPtrOutput { return v.EnabledState }).(pulumi.StringPtrOutput) } +// Key-Value pair representing additional properties for frontdoor. +func (o FrontDoorOutput) ExtendedProperties() pulumi.StringMapOutput { + return o.ApplyT(func(v *FrontDoor) pulumi.StringMapOutput { return v.ExtendedProperties }).(pulumi.StringMapOutput) +} + // A friendly name for the frontDoor func (o FrontDoorOutput) FriendlyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *FrontDoor) pulumi.StringPtrOutput { return v.FriendlyName }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getActiveSessions.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getActiveSessions.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getActiveSessions.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getActiveSessions.go index e04076a2..e614d400 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getActiveSessions.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getActiveSessions.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Returns the list of currently active sessions on the Bastion. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetActiveSessions(ctx *pulumi.Context, args *GetActiveSessionsArgs, opts ...pulumi.InvokeOption) (*GetActiveSessionsResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetActiveSessionsResult err := ctx.Invoke("azure-native:network:getActiveSessions", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRule.go similarity index 50% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRule.go index f50bf31e..76522903 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRule.go @@ -7,14 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a network manager security configuration admin rule. -// API Version: 2021-02-01-preview. -// -// Deprecated: Please use one of the variants: AdminRule, DefaultAdminRule. +// Azure REST API version: 2023-02-01. func LookupAdminRule(ctx *pulumi.Context, args *LookupAdminRuleArgs, opts ...pulumi.InvokeOption) (*LookupAdminRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAdminRuleResult err := ctx.Invoke("azure-native:network:getAdminRule", args, &rv, opts...) if err != nil { @@ -24,7 +24,7 @@ func LookupAdminRule(ctx *pulumi.Context, args *LookupAdminRuleArgs, opts ...pul } type LookupAdminRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -36,16 +36,39 @@ type LookupAdminRuleArgs struct { RuleName string `pulumi:"ruleName"` } -// Network base admin rule. +// Network admin rule. type LookupAdminRuleResult struct { + // Indicates the access allowed for this particular rule + Access string `pulumi:"access"` + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations []AddressPrefixItemResponse `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction string `pulumi:"direction"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id string `pulumi:"id"` // Whether the rule is custom or default. + // Expected value is 'Custom'. Kind string `pulumi:"kind"` // Resource name. Name string `pulumi:"name"` + // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority int `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` + // The provisioning state of the resource. + ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources []AddressPrefixItemResponse `pulumi:"sources"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -66,7 +89,7 @@ func LookupAdminRuleOutput(ctx *pulumi.Context, args LookupAdminRuleOutputArgs, } type LookupAdminRuleOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -82,7 +105,7 @@ func (LookupAdminRuleOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupAdminRuleArgs)(nil)).Elem() } -// Network base admin rule. +// Network admin rule. type LookupAdminRuleResultOutput struct{ *pulumi.OutputState } func (LookupAdminRuleResultOutput) ElementType() reflect.Type { @@ -97,6 +120,31 @@ func (o LookupAdminRuleResultOutput) ToLookupAdminRuleResultOutputWithContext(ct return o } +// Indicates the access allowed for this particular rule +func (o LookupAdminRuleResultOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Access }).(pulumi.StringOutput) +} + +// A description for this rule. Restricted to 140 chars. +func (o LookupAdminRuleResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAdminRuleResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o LookupAdminRuleResultOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAdminRuleResult) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o LookupAdminRuleResultOutput) Destinations() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v LookupAdminRuleResult) []AddressPrefixItemResponse { return v.Destinations }).(AddressPrefixItemResponseArrayOutput) +} + +// Indicates if the traffic matched against the rule in inbound or outbound. +func (o LookupAdminRuleResultOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Direction }).(pulumi.StringOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupAdminRuleResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Etag }).(pulumi.StringOutput) @@ -108,6 +156,7 @@ func (o LookupAdminRuleResultOutput) Id() pulumi.StringOutput { } // Whether the rule is custom or default. +// Expected value is 'Custom'. func (o LookupAdminRuleResultOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Kind }).(pulumi.StringOutput) } @@ -117,6 +166,36 @@ func (o LookupAdminRuleResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Name }).(pulumi.StringOutput) } +// The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. +func (o LookupAdminRuleResultOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v LookupAdminRuleResult) int { return v.Priority }).(pulumi.IntOutput) +} + +// Network protocol this rule applies to. +func (o LookupAdminRuleResultOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleResult) string { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the resource. +func (o LookupAdminRuleResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Unique identifier for this resource. +func (o LookupAdminRuleResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + +// The source port ranges. +func (o LookupAdminRuleResultOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAdminRuleResult) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The CIDR or source IP ranges. +func (o LookupAdminRuleResultOutput) Sources() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v LookupAdminRuleResult) []AddressPrefixItemResponse { return v.Sources }).(AddressPrefixItemResponseArrayOutput) +} + // The system metadata related to this resource. func (o LookupAdminRuleResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupAdminRuleResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRuleCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRuleCollection.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRuleCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRuleCollection.go index d998583a..664b8707 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAdminRuleCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAdminRuleCollection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a network manager security admin configuration rule collection. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupAdminRuleCollection(ctx *pulumi.Context, args *LookupAdminRuleCollectionArgs, opts ...pulumi.InvokeOption) (*LookupAdminRuleCollectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAdminRuleCollectionResult err := ctx.Invoke("azure-native:network:getAdminRuleCollection", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupAdminRuleCollection(ctx *pulumi.Context, args *LookupAdminRuleCollect } type LookupAdminRuleCollectionArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -32,14 +34,12 @@ type LookupAdminRuleCollectionArgs struct { RuleCollectionName string `pulumi:"ruleCollectionName"` } -// Defines the rule collection. +// Defines the admin rule collection. type LookupAdminRuleCollectionResult struct { // Groups for configuration AppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"appliesToGroups"` - // A description of the rule collection. + // A description of the admin rule collection. Description *string `pulumi:"description"` - // A display name of the rule collection. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -48,6 +48,8 @@ type LookupAdminRuleCollectionResult struct { Name string `pulumi:"name"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -68,7 +70,7 @@ func LookupAdminRuleCollectionOutput(ctx *pulumi.Context, args LookupAdminRuleCo } type LookupAdminRuleCollectionOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -82,7 +84,7 @@ func (LookupAdminRuleCollectionOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupAdminRuleCollectionArgs)(nil)).Elem() } -// Defines the rule collection. +// Defines the admin rule collection. type LookupAdminRuleCollectionResultOutput struct{ *pulumi.OutputState } func (LookupAdminRuleCollectionResultOutput) ElementType() reflect.Type { @@ -104,16 +106,11 @@ func (o LookupAdminRuleCollectionResultOutput) AppliesToGroups() NetworkManagerS }).(NetworkManagerSecurityGroupItemResponseArrayOutput) } -// A description of the rule collection. +// A description of the admin rule collection. func (o LookupAdminRuleCollectionResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupAdminRuleCollectionResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the rule collection. -func (o LookupAdminRuleCollectionResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupAdminRuleCollectionResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupAdminRuleCollectionResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupAdminRuleCollectionResult) string { return v.Etag }).(pulumi.StringOutput) @@ -134,6 +131,11 @@ func (o LookupAdminRuleCollectionResultOutput) ProvisioningState() pulumi.String return o.ApplyT(func(v LookupAdminRuleCollectionResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o LookupAdminRuleCollectionResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupAdminRuleCollectionResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o LookupAdminRuleCollectionResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupAdminRuleCollectionResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGateway.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGateway.go index 3a66e346..dcb323ef 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified application gateway. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupApplicationGateway(ctx *pulumi.Context, args *LookupApplicationGatewayArgs, opts ...pulumi.InvokeOption) (*LookupApplicationGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupApplicationGatewayResult err := ctx.Invoke("azure-native:network:getApplicationGateway", args, &rv, opts...) if err != nil { @@ -38,8 +40,12 @@ type LookupApplicationGatewayResult struct { BackendAddressPools []ApplicationGatewayBackendAddressPoolResponse `pulumi:"backendAddressPools"` // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). BackendHttpSettingsCollection []ApplicationGatewayBackendHttpSettingsResponse `pulumi:"backendHttpSettingsCollection"` + // Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendSettingsCollection []ApplicationGatewayBackendSettingsResponse `pulumi:"backendSettingsCollection"` // Custom error configurations of the application gateway resource. CustomErrorConfigurations []ApplicationGatewayCustomErrorResponse `pulumi:"customErrorConfigurations"` + // The default predefined SSL Policy applied on the application gateway resource. + DefaultPredefinedSslPolicy string `pulumi:"defaultPredefinedSslPolicy"` // Whether FIPS is enabled on the application gateway resource. EnableFips *bool `pulumi:"enableFips"` // Whether HTTP2 is enabled on the application gateway resource. @@ -56,12 +62,18 @@ type LookupApplicationGatewayResult struct { FrontendPorts []ApplicationGatewayFrontendPortResponse `pulumi:"frontendPorts"` // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). GatewayIPConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"gatewayIPConfigurations"` + // Global Configuration. + GlobalConfiguration *ApplicationGatewayGlobalConfigurationResponse `pulumi:"globalConfiguration"` // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). HttpListeners []ApplicationGatewayHttpListenerResponse `pulumi:"httpListeners"` // Resource ID. Id *string `pulumi:"id"` // The identity of the application gateway, if configured. Identity *ManagedServiceIdentityResponse `pulumi:"identity"` + // Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + Listeners []ApplicationGatewayListenerResponse `pulumi:"listeners"` + // Load distribution policies of the application gateway resource. + LoadDistributionPolicies []ApplicationGatewayLoadDistributionPolicyResponse `pulumi:"loadDistributionPolicies"` // Resource location. Location *string `pulumi:"location"` // Resource name. @@ -84,6 +96,8 @@ type LookupApplicationGatewayResult struct { ResourceGuid string `pulumi:"resourceGuid"` // Rewrite rules for the application gateway resource. RewriteRuleSets []ApplicationGatewayRewriteRuleSetResponse `pulumi:"rewriteRuleSets"` + // Routing rules of the application gateway resource. + RoutingRules []ApplicationGatewayRoutingRuleResponse `pulumi:"routingRules"` // SKU of the application gateway resource. Sku *ApplicationGatewaySkuResponse `pulumi:"sku"` // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). @@ -175,6 +189,13 @@ func (o LookupApplicationGatewayResultOutput) BackendHttpSettingsCollection() Ap }).(ApplicationGatewayBackendHttpSettingsResponseArrayOutput) } +// Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o LookupApplicationGatewayResultOutput) BackendSettingsCollection() ApplicationGatewayBackendSettingsResponseArrayOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayBackendSettingsResponse { + return v.BackendSettingsCollection + }).(ApplicationGatewayBackendSettingsResponseArrayOutput) +} + // Custom error configurations of the application gateway resource. func (o LookupApplicationGatewayResultOutput) CustomErrorConfigurations() ApplicationGatewayCustomErrorResponseArrayOutput { return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayCustomErrorResponse { @@ -182,6 +203,11 @@ func (o LookupApplicationGatewayResultOutput) CustomErrorConfigurations() Applic }).(ApplicationGatewayCustomErrorResponseArrayOutput) } +// The default predefined SSL Policy applied on the application gateway resource. +func (o LookupApplicationGatewayResultOutput) DefaultPredefinedSslPolicy() pulumi.StringOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) string { return v.DefaultPredefinedSslPolicy }).(pulumi.StringOutput) +} + // Whether FIPS is enabled on the application gateway resource. func (o LookupApplicationGatewayResultOutput) EnableFips() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupApplicationGatewayResult) *bool { return v.EnableFips }).(pulumi.BoolPtrOutput) @@ -228,6 +254,13 @@ func (o LookupApplicationGatewayResultOutput) GatewayIPConfigurations() Applicat }).(ApplicationGatewayIPConfigurationResponseArrayOutput) } +// Global Configuration. +func (o LookupApplicationGatewayResultOutput) GlobalConfiguration() ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) *ApplicationGatewayGlobalConfigurationResponse { + return v.GlobalConfiguration + }).(ApplicationGatewayGlobalConfigurationResponsePtrOutput) +} + // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). func (o LookupApplicationGatewayResultOutput) HttpListeners() ApplicationGatewayHttpListenerResponseArrayOutput { return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayHttpListenerResponse { @@ -245,6 +278,18 @@ func (o LookupApplicationGatewayResultOutput) Identity() ManagedServiceIdentityR return o.ApplyT(func(v LookupApplicationGatewayResult) *ManagedServiceIdentityResponse { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) } +// Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o LookupApplicationGatewayResultOutput) Listeners() ApplicationGatewayListenerResponseArrayOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayListenerResponse { return v.Listeners }).(ApplicationGatewayListenerResponseArrayOutput) +} + +// Load distribution policies of the application gateway resource. +func (o LookupApplicationGatewayResultOutput) LoadDistributionPolicies() ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayLoadDistributionPolicyResponse { + return v.LoadDistributionPolicies + }).(ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) +} + // Resource location. func (o LookupApplicationGatewayResultOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupApplicationGatewayResult) *string { return v.Location }).(pulumi.StringPtrOutput) @@ -310,6 +355,11 @@ func (o LookupApplicationGatewayResultOutput) RewriteRuleSets() ApplicationGatew }).(ApplicationGatewayRewriteRuleSetResponseArrayOutput) } +// Routing rules of the application gateway resource. +func (o LookupApplicationGatewayResultOutput) RoutingRules() ApplicationGatewayRoutingRuleResponseArrayOutput { + return o.ApplyT(func(v LookupApplicationGatewayResult) []ApplicationGatewayRoutingRuleResponse { return v.RoutingRules }).(ApplicationGatewayRoutingRuleResponseArrayOutput) +} + // SKU of the application gateway resource. func (o LookupApplicationGatewayResultOutput) Sku() ApplicationGatewaySkuResponsePtrOutput { return o.ApplyT(func(v LookupApplicationGatewayResult) *ApplicationGatewaySkuResponse { return v.Sku }).(ApplicationGatewaySkuResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayBackendHealthOnDemand.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayBackendHealthOnDemand.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayBackendHealthOnDemand.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayBackendHealthOnDemand.go index 1013ae8c..673dd5c8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayBackendHealthOnDemand.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayBackendHealthOnDemand.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the backend health for given combination of backend pool and http setting of the specified application gateway in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetApplicationGatewayBackendHealthOnDemand(ctx *pulumi.Context, args *GetApplicationGatewayBackendHealthOnDemandArgs, opts ...pulumi.InvokeOption) (*GetApplicationGatewayBackendHealthOnDemandResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetApplicationGatewayBackendHealthOnDemandResult err := ctx.Invoke("azure-native:network:getApplicationGatewayBackendHealthOnDemand", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayPrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayPrivateEndpointConnection.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayPrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayPrivateEndpointConnection.go index 7bdd26e9..63519daa 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationGatewayPrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationGatewayPrivateEndpointConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified private endpoint connection on application gateway. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupApplicationGatewayPrivateEndpointConnection(ctx *pulumi.Context, args *LookupApplicationGatewayPrivateEndpointConnectionArgs, opts ...pulumi.InvokeOption) (*LookupApplicationGatewayPrivateEndpointConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupApplicationGatewayPrivateEndpointConnectionResult err := ctx.Invoke("azure-native:network:getApplicationGatewayPrivateEndpointConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationSecurityGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationSecurityGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationSecurityGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationSecurityGroup.go index 2ac01ad8..c17f8d86 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getApplicationSecurityGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getApplicationSecurityGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified application security group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupApplicationSecurityGroup(ctx *pulumi.Context, args *LookupApplicationSecurityGroupArgs, opts ...pulumi.InvokeOption) (*LookupApplicationSecurityGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupApplicationSecurityGroupResult err := ctx.Invoke("azure-native:network:getApplicationSecurityGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAzureFirewall.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAzureFirewall.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAzureFirewall.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAzureFirewall.go index d1673ed8..6312f968 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getAzureFirewall.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getAzureFirewall.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Azure Firewall. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupAzureFirewall(ctx *pulumi.Context, args *LookupAzureFirewallArgs, opts ...pulumi.InvokeOption) (*LookupAzureFirewallResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAzureFirewallResult err := ctx.Invoke("azure-native:network:getAzureFirewall", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionHost.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionHost.go similarity index 56% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionHost.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionHost.go index c2e8a5c9..f217632d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionHost.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionHost.go @@ -7,18 +7,20 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Bastion Host. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupBastionHost(ctx *pulumi.Context, args *LookupBastionHostArgs, opts ...pulumi.InvokeOption) (*LookupBastionHostResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupBastionHostResult err := ctx.Invoke("azure-native:network:getBastionHost", args, &rv, opts...) if err != nil { return nil, err } - return &rv, nil + return rv.Defaults(), nil } type LookupBastionHostArgs struct { @@ -30,8 +32,20 @@ type LookupBastionHostArgs struct { // Bastion Host resource. type LookupBastionHostResult struct { + // Enable/Disable Copy/Paste feature of the Bastion Host resource. + DisableCopyPaste *bool `pulumi:"disableCopyPaste"` // FQDN for the endpoint on which bastion host is accessible. DnsName *string `pulumi:"dnsName"` + // Enable/Disable File Copy feature of the Bastion Host resource. + EnableFileCopy *bool `pulumi:"enableFileCopy"` + // Enable/Disable IP Connect feature of the Bastion Host resource. + EnableIpConnect *bool `pulumi:"enableIpConnect"` + // Enable/Disable Kerberos feature of the Bastion Host resource. + EnableKerberos *bool `pulumi:"enableKerberos"` + // Enable/Disable Shareable Link of the Bastion Host resource. + EnableShareableLink *bool `pulumi:"enableShareableLink"` + // Enable/Disable Tunneling feature of the Bastion Host resource. + EnableTunneling *bool `pulumi:"enableTunneling"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -44,12 +58,49 @@ type LookupBastionHostResult struct { Name string `pulumi:"name"` // The provisioning state of the bastion host resource. ProvisioningState string `pulumi:"provisioningState"` + // The scale units for the Bastion Host resource. + ScaleUnits *int `pulumi:"scaleUnits"` + // The sku of this Bastion Host. + Sku *SkuResponse `pulumi:"sku"` // Resource tags. Tags map[string]string `pulumi:"tags"` // Resource type. Type string `pulumi:"type"` } +// Defaults sets the appropriate defaults for LookupBastionHostResult +func (val *LookupBastionHostResult) Defaults() *LookupBastionHostResult { + if val == nil { + return nil + } + tmp := *val + if tmp.DisableCopyPaste == nil { + disableCopyPaste_ := false + tmp.DisableCopyPaste = &disableCopyPaste_ + } + if tmp.EnableFileCopy == nil { + enableFileCopy_ := false + tmp.EnableFileCopy = &enableFileCopy_ + } + if tmp.EnableIpConnect == nil { + enableIpConnect_ := false + tmp.EnableIpConnect = &enableIpConnect_ + } + if tmp.EnableKerberos == nil { + enableKerberos_ := false + tmp.EnableKerberos = &enableKerberos_ + } + if tmp.EnableShareableLink == nil { + enableShareableLink_ := false + tmp.EnableShareableLink = &enableShareableLink_ + } + if tmp.EnableTunneling == nil { + enableTunneling_ := false + tmp.EnableTunneling = &enableTunneling_ + } + return &tmp +} + func LookupBastionHostOutput(ctx *pulumi.Context, args LookupBastionHostOutputArgs, opts ...pulumi.InvokeOption) LookupBastionHostResultOutput { return pulumi.ToOutputWithContext(context.Background(), args). ApplyT(func(v interface{}) (LookupBastionHostResult, error) { @@ -89,11 +140,41 @@ func (o LookupBastionHostResultOutput) ToLookupBastionHostResultOutputWithContex return o } +// Enable/Disable Copy/Paste feature of the Bastion Host resource. +func (o LookupBastionHostResultOutput) DisableCopyPaste() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.DisableCopyPaste }).(pulumi.BoolPtrOutput) +} + // FQDN for the endpoint on which bastion host is accessible. func (o LookupBastionHostResultOutput) DnsName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupBastionHostResult) *string { return v.DnsName }).(pulumi.StringPtrOutput) } +// Enable/Disable File Copy feature of the Bastion Host resource. +func (o LookupBastionHostResultOutput) EnableFileCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.EnableFileCopy }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable IP Connect feature of the Bastion Host resource. +func (o LookupBastionHostResultOutput) EnableIpConnect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.EnableIpConnect }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Kerberos feature of the Bastion Host resource. +func (o LookupBastionHostResultOutput) EnableKerberos() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.EnableKerberos }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Shareable Link of the Bastion Host resource. +func (o LookupBastionHostResultOutput) EnableShareableLink() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.EnableShareableLink }).(pulumi.BoolPtrOutput) +} + +// Enable/Disable Tunneling feature of the Bastion Host resource. +func (o LookupBastionHostResultOutput) EnableTunneling() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *bool { return v.EnableTunneling }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupBastionHostResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupBastionHostResult) string { return v.Etag }).(pulumi.StringOutput) @@ -124,6 +205,16 @@ func (o LookupBastionHostResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupBastionHostResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// The scale units for the Bastion Host resource. +func (o LookupBastionHostResultOutput) ScaleUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *int { return v.ScaleUnits }).(pulumi.IntPtrOutput) +} + +// The sku of this Bastion Host. +func (o LookupBastionHostResultOutput) Sku() SkuResponsePtrOutput { + return o.ApplyT(func(v LookupBastionHostResult) *SkuResponse { return v.Sku }).(SkuResponsePtrOutput) +} + // Resource tags. func (o LookupBastionHostResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupBastionHostResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionShareableLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionShareableLink.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionShareableLink.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionShareableLink.go index 1ef94710..f596d2b6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getBastionShareableLink.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getBastionShareableLink.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Return the Bastion Shareable Links for all the VMs specified in the request. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetBastionShareableLink(ctx *pulumi.Context, args *GetBastionShareableLinkArgs, opts ...pulumi.InvokeOption) (*GetBastionShareableLinkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetBastionShareableLinkResult err := ctx.Invoke("azure-native:network:getBastionShareableLink", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConfigurationPolicyGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConfigurationPolicyGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConfigurationPolicyGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConfigurationPolicyGroup.go index 60191535..1f37c973 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConfigurationPolicyGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConfigurationPolicyGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a ConfigurationPolicyGroup. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func LookupConfigurationPolicyGroup(ctx *pulumi.Context, args *LookupConfigurationPolicyGroupArgs, opts ...pulumi.InvokeOption) (*LookupConfigurationPolicyGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupConfigurationPolicyGroupResult err := ctx.Invoke("azure-native:network:getConfigurationPolicyGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectionMonitor.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectionMonitor.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectionMonitor.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectionMonitor.go index c65b82e9..1e181efc 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectionMonitor.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectionMonitor.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a connection monitor by name. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupConnectionMonitor(ctx *pulumi.Context, args *LookupConnectionMonitorArgs, opts ...pulumi.InvokeOption) (*LookupConnectionMonitorResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupConnectionMonitorResult err := ctx.Invoke("azure-native:network:getConnectionMonitor", args, &rv, opts...) if err != nil { @@ -78,11 +80,11 @@ func (val *LookupConnectionMonitorResult) Defaults() *LookupConnectionMonitorRes return nil } tmp := *val - if isZero(tmp.AutoStart) { + if tmp.AutoStart == nil { autoStart_ := true tmp.AutoStart = &autoStart_ } - if isZero(tmp.MonitoringIntervalInSeconds) { + if tmp.MonitoringIntervalInSeconds == nil { monitoringIntervalInSeconds_ := 60 tmp.MonitoringIntervalInSeconds = &monitoringIntervalInSeconds_ } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectivityConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectivityConfiguration.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectivityConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectivityConfiguration.go index 37faf896..1e04feda 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getConnectivityConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getConnectivityConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Network Connectivity Configuration, specified by the resource group, network manager name, and connectivity Configuration name -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupConnectivityConfiguration(ctx *pulumi.Context, args *LookupConnectivityConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupConnectivityConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupConnectivityConfigurationResult err := ctx.Invoke("azure-native:network:getConnectivityConfiguration", args, &rv, opts...) if err != nil { @@ -40,8 +42,6 @@ type LookupConnectivityConfigurationResult struct { DeleteExistingPeering *string `pulumi:"deleteExistingPeering"` // A description of the connectivity configuration. Description *string `pulumi:"description"` - // A friendly name for the resource. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // List of hubItems @@ -54,6 +54,8 @@ type LookupConnectivityConfigurationResult struct { Name string `pulumi:"name"` // The provisioning state of the connectivity configuration resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -123,11 +125,6 @@ func (o LookupConnectivityConfigurationResultOutput) Description() pulumi.String return o.ApplyT(func(v LookupConnectivityConfigurationResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the resource. -func (o LookupConnectivityConfigurationResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupConnectivityConfigurationResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupConnectivityConfigurationResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupConnectivityConfigurationResult) string { return v.Etag }).(pulumi.StringOutput) @@ -158,6 +155,11 @@ func (o LookupConnectivityConfigurationResultOutput) ProvisioningState() pulumi. return o.ApplyT(func(v LookupConnectivityConfigurationResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o LookupConnectivityConfigurationResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupConnectivityConfigurationResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o LookupConnectivityConfigurationResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupConnectivityConfigurationResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getCustomIPPrefix.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getCustomIPPrefix.go similarity index 64% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getCustomIPPrefix.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getCustomIPPrefix.go index 7d9ef3cc..7cc27bdd 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getCustomIPPrefix.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getCustomIPPrefix.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified custom IP prefix in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupCustomIPPrefix(ctx *pulumi.Context, args *LookupCustomIPPrefixArgs, opts ...pulumi.InvokeOption) (*LookupCustomIPPrefixResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupCustomIPPrefixResult err := ctx.Invoke("azure-native:network:getCustomIPPrefix", args, &rv, opts...) if err != nil { @@ -32,26 +34,46 @@ type LookupCustomIPPrefixArgs struct { // Custom IP prefix resource. type LookupCustomIPPrefixResult struct { + // The ASN for CIDR advertising. Should be an integer as string. + Asn *string `pulumi:"asn"` + // Authorization message for WAN validation. + AuthorizationMessage *string `pulumi:"authorizationMessage"` + // The list of all Children for IPv6 /48 CustomIpPrefix. + ChildCustomIpPrefixes []SubResourceResponse `pulumi:"childCustomIpPrefixes"` // The prefix range in CIDR notation. Should include the start address and the prefix length. Cidr *string `pulumi:"cidr"` // The commissioned state of the Custom IP Prefix. CommissionedState *string `pulumi:"commissionedState"` + // The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. + CustomIpPrefixParent *SubResourceResponse `pulumi:"customIpPrefixParent"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // Whether to do express route advertise. + ExpressRouteAdvertise *bool `pulumi:"expressRouteAdvertise"` // The extended location of the custom IP prefix. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` + // The reason why resource is in failed state. + FailedReason string `pulumi:"failedReason"` + // The Geo for CIDR advertising. Should be an Geo code. + Geo *string `pulumi:"geo"` // Resource ID. Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` + // Whether to Advertise the range to Internet. + NoInternetAdvertise *bool `pulumi:"noInternetAdvertise"` + // Type of custom IP prefix. Should be Singular, Parent, or Child. + PrefixType *string `pulumi:"prefixType"` // The provisioning state of the custom IP prefix resource. ProvisioningState string `pulumi:"provisioningState"` // The list of all referenced PublicIpPrefixes. PublicIpPrefixes []SubResourceResponse `pulumi:"publicIpPrefixes"` // The resource GUID property of the custom IP prefix resource. ResourceGuid string `pulumi:"resourceGuid"` + // Signed message for WAN validation. + SignedMessage *string `pulumi:"signedMessage"` // Resource tags. Tags map[string]string `pulumi:"tags"` // Resource type. @@ -101,6 +123,21 @@ func (o LookupCustomIPPrefixResultOutput) ToLookupCustomIPPrefixResultOutputWith return o } +// The ASN for CIDR advertising. Should be an integer as string. +func (o LookupCustomIPPrefixResultOutput) Asn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.Asn }).(pulumi.StringPtrOutput) +} + +// Authorization message for WAN validation. +func (o LookupCustomIPPrefixResultOutput) AuthorizationMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.AuthorizationMessage }).(pulumi.StringPtrOutput) +} + +// The list of all Children for IPv6 /48 CustomIpPrefix. +func (o LookupCustomIPPrefixResultOutput) ChildCustomIpPrefixes() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) []SubResourceResponse { return v.ChildCustomIpPrefixes }).(SubResourceResponseArrayOutput) +} + // The prefix range in CIDR notation. Should include the start address and the prefix length. func (o LookupCustomIPPrefixResultOutput) Cidr() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.Cidr }).(pulumi.StringPtrOutput) @@ -111,16 +148,36 @@ func (o LookupCustomIPPrefixResultOutput) CommissionedState() pulumi.StringPtrOu return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.CommissionedState }).(pulumi.StringPtrOutput) } +// The Parent CustomIpPrefix for IPv6 /64 CustomIpPrefix. +func (o LookupCustomIPPrefixResultOutput) CustomIpPrefixParent() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *SubResourceResponse { return v.CustomIpPrefixParent }).(SubResourceResponsePtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupCustomIPPrefixResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) string { return v.Etag }).(pulumi.StringOutput) } +// Whether to do express route advertise. +func (o LookupCustomIPPrefixResultOutput) ExpressRouteAdvertise() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *bool { return v.ExpressRouteAdvertise }).(pulumi.BoolPtrOutput) +} + // The extended location of the custom IP prefix. func (o LookupCustomIPPrefixResultOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } +// The reason why resource is in failed state. +func (o LookupCustomIPPrefixResultOutput) FailedReason() pulumi.StringOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) string { return v.FailedReason }).(pulumi.StringOutput) +} + +// The Geo for CIDR advertising. Should be an Geo code. +func (o LookupCustomIPPrefixResultOutput) Geo() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.Geo }).(pulumi.StringPtrOutput) +} + // Resource ID. func (o LookupCustomIPPrefixResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -136,6 +193,16 @@ func (o LookupCustomIPPrefixResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) string { return v.Name }).(pulumi.StringOutput) } +// Whether to Advertise the range to Internet. +func (o LookupCustomIPPrefixResultOutput) NoInternetAdvertise() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *bool { return v.NoInternetAdvertise }).(pulumi.BoolPtrOutput) +} + +// Type of custom IP prefix. Should be Singular, Parent, or Child. +func (o LookupCustomIPPrefixResultOutput) PrefixType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.PrefixType }).(pulumi.StringPtrOutput) +} + // The provisioning state of the custom IP prefix resource. func (o LookupCustomIPPrefixResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -151,6 +218,11 @@ func (o LookupCustomIPPrefixResultOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) string { return v.ResourceGuid }).(pulumi.StringOutput) } +// Signed message for WAN validation. +func (o LookupCustomIPPrefixResultOutput) SignedMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomIPPrefixResult) *string { return v.SignedMessage }).(pulumi.StringPtrOutput) +} + // Resource tags. func (o LookupCustomIPPrefixResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupCustomIPPrefixResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosCustomPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosCustomPolicy.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosCustomPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosCustomPolicy.go index 720fea3f..63a8e563 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosCustomPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosCustomPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified DDoS custom policy. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupDdosCustomPolicy(ctx *pulumi.Context, args *LookupDdosCustomPolicyArgs, opts ...pulumi.InvokeOption) (*LookupDdosCustomPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDdosCustomPolicyResult err := ctx.Invoke("azure-native:network:getDdosCustomPolicy", args, &rv, opts...) if err != nil { @@ -38,12 +40,8 @@ type LookupDdosCustomPolicyResult struct { Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` - // The protocol-specific DDoS policy customization parameters. - ProtocolCustomSettings []ProtocolCustomSettingsFormatResponse `pulumi:"protocolCustomSettings"` // The provisioning state of the DDoS custom policy resource. ProvisioningState string `pulumi:"provisioningState"` - // The list of public IPs associated with the DDoS custom policy resource. This list is read-only. - PublicIPAddresses []SubResourceResponse `pulumi:"publicIPAddresses"` // The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. ResourceGuid string `pulumi:"resourceGuid"` // Resource tags. @@ -111,23 +109,11 @@ func (o LookupDdosCustomPolicyResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupDdosCustomPolicyResult) string { return v.Name }).(pulumi.StringOutput) } -// The protocol-specific DDoS policy customization parameters. -func (o LookupDdosCustomPolicyResultOutput) ProtocolCustomSettings() ProtocolCustomSettingsFormatResponseArrayOutput { - return o.ApplyT(func(v LookupDdosCustomPolicyResult) []ProtocolCustomSettingsFormatResponse { - return v.ProtocolCustomSettings - }).(ProtocolCustomSettingsFormatResponseArrayOutput) -} - // The provisioning state of the DDoS custom policy resource. func (o LookupDdosCustomPolicyResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupDdosCustomPolicyResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The list of public IPs associated with the DDoS custom policy resource. This list is read-only. -func (o LookupDdosCustomPolicyResultOutput) PublicIPAddresses() SubResourceResponseArrayOutput { - return o.ApplyT(func(v LookupDdosCustomPolicyResult) []SubResourceResponse { return v.PublicIPAddresses }).(SubResourceResponseArrayOutput) -} - // The resource GUID property of the DDoS custom policy resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. func (o LookupDdosCustomPolicyResultOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v LookupDdosCustomPolicyResult) string { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosProtectionPlan.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosProtectionPlan.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosProtectionPlan.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosProtectionPlan.go index cb305d2e..873c45e3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDdosProtectionPlan.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDdosProtectionPlan.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified DDoS protection plan. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupDdosProtectionPlan(ctx *pulumi.Context, args *LookupDdosProtectionPlanArgs, opts ...pulumi.InvokeOption) (*LookupDdosProtectionPlanResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDdosProtectionPlanResult err := ctx.Invoke("azure-native:network:getDdosProtectionPlan", args, &rv, opts...) if err != nil { @@ -40,6 +42,8 @@ type LookupDdosProtectionPlanResult struct { Name string `pulumi:"name"` // The provisioning state of the DDoS protection plan resource. ProvisioningState string `pulumi:"provisioningState"` + // The list of public IPs associated with the DDoS protection plan resource. This list is read-only. + PublicIPAddresses []SubResourceResponse `pulumi:"publicIPAddresses"` // The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. ResourceGuid string `pulumi:"resourceGuid"` // Resource tags. @@ -114,6 +118,11 @@ func (o LookupDdosProtectionPlanResultOutput) ProvisioningState() pulumi.StringO return o.ApplyT(func(v LookupDdosProtectionPlanResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// The list of public IPs associated with the DDoS protection plan resource. This list is read-only. +func (o LookupDdosProtectionPlanResultOutput) PublicIPAddresses() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupDdosProtectionPlanResult) []SubResourceResponse { return v.PublicIPAddresses }).(SubResourceResponseArrayOutput) +} + // The resource GUID property of the DDoS protection plan resource. It uniquely identifies the resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. func (o LookupDdosProtectionPlanResultOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v LookupDdosProtectionPlanResult) string { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultAdminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultAdminRule.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultAdminRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultAdminRule.go index df9f3d14..a3455892 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultAdminRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultAdminRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a network manager security configuration admin rule. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupDefaultAdminRule(ctx *pulumi.Context, args *LookupDefaultAdminRuleArgs, opts ...pulumi.InvokeOption) (*LookupDefaultAdminRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDefaultAdminRuleResult err := ctx.Invoke("azure-native:network:getDefaultAdminRule", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDefaultAdminRule(ctx *pulumi.Context, args *LookupDefaultAdminRuleArg } type LookupDefaultAdminRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -46,8 +48,6 @@ type LookupDefaultAdminRuleResult struct { Destinations []AddressPrefixItemResponse `pulumi:"destinations"` // Indicates if the traffic matched against the rule in inbound or outbound. Direction string `pulumi:"direction"` - // A friendly name for the rule. - DisplayName string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Default rule flag. @@ -65,6 +65,8 @@ type LookupDefaultAdminRuleResult struct { Protocol string `pulumi:"protocol"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The source port ranges. SourcePortRanges []string `pulumi:"sourcePortRanges"` // The CIDR or source IP ranges. @@ -89,7 +91,7 @@ func LookupDefaultAdminRuleOutput(ctx *pulumi.Context, args LookupDefaultAdminRu } type LookupDefaultAdminRuleOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -145,11 +147,6 @@ func (o LookupDefaultAdminRuleResultOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v LookupDefaultAdminRuleResult) string { return v.Direction }).(pulumi.StringOutput) } -// A friendly name for the rule. -func (o LookupDefaultAdminRuleResultOutput) DisplayName() pulumi.StringOutput { - return o.ApplyT(func(v LookupDefaultAdminRuleResult) string { return v.DisplayName }).(pulumi.StringOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupDefaultAdminRuleResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupDefaultAdminRuleResult) string { return v.Etag }).(pulumi.StringOutput) @@ -191,6 +188,11 @@ func (o LookupDefaultAdminRuleResultOutput) ProvisioningState() pulumi.StringOut return o.ApplyT(func(v LookupDefaultAdminRuleResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o LookupDefaultAdminRuleResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupDefaultAdminRuleResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The source port ranges. func (o LookupDefaultAdminRuleResultOutput) SourcePortRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupDefaultAdminRuleResult) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultUserRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultUserRule.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultUserRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultUserRule.go index 606801bb..465949a9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDefaultUserRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDefaultUserRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a user rule. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2022-04-01-preview. func LookupDefaultUserRule(ctx *pulumi.Context, args *LookupDefaultUserRuleArgs, opts ...pulumi.InvokeOption) (*LookupDefaultUserRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDefaultUserRuleResult err := ctx.Invoke("azure-native:network:getDefaultUserRule", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupDefaultUserRule(ctx *pulumi.Context, args *LookupDefaultUserRuleArgs, } type LookupDefaultUserRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -44,8 +46,6 @@ type LookupDefaultUserRuleResult struct { Destinations []AddressPrefixItemResponse `pulumi:"destinations"` // Indicates if the traffic matched against the rule in inbound or outbound. Direction string `pulumi:"direction"` - // A friendly name for the rule. - DisplayName string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Default rule flag. @@ -85,7 +85,7 @@ func LookupDefaultUserRuleOutput(ctx *pulumi.Context, args LookupDefaultUserRule } type LookupDefaultUserRuleOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -136,11 +136,6 @@ func (o LookupDefaultUserRuleResultOutput) Direction() pulumi.StringOutput { return o.ApplyT(func(v LookupDefaultUserRuleResult) string { return v.Direction }).(pulumi.StringOutput) } -// A friendly name for the rule. -func (o LookupDefaultUserRuleResultOutput) DisplayName() pulumi.StringOutput { - return o.ApplyT(func(v LookupDefaultUserRuleResult) string { return v.DisplayName }).(pulumi.StringOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupDefaultUserRuleResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupDefaultUserRuleResult) string { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsForwardingRuleset.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsForwardingRuleset.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsForwardingRuleset.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsForwardingRuleset.go index 6953300f..ff890a0c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsForwardingRuleset.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsForwardingRuleset.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a DNS forwarding ruleset properties. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func LookupDnsForwardingRuleset(ctx *pulumi.Context, args *LookupDnsForwardingRulesetArgs, opts ...pulumi.InvokeOption) (*LookupDnsForwardingRulesetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDnsForwardingRulesetResult err := ctx.Invoke("azure-native:network:getDnsForwardingRuleset", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResolver.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResolver.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResolver.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResolver.go index 44ab8883..5e987edd 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResolver.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResolver.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func LookupDnsResolver(ctx *pulumi.Context, args *LookupDnsResolverArgs, opts ...pulumi.InvokeOption) (*LookupDnsResolverResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDnsResolverResult err := ctx.Invoke("azure-native:network:getDnsResolver", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResourceReferenceByTarResources.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResourceReferenceByTarResources.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResourceReferenceByTarResources.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResourceReferenceByTarResources.go index 7cdf97f6..32847808 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDnsResourceReferenceByTarResources.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDnsResourceReferenceByTarResources.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Returns the DNS records specified by the referencing targetResourceIds. -// API Version: 2018-05-01. +// Azure REST API version: 2018-05-01. func GetDnsResourceReferenceByTarResources(ctx *pulumi.Context, args *GetDnsResourceReferenceByTarResourcesArgs, opts ...pulumi.InvokeOption) (*GetDnsResourceReferenceByTarResourcesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetDnsResourceReferenceByTarResourcesResult err := ctx.Invoke("azure-native:network:getDnsResourceReferenceByTarResources", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDscpConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDscpConfiguration.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDscpConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDscpConfiguration.go index 7ccca47d..06e13b95 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getDscpConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getDscpConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a DSCP Configuration. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupDscpConfiguration(ctx *pulumi.Context, args *LookupDscpConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupDscpConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDscpConfigurationResult err := ctx.Invoke("azure-native:network:getDscpConfiguration", args, &rv, opts...) if err != nil { @@ -28,7 +30,7 @@ type LookupDscpConfigurationArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// DSCP Configuration in a resource group. +// Differentiated Services Code Point configuration for any given network interface type LookupDscpConfigurationResult struct { // Associated Network Interfaces to the DSCP Configuration. AssociatedNetworkInterfaces []NetworkInterfaceResponse `pulumi:"associatedNetworkInterfaces"` @@ -52,6 +54,8 @@ type LookupDscpConfigurationResult struct { ProvisioningState string `pulumi:"provisioningState"` // Qos Collection ID generated by RNM. QosCollectionId string `pulumi:"qosCollectionId"` + // QoS object definitions + QosDefinitionCollection []QosDefinitionResponse `pulumi:"qosDefinitionCollection"` // The resource GUID property of the DSCP Configuration resource. ResourceGuid string `pulumi:"resourceGuid"` // Source IP ranges. @@ -88,7 +92,7 @@ func (LookupDscpConfigurationOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupDscpConfigurationArgs)(nil)).Elem() } -// DSCP Configuration in a resource group. +// Differentiated Services Code Point configuration for any given network interface type LookupDscpConfigurationResultOutput struct{ *pulumi.OutputState } func (LookupDscpConfigurationResultOutput) ElementType() reflect.Type { @@ -158,6 +162,11 @@ func (o LookupDscpConfigurationResultOutput) QosCollectionId() pulumi.StringOutp return o.ApplyT(func(v LookupDscpConfigurationResult) string { return v.QosCollectionId }).(pulumi.StringOutput) } +// QoS object definitions +func (o LookupDscpConfigurationResultOutput) QosDefinitionCollection() QosDefinitionResponseArrayOutput { + return o.ApplyT(func(v LookupDscpConfigurationResult) []QosDefinitionResponse { return v.QosDefinitionCollection }).(QosDefinitionResponseArrayOutput) +} + // The resource GUID property of the DSCP Configuration resource. func (o LookupDscpConfigurationResultOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v LookupDscpConfigurationResult) string { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getEndpoint.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getEndpoint.go index 3ce5c455..e749bd63 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getEndpoint.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Traffic Manager endpoint. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. func LookupEndpoint(ctx *pulumi.Context, args *LookupEndpointArgs, opts ...pulumi.InvokeOption) (*LookupEndpointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupEndpointResult err := ctx.Invoke("azure-native:network:getEndpoint", args, &rv, opts...) if err != nil { @@ -28,12 +30,14 @@ type LookupEndpointArgs struct { EndpointType string `pulumi:"endpointType"` // The name of the Traffic Manager profile. ProfileName string `pulumi:"profileName"` - // The name of the resource group containing the Traffic Manager endpoint. + // The name of the resource group. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` } // Class representing a Traffic Manager endpoint. type LookupEndpointResult struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe *string `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders []EndpointPropertiesResponseCustomHeaders `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -88,7 +92,7 @@ type LookupEndpointOutputArgs struct { EndpointType pulumi.StringInput `pulumi:"endpointType"` // The name of the Traffic Manager profile. ProfileName pulumi.StringInput `pulumi:"profileName"` - // The name of the resource group containing the Traffic Manager endpoint. + // The name of the resource group. The name is case insensitive. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` } @@ -111,6 +115,11 @@ func (o LookupEndpointResultOutput) ToLookupEndpointResultOutputWithContext(ctx return o } +// If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. +func (o LookupEndpointResultOutput) AlwaysServe() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupEndpointResult) *string { return v.AlwaysServe }).(pulumi.StringPtrOutput) +} + // List of custom headers. func (o LookupEndpointResultOutput) CustomHeaders() EndpointPropertiesResponseCustomHeadersArrayOutput { return o.ApplyT(func(v LookupEndpointResult) []EndpointPropertiesResponseCustomHeaders { return v.CustomHeaders }).(EndpointPropertiesResponseCustomHeadersArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExperiment.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExperiment.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExperiment.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExperiment.go index 1c5b4545..899e7378 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExperiment.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExperiment.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines the properties of an Experiment -// API Version: 2019-11-01. +// Azure REST API version: 2019-11-01. func LookupExperiment(ctx *pulumi.Context, args *LookupExperimentArgs, opts ...pulumi.InvokeOption) (*LookupExperimentResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExperimentResult err := ctx.Invoke("azure-native:network:getExperiment", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuit.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuit.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuit.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuit.go index 554a4920..67019c60 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuit.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuit.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified express route circuit. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteCircuit(ctx *pulumi.Context, args *LookupExpressRouteCircuitArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteCircuitResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteCircuitResult err := ctx.Invoke("azure-native:network:getExpressRouteCircuit", args, &rv, opts...) if err != nil { @@ -32,6 +34,10 @@ type LookupExpressRouteCircuitArgs struct { type LookupExpressRouteCircuitResult struct { // Allow classic operations. AllowClassicOperations *bool `pulumi:"allowClassicOperations"` + // The authorizationKey. + AuthorizationKey *string `pulumi:"authorizationKey"` + // The authorization status of the Circuit. + AuthorizationStatus string `pulumi:"authorizationStatus"` // The list of authorizations. Authorizations []ExpressRouteCircuitAuthorizationResponse `pulumi:"authorizations"` // The bandwidth of the circuit when the circuit is provisioned on an ExpressRoutePort resource. @@ -118,6 +124,16 @@ func (o LookupExpressRouteCircuitResultOutput) AllowClassicOperations() pulumi.B return o.ApplyT(func(v LookupExpressRouteCircuitResult) *bool { return v.AllowClassicOperations }).(pulumi.BoolPtrOutput) } +// The authorizationKey. +func (o LookupExpressRouteCircuitResultOutput) AuthorizationKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupExpressRouteCircuitResult) *string { return v.AuthorizationKey }).(pulumi.StringPtrOutput) +} + +// The authorization status of the Circuit. +func (o LookupExpressRouteCircuitResultOutput) AuthorizationStatus() pulumi.StringOutput { + return o.ApplyT(func(v LookupExpressRouteCircuitResult) string { return v.AuthorizationStatus }).(pulumi.StringOutput) +} + // The list of authorizations. func (o LookupExpressRouteCircuitResultOutput) Authorizations() ExpressRouteCircuitAuthorizationResponseArrayOutput { return o.ApplyT(func(v LookupExpressRouteCircuitResult) []ExpressRouteCircuitAuthorizationResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitAuthorization.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitAuthorization.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitAuthorization.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitAuthorization.go index 3e21e627..329688f0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitAuthorization.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitAuthorization.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified authorization from the specified express route circuit. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteCircuitAuthorization(ctx *pulumi.Context, args *LookupExpressRouteCircuitAuthorizationArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteCircuitAuthorizationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteCircuitAuthorizationResult err := ctx.Invoke("azure-native:network:getExpressRouteCircuitAuthorization", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitConnection.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitConnection.go index 6b2b12c0..e880947b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Express Route Circuit Connection from the specified express route circuit. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteCircuitConnection(ctx *pulumi.Context, args *LookupExpressRouteCircuitConnectionArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteCircuitConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteCircuitConnectionResult err := ctx.Invoke("azure-native:network:getExpressRouteCircuitConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitPeering.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitPeering.go index 1e74ef19..2f9ddff7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCircuitPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCircuitPeering.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified peering for the express route circuit. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteCircuitPeering(ctx *pulumi.Context, args *LookupExpressRouteCircuitPeeringArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteCircuitPeeringResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteCircuitPeeringResult err := ctx.Invoke("azure-native:network:getExpressRouteCircuitPeering", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteConnection.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteConnection.go index eb72f231..24202d7b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified ExpressRouteConnection. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteConnection(ctx *pulumi.Context, args *LookupExpressRouteConnectionArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteConnectionResult err := ctx.Invoke("azure-native:network:getExpressRouteConnection", args, &rv, opts...) if err != nil { @@ -36,6 +38,8 @@ type LookupExpressRouteConnectionResult struct { AuthorizationKey *string `pulumi:"authorizationKey"` // Enable internet security. EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` // The ExpressRoute circuit peering. ExpressRouteCircuitPeering ExpressRouteCircuitPeeringIdResponse `pulumi:"expressRouteCircuitPeering"` // Enable FastPath to vWan Firewall hub. @@ -103,6 +107,11 @@ func (o LookupExpressRouteConnectionResultOutput) EnableInternetSecurity() pulum return o.ApplyT(func(v LookupExpressRouteConnectionResult) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) } +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o LookupExpressRouteConnectionResultOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupExpressRouteConnectionResult) *bool { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + // The ExpressRoute circuit peering. func (o LookupExpressRouteConnectionResultOutput) ExpressRouteCircuitPeering() ExpressRouteCircuitPeeringIdResponseOutput { return o.ApplyT(func(v LookupExpressRouteConnectionResult) ExpressRouteCircuitPeeringIdResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCrossConnectionPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCrossConnectionPeering.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCrossConnectionPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCrossConnectionPeering.go index 452b7cc9..27f260d7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteCrossConnectionPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteCrossConnectionPeering.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified peering for the ExpressRouteCrossConnection. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteCrossConnectionPeering(ctx *pulumi.Context, args *LookupExpressRouteCrossConnectionPeeringArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteCrossConnectionPeeringResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteCrossConnectionPeeringResult err := ctx.Invoke("azure-native:network:getExpressRouteCrossConnectionPeering", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteGateway.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteGateway.go index 4b66e6b9..7b6edeff 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRouteGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRouteGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Fetches the details of a ExpressRoute gateway in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRouteGateway(ctx *pulumi.Context, args *LookupExpressRouteGatewayArgs, opts ...pulumi.InvokeOption) (*LookupExpressRouteGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRouteGatewayResult err := ctx.Invoke("azure-native:network:getExpressRouteGateway", args, &rv, opts...) if err != nil { @@ -30,6 +32,8 @@ type LookupExpressRouteGatewayArgs struct { // ExpressRoute gateway resource. type LookupExpressRouteGatewayResult struct { + // Configures this gateway to accept traffic from non Virtual WAN networks. + AllowNonVirtualWanTraffic *bool `pulumi:"allowNonVirtualWanTraffic"` // Configuration for auto scaling. AutoScaleConfiguration *ExpressRouteGatewayPropertiesResponseAutoScaleConfiguration `pulumi:"autoScaleConfiguration"` // A unique read-only string that changes whenever the resource is updated. @@ -91,6 +95,11 @@ func (o LookupExpressRouteGatewayResultOutput) ToLookupExpressRouteGatewayResult return o } +// Configures this gateway to accept traffic from non Virtual WAN networks. +func (o LookupExpressRouteGatewayResultOutput) AllowNonVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupExpressRouteGatewayResult) *bool { return v.AllowNonVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + // Configuration for auto scaling. func (o LookupExpressRouteGatewayResultOutput) AutoScaleConfiguration() ExpressRouteGatewayPropertiesResponseAutoScaleConfigurationPtrOutput { return o.ApplyT(func(v LookupExpressRouteGatewayResult) *ExpressRouteGatewayPropertiesResponseAutoScaleConfiguration { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePort.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePort.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePort.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePort.go index e4525eac..28d8f3b6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePort.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePort.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the requested ExpressRoutePort resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupExpressRoutePort(ctx *pulumi.Context, args *LookupExpressRoutePortArgs, opts ...pulumi.InvokeOption) (*LookupExpressRoutePortResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRoutePortResult err := ctx.Invoke("azure-native:network:getExpressRoutePort", args, &rv, opts...) if err != nil { @@ -34,6 +36,8 @@ type LookupExpressRoutePortResult struct { AllocationDate string `pulumi:"allocationDate"` // Bandwidth of procured ports in Gbps. BandwidthInGbps *int `pulumi:"bandwidthInGbps"` + // The billing type of the ExpressRoutePort resource. + BillingType *string `pulumi:"billingType"` // Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource. Circuits []SubResourceResponse `pulumi:"circuits"` // Encapsulation method on physical ports. @@ -117,6 +121,11 @@ func (o LookupExpressRoutePortResultOutput) BandwidthInGbps() pulumi.IntPtrOutpu return o.ApplyT(func(v LookupExpressRoutePortResult) *int { return v.BandwidthInGbps }).(pulumi.IntPtrOutput) } +// The billing type of the ExpressRoutePort resource. +func (o LookupExpressRoutePortResultOutput) BillingType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupExpressRoutePortResult) *string { return v.BillingType }).(pulumi.StringPtrOutput) +} + // Reference the ExpressRoute circuit(s) that are provisioned on this ExpressRoutePort resource. func (o LookupExpressRoutePortResultOutput) Circuits() SubResourceResponseArrayOutput { return o.ApplyT(func(v LookupExpressRoutePortResult) []SubResourceResponse { return v.Circuits }).(SubResourceResponseArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePortAuthorization.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePortAuthorization.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePortAuthorization.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePortAuthorization.go index e715a508..c676c16e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getExpressRoutePortAuthorization.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getExpressRoutePortAuthorization.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified authorization from the specified express route port. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func LookupExpressRoutePortAuthorization(ctx *pulumi.Context, args *LookupExpressRoutePortAuthorizationArgs, opts ...pulumi.InvokeOption) (*LookupExpressRoutePortAuthorizationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupExpressRoutePortAuthorizationResult err := ctx.Invoke("azure-native:network:getExpressRoutePortAuthorization", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicy.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicy.go index f248d12e..8c2292f9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Firewall Policy. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupFirewallPolicy(ctx *pulumi.Context, args *LookupFirewallPolicyArgs, opts ...pulumi.InvokeOption) (*LookupFirewallPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFirewallPolicyResult err := ctx.Invoke("azure-native:network:getFirewallPolicy", args, &rv, opts...) if err != nil { @@ -40,6 +42,8 @@ type LookupFirewallPolicyResult struct { DnsSettings *DnsSettingsResponse `pulumi:"dnsSettings"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // Explicit Proxy Settings definition. + ExplicitProxy *ExplicitProxyResponse `pulumi:"explicitProxy"` // List of references to Azure Firewalls that this Firewall Policy is associated with. Firewalls []SubResourceResponse `pulumi:"firewalls"` // Resource ID. @@ -62,6 +66,8 @@ type LookupFirewallPolicyResult struct { Sku *FirewallPolicySkuResponse `pulumi:"sku"` // The private IP addresses/IP ranges to which traffic will not be SNAT. Snat *FirewallPolicySNATResponse `pulumi:"snat"` + // SQL Settings definition. + Sql *FirewallPolicySQLResponse `pulumi:"sql"` // Resource tags. Tags map[string]string `pulumi:"tags"` // The operation mode for Threat Intelligence. @@ -135,6 +141,11 @@ func (o LookupFirewallPolicyResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupFirewallPolicyResult) string { return v.Etag }).(pulumi.StringOutput) } +// Explicit Proxy Settings definition. +func (o LookupFirewallPolicyResultOutput) ExplicitProxy() ExplicitProxyResponsePtrOutput { + return o.ApplyT(func(v LookupFirewallPolicyResult) *ExplicitProxyResponse { return v.ExplicitProxy }).(ExplicitProxyResponsePtrOutput) +} + // List of references to Azure Firewalls that this Firewall Policy is associated with. func (o LookupFirewallPolicyResultOutput) Firewalls() SubResourceResponseArrayOutput { return o.ApplyT(func(v LookupFirewallPolicyResult) []SubResourceResponse { return v.Firewalls }).(SubResourceResponseArrayOutput) @@ -192,6 +203,11 @@ func (o LookupFirewallPolicyResultOutput) Snat() FirewallPolicySNATResponsePtrOu return o.ApplyT(func(v LookupFirewallPolicyResult) *FirewallPolicySNATResponse { return v.Snat }).(FirewallPolicySNATResponsePtrOutput) } +// SQL Settings definition. +func (o LookupFirewallPolicyResultOutput) Sql() FirewallPolicySQLResponsePtrOutput { + return o.ApplyT(func(v LookupFirewallPolicyResult) *FirewallPolicySQLResponse { return v.Sql }).(FirewallPolicySQLResponsePtrOutput) +} + // Resource tags. func (o LookupFirewallPolicyResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupFirewallPolicyResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleCollectionGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleCollectionGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleCollectionGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleCollectionGroup.go index c6982df9..c761c8aa 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleCollectionGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleCollectionGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified FirewallPolicyRuleCollectionGroup. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupFirewallPolicyRuleCollectionGroup(ctx *pulumi.Context, args *LookupFirewallPolicyRuleCollectionGroupArgs, opts ...pulumi.InvokeOption) (*LookupFirewallPolicyRuleCollectionGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFirewallPolicyRuleCollectionGroupResult err := ctx.Invoke("azure-native:network:getFirewallPolicyRuleCollectionGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleGroup.go index cb6f75a3..2755bf25 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFirewallPolicyRuleGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFirewallPolicyRuleGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified FirewallPolicyRuleGroup. -// API Version: 2020-04-01. +// Azure REST API version: 2020-04-01. func LookupFirewallPolicyRuleGroup(ctx *pulumi.Context, args *LookupFirewallPolicyRuleGroupArgs, opts ...pulumi.InvokeOption) (*LookupFirewallPolicyRuleGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFirewallPolicyRuleGroupResult err := ctx.Invoke("azure-native:network:getFirewallPolicyRuleGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFlowLog.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFlowLog.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFlowLog.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFlowLog.go index 686c1a2d..575cf12d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFlowLog.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFlowLog.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a flow log resource by name. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupFlowLog(ctx *pulumi.Context, args *LookupFlowLogArgs, opts ...pulumi.InvokeOption) (*LookupFlowLogResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFlowLogResult err := ctx.Invoke("azure-native:network:getFlowLog", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getForwardingRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getForwardingRule.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getForwardingRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getForwardingRule.go index c35d5d55..c9fd3161 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getForwardingRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getForwardingRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of a forwarding rule in a DNS forwarding ruleset. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func LookupForwardingRule(ctx *pulumi.Context, args *LookupForwardingRuleArgs, opts ...pulumi.InvokeOption) (*LookupForwardingRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupForwardingRuleResult err := ctx.Invoke("azure-native:network:getForwardingRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFrontDoor.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFrontDoor.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFrontDoor.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFrontDoor.go index f6920038..f067f512 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getFrontDoor.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getFrontDoor.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Front Door with the specified Front Door name under the specified subscription and resource group. -// API Version: 2020-05-01. +// Azure REST API version: 2021-06-01. func LookupFrontDoor(ctx *pulumi.Context, args *LookupFrontDoorArgs, opts ...pulumi.InvokeOption) (*LookupFrontDoorResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFrontDoorResult err := ctx.Invoke("azure-native:network:getFrontDoor", args, &rv, opts...) if err != nil { @@ -38,6 +40,8 @@ type LookupFrontDoorResult struct { Cname string `pulumi:"cname"` // Operational status of the Front Door load balancer. Permitted values are 'Enabled' or 'Disabled' EnabledState *string `pulumi:"enabledState"` + // Key-Value pair representing additional properties for frontdoor. + ExtendedProperties map[string]string `pulumi:"extendedProperties"` // A friendly name for the frontDoor FriendlyName *string `pulumi:"friendlyName"` // The Id of the frontdoor. @@ -138,6 +142,11 @@ func (o LookupFrontDoorResultOutput) EnabledState() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupFrontDoorResult) *string { return v.EnabledState }).(pulumi.StringPtrOutput) } +// Key-Value pair representing additional properties for frontdoor. +func (o LookupFrontDoorResultOutput) ExtendedProperties() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupFrontDoorResult) map[string]string { return v.ExtendedProperties }).(pulumi.StringMapOutput) +} + // A friendly name for the frontDoor func (o LookupFrontDoorResultOutput) FriendlyName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupFrontDoorResult) *string { return v.FriendlyName }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubRouteTable.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubRouteTable.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubRouteTable.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubRouteTable.go index ed8f2ae2..05e7472b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubRouteTable.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubRouteTable.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a RouteTable. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupHubRouteTable(ctx *pulumi.Context, args *LookupHubRouteTableArgs, opts ...pulumi.InvokeOption) (*LookupHubRouteTableResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupHubRouteTableResult err := ctx.Invoke("azure-native:network:getHubRouteTable", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubVirtualNetworkConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubVirtualNetworkConnection.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubVirtualNetworkConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubVirtualNetworkConnection.go index 0f00e22f..2bb2a095 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getHubVirtualNetworkConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getHubVirtualNetworkConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a HubVirtualNetworkConnection. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupHubVirtualNetworkConnection(ctx *pulumi.Context, args *LookupHubVirtualNetworkConnectionArgs, opts ...pulumi.InvokeOption) (*LookupHubVirtualNetworkConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupHubVirtualNetworkConnectionResult err := ctx.Invoke("azure-native:network:getHubVirtualNetworkConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundEndpoint.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundEndpoint.go index 89f838f9..d8634be0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundEndpoint.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of an inbound endpoint for a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func LookupInboundEndpoint(ctx *pulumi.Context, args *LookupInboundEndpointArgs, opts ...pulumi.InvokeOption) (*LookupInboundEndpointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupInboundEndpointResult err := ctx.Invoke("azure-native:network:getInboundEndpoint", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundNatRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundNatRule.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundNatRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundNatRule.go index c7d67d43..b0c13d5d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getInboundNatRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInboundNatRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Gets the specified load balancer inbound nat rule. -// API Version: 2020-11-01. +// Gets the specified load balancer inbound NAT rule. +// Azure REST API version: 2023-02-01. func LookupInboundNatRule(ctx *pulumi.Context, args *LookupInboundNatRuleArgs, opts ...pulumi.InvokeOption) (*LookupInboundNatRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupInboundNatRuleResult err := ctx.Invoke("azure-native:network:getInboundNatRule", args, &rv, opts...) if err != nil { @@ -24,7 +26,7 @@ func LookupInboundNatRule(ctx *pulumi.Context, args *LookupInboundNatRuleArgs, o type LookupInboundNatRuleArgs struct { // Expands referenced resources. Expand *string `pulumi:"expand"` - // The name of the inbound nat rule. + // The name of the inbound NAT rule. InboundNatRuleName string `pulumi:"inboundNatRuleName"` // The name of the load balancer. LoadBalancerName string `pulumi:"loadBalancerName"` @@ -34,6 +36,8 @@ type LookupInboundNatRuleArgs struct { // Inbound NAT rule of the load balancer. type LookupInboundNatRuleResult struct { + // A reference to backendAddressPool resource. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. BackendIPConfiguration NetworkInterfaceIPConfigurationResponse `pulumi:"backendIPConfiguration"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. @@ -48,6 +52,10 @@ type LookupInboundNatRuleResult struct { FrontendIPConfiguration *SubResourceResponse `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort *int `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd *int `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart *int `pulumi:"frontendPortRangeStart"` // Resource ID. Id *string `pulumi:"id"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. @@ -89,7 +97,7 @@ func LookupInboundNatRuleOutput(ctx *pulumi.Context, args LookupInboundNatRuleOu type LookupInboundNatRuleOutputArgs struct { // Expands referenced resources. Expand pulumi.StringPtrInput `pulumi:"expand"` - // The name of the inbound nat rule. + // The name of the inbound NAT rule. InboundNatRuleName pulumi.StringInput `pulumi:"inboundNatRuleName"` // The name of the load balancer. LoadBalancerName pulumi.StringInput `pulumi:"loadBalancerName"` @@ -116,6 +124,11 @@ func (o LookupInboundNatRuleResultOutput) ToLookupInboundNatRuleResultOutputWith return o } +// A reference to backendAddressPool resource. +func (o LookupInboundNatRuleResultOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LookupInboundNatRuleResult) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) +} + // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. func (o LookupInboundNatRuleResultOutput) BackendIPConfiguration() NetworkInterfaceIPConfigurationResponseOutput { return o.ApplyT(func(v LookupInboundNatRuleResult) NetworkInterfaceIPConfigurationResponse { @@ -153,6 +166,16 @@ func (o LookupInboundNatRuleResultOutput) FrontendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupInboundNatRuleResult) *int { return v.FrontendPort }).(pulumi.IntPtrOutput) } +// The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o LookupInboundNatRuleResultOutput) FrontendPortRangeEnd() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupInboundNatRuleResult) *int { return v.FrontendPortRangeEnd }).(pulumi.IntPtrOutput) +} + +// The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o LookupInboundNatRuleResultOutput) FrontendPortRangeStart() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupInboundNatRuleResult) *int { return v.FrontendPortRangeStart }).(pulumi.IntPtrOutput) +} + // Resource ID. func (o LookupInboundNatRuleResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupInboundNatRuleResult) *string { return v.Id }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInterfaceEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInterfaceEndpoint.go new file mode 100644 index 00000000..5cd65236 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getInterfaceEndpoint.go @@ -0,0 +1,177 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets the specified interface endpoint by resource group. +// Azure REST API version: 2019-02-01. +func LookupInterfaceEndpoint(ctx *pulumi.Context, args *LookupInterfaceEndpointArgs, opts ...pulumi.InvokeOption) (*LookupInterfaceEndpointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupInterfaceEndpointResult + err := ctx.Invoke("azure-native:network:getInterfaceEndpoint", args, &rv, opts...) + if err != nil { + return nil, err + } + return rv.Defaults(), nil +} + +type LookupInterfaceEndpointArgs struct { + // Expands referenced resources. + Expand *string `pulumi:"expand"` + // The name of the interface endpoint. + InterfaceEndpointName string `pulumi:"interfaceEndpointName"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` +} + +// Interface endpoint resource. +type LookupInterfaceEndpointResult struct { + // A reference to the service being brought into the virtual network. + EndpointService *EndpointServiceResponse `pulumi:"endpointService"` + // Gets a unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. + Fqdn *string `pulumi:"fqdn"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // Gets an array of references to the network interfaces created for this interface endpoint. + NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` + // A read-only property that identifies who created this interface endpoint. + Owner string `pulumi:"owner"` + // The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState string `pulumi:"provisioningState"` + // The ID of the subnet from which the private IP will be allocated. + Subnet *SubnetResponse `pulumi:"subnet"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` +} + +// Defaults sets the appropriate defaults for LookupInterfaceEndpointResult +func (val *LookupInterfaceEndpointResult) Defaults() *LookupInterfaceEndpointResult { + if val == nil { + return nil + } + tmp := *val + tmp.Subnet = tmp.Subnet.Defaults() + + return &tmp +} + +func LookupInterfaceEndpointOutput(ctx *pulumi.Context, args LookupInterfaceEndpointOutputArgs, opts ...pulumi.InvokeOption) LookupInterfaceEndpointResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupInterfaceEndpointResult, error) { + args := v.(LookupInterfaceEndpointArgs) + r, err := LookupInterfaceEndpoint(ctx, &args, opts...) + var s LookupInterfaceEndpointResult + if r != nil { + s = *r + } + return s, err + }).(LookupInterfaceEndpointResultOutput) +} + +type LookupInterfaceEndpointOutputArgs struct { + // Expands referenced resources. + Expand pulumi.StringPtrInput `pulumi:"expand"` + // The name of the interface endpoint. + InterfaceEndpointName pulumi.StringInput `pulumi:"interfaceEndpointName"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` +} + +func (LookupInterfaceEndpointOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInterfaceEndpointArgs)(nil)).Elem() +} + +// Interface endpoint resource. +type LookupInterfaceEndpointResultOutput struct{ *pulumi.OutputState } + +func (LookupInterfaceEndpointResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInterfaceEndpointResult)(nil)).Elem() +} + +func (o LookupInterfaceEndpointResultOutput) ToLookupInterfaceEndpointResultOutput() LookupInterfaceEndpointResultOutput { + return o +} + +func (o LookupInterfaceEndpointResultOutput) ToLookupInterfaceEndpointResultOutputWithContext(ctx context.Context) LookupInterfaceEndpointResultOutput { + return o +} + +// A reference to the service being brought into the virtual network. +func (o LookupInterfaceEndpointResultOutput) EndpointService() EndpointServiceResponsePtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *EndpointServiceResponse { return v.EndpointService }).(EndpointServiceResponsePtrOutput) +} + +// Gets a unique read-only string that changes whenever the resource is updated. +func (o LookupInterfaceEndpointResultOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. +func (o LookupInterfaceEndpointResultOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *string { return v.Fqdn }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o LookupInterfaceEndpointResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o LookupInterfaceEndpointResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o LookupInterfaceEndpointResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Gets an array of references to the network interfaces created for this interface endpoint. +func (o LookupInterfaceEndpointResultOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) +} + +// A read-only property that identifies who created this interface endpoint. +func (o LookupInterfaceEndpointResultOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) string { return v.Owner }).(pulumi.StringOutput) +} + +// The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o LookupInterfaceEndpointResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The ID of the subnet from which the private IP will be allocated. +func (o LookupInterfaceEndpointResultOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) +} + +// Resource tags. +func (o LookupInterfaceEndpointResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o LookupInterfaceEndpointResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupInterfaceEndpointResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupInterfaceEndpointResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpAllocation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpAllocation.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpAllocation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpAllocation.go index 60173b22..e2054252 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpAllocation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpAllocation.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified IpAllocation by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupIpAllocation(ctx *pulumi.Context, args *LookupIpAllocationArgs, opts ...pulumi.InvokeOption) (*LookupIpAllocationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupIpAllocationResult err := ctx.Invoke("azure-native:network:getIpAllocation", args, &rv, opts...) if err != nil { @@ -66,7 +68,7 @@ func (val *LookupIpAllocationResult) Defaults() *LookupIpAllocationResult { return nil } tmp := *val - if isZero(tmp.PrefixLength) { + if tmp.PrefixLength == nil { prefixLength_ := 0 tmp.PrefixLength = &prefixLength_ } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpGroup.go index 5986199d..819c9630 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getIpGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getIpGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified ipGroups. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupIpGroup(ctx *pulumi.Context, args *LookupIpGroupArgs, opts ...pulumi.InvokeOption) (*LookupIpGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupIpGroupResult err := ctx.Invoke("azure-native:network:getIpGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancer.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancer.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancer.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancer.go index 6f07b9da..67983e76 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancer.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancer.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified load balancer. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupLoadBalancer(ctx *pulumi.Context, args *LookupLoadBalancerArgs, opts ...pulumi.InvokeOption) (*LookupLoadBalancerResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupLoadBalancerResult err := ctx.Invoke("azure-native:network:getLoadBalancer", args, &rv, opts...) if err != nil { @@ -42,7 +44,7 @@ type LookupLoadBalancerResult struct { FrontendIPConfigurations []FrontendIPConfigurationResponse `pulumi:"frontendIPConfigurations"` // Resource ID. Id *string `pulumi:"id"` - // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. + // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatPools []InboundNatPoolResponse `pulumi:"inboundNatPools"` // Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatRules []InboundNatRuleResponse `pulumi:"inboundNatRules"` @@ -134,7 +136,7 @@ func (o LookupLoadBalancerResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. +// Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. func (o LookupLoadBalancerResultOutput) InboundNatPools() InboundNatPoolResponseArrayOutput { return o.ApplyT(func(v LookupLoadBalancerResult) []InboundNatPoolResponse { return v.InboundNatPools }).(InboundNatPoolResponseArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancerBackendAddressPool.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancerBackendAddressPool.go similarity index 75% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancerBackendAddressPool.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancerBackendAddressPool.go index 6fed9c95..c7e9d25e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLoadBalancerBackendAddressPool.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLoadBalancerBackendAddressPool.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets load balancer backend address pool. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupLoadBalancerBackendAddressPool(ctx *pulumi.Context, args *LookupLoadBalancerBackendAddressPoolArgs, opts ...pulumi.InvokeOption) (*LookupLoadBalancerBackendAddressPoolResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupLoadBalancerBackendAddressPoolResult err := ctx.Invoke("azure-native:network:getLoadBalancerBackendAddressPool", args, &rv, opts...) if err != nil { @@ -34,14 +36,20 @@ type LookupLoadBalancerBackendAddressPoolArgs struct { type LookupLoadBalancerBackendAddressPoolResult struct { // An array of references to IP addresses defined in network interfaces. BackendIPConfigurations []NetworkInterfaceIPConfigurationResponse `pulumi:"backendIPConfigurations"` + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds *int `pulumi:"drainPeriodInSeconds"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` + // An array of references to inbound NAT rules that use this backend address pool. + InboundNatRules []SubResourceResponse `pulumi:"inboundNatRules"` // An array of backend addresses. LoadBalancerBackendAddresses []LoadBalancerBackendAddressResponse `pulumi:"loadBalancerBackendAddresses"` // An array of references to load balancing rules that use this backend address pool. LoadBalancingRules []SubResourceResponse `pulumi:"loadBalancingRules"` + // The location of the backend address pool. + Location *string `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name *string `pulumi:"name"` // A reference to an outbound rule that uses this backend address pool. @@ -50,8 +58,12 @@ type LookupLoadBalancerBackendAddressPoolResult struct { OutboundRules []SubResourceResponse `pulumi:"outboundRules"` // The provisioning state of the backend address pool resource. ProvisioningState string `pulumi:"provisioningState"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces []GatewayLoadBalancerTunnelInterfaceResponse `pulumi:"tunnelInterfaces"` // Type of the resource. Type string `pulumi:"type"` + // A reference to a virtual network. + VirtualNetwork *SubResourceResponse `pulumi:"virtualNetwork"` } func LookupLoadBalancerBackendAddressPoolOutput(ctx *pulumi.Context, args LookupLoadBalancerBackendAddressPoolOutputArgs, opts ...pulumi.InvokeOption) LookupLoadBalancerBackendAddressPoolResultOutput { @@ -102,6 +114,11 @@ func (o LookupLoadBalancerBackendAddressPoolResultOutput) BackendIPConfiguration }).(NetworkInterfaceIPConfigurationResponseArrayOutput) } +// Amount of seconds Load Balancer waits for before sending RESET to client and backend address. +func (o LookupLoadBalancerBackendAddressPoolResultOutput) DrainPeriodInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) *int { return v.DrainPeriodInSeconds }).(pulumi.IntPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupLoadBalancerBackendAddressPoolResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) string { return v.Etag }).(pulumi.StringOutput) @@ -112,6 +129,11 @@ func (o LookupLoadBalancerBackendAddressPoolResultOutput) Id() pulumi.StringPtrO return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) *string { return v.Id }).(pulumi.StringPtrOutput) } +// An array of references to inbound NAT rules that use this backend address pool. +func (o LookupLoadBalancerBackendAddressPoolResultOutput) InboundNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) []SubResourceResponse { return v.InboundNatRules }).(SubResourceResponseArrayOutput) +} + // An array of backend addresses. func (o LookupLoadBalancerBackendAddressPoolResultOutput) LoadBalancerBackendAddresses() LoadBalancerBackendAddressResponseArrayOutput { return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) []LoadBalancerBackendAddressResponse { @@ -124,6 +146,11 @@ func (o LookupLoadBalancerBackendAddressPoolResultOutput) LoadBalancingRules() S return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) []SubResourceResponse { return v.LoadBalancingRules }).(SubResourceResponseArrayOutput) } +// The location of the backend address pool. +func (o LookupLoadBalancerBackendAddressPoolResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. func (o LookupLoadBalancerBackendAddressPoolResultOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -144,11 +171,23 @@ func (o LookupLoadBalancerBackendAddressPoolResultOutput) ProvisioningState() pu return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// An array of gateway load balancer tunnel interfaces. +func (o LookupLoadBalancerBackendAddressPoolResultOutput) TunnelInterfaces() GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) []GatewayLoadBalancerTunnelInterfaceResponse { + return v.TunnelInterfaces + }).(GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) +} + // Type of the resource. func (o LookupLoadBalancerBackendAddressPoolResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) string { return v.Type }).(pulumi.StringOutput) } +// A reference to a virtual network. +func (o LookupLoadBalancerBackendAddressPoolResultOutput) VirtualNetwork() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LookupLoadBalancerBackendAddressPoolResult) *SubResourceResponse { return v.VirtualNetwork }).(SubResourceResponsePtrOutput) +} + func init() { pulumi.RegisterOutputType(LookupLoadBalancerBackendAddressPoolResultOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLocalNetworkGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLocalNetworkGateway.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLocalNetworkGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLocalNetworkGateway.go index 453a9c45..1d24f225 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getLocalNetworkGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getLocalNetworkGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified local network gateway in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupLocalNetworkGateway(ctx *pulumi.Context, args *LookupLocalNetworkGatewayArgs, opts ...pulumi.InvokeOption) (*LookupLocalNetworkGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupLocalNetworkGatewayResult err := ctx.Invoke("azure-native:network:getLocalNetworkGateway", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getManagementGroupNetworkManagerConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getManagementGroupNetworkManagerConnection.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getManagementGroupNetworkManagerConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getManagementGroupNetworkManagerConnection.go index 4097e236..c44bdde0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getManagementGroupNetworkManagerConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getManagementGroupNetworkManagerConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get a specified connection created by this management group. -// API Version: 2021-05-01-preview. +// Azure REST API version: 2023-02-01. func LookupManagementGroupNetworkManagerConnection(ctx *pulumi.Context, args *LookupManagementGroupNetworkManagerConnectionArgs, opts ...pulumi.InvokeOption) (*LookupManagementGroupNetworkManagerConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupManagementGroupNetworkManagerConnectionResult err := ctx.Invoke("azure-native:network:getManagementGroupNetworkManagerConnection", args, &rv, opts...) if err != nil { @@ -30,7 +32,7 @@ type LookupManagementGroupNetworkManagerConnectionArgs struct { // The Network Manager Connection resource type LookupManagementGroupNetworkManagerConnectionResult struct { - // A description of the scope connection. + // A description of the network manager connection. Description *string `pulumi:"description"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` @@ -85,7 +87,7 @@ func (o LookupManagementGroupNetworkManagerConnectionResultOutput) ToLookupManag return o } -// A description of the scope connection. +// A description of the network manager connection. func (o LookupManagementGroupNetworkManagerConnectionResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagementGroupNetworkManagerConnectionResult) *string { return v.Description }).(pulumi.StringPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatGateway.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatGateway.go index 88b775bf..eb8ee374 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified nat gateway in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNatGateway(ctx *pulumi.Context, args *LookupNatGatewayArgs, opts ...pulumi.InvokeOption) (*LookupNatGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNatGatewayResult err := ctx.Invoke("azure-native:network:getNatGateway", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatRule.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatRule.go index 3ee676ca..bbf1b7b6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNatRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNatRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a nat ruleGet. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNatRule(ctx *pulumi.Context, args *LookupNatRuleArgs, opts ...pulumi.InvokeOption) (*LookupNatRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNatRuleResult err := ctx.Invoke("azure-native:network:getNatRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkExperimentProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkExperimentProfile.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkExperimentProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkExperimentProfile.go index e41e849a..cb7bc433 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkExperimentProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkExperimentProfile.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines an Network Experiment Profile and lists of Experiments -// API Version: 2019-11-01. +// Azure REST API version: 2019-11-01. func LookupNetworkExperimentProfile(ctx *pulumi.Context, args *LookupNetworkExperimentProfileArgs, opts ...pulumi.InvokeOption) (*LookupNetworkExperimentProfileResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkExperimentProfileResult err := ctx.Invoke("azure-native:network:getNetworkExperimentProfile", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkGroup.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkGroup.go index 4c8b316f..d5fb4c4a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified network group. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupNetworkGroup(ctx *pulumi.Context, args *LookupNetworkGroupArgs, opts ...pulumi.InvokeOption) (*LookupNetworkGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkGroupResult err := ctx.Invoke("azure-native:network:getNetworkGroup", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupNetworkGroup(ctx *pulumi.Context, args *LookupNetworkGroupArgs, opts } type LookupNetworkGroupArgs struct { - // The name of the network group to get. + // The name of the network group. NetworkGroupName string `pulumi:"networkGroupName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -32,24 +34,18 @@ type LookupNetworkGroupArgs struct { // The network group resource type LookupNetworkGroupResult struct { - // Network group conditional filter. - ConditionalMembership *string `pulumi:"conditionalMembership"` // A description of the network group. Description *string `pulumi:"description"` - // A friendly name for the network group. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` - // Group members of network group. - GroupMembers []GroupMembersItemResponse `pulumi:"groupMembers"` // Resource ID. Id string `pulumi:"id"` - // Group member type. - MemberType *string `pulumi:"memberType"` // Resource name. Name string `pulumi:"name"` // The provisioning state of the scope assignment resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -70,7 +66,7 @@ func LookupNetworkGroupOutput(ctx *pulumi.Context, args LookupNetworkGroupOutput } type LookupNetworkGroupOutputArgs struct { - // The name of the network group to get. + // The name of the network group. NetworkGroupName pulumi.StringInput `pulumi:"networkGroupName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -97,41 +93,21 @@ func (o LookupNetworkGroupResultOutput) ToLookupNetworkGroupResultOutputWithCont return o } -// Network group conditional filter. -func (o LookupNetworkGroupResultOutput) ConditionalMembership() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupNetworkGroupResult) *string { return v.ConditionalMembership }).(pulumi.StringPtrOutput) -} - // A description of the network group. func (o LookupNetworkGroupResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupNetworkGroupResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the network group. -func (o LookupNetworkGroupResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupNetworkGroupResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupNetworkGroupResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkGroupResult) string { return v.Etag }).(pulumi.StringOutput) } -// Group members of network group. -func (o LookupNetworkGroupResultOutput) GroupMembers() GroupMembersItemResponseArrayOutput { - return o.ApplyT(func(v LookupNetworkGroupResult) []GroupMembersItemResponse { return v.GroupMembers }).(GroupMembersItemResponseArrayOutput) -} - // Resource ID. func (o LookupNetworkGroupResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkGroupResult) string { return v.Id }).(pulumi.StringOutput) } -// Group member type. -func (o LookupNetworkGroupResultOutput) MemberType() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupNetworkGroupResult) *string { return v.MemberType }).(pulumi.StringPtrOutput) -} - // Resource name. func (o LookupNetworkGroupResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkGroupResult) string { return v.Name }).(pulumi.StringOutput) @@ -142,6 +118,11 @@ func (o LookupNetworkGroupResultOutput) ProvisioningState() pulumi.StringOutput return o.ApplyT(func(v LookupNetworkGroupResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o LookupNetworkGroupResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkGroupResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o LookupNetworkGroupResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupNetworkGroupResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterface.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterface.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterface.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterface.go index 6dc26cb4..49c56d9d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterface.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterface.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified network interface. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkInterface(ctx *pulumi.Context, args *LookupNetworkInterfaceArgs, opts ...pulumi.InvokeOption) (*LookupNetworkInterfaceResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkInterfaceResult err := ctx.Invoke("azure-native:network:getNetworkInterface", args, &rv, opts...) if err != nil { @@ -32,11 +34,17 @@ type LookupNetworkInterfaceArgs struct { // A network interface in a resource group. type LookupNetworkInterfaceResult struct { + // Auxiliary mode of Network Interface resource. + AuxiliaryMode *string `pulumi:"auxiliaryMode"` + // Auxiliary sku of Network Interface resource. + AuxiliarySku *string `pulumi:"auxiliarySku"` + // Indicates whether to disable tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The DNS settings in network interface. DnsSettings *NetworkInterfaceDnsSettingsResponse `pulumi:"dnsSettings"` // A reference to the dscp configuration to which the network interface is linked. DscpConfiguration SubResourceResponse `pulumi:"dscpConfiguration"` - // If the network interface is accelerated networking enabled. + // If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. EnableAcceleratedNetworking *bool `pulumi:"enableAcceleratedNetworking"` // Indicates whether IP forwarding is enabled on this network interface. EnableIPForwarding *bool `pulumi:"enableIPForwarding"` @@ -80,6 +88,10 @@ type LookupNetworkInterfaceResult struct { Type string `pulumi:"type"` // The reference to a virtual machine. VirtualMachine SubResourceResponse `pulumi:"virtualMachine"` + // Whether the virtual machine this nic is attached to supports encryption. + VnetEncryptionSupported bool `pulumi:"vnetEncryptionSupported"` + // WorkloadType of the NetworkInterface for BareMetal resources + WorkloadType *string `pulumi:"workloadType"` } // Defaults sets the appropriate defaults for LookupNetworkInterfaceResult @@ -134,6 +146,21 @@ func (o LookupNetworkInterfaceResultOutput) ToLookupNetworkInterfaceResultOutput return o } +// Auxiliary mode of Network Interface resource. +func (o LookupNetworkInterfaceResultOutput) AuxiliaryMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkInterfaceResult) *string { return v.AuxiliaryMode }).(pulumi.StringPtrOutput) +} + +// Auxiliary sku of Network Interface resource. +func (o LookupNetworkInterfaceResultOutput) AuxiliarySku() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkInterfaceResult) *string { return v.AuxiliarySku }).(pulumi.StringPtrOutput) +} + +// Indicates whether to disable tcp state tracking. +func (o LookupNetworkInterfaceResultOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupNetworkInterfaceResult) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The DNS settings in network interface. func (o LookupNetworkInterfaceResultOutput) DnsSettings() NetworkInterfaceDnsSettingsResponsePtrOutput { return o.ApplyT(func(v LookupNetworkInterfaceResult) *NetworkInterfaceDnsSettingsResponse { return v.DnsSettings }).(NetworkInterfaceDnsSettingsResponsePtrOutput) @@ -144,7 +171,7 @@ func (o LookupNetworkInterfaceResultOutput) DscpConfiguration() SubResourceRespo return o.ApplyT(func(v LookupNetworkInterfaceResult) SubResourceResponse { return v.DscpConfiguration }).(SubResourceResponseOutput) } -// If the network interface is accelerated networking enabled. +// If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. func (o LookupNetworkInterfaceResultOutput) EnableAcceleratedNetworking() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupNetworkInterfaceResult) *bool { return v.EnableAcceleratedNetworking }).(pulumi.BoolPtrOutput) } @@ -258,6 +285,16 @@ func (o LookupNetworkInterfaceResultOutput) VirtualMachine() SubResourceResponse return o.ApplyT(func(v LookupNetworkInterfaceResult) SubResourceResponse { return v.VirtualMachine }).(SubResourceResponseOutput) } +// Whether the virtual machine this nic is attached to supports encryption. +func (o LookupNetworkInterfaceResultOutput) VnetEncryptionSupported() pulumi.BoolOutput { + return o.ApplyT(func(v LookupNetworkInterfaceResult) bool { return v.VnetEncryptionSupported }).(pulumi.BoolOutput) +} + +// WorkloadType of the NetworkInterface for BareMetal resources +func (o LookupNetworkInterfaceResultOutput) WorkloadType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkInterfaceResult) *string { return v.WorkloadType }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterOutputType(LookupNetworkInterfaceResultOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterfaceTapConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterfaceTapConfiguration.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterfaceTapConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterfaceTapConfiguration.go index f06e421a..b218b1a6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkInterfaceTapConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkInterfaceTapConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the specified tap configuration on a network interface. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkInterfaceTapConfiguration(ctx *pulumi.Context, args *LookupNetworkInterfaceTapConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupNetworkInterfaceTapConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkInterfaceTapConfigurationResult err := ctx.Invoke("azure-native:network:getNetworkInterfaceTapConfiguration", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkManager.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkManager.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkManager.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkManager.go index 06fd1761..a1b17217 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkManager.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkManager.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Network Manager. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupNetworkManager(ctx *pulumi.Context, args *LookupNetworkManagerArgs, opts ...pulumi.InvokeOption) (*LookupNetworkManagerResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkManagerResult err := ctx.Invoke("azure-native:network:getNetworkManager", args, &rv, opts...) if err != nil { @@ -32,8 +34,6 @@ type LookupNetworkManagerArgs struct { type LookupNetworkManagerResult struct { // A description of the network manager. Description *string `pulumi:"description"` - // A friendly name for the network manager. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -45,9 +45,11 @@ type LookupNetworkManagerResult struct { // Scope Access. NetworkManagerScopeAccesses []string `pulumi:"networkManagerScopeAccesses"` // Scope of Network Manager. - NetworkManagerScopes *NetworkManagerPropertiesResponseNetworkManagerScopes `pulumi:"networkManagerScopes"` - // The provisioning state of the scope assignment resource. + NetworkManagerScopes NetworkManagerPropertiesResponseNetworkManagerScopes `pulumi:"networkManagerScopes"` + // The provisioning state of the network manager resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource tags. @@ -100,11 +102,6 @@ func (o LookupNetworkManagerResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupNetworkManagerResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the network manager. -func (o LookupNetworkManagerResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupNetworkManagerResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupNetworkManagerResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkManagerResult) string { return v.Etag }).(pulumi.StringOutput) @@ -131,17 +128,22 @@ func (o LookupNetworkManagerResultOutput) NetworkManagerScopeAccesses() pulumi.S } // Scope of Network Manager. -func (o LookupNetworkManagerResultOutput) NetworkManagerScopes() NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput { - return o.ApplyT(func(v LookupNetworkManagerResult) *NetworkManagerPropertiesResponseNetworkManagerScopes { +func (o LookupNetworkManagerResultOutput) NetworkManagerScopes() NetworkManagerPropertiesResponseNetworkManagerScopesOutput { + return o.ApplyT(func(v LookupNetworkManagerResult) NetworkManagerPropertiesResponseNetworkManagerScopes { return v.NetworkManagerScopes - }).(NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) + }).(NetworkManagerPropertiesResponseNetworkManagerScopesOutput) } -// The provisioning state of the scope assignment resource. +// The provisioning state of the network manager resource. func (o LookupNetworkManagerResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkManagerResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o LookupNetworkManagerResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkManagerResult) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o LookupNetworkManagerResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupNetworkManagerResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkProfile.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkProfile.go index 18a10a7e..9d7ade65 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkProfile.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified network profile in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkProfile(ctx *pulumi.Context, args *LookupNetworkProfileArgs, opts ...pulumi.InvokeOption) (*LookupNetworkProfileResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkProfileResult err := ctx.Invoke("azure-native:network:getNetworkProfile", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityGroup.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityGroup.go index 924865cc..ea917673 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified network security group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkSecurityGroup(ctx *pulumi.Context, args *LookupNetworkSecurityGroupArgs, opts ...pulumi.InvokeOption) (*LookupNetworkSecurityGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkSecurityGroupResult err := ctx.Invoke("azure-native:network:getNetworkSecurityGroup", args, &rv, opts...) if err != nil { @@ -38,6 +40,8 @@ type LookupNetworkSecurityGroupResult struct { Etag string `pulumi:"etag"` // A collection of references to flow log resources. FlowLogs []FlowLogResponse `pulumi:"flowLogs"` + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection *bool `pulumi:"flushConnection"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -116,6 +120,11 @@ func (o LookupNetworkSecurityGroupResultOutput) FlowLogs() FlowLogResponseArrayO return o.ApplyT(func(v LookupNetworkSecurityGroupResult) []FlowLogResponse { return v.FlowLogs }).(FlowLogResponseArrayOutput) } +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o LookupNetworkSecurityGroupResultOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupNetworkSecurityGroupResult) *bool { return v.FlushConnection }).(pulumi.BoolPtrOutput) +} + // Resource ID. func (o LookupNetworkSecurityGroupResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupNetworkSecurityGroupResult) *string { return v.Id }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityPerimeter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityPerimeter.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityPerimeter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityPerimeter.go index 03274e46..6b0cb7ad 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkSecurityPerimeter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkSecurityPerimeter.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified network security perimeter by the name. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-03-01-preview. func LookupNetworkSecurityPerimeter(ctx *pulumi.Context, args *LookupNetworkSecurityPerimeterArgs, opts ...pulumi.InvokeOption) (*LookupNetworkSecurityPerimeterResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkSecurityPerimeterResult err := ctx.Invoke("azure-native:network:getNetworkSecurityPerimeter", args, &rv, opts...) if err != nil { @@ -30,14 +32,18 @@ type LookupNetworkSecurityPerimeterArgs struct { // The Network Security Perimeter resource type LookupNetworkSecurityPerimeterResult struct { + // A description of the network security perimeter. + Description *string `pulumi:"description"` + // A friendly name for the network security perimeter. + DisplayName *string `pulumi:"displayName"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` // Resource ID. Id string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` - // perimeter guid of the network security perimeter. - PerimeterGuid string `pulumi:"perimeterGuid"` // The provisioning state of the scope assignment resource. ProvisioningState string `pulumi:"provisioningState"` // Resource tags. @@ -85,6 +91,21 @@ func (o LookupNetworkSecurityPerimeterResultOutput) ToLookupNetworkSecurityPerim return o } +// A description of the network security perimeter. +func (o LookupNetworkSecurityPerimeterResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A friendly name for the network security perimeter. +func (o LookupNetworkSecurityPerimeterResultOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o LookupNetworkSecurityPerimeterResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) string { return v.Etag }).(pulumi.StringOutput) +} + // Resource ID. func (o LookupNetworkSecurityPerimeterResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) string { return v.Id }).(pulumi.StringOutput) @@ -100,11 +121,6 @@ func (o LookupNetworkSecurityPerimeterResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) string { return v.Name }).(pulumi.StringOutput) } -// perimeter guid of the network security perimeter. -func (o LookupNetworkSecurityPerimeterResultOutput) PerimeterGuid() pulumi.StringOutput { - return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) string { return v.PerimeterGuid }).(pulumi.StringOutput) -} - // The provisioning state of the scope assignment resource. func (o LookupNetworkSecurityPerimeterResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkSecurityPerimeterResult) string { return v.ProvisioningState }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkVirtualAppliance.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualAppliance.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkVirtualAppliance.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualAppliance.go index cb4c510a..612a2a85 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkVirtualAppliance.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualAppliance.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Network Virtual Appliance. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkVirtualAppliance(ctx *pulumi.Context, args *LookupNetworkVirtualApplianceArgs, opts ...pulumi.InvokeOption) (*LookupNetworkVirtualApplianceResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkVirtualApplianceResult err := ctx.Invoke("azure-native:network:getNetworkVirtualAppliance", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type LookupNetworkVirtualApplianceArgs struct { // NetworkVirtualAppliance Resource. type LookupNetworkVirtualApplianceResult struct { + // Details required for Additional Network Interface. + AdditionalNics []VirtualApplianceAdditionalNicPropertiesResponse `pulumi:"additionalNics"` // Address Prefix. AddressPrefix string `pulumi:"addressPrefix"` // BootStrapConfigurationBlobs storage URLs. @@ -40,6 +44,10 @@ type LookupNetworkVirtualApplianceResult struct { CloudInitConfiguration *string `pulumi:"cloudInitConfiguration"` // CloudInitConfigurationBlob storage URLs. CloudInitConfigurationBlobs []string `pulumi:"cloudInitConfigurationBlobs"` + // The delegation for the Virtual Appliance + Delegation *DelegationPropertiesResponse `pulumi:"delegation"` + // The deployment type. PartnerManaged for the SaaS NVA + DeploymentType string `pulumi:"deploymentType"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -54,14 +62,20 @@ type LookupNetworkVirtualApplianceResult struct { Name string `pulumi:"name"` // Network Virtual Appliance SKU. NvaSku *VirtualApplianceSkuPropertiesResponse `pulumi:"nvaSku"` + // The delegation for the Virtual Appliance + PartnerManagedResource *PartnerManagedResourcePropertiesResponse `pulumi:"partnerManagedResource"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` + // Public key for SSH login. + SshPublicKey *string `pulumi:"sshPublicKey"` // Resource tags. Tags map[string]string `pulumi:"tags"` // Resource type. Type string `pulumi:"type"` - // VirtualAppliance ASN. + // VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. VirtualApplianceAsn *float64 `pulumi:"virtualApplianceAsn"` + // List of references to VirtualApplianceConnections. + VirtualApplianceConnections []SubResourceResponse `pulumi:"virtualApplianceConnections"` // List of Virtual Appliance Network Interfaces. VirtualApplianceNics []VirtualApplianceNicPropertiesResponse `pulumi:"virtualApplianceNics"` // List of references to VirtualApplianceSite. @@ -111,6 +125,13 @@ func (o LookupNetworkVirtualApplianceResultOutput) ToLookupNetworkVirtualApplian return o } +// Details required for Additional Network Interface. +func (o LookupNetworkVirtualApplianceResultOutput) AdditionalNics() VirtualApplianceAdditionalNicPropertiesResponseArrayOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) []VirtualApplianceAdditionalNicPropertiesResponse { + return v.AdditionalNics + }).(VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) +} + // Address Prefix. func (o LookupNetworkVirtualApplianceResultOutput) AddressPrefix() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) string { return v.AddressPrefix }).(pulumi.StringOutput) @@ -131,6 +152,16 @@ func (o LookupNetworkVirtualApplianceResultOutput) CloudInitConfigurationBlobs() return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) []string { return v.CloudInitConfigurationBlobs }).(pulumi.StringArrayOutput) } +// The delegation for the Virtual Appliance +func (o LookupNetworkVirtualApplianceResultOutput) Delegation() DelegationPropertiesResponsePtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) *DelegationPropertiesResponse { return v.Delegation }).(DelegationPropertiesResponsePtrOutput) +} + +// The deployment type. PartnerManaged for the SaaS NVA +func (o LookupNetworkVirtualApplianceResultOutput) DeploymentType() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) string { return v.DeploymentType }).(pulumi.StringOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupNetworkVirtualApplianceResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) string { return v.Etag }).(pulumi.StringOutput) @@ -166,11 +197,23 @@ func (o LookupNetworkVirtualApplianceResultOutput) NvaSku() VirtualApplianceSkuP return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) *VirtualApplianceSkuPropertiesResponse { return v.NvaSku }).(VirtualApplianceSkuPropertiesResponsePtrOutput) } +// The delegation for the Virtual Appliance +func (o LookupNetworkVirtualApplianceResultOutput) PartnerManagedResource() PartnerManagedResourcePropertiesResponsePtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) *PartnerManagedResourcePropertiesResponse { + return v.PartnerManagedResource + }).(PartnerManagedResourcePropertiesResponsePtrOutput) +} + // The provisioning state of the resource. func (o LookupNetworkVirtualApplianceResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Public key for SSH login. +func (o LookupNetworkVirtualApplianceResultOutput) SshPublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) *string { return v.SshPublicKey }).(pulumi.StringPtrOutput) +} + // Resource tags. func (o LookupNetworkVirtualApplianceResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) @@ -181,11 +224,18 @@ func (o LookupNetworkVirtualApplianceResultOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) string { return v.Type }).(pulumi.StringOutput) } -// VirtualAppliance ASN. +// VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. func (o LookupNetworkVirtualApplianceResultOutput) VirtualApplianceAsn() pulumi.Float64PtrOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) *float64 { return v.VirtualApplianceAsn }).(pulumi.Float64PtrOutput) } +// List of references to VirtualApplianceConnections. +func (o LookupNetworkVirtualApplianceResultOutput) VirtualApplianceConnections() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) []SubResourceResponse { + return v.VirtualApplianceConnections + }).(SubResourceResponseArrayOutput) +} + // List of Virtual Appliance Network Interfaces. func (o LookupNetworkVirtualApplianceResultOutput) VirtualApplianceNics() VirtualApplianceNicPropertiesResponseArrayOutput { return o.ApplyT(func(v LookupNetworkVirtualApplianceResult) []VirtualApplianceNicPropertiesResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualApplianceConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualApplianceConnection.go new file mode 100644 index 00000000..306a0038 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkVirtualApplianceConnection.go @@ -0,0 +1,140 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Retrieves the details of specified NVA connection. +// Azure REST API version: 2023-02-01. +func LookupNetworkVirtualApplianceConnection(ctx *pulumi.Context, args *LookupNetworkVirtualApplianceConnectionArgs, opts ...pulumi.InvokeOption) (*LookupNetworkVirtualApplianceConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupNetworkVirtualApplianceConnectionResult + err := ctx.Invoke("azure-native:network:getNetworkVirtualApplianceConnection", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupNetworkVirtualApplianceConnectionArgs struct { + // The name of the NVA connection. + ConnectionName string `pulumi:"connectionName"` + // The name of the Network Virtual Appliance. + NetworkVirtualApplianceName string `pulumi:"networkVirtualApplianceName"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` +} + +// NetworkVirtualApplianceConnection resource. +type LookupNetworkVirtualApplianceConnectionResult struct { + // Network Virtual Appliance ASN. + Asn *float64 `pulumi:"asn"` + // List of bgpPeerAddresses for the NVA instances + BgpPeerAddress []string `pulumi:"bgpPeerAddress"` + // Enable internet security. + EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource. + Name *string `pulumi:"name"` + // The provisioning state of the NetworkVirtualApplianceConnection resource. + ProvisioningState string `pulumi:"provisioningState"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration *RoutingConfigurationNfvResponse `pulumi:"routingConfiguration"` + // Unique identifier for the connection. + TunnelIdentifier *float64 `pulumi:"tunnelIdentifier"` +} + +func LookupNetworkVirtualApplianceConnectionOutput(ctx *pulumi.Context, args LookupNetworkVirtualApplianceConnectionOutputArgs, opts ...pulumi.InvokeOption) LookupNetworkVirtualApplianceConnectionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupNetworkVirtualApplianceConnectionResult, error) { + args := v.(LookupNetworkVirtualApplianceConnectionArgs) + r, err := LookupNetworkVirtualApplianceConnection(ctx, &args, opts...) + var s LookupNetworkVirtualApplianceConnectionResult + if r != nil { + s = *r + } + return s, err + }).(LookupNetworkVirtualApplianceConnectionResultOutput) +} + +type LookupNetworkVirtualApplianceConnectionOutputArgs struct { + // The name of the NVA connection. + ConnectionName pulumi.StringInput `pulumi:"connectionName"` + // The name of the Network Virtual Appliance. + NetworkVirtualApplianceName pulumi.StringInput `pulumi:"networkVirtualApplianceName"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` +} + +func (LookupNetworkVirtualApplianceConnectionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNetworkVirtualApplianceConnectionArgs)(nil)).Elem() +} + +// NetworkVirtualApplianceConnection resource. +type LookupNetworkVirtualApplianceConnectionResultOutput struct{ *pulumi.OutputState } + +func (LookupNetworkVirtualApplianceConnectionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNetworkVirtualApplianceConnectionResult)(nil)).Elem() +} + +func (o LookupNetworkVirtualApplianceConnectionResultOutput) ToLookupNetworkVirtualApplianceConnectionResultOutput() LookupNetworkVirtualApplianceConnectionResultOutput { + return o +} + +func (o LookupNetworkVirtualApplianceConnectionResultOutput) ToLookupNetworkVirtualApplianceConnectionResultOutputWithContext(ctx context.Context) LookupNetworkVirtualApplianceConnectionResultOutput { + return o +} + +// Network Virtual Appliance ASN. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) Asn() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *float64 { return v.Asn }).(pulumi.Float64PtrOutput) +} + +// List of bgpPeerAddresses for the NVA instances +func (o LookupNetworkVirtualApplianceConnectionResultOutput) BgpPeerAddress() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) []string { return v.BgpPeerAddress }).(pulumi.StringArrayOutput) +} + +// Enable internet security. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) +} + +// Resource ID. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the NetworkVirtualApplianceConnection resource. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The Routing Configuration indicating the associated and propagated route tables on this connection. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) RoutingConfiguration() RoutingConfigurationNfvResponsePtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *RoutingConfigurationNfvResponse { + return v.RoutingConfiguration + }).(RoutingConfigurationNfvResponsePtrOutput) +} + +// Unique identifier for the connection. +func (o LookupNetworkVirtualApplianceConnectionResultOutput) TunnelIdentifier() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupNetworkVirtualApplianceConnectionResult) *float64 { return v.TunnelIdentifier }).(pulumi.Float64PtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupNetworkVirtualApplianceConnectionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkWatcher.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkWatcher.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkWatcher.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkWatcher.go index e1be2120..2fa20698 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNetworkWatcher.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNetworkWatcher.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified network watcher by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupNetworkWatcher(ctx *pulumi.Context, args *LookupNetworkWatcherArgs, opts ...pulumi.InvokeOption) (*LookupNetworkWatcherResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNetworkWatcherResult err := ctx.Invoke("azure-native:network:getNetworkWatcher", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAccessRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAccessRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAccessRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAccessRule.go index ab1899cb..3eef3c84 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAccessRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAccessRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified NSP access rule by name. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func LookupNspAccessRule(ctx *pulumi.Context, args *LookupNspAccessRuleArgs, opts ...pulumi.InvokeOption) (*LookupNspAccessRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNspAccessRuleResult err := ctx.Invoke("azure-native:network:getNspAccessRule", args, &rv, opts...) if err != nil { @@ -48,7 +50,7 @@ type LookupNspAccessRuleResult struct { Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` - // Inbound rule specified by the perimeter id. + // Rule specified by the perimeter id. NetworkSecurityPerimeters []PerimeterBasedAccessRuleResponse `pulumi:"networkSecurityPerimeters"` // Outbound rules phone number format. PhoneNumbers []string `pulumi:"phoneNumbers"` @@ -140,7 +142,7 @@ func (o LookupNspAccessRuleResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupNspAccessRuleResult) string { return v.Name }).(pulumi.StringOutput) } -// Inbound rule specified by the perimeter id. +// Rule specified by the perimeter id. func (o LookupNspAccessRuleResultOutput) NetworkSecurityPerimeters() PerimeterBasedAccessRuleResponseArrayOutput { return o.ApplyT(func(v LookupNspAccessRuleResult) []PerimeterBasedAccessRuleResponse { return v.NetworkSecurityPerimeters diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAssociation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAssociation.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAssociation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAssociation.go index 0b847873..50b64e6d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspAssociation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspAssociation.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified NSP association by name. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func LookupNspAssociation(ctx *pulumi.Context, args *LookupNspAssociationArgs, opts ...pulumi.InvokeOption) (*LookupNspAssociationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNspAssociationResult err := ctx.Invoke("azure-native:network:getNspAssociation", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspLink.go new file mode 100644 index 00000000..37932e02 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspLink.go @@ -0,0 +1,180 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets the specified NSP link resource. +// Azure REST API version: 2021-02-01-preview. +func LookupNspLink(ctx *pulumi.Context, args *LookupNspLinkArgs, opts ...pulumi.InvokeOption) (*LookupNspLinkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupNspLinkResult + err := ctx.Invoke("azure-native:network:getNspLink", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupNspLinkArgs struct { + // The name of the NSP link. + LinkName string `pulumi:"linkName"` + // The name of the network security perimeter. + NetworkSecurityPerimeterName string `pulumi:"networkSecurityPerimeterName"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` +} + +// The network security perimeter link resource +type LookupNspLinkResult struct { + // Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. + AutoApprovedRemotePerimeterResourceId *string `pulumi:"autoApprovedRemotePerimeterResourceId"` + // A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. + Description *string `pulumi:"description"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id string `pulumi:"id"` + // Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. + LocalInboundProfiles []string `pulumi:"localInboundProfiles"` + // Local Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. + LocalOutboundProfiles []string `pulumi:"localOutboundProfiles"` + // Resource name. + Name string `pulumi:"name"` + // The provisioning state of the NSP Link resource. + ProvisioningState string `pulumi:"provisioningState"` + // Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. + RemoteInboundProfiles []string `pulumi:"remoteInboundProfiles"` + // Remote Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. + RemoteOutboundProfiles []string `pulumi:"remoteOutboundProfiles"` + // Remote NSP Guid with which the link gets created. + RemotePerimeterGuid string `pulumi:"remotePerimeterGuid"` + // Remote NSP location with which the link gets created. + RemotePerimeterLocation string `pulumi:"remotePerimeterLocation"` + // The NSP link state. + Status string `pulumi:"status"` + // Resource type. + Type string `pulumi:"type"` +} + +func LookupNspLinkOutput(ctx *pulumi.Context, args LookupNspLinkOutputArgs, opts ...pulumi.InvokeOption) LookupNspLinkResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupNspLinkResult, error) { + args := v.(LookupNspLinkArgs) + r, err := LookupNspLink(ctx, &args, opts...) + var s LookupNspLinkResult + if r != nil { + s = *r + } + return s, err + }).(LookupNspLinkResultOutput) +} + +type LookupNspLinkOutputArgs struct { + // The name of the NSP link. + LinkName pulumi.StringInput `pulumi:"linkName"` + // The name of the network security perimeter. + NetworkSecurityPerimeterName pulumi.StringInput `pulumi:"networkSecurityPerimeterName"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` +} + +func (LookupNspLinkOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNspLinkArgs)(nil)).Elem() +} + +// The network security perimeter link resource +type LookupNspLinkResultOutput struct{ *pulumi.OutputState } + +func (LookupNspLinkResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNspLinkResult)(nil)).Elem() +} + +func (o LookupNspLinkResultOutput) ToLookupNspLinkResultOutput() LookupNspLinkResultOutput { + return o +} + +func (o LookupNspLinkResultOutput) ToLookupNspLinkResultOutputWithContext(ctx context.Context) LookupNspLinkResultOutput { + return o +} + +// Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. +func (o LookupNspLinkResultOutput) AutoApprovedRemotePerimeterResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNspLinkResult) *string { return v.AutoApprovedRemotePerimeterResourceId }).(pulumi.StringPtrOutput) +} + +// A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. +func (o LookupNspLinkResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupNspLinkResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o LookupNspLinkResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o LookupNspLinkResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. +func (o LookupNspLinkResultOutput) LocalInboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupNspLinkResult) []string { return v.LocalInboundProfiles }).(pulumi.StringArrayOutput) +} + +// Local Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. +func (o LookupNspLinkResultOutput) LocalOutboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupNspLinkResult) []string { return v.LocalOutboundProfiles }).(pulumi.StringArrayOutput) +} + +// Resource name. +func (o LookupNspLinkResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The provisioning state of the NSP Link resource. +func (o LookupNspLinkResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. +func (o LookupNspLinkResultOutput) RemoteInboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupNspLinkResult) []string { return v.RemoteInboundProfiles }).(pulumi.StringArrayOutput) +} + +// Remote Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. +func (o LookupNspLinkResultOutput) RemoteOutboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupNspLinkResult) []string { return v.RemoteOutboundProfiles }).(pulumi.StringArrayOutput) +} + +// Remote NSP Guid with which the link gets created. +func (o LookupNspLinkResultOutput) RemotePerimeterGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.RemotePerimeterGuid }).(pulumi.StringOutput) +} + +// Remote NSP location with which the link gets created. +func (o LookupNspLinkResultOutput) RemotePerimeterLocation() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.RemotePerimeterLocation }).(pulumi.StringOutput) +} + +// The NSP link state. +func (o LookupNspLinkResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.Status }).(pulumi.StringOutput) +} + +// Resource type. +func (o LookupNspLinkResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupNspLinkResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupNspLinkResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspProfile.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspProfile.go index bcabf9d3..97a46ec7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getNspProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getNspProfile.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified NSP profile. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func LookupNspProfile(ctx *pulumi.Context, args *LookupNspProfileArgs, opts ...pulumi.InvokeOption) (*LookupNspProfileResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupNspProfileResult err := ctx.Invoke("azure-native:network:getNspProfile", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getOutboundEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getOutboundEndpoint.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getOutboundEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getOutboundEndpoint.go index b5a585ef..56837f80 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getOutboundEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getOutboundEndpoint.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of an outbound endpoint for a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func LookupOutboundEndpoint(ctx *pulumi.Context, args *LookupOutboundEndpointArgs, opts ...pulumi.InvokeOption) (*LookupOutboundEndpointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupOutboundEndpointResult err := ctx.Invoke("azure-native:network:getOutboundEndpoint", args, &rv, opts...) if err != nil { @@ -45,7 +47,7 @@ type LookupOutboundEndpointResult struct { // The resourceGuid property of the outbound endpoint resource. ResourceGuid string `pulumi:"resourceGuid"` // The reference to the subnet used for the outbound endpoint. - Subnet *SubResourceResponse `pulumi:"subnet"` + Subnet SubResourceResponse `pulumi:"subnet"` // Metadata pertaining to creation and last modification of the resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource tags. @@ -126,8 +128,8 @@ func (o LookupOutboundEndpointResultOutput) ResourceGuid() pulumi.StringOutput { } // The reference to the subnet used for the outbound endpoint. -func (o LookupOutboundEndpointResultOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v LookupOutboundEndpointResult) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) +func (o LookupOutboundEndpointResultOutput) Subnet() SubResourceResponseOutput { + return o.ApplyT(func(v LookupOutboundEndpointResult) SubResourceResponse { return v.Subnet }).(SubResourceResponseOutput) } // Metadata pertaining to creation and last modification of the resource. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGateway.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGateway.go index d1a36f76..af572e85 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a virtual wan p2s vpn gateway. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupP2sVpnGateway(ctx *pulumi.Context, args *LookupP2sVpnGatewayArgs, opts ...pulumi.InvokeOption) (*LookupP2sVpnGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupP2sVpnGatewayResult err := ctx.Invoke("azure-native:network:getP2sVpnGateway", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealth.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealth.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealth.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealth.go index 4821a44f..c14f7856 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealth.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealth.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the connection health of P2S clients of the virtual wan P2SVpnGateway in the specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetP2sVpnGatewayP2sVpnConnectionHealth(ctx *pulumi.Context, args *GetP2sVpnGatewayP2sVpnConnectionHealthArgs, opts ...pulumi.InvokeOption) (*GetP2sVpnGatewayP2sVpnConnectionHealthResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetP2sVpnGatewayP2sVpnConnectionHealthResult err := ctx.Invoke("azure-native:network:getP2sVpnGatewayP2sVpnConnectionHealth", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go index ea1f9c6a..296483fc 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnGatewayP2sVpnConnectionHealthDetailed.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the sas url to get the connection health detail of P2S clients of the virtual wan P2SVpnGateway in the specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetP2sVpnGatewayP2sVpnConnectionHealthDetailed(ctx *pulumi.Context, args *GetP2sVpnGatewayP2sVpnConnectionHealthDetailedArgs, opts ...pulumi.InvokeOption) (*GetP2sVpnGatewayP2sVpnConnectionHealthDetailedResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetP2sVpnGatewayP2sVpnConnectionHealthDetailedResult err := ctx.Invoke("azure-native:network:getP2sVpnGatewayP2sVpnConnectionHealthDetailed", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnServerConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnServerConfiguration.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnServerConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnServerConfiguration.go index 3a333fdb..fd7a20b4 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getP2sVpnServerConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getP2sVpnServerConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a P2SVpnServerConfiguration. -// API Version: 2019-07-01. +// Azure REST API version: 2019-07-01. func LookupP2sVpnServerConfiguration(ctx *pulumi.Context, args *LookupP2sVpnServerConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupP2sVpnServerConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupP2sVpnServerConfigurationResult err := ctx.Invoke("azure-native:network:getP2sVpnServerConfiguration", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPacketCapture.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPacketCapture.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPacketCapture.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPacketCapture.go index 420979ed..e9e483a9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPacketCapture.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPacketCapture.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a packet capture session by name. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPacketCapture(ctx *pulumi.Context, args *LookupPacketCaptureArgs, opts ...pulumi.InvokeOption) (*LookupPacketCaptureResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPacketCaptureResult err := ctx.Invoke("azure-native:network:getPacketCapture", args, &rv, opts...) if err != nil { @@ -44,10 +46,14 @@ type LookupPacketCaptureResult struct { Name string `pulumi:"name"` // The provisioning state of the packet capture session. ProvisioningState string `pulumi:"provisioningState"` + // A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. + Scope *PacketCaptureMachineScopeResponse `pulumi:"scope"` // The storage location for a packet capture session. StorageLocation PacketCaptureStorageLocationResponse `pulumi:"storageLocation"` - // The ID of the targeted resource, only VM is currently supported. + // The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. Target string `pulumi:"target"` + // Target type of the resource provided. + TargetType *string `pulumi:"targetType"` // Maximum duration of the capture session in seconds. TimeLimitInSeconds *int `pulumi:"timeLimitInSeconds"` // Maximum size of the capture output. @@ -60,15 +66,15 @@ func (val *LookupPacketCaptureResult) Defaults() *LookupPacketCaptureResult { return nil } tmp := *val - if isZero(tmp.BytesToCapturePerPacket) { + if tmp.BytesToCapturePerPacket == nil { bytesToCapturePerPacket_ := 0.0 tmp.BytesToCapturePerPacket = &bytesToCapturePerPacket_ } - if isZero(tmp.TimeLimitInSeconds) { + if tmp.TimeLimitInSeconds == nil { timeLimitInSeconds_ := 18000 tmp.TimeLimitInSeconds = &timeLimitInSeconds_ } - if isZero(tmp.TotalBytesPerSession) { + if tmp.TotalBytesPerSession == nil { totalBytesPerSession_ := 1073741824.0 tmp.TotalBytesPerSession = &totalBytesPerSession_ } @@ -146,16 +152,26 @@ func (o LookupPacketCaptureResultOutput) ProvisioningState() pulumi.StringOutput return o.ApplyT(func(v LookupPacketCaptureResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +func (o LookupPacketCaptureResultOutput) Scope() PacketCaptureMachineScopeResponsePtrOutput { + return o.ApplyT(func(v LookupPacketCaptureResult) *PacketCaptureMachineScopeResponse { return v.Scope }).(PacketCaptureMachineScopeResponsePtrOutput) +} + // The storage location for a packet capture session. func (o LookupPacketCaptureResultOutput) StorageLocation() PacketCaptureStorageLocationResponseOutput { return o.ApplyT(func(v LookupPacketCaptureResult) PacketCaptureStorageLocationResponse { return v.StorageLocation }).(PacketCaptureStorageLocationResponseOutput) } -// The ID of the targeted resource, only VM is currently supported. +// The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. func (o LookupPacketCaptureResultOutput) Target() pulumi.StringOutput { return o.ApplyT(func(v LookupPacketCaptureResult) string { return v.Target }).(pulumi.StringOutput) } +// Target type of the resource provided. +func (o LookupPacketCaptureResultOutput) TargetType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPacketCaptureResult) *string { return v.TargetType }).(pulumi.StringPtrOutput) +} + // Maximum duration of the capture session in seconds. func (o LookupPacketCaptureResultOutput) TimeLimitInSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupPacketCaptureResult) *int { return v.TimeLimitInSeconds }).(pulumi.IntPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPolicy.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPolicy.go index 04be90aa..3bb48133 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieve protection policy with specified name within a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2022-05-01. func LookupPolicy(ctx *pulumi.Context, args *LookupPolicyArgs, opts ...pulumi.InvokeOption) (*LookupPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPolicyResult err := ctx.Invoke("azure-native:network:getPolicy", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateDnsZoneGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateDnsZoneGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateDnsZoneGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateDnsZoneGroup.go index b3e49fbb..9706a770 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateDnsZoneGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateDnsZoneGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the private dns zone group resource by specified private dns zone group name. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPrivateDnsZoneGroup(ctx *pulumi.Context, args *LookupPrivateDnsZoneGroupArgs, opts ...pulumi.InvokeOption) (*LookupPrivateDnsZoneGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateDnsZoneGroupResult err := ctx.Invoke("azure-native:network:getPrivateDnsZoneGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateEndpoint.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateEndpoint.go index 3acf2e98..e31690c9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateEndpoint.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified private endpoint by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPrivateEndpoint(ctx *pulumi.Context, args *LookupPrivateEndpointArgs, opts ...pulumi.InvokeOption) (*LookupPrivateEndpointResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateEndpointResult err := ctx.Invoke("azure-native:network:getPrivateEndpoint", args, &rv, opts...) if err != nil { @@ -32,14 +34,20 @@ type LookupPrivateEndpointArgs struct { // Private endpoint resource. type LookupPrivateEndpointResult struct { + // Application security groups in which the private endpoint IP configuration is included. + ApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"applicationSecurityGroups"` // An array of custom dns configurations. CustomDnsConfigs []CustomDnsConfigPropertiesFormatResponse `pulumi:"customDnsConfigs"` + // The custom name of the network interface attached to the private endpoint. + CustomNetworkInterfaceName *string `pulumi:"customNetworkInterfaceName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // The extended location of the load balancer. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` // Resource ID. Id *string `pulumi:"id"` + // A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. + IpConfigurations []PrivateEndpointIPConfigurationResponse `pulumi:"ipConfigurations"` // Resource location. Location *string `pulumi:"location"` // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. @@ -112,6 +120,13 @@ func (o LookupPrivateEndpointResultOutput) ToLookupPrivateEndpointResultOutputWi return o } +// Application security groups in which the private endpoint IP configuration is included. +func (o LookupPrivateEndpointResultOutput) ApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { + return o.ApplyT(func(v LookupPrivateEndpointResult) []ApplicationSecurityGroupResponse { + return v.ApplicationSecurityGroups + }).(ApplicationSecurityGroupResponseArrayOutput) +} + // An array of custom dns configurations. func (o LookupPrivateEndpointResultOutput) CustomDnsConfigs() CustomDnsConfigPropertiesFormatResponseArrayOutput { return o.ApplyT(func(v LookupPrivateEndpointResult) []CustomDnsConfigPropertiesFormatResponse { @@ -119,6 +134,11 @@ func (o LookupPrivateEndpointResultOutput) CustomDnsConfigs() CustomDnsConfigPro }).(CustomDnsConfigPropertiesFormatResponseArrayOutput) } +// The custom name of the network interface attached to the private endpoint. +func (o LookupPrivateEndpointResultOutput) CustomNetworkInterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPrivateEndpointResult) *string { return v.CustomNetworkInterfaceName }).(pulumi.StringPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupPrivateEndpointResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupPrivateEndpointResult) string { return v.Etag }).(pulumi.StringOutput) @@ -134,6 +154,13 @@ func (o LookupPrivateEndpointResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupPrivateEndpointResult) *string { return v.Id }).(pulumi.StringPtrOutput) } +// A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. +func (o LookupPrivateEndpointResultOutput) IpConfigurations() PrivateEndpointIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v LookupPrivateEndpointResult) []PrivateEndpointIPConfigurationResponse { + return v.IpConfigurations + }).(PrivateEndpointIPConfigurationResponseArrayOutput) +} + // Resource location. func (o LookupPrivateEndpointResultOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupPrivateEndpointResult) *string { return v.Location }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkService.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkService.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkService.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkService.go index 7ba3ff51..1bb5d7f0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkService.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkService.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified private link service by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPrivateLinkService(ctx *pulumi.Context, args *LookupPrivateLinkServiceArgs, opts ...pulumi.InvokeOption) (*LookupPrivateLinkServiceResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateLinkServiceResult err := ctx.Invoke("azure-native:network:getPrivateLinkService", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkServicePrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkServicePrivateEndpointConnection.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkServicePrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkServicePrivateEndpointConnection.go index 66ecdda7..29ad1ff9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateLinkServicePrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateLinkServicePrivateEndpointConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the specific private end point connection by specific private link service in the resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPrivateLinkServicePrivateEndpointConnection(ctx *pulumi.Context, args *LookupPrivateLinkServicePrivateEndpointConnectionArgs, opts ...pulumi.InvokeOption) (*LookupPrivateLinkServicePrivateEndpointConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateLinkServicePrivateEndpointConnectionResult err := ctx.Invoke("azure-native:network:getPrivateLinkServicePrivateEndpointConnection", args, &rv, opts...) if err != nil { @@ -44,6 +46,8 @@ type LookupPrivateLinkServicePrivateEndpointConnectionResult struct { Name *string `pulumi:"name"` // The resource of private end point. PrivateEndpoint PrivateEndpointResponse `pulumi:"privateEndpoint"` + // The location of the private endpoint. + PrivateEndpointLocation string `pulumi:"privateEndpointLocation"` // A collection of information about the state of the connection between service consumer and provider. PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` // The provisioning state of the private endpoint connection resource. @@ -133,6 +137,13 @@ func (o LookupPrivateLinkServicePrivateEndpointConnectionResultOutput) PrivateEn }).(PrivateEndpointResponseOutput) } +// The location of the private endpoint. +func (o LookupPrivateLinkServicePrivateEndpointConnectionResultOutput) PrivateEndpointLocation() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateLinkServicePrivateEndpointConnectionResult) string { + return v.PrivateEndpointLocation + }).(pulumi.StringOutput) +} + // A collection of information about the state of the connection between service consumer and provider. func (o LookupPrivateLinkServicePrivateEndpointConnectionResultOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { return o.ApplyT(func(v LookupPrivateLinkServicePrivateEndpointConnectionResult) *PrivateLinkServiceConnectionStateResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateRecordSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateRecordSet.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateRecordSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateRecordSet.go index 64bd9044..66e352a1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateRecordSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateRecordSet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a record set. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. func LookupPrivateRecordSet(ctx *pulumi.Context, args *LookupPrivateRecordSetArgs, opts ...pulumi.InvokeOption) (*LookupPrivateRecordSetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateRecordSetResult err := ctx.Invoke("azure-native:network:getPrivateRecordSet", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateResolverVirtualNetworkLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateResolverVirtualNetworkLink.go new file mode 100644 index 00000000..27f05a2c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateResolverVirtualNetworkLink.go @@ -0,0 +1,138 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets properties of a virtual network link to a DNS forwarding ruleset. +// Azure REST API version: 2022-07-01. +func LookupPrivateResolverVirtualNetworkLink(ctx *pulumi.Context, args *LookupPrivateResolverVirtualNetworkLinkArgs, opts ...pulumi.InvokeOption) (*LookupPrivateResolverVirtualNetworkLinkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupPrivateResolverVirtualNetworkLinkResult + err := ctx.Invoke("azure-native:network:getPrivateResolverVirtualNetworkLink", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupPrivateResolverVirtualNetworkLinkArgs struct { + // The name of the DNS forwarding ruleset. + DnsForwardingRulesetName string `pulumi:"dnsForwardingRulesetName"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The name of the virtual network link. + VirtualNetworkLinkName string `pulumi:"virtualNetworkLinkName"` +} + +// Describes a virtual network link. +type LookupPrivateResolverVirtualNetworkLinkResult struct { + // ETag of the virtual network link. + Etag string `pulumi:"etag"` + // Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id string `pulumi:"id"` + // Metadata attached to the virtual network link. + Metadata map[string]string `pulumi:"metadata"` + // The name of the resource + Name string `pulumi:"name"` + // The current provisioning state of the virtual network link. This is a read-only property and any attempt to set this value will be ignored. + ProvisioningState string `pulumi:"provisioningState"` + // Metadata pertaining to creation and last modification of the resource. + SystemData SystemDataResponse `pulumi:"systemData"` + // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type string `pulumi:"type"` + // The reference to the virtual network. This cannot be changed after creation. + VirtualNetwork SubResourceResponse `pulumi:"virtualNetwork"` +} + +func LookupPrivateResolverVirtualNetworkLinkOutput(ctx *pulumi.Context, args LookupPrivateResolverVirtualNetworkLinkOutputArgs, opts ...pulumi.InvokeOption) LookupPrivateResolverVirtualNetworkLinkResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPrivateResolverVirtualNetworkLinkResult, error) { + args := v.(LookupPrivateResolverVirtualNetworkLinkArgs) + r, err := LookupPrivateResolverVirtualNetworkLink(ctx, &args, opts...) + var s LookupPrivateResolverVirtualNetworkLinkResult + if r != nil { + s = *r + } + return s, err + }).(LookupPrivateResolverVirtualNetworkLinkResultOutput) +} + +type LookupPrivateResolverVirtualNetworkLinkOutputArgs struct { + // The name of the DNS forwarding ruleset. + DnsForwardingRulesetName pulumi.StringInput `pulumi:"dnsForwardingRulesetName"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // The name of the virtual network link. + VirtualNetworkLinkName pulumi.StringInput `pulumi:"virtualNetworkLinkName"` +} + +func (LookupPrivateResolverVirtualNetworkLinkOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPrivateResolverVirtualNetworkLinkArgs)(nil)).Elem() +} + +// Describes a virtual network link. +type LookupPrivateResolverVirtualNetworkLinkResultOutput struct{ *pulumi.OutputState } + +func (LookupPrivateResolverVirtualNetworkLinkResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPrivateResolverVirtualNetworkLinkResult)(nil)).Elem() +} + +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) ToLookupPrivateResolverVirtualNetworkLinkResultOutput() LookupPrivateResolverVirtualNetworkLinkResultOutput { + return o +} + +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) ToLookupPrivateResolverVirtualNetworkLinkResultOutputWithContext(ctx context.Context) LookupPrivateResolverVirtualNetworkLinkResultOutput { + return o +} + +// ETag of the virtual network link. +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) string { return v.Etag }).(pulumi.StringOutput) +} + +// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Metadata attached to the virtual network link. +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) +} + +// The name of the resource +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The current provisioning state of the virtual network link. This is a read-only property and any attempt to set this value will be ignored. +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Metadata pertaining to creation and last modification of the resource. +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) +} + +// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) string { return v.Type }).(pulumi.StringOutput) +} + +// The reference to the virtual network. This cannot be changed after creation. +func (o LookupPrivateResolverVirtualNetworkLinkResultOutput) VirtualNetwork() SubResourceResponseOutput { + return o.ApplyT(func(v LookupPrivateResolverVirtualNetworkLinkResult) SubResourceResponse { return v.VirtualNetwork }).(SubResourceResponseOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPrivateResolverVirtualNetworkLinkResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateZone.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateZone.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateZone.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateZone.go index d47920d2..acf8b488 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPrivateZone.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPrivateZone.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Private DNS zone. Retrieves the zone properties, but not the virtual networks links or the record sets within the zone. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. func LookupPrivateZone(ctx *pulumi.Context, args *LookupPrivateZoneArgs, opts ...pulumi.InvokeOption) (*LookupPrivateZoneResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateZoneResult err := ctx.Invoke("azure-native:network:getPrivateZone", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getProfile.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getProfile.go index f39237bf..edd09131 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getProfile.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Traffic Manager profile. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. func LookupProfile(ctx *pulumi.Context, args *LookupProfileArgs, opts ...pulumi.InvokeOption) (*LookupProfileResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupProfileResult err := ctx.Invoke("azure-native:network:getProfile", args, &rv, opts...) if err != nil { @@ -24,7 +26,7 @@ func LookupProfile(ctx *pulumi.Context, args *LookupProfileArgs, opts ...pulumi. type LookupProfileArgs struct { // The name of the Traffic Manager profile. ProfileName string `pulumi:"profileName"` - // The name of the resource group containing the Traffic Manager profile. + // The name of the resource group. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` } @@ -74,7 +76,7 @@ func LookupProfileOutput(ctx *pulumi.Context, args LookupProfileOutputArgs, opts type LookupProfileOutputArgs struct { // The name of the Traffic Manager profile. ProfileName pulumi.StringInput `pulumi:"profileName"` - // The name of the resource group containing the Traffic Manager profile. + // The name of the resource group. The name is case insensitive. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPAddress.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPAddress.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPAddress.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPAddress.go index cc870f19..48a1afe7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPAddress.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPAddress.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified public IP address in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPublicIPAddress(ctx *pulumi.Context, args *LookupPublicIPAddressArgs, opts ...pulumi.InvokeOption) (*LookupPublicIPAddressResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPublicIPAddressResult err := ctx.Invoke("azure-native:network:getPublicIPAddress", args, &rv, opts...) if err != nil { @@ -34,6 +36,8 @@ type LookupPublicIPAddressArgs struct { type LookupPublicIPAddressResult struct { // The DDoS protection custom policy associated with the public IP address. DdosSettings *DdosSettingsResponse `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption *string `pulumi:"deleteOption"` // The FQDN of the DNS record associated with the public IP address. DnsSettings *PublicIPAddressDnsSettingsResponse `pulumi:"dnsSettings"` // A unique read-only string that changes whenever the resource is updated. @@ -143,6 +147,11 @@ func (o LookupPublicIPAddressResultOutput) DdosSettings() DdosSettingsResponsePt return o.ApplyT(func(v LookupPublicIPAddressResult) *DdosSettingsResponse { return v.DdosSettings }).(DdosSettingsResponsePtrOutput) } +// Specify what happens to the public IP address when the VM using it is deleted +func (o LookupPublicIPAddressResultOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPublicIPAddressResult) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // The FQDN of the DNS record associated with the public IP address. func (o LookupPublicIPAddressResultOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { return o.ApplyT(func(v LookupPublicIPAddressResult) *PublicIPAddressDnsSettingsResponse { return v.DnsSettings }).(PublicIPAddressDnsSettingsResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPPrefix.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPPrefix.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPPrefix.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPPrefix.go index 1a8d0857..c55dafb2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getPublicIPPrefix.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getPublicIPPrefix.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified public IP prefix in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupPublicIPPrefix(ctx *pulumi.Context, args *LookupPublicIPPrefixArgs, opts ...pulumi.InvokeOption) (*LookupPublicIPPrefixResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPublicIPPrefixResult err := ctx.Invoke("azure-native:network:getPublicIPPrefix", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRecordSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRecordSet.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRecordSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRecordSet.go index a658f738..a63dd34f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRecordSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRecordSet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a record set. -// API Version: 2018-05-01. +// Azure REST API version: 2018-05-01. func LookupRecordSet(ctx *pulumi.Context, args *LookupRecordSetArgs, opts ...pulumi.InvokeOption) (*LookupRecordSetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRecordSetResult err := ctx.Invoke("azure-native:network:getRecordSet", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoute.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoute.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoute.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoute.go index 0da239f1..0c189003 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoute.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoute.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified route from a route table. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupRoute(ctx *pulumi.Context, args *LookupRouteArgs, opts ...pulumi.InvokeOption) (*LookupRouteResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRouteResult err := ctx.Invoke("azure-native:network:getRoute", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilter.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilter.go index afe252e4..c4d9f090 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilter.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified route filter. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupRouteFilter(ctx *pulumi.Context, args *LookupRouteFilterArgs, opts ...pulumi.InvokeOption) (*LookupRouteFilterResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRouteFilterResult err := ctx.Invoke("azure-native:network:getRouteFilter", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilterRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilterRule.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilterRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilterRule.go index d1829514..2c7e21fd 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteFilterRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteFilterRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified rule from a route filter. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupRouteFilterRule(ctx *pulumi.Context, args *LookupRouteFilterRuleArgs, opts ...pulumi.InvokeOption) (*LookupRouteFilterRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRouteFilterRuleResult err := ctx.Invoke("azure-native:network:getRouteFilterRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteMap.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteMap.go new file mode 100644 index 00000000..fc5ed75f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteMap.go @@ -0,0 +1,138 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Retrieves the details of a RouteMap. +// Azure REST API version: 2023-02-01. +func LookupRouteMap(ctx *pulumi.Context, args *LookupRouteMapArgs, opts ...pulumi.InvokeOption) (*LookupRouteMapResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupRouteMapResult + err := ctx.Invoke("azure-native:network:getRouteMap", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupRouteMapArgs struct { + // The resource group name of the RouteMap's resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The name of the RouteMap. + RouteMapName string `pulumi:"routeMapName"` + // The name of the VirtualHub containing the RouteMap. + VirtualHubName string `pulumi:"virtualHubName"` +} + +// The RouteMap child resource of a Virtual hub. +type LookupRouteMapResult struct { + // List of connections which have this RoutMap associated for inbound traffic. + AssociatedInboundConnections []string `pulumi:"associatedInboundConnections"` + // List of connections which have this RoutMap associated for outbound traffic. + AssociatedOutboundConnections []string `pulumi:"associatedOutboundConnections"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name string `pulumi:"name"` + // The provisioning state of the RouteMap resource. + ProvisioningState string `pulumi:"provisioningState"` + // List of RouteMap rules to be applied. + Rules []RouteMapRuleResponse `pulumi:"rules"` + // Resource type. + Type string `pulumi:"type"` +} + +func LookupRouteMapOutput(ctx *pulumi.Context, args LookupRouteMapOutputArgs, opts ...pulumi.InvokeOption) LookupRouteMapResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupRouteMapResult, error) { + args := v.(LookupRouteMapArgs) + r, err := LookupRouteMap(ctx, &args, opts...) + var s LookupRouteMapResult + if r != nil { + s = *r + } + return s, err + }).(LookupRouteMapResultOutput) +} + +type LookupRouteMapOutputArgs struct { + // The resource group name of the RouteMap's resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // The name of the RouteMap. + RouteMapName pulumi.StringInput `pulumi:"routeMapName"` + // The name of the VirtualHub containing the RouteMap. + VirtualHubName pulumi.StringInput `pulumi:"virtualHubName"` +} + +func (LookupRouteMapOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRouteMapArgs)(nil)).Elem() +} + +// The RouteMap child resource of a Virtual hub. +type LookupRouteMapResultOutput struct{ *pulumi.OutputState } + +func (LookupRouteMapResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRouteMapResult)(nil)).Elem() +} + +func (o LookupRouteMapResultOutput) ToLookupRouteMapResultOutput() LookupRouteMapResultOutput { + return o +} + +func (o LookupRouteMapResultOutput) ToLookupRouteMapResultOutputWithContext(ctx context.Context) LookupRouteMapResultOutput { + return o +} + +// List of connections which have this RoutMap associated for inbound traffic. +func (o LookupRouteMapResultOutput) AssociatedInboundConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupRouteMapResult) []string { return v.AssociatedInboundConnections }).(pulumi.StringArrayOutput) +} + +// List of connections which have this RoutMap associated for outbound traffic. +func (o LookupRouteMapResultOutput) AssociatedOutboundConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupRouteMapResult) []string { return v.AssociatedOutboundConnections }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o LookupRouteMapResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupRouteMapResult) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o LookupRouteMapResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupRouteMapResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o LookupRouteMapResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupRouteMapResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The provisioning state of the RouteMap resource. +func (o LookupRouteMapResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupRouteMapResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// List of RouteMap rules to be applied. +func (o LookupRouteMapResultOutput) Rules() RouteMapRuleResponseArrayOutput { + return o.ApplyT(func(v LookupRouteMapResult) []RouteMapRuleResponse { return v.Rules }).(RouteMapRuleResponseArrayOutput) +} + +// Resource type. +func (o LookupRouteMapResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupRouteMapResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupRouteMapResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteTable.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteTable.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteTable.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteTable.go index 5e223ab8..e6c7f604 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRouteTable.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRouteTable.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified route table. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupRouteTable(ctx *pulumi.Context, args *LookupRouteTableArgs, opts ...pulumi.InvokeOption) (*LookupRouteTableResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRouteTableResult err := ctx.Invoke("azure-native:network:getRouteTable", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoutingIntent.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoutingIntent.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoutingIntent.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoutingIntent.go index e34b4936..78d4c086 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRoutingIntent.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRoutingIntent.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a RoutingIntent. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func LookupRoutingIntent(ctx *pulumi.Context, args *LookupRoutingIntentArgs, opts ...pulumi.InvokeOption) (*LookupRoutingIntentResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRoutingIntentResult err := ctx.Invoke("azure-native:network:getRoutingIntent", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRulesEngine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRulesEngine.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRulesEngine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRulesEngine.go index 72b21de2..1264ddce 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getRulesEngine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getRulesEngine.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Rules Engine Configuration with the specified name within the specified Front Door. -// API Version: 2020-05-01. +// Azure REST API version: 2021-06-01. func LookupRulesEngine(ctx *pulumi.Context, args *LookupRulesEngineArgs, opts ...pulumi.InvokeOption) (*LookupRulesEngineResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupRulesEngineResult err := ctx.Invoke("azure-native:network:getRulesEngine", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getScopeConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getScopeConnection.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getScopeConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getScopeConnection.go index 752fcec4..d287e405 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getScopeConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getScopeConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get specified scope connection created by this Network Manager. -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupScopeConnection(ctx *pulumi.Context, args *LookupScopeConnectionArgs, opts ...pulumi.InvokeOption) (*LookupScopeConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupScopeConnectionResult err := ctx.Invoke("azure-native:network:getScopeConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityAdminConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityAdminConfiguration.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityAdminConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityAdminConfiguration.go index 50da960e..60527e62 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityAdminConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityAdminConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves a network manager security admin configuration. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupSecurityAdminConfiguration(ctx *pulumi.Context, args *LookupSecurityAdminConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupSecurityAdminConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSecurityAdminConfigurationResult err := ctx.Invoke("azure-native:network:getSecurityAdminConfiguration", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupSecurityAdminConfiguration(ctx *pulumi.Context, args *LookupSecurityA } type LookupSecurityAdminConfigurationArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -30,14 +32,12 @@ type LookupSecurityAdminConfigurationArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// Defines the security configuration +// Defines the security admin configuration type LookupSecurityAdminConfigurationResult struct { - // Flag if need to delete existing network security groups. - DeleteExistingNSGs *string `pulumi:"deleteExistingNSGs"` + // Enum list of network intent policy based services. + ApplyOnNetworkIntentPolicyBasedServices []string `pulumi:"applyOnNetworkIntentPolicyBasedServices"` // A description of the security configuration. Description *string `pulumi:"description"` - // A display name of the security configuration. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -46,8 +46,8 @@ type LookupSecurityAdminConfigurationResult struct { Name string `pulumi:"name"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` - // Security Type. - SecurityType *string `pulumi:"securityType"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -68,7 +68,7 @@ func LookupSecurityAdminConfigurationOutput(ctx *pulumi.Context, args LookupSecu } type LookupSecurityAdminConfigurationOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -80,7 +80,7 @@ func (LookupSecurityAdminConfigurationOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupSecurityAdminConfigurationArgs)(nil)).Elem() } -// Defines the security configuration +// Defines the security admin configuration type LookupSecurityAdminConfigurationResultOutput struct{ *pulumi.OutputState } func (LookupSecurityAdminConfigurationResultOutput) ElementType() reflect.Type { @@ -95,9 +95,11 @@ func (o LookupSecurityAdminConfigurationResultOutput) ToLookupSecurityAdminConfi return o } -// Flag if need to delete existing network security groups. -func (o LookupSecurityAdminConfigurationResultOutput) DeleteExistingNSGs() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) *string { return v.DeleteExistingNSGs }).(pulumi.StringPtrOutput) +// Enum list of network intent policy based services. +func (o LookupSecurityAdminConfigurationResultOutput) ApplyOnNetworkIntentPolicyBasedServices() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) []string { + return v.ApplyOnNetworkIntentPolicyBasedServices + }).(pulumi.StringArrayOutput) } // A description of the security configuration. @@ -105,11 +107,6 @@ func (o LookupSecurityAdminConfigurationResultOutput) Description() pulumi.Strin return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the security configuration. -func (o LookupSecurityAdminConfigurationResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupSecurityAdminConfigurationResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) string { return v.Etag }).(pulumi.StringOutput) @@ -130,9 +127,9 @@ func (o LookupSecurityAdminConfigurationResultOutput) ProvisioningState() pulumi return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Security Type. -func (o LookupSecurityAdminConfigurationResultOutput) SecurityType() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) *string { return v.SecurityType }).(pulumi.StringPtrOutput) +// Unique identifier for this resource. +func (o LookupSecurityAdminConfigurationResultOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v LookupSecurityAdminConfigurationResult) string { return v.ResourceGuid }).(pulumi.StringOutput) } // The system metadata related to this resource. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityPartnerProvider.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityPartnerProvider.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityPartnerProvider.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityPartnerProvider.go index 4aeb92f6..e1d41c87 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityPartnerProvider.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityPartnerProvider.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Security Partner Provider. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupSecurityPartnerProvider(ctx *pulumi.Context, args *LookupSecurityPartnerProviderArgs, opts ...pulumi.InvokeOption) (*LookupSecurityPartnerProviderResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSecurityPartnerProviderResult err := ctx.Invoke("azure-native:network:getSecurityPartnerProvider", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityRule.go index 11cef563..48bc8800 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the specified network security rule. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupSecurityRule(ctx *pulumi.Context, args *LookupSecurityRuleArgs, opts ...pulumi.InvokeOption) (*LookupSecurityRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSecurityRuleResult err := ctx.Invoke("azure-native:network:getSecurityRule", args, &rv, opts...) if err != nil { @@ -55,7 +57,7 @@ type LookupSecurityRuleResult struct { // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` + Priority int `pulumi:"priority"` // Network protocol this rule applies to. Protocol string `pulumi:"protocol"` // The provisioning state of the security rule resource. @@ -173,8 +175,8 @@ func (o LookupSecurityRuleResultOutput) Name() pulumi.StringPtrOutput { } // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. -func (o LookupSecurityRuleResultOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v LookupSecurityRuleResult) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (o LookupSecurityRuleResultOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v LookupSecurityRuleResult) int { return v.Priority }).(pulumi.IntOutput) } // Network protocol this rule applies to. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityUserConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityUserConfiguration.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityUserConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityUserConfiguration.go index edf01678..85a54d6b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSecurityUserConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSecurityUserConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves a network manager security user configuration. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2022-04-01-preview. func LookupSecurityUserConfiguration(ctx *pulumi.Context, args *LookupSecurityUserConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupSecurityUserConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSecurityUserConfigurationResult err := ctx.Invoke("azure-native:network:getSecurityUserConfiguration", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupSecurityUserConfiguration(ctx *pulumi.Context, args *LookupSecurityUs } type LookupSecurityUserConfigurationArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -30,14 +32,12 @@ type LookupSecurityUserConfigurationArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` } -// Defines the security configuration +// Defines the security user configuration type LookupSecurityUserConfigurationResult struct { // Flag if need to delete existing network security groups. DeleteExistingNSGs *string `pulumi:"deleteExistingNSGs"` - // A description of the security configuration. + // A description of the security user configuration. Description *string `pulumi:"description"` - // A display name of the security configuration. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -46,8 +46,6 @@ type LookupSecurityUserConfigurationResult struct { Name string `pulumi:"name"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` - // Security Type. - SecurityType *string `pulumi:"securityType"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -68,7 +66,7 @@ func LookupSecurityUserConfigurationOutput(ctx *pulumi.Context, args LookupSecur } type LookupSecurityUserConfigurationOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -80,7 +78,7 @@ func (LookupSecurityUserConfigurationOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupSecurityUserConfigurationArgs)(nil)).Elem() } -// Defines the security configuration +// Defines the security user configuration type LookupSecurityUserConfigurationResultOutput struct{ *pulumi.OutputState } func (LookupSecurityUserConfigurationResultOutput) ElementType() reflect.Type { @@ -100,16 +98,11 @@ func (o LookupSecurityUserConfigurationResultOutput) DeleteExistingNSGs() pulumi return o.ApplyT(func(v LookupSecurityUserConfigurationResult) *string { return v.DeleteExistingNSGs }).(pulumi.StringPtrOutput) } -// A description of the security configuration. +// A description of the security user configuration. func (o LookupSecurityUserConfigurationResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSecurityUserConfigurationResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the security configuration. -func (o LookupSecurityUserConfigurationResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecurityUserConfigurationResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupSecurityUserConfigurationResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupSecurityUserConfigurationResult) string { return v.Etag }).(pulumi.StringOutput) @@ -130,11 +123,6 @@ func (o LookupSecurityUserConfigurationResultOutput) ProvisioningState() pulumi. return o.ApplyT(func(v LookupSecurityUserConfigurationResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Security Type. -func (o LookupSecurityUserConfigurationResultOutput) SecurityType() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSecurityUserConfigurationResult) *string { return v.SecurityType }).(pulumi.StringPtrOutput) -} - // The system metadata related to this resource. func (o LookupSecurityUserConfigurationResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupSecurityUserConfigurationResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicy.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicy.go index 1cd96246..09e29f99 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified service Endpoint Policies in a specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupServiceEndpointPolicy(ctx *pulumi.Context, args *LookupServiceEndpointPolicyArgs, opts ...pulumi.InvokeOption) (*LookupServiceEndpointPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupServiceEndpointPolicyResult err := ctx.Invoke("azure-native:network:getServiceEndpointPolicy", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type LookupServiceEndpointPolicyArgs struct { // Service End point policy resource. type LookupServiceEndpointPolicyResult struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies []string `pulumi:"contextualServiceEndpointPolicies"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -46,6 +50,8 @@ type LookupServiceEndpointPolicyResult struct { ProvisioningState string `pulumi:"provisioningState"` // The resource GUID property of the service endpoint policy resource. ResourceGuid string `pulumi:"resourceGuid"` + // The alias indicating if the policy belongs to a service + ServiceAlias *string `pulumi:"serviceAlias"` // A collection of service endpoint policy definitions of the service endpoint policy. ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionResponse `pulumi:"serviceEndpointPolicyDefinitions"` // A collection of references to subnets. @@ -97,6 +103,11 @@ func (o LookupServiceEndpointPolicyResultOutput) ToLookupServiceEndpointPolicyRe return o } +// A collection of contextual service endpoint policy. +func (o LookupServiceEndpointPolicyResultOutput) ContextualServiceEndpointPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupServiceEndpointPolicyResult) []string { return v.ContextualServiceEndpointPolicies }).(pulumi.StringArrayOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupServiceEndpointPolicyResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupServiceEndpointPolicyResult) string { return v.Etag }).(pulumi.StringOutput) @@ -132,6 +143,11 @@ func (o LookupServiceEndpointPolicyResultOutput) ResourceGuid() pulumi.StringOut return o.ApplyT(func(v LookupServiceEndpointPolicyResult) string { return v.ResourceGuid }).(pulumi.StringOutput) } +// The alias indicating if the policy belongs to a service +func (o LookupServiceEndpointPolicyResultOutput) ServiceAlias() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupServiceEndpointPolicyResult) *string { return v.ServiceAlias }).(pulumi.StringPtrOutput) +} + // A collection of service endpoint policy definitions of the service endpoint policy. func (o LookupServiceEndpointPolicyResultOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionResponseArrayOutput { return o.ApplyT(func(v LookupServiceEndpointPolicyResult) []ServiceEndpointPolicyDefinitionResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicyDefinition.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicyDefinition.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicyDefinition.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicyDefinition.go index 4dfa28c1..237bc688 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getServiceEndpointPolicyDefinition.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getServiceEndpointPolicyDefinition.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the specified service endpoint policy definitions from service endpoint policy. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupServiceEndpointPolicyDefinition(ctx *pulumi.Context, args *LookupServiceEndpointPolicyDefinitionArgs, opts ...pulumi.InvokeOption) (*LookupServiceEndpointPolicyDefinitionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupServiceEndpointPolicyDefinitionResult err := ctx.Invoke("azure-native:network:getServiceEndpointPolicyDefinition", args, &rv, opts...) if err != nil { @@ -46,6 +48,8 @@ type LookupServiceEndpointPolicyDefinitionResult struct { Service *string `pulumi:"service"` // A list of service resources. ServiceResources []string `pulumi:"serviceResources"` + // The type of the resource. + Type *string `pulumi:"type"` } func LookupServiceEndpointPolicyDefinitionOutput(ctx *pulumi.Context, args LookupServiceEndpointPolicyDefinitionOutputArgs, opts ...pulumi.InvokeOption) LookupServiceEndpointPolicyDefinitionResultOutput { @@ -124,6 +128,11 @@ func (o LookupServiceEndpointPolicyDefinitionResultOutput) ServiceResources() pu return o.ApplyT(func(v LookupServiceEndpointPolicyDefinitionResult) []string { return v.ServiceResources }).(pulumi.StringArrayOutput) } +// The type of the resource. +func (o LookupServiceEndpointPolicyDefinitionResultOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupServiceEndpointPolicyDefinitionResult) *string { return v.Type }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterOutputType(LookupServiceEndpointPolicyDefinitionResultOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getStaticMember.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getStaticMember.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getStaticMember.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getStaticMember.go index 84e7c007..1d0157e5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getStaticMember.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getStaticMember.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified static member. -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupStaticMember(ctx *pulumi.Context, args *LookupStaticMemberArgs, opts ...pulumi.InvokeOption) (*LookupStaticMemberResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupStaticMemberResult err := ctx.Invoke("azure-native:network:getStaticMember", args, &rv, opts...) if err != nil { @@ -40,6 +42,10 @@ type LookupStaticMemberResult struct { Id string `pulumi:"id"` // Resource name. Name string `pulumi:"name"` + // The provisioning state of the scope assignment resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource region. + Region string `pulumi:"region"` // Resource Id. ResourceId *string `pulumi:"resourceId"` // The system metadata related to this resource. @@ -106,6 +112,16 @@ func (o LookupStaticMemberResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupStaticMemberResult) string { return v.Name }).(pulumi.StringOutput) } +// The provisioning state of the scope assignment resource. +func (o LookupStaticMemberResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupStaticMemberResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Resource region. +func (o LookupStaticMemberResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupStaticMemberResult) string { return v.Region }).(pulumi.StringOutput) +} + // Resource Id. func (o LookupStaticMemberResultOutput) ResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupStaticMemberResult) *string { return v.ResourceId }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubnet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubnet.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubnet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubnet.go index 2b320e5c..dc50bde6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubnet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubnet.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified subnet by virtual network and resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupSubnet(ctx *pulumi.Context, args *LookupSubnetArgs, opts ...pulumi.InvokeOption) (*LookupSubnetResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSubnetResult err := ctx.Invoke("azure-native:network:getSubnet", args, &rv, opts...) if err != nil { @@ -39,7 +41,7 @@ type LookupSubnetResult struct { // List of address prefixes for the subnet. AddressPrefixes []string `pulumi:"addressPrefixes"` // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"applicationGatewayIpConfigurations"` + ApplicationGatewayIPConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"applicationGatewayIPConfigurations"` // An array of references to the delegations on the subnet. Delegations []DelegationResponse `pulumi:"delegations"` // A unique read-only string that changes whenever the resource is updated. @@ -88,11 +90,11 @@ func (val *LookupSubnetResult) Defaults() *LookupSubnetResult { return nil } tmp := *val - if isZero(tmp.PrivateEndpointNetworkPolicies) { - privateEndpointNetworkPolicies_ := "Enabled" + if tmp.PrivateEndpointNetworkPolicies == nil { + privateEndpointNetworkPolicies_ := "Disabled" tmp.PrivateEndpointNetworkPolicies = &privateEndpointNetworkPolicies_ } - if isZero(tmp.PrivateLinkServiceNetworkPolicies) { + if tmp.PrivateLinkServiceNetworkPolicies == nil { privateLinkServiceNetworkPolicies_ := "Enabled" tmp.PrivateLinkServiceNetworkPolicies = &privateLinkServiceNetworkPolicies_ } @@ -153,9 +155,9 @@ func (o LookupSubnetResultOutput) AddressPrefixes() pulumi.StringArrayOutput { } // Application gateway IP configurations of virtual network resource. -func (o LookupSubnetResultOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { +func (o LookupSubnetResultOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { return o.ApplyT(func(v LookupSubnetResult) []ApplicationGatewayIPConfigurationResponse { - return v.ApplicationGatewayIpConfigurations + return v.ApplicationGatewayIPConfigurations }).(ApplicationGatewayIPConfigurationResponseArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubscriptionNetworkManagerConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubscriptionNetworkManagerConnection.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubscriptionNetworkManagerConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubscriptionNetworkManagerConnection.go index 2d85e96b..52d4ca2e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getSubscriptionNetworkManagerConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getSubscriptionNetworkManagerConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get a specified connection created by this subscription. -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. func LookupSubscriptionNetworkManagerConnection(ctx *pulumi.Context, args *LookupSubscriptionNetworkManagerConnectionArgs, opts ...pulumi.InvokeOption) (*LookupSubscriptionNetworkManagerConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupSubscriptionNetworkManagerConnectionResult err := ctx.Invoke("azure-native:network:getSubscriptionNetworkManagerConnection", args, &rv, opts...) if err != nil { @@ -28,7 +30,7 @@ type LookupSubscriptionNetworkManagerConnectionArgs struct { // The Network Manager Connection resource type LookupSubscriptionNetworkManagerConnectionResult struct { - // A description of the scope connection. + // A description of the network manager connection. Description *string `pulumi:"description"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` @@ -81,7 +83,7 @@ func (o LookupSubscriptionNetworkManagerConnectionResultOutput) ToLookupSubscrip return o } -// A description of the scope connection. +// A description of the network manager connection. func (o LookupSubscriptionNetworkManagerConnectionResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSubscriptionNetworkManagerConnectionResult) *string { return v.Description }).(pulumi.StringPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getTrafficManagerUserMetricsKey.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getTrafficManagerUserMetricsKey.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getTrafficManagerUserMetricsKey.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getTrafficManagerUserMetricsKey.go index 4cf3ece5..d353bbd9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getTrafficManagerUserMetricsKey.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getTrafficManagerUserMetricsKey.go @@ -4,12 +4,14 @@ package network import ( + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the subscription-level key used for Real User Metrics collection. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. func LookupTrafficManagerUserMetricsKey(ctx *pulumi.Context, args *LookupTrafficManagerUserMetricsKeyArgs, opts ...pulumi.InvokeOption) (*LookupTrafficManagerUserMetricsKeyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTrafficManagerUserMetricsKeyResult err := ctx.Invoke("azure-native:network:getTrafficManagerUserMetricsKey", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRule.go similarity index 57% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRule.go index 1b5e1c26..b4c45d30 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRule.go @@ -7,14 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a user rule. -// API Version: 2021-02-01-preview. -// -// Deprecated: Please use one of the variants: DefaultUserRule, UserRule. +// Azure REST API version: 2022-04-01-preview. func LookupUserRule(ctx *pulumi.Context, args *LookupUserRuleArgs, opts ...pulumi.InvokeOption) (*LookupUserRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupUserRuleResult err := ctx.Invoke("azure-native:network:getUserRule", args, &rv, opts...) if err != nil { @@ -24,7 +24,7 @@ func LookupUserRule(ctx *pulumi.Context, args *LookupUserRuleArgs, opts ...pulum } type LookupUserRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -36,16 +36,33 @@ type LookupUserRuleArgs struct { RuleName string `pulumi:"ruleName"` } -// Network base rule. +// Network security user rule. type LookupUserRuleResult struct { + // A description for this rule. + Description *string `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations []AddressPrefixItemResponse `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction string `pulumi:"direction"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id string `pulumi:"id"` // Whether the rule is custom or default. + // Expected value is 'Custom'. Kind string `pulumi:"kind"` // Resource name. Name string `pulumi:"name"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` + // The provisioning state of the security configuration user rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources []AddressPrefixItemResponse `pulumi:"sources"` // The system metadata related to this resource. SystemData SystemDataResponse `pulumi:"systemData"` // Resource type. @@ -66,7 +83,7 @@ func LookupUserRuleOutput(ctx *pulumi.Context, args LookupUserRuleOutputArgs, op } type LookupUserRuleOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -82,7 +99,7 @@ func (LookupUserRuleOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupUserRuleArgs)(nil)).Elem() } -// Network base rule. +// Network security user rule. type LookupUserRuleResultOutput struct{ *pulumi.OutputState } func (LookupUserRuleResultOutput) ElementType() reflect.Type { @@ -97,6 +114,26 @@ func (o LookupUserRuleResultOutput) ToLookupUserRuleResultOutputWithContext(ctx return o } +// A description for this rule. +func (o LookupUserRuleResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupUserRuleResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o LookupUserRuleResultOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupUserRuleResult) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o LookupUserRuleResultOutput) Destinations() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v LookupUserRuleResult) []AddressPrefixItemResponse { return v.Destinations }).(AddressPrefixItemResponseArrayOutput) +} + +// Indicates if the traffic matched against the rule in inbound or outbound. +func (o LookupUserRuleResultOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserRuleResult) string { return v.Direction }).(pulumi.StringOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupUserRuleResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupUserRuleResult) string { return v.Etag }).(pulumi.StringOutput) @@ -108,6 +145,7 @@ func (o LookupUserRuleResultOutput) Id() pulumi.StringOutput { } // Whether the rule is custom or default. +// Expected value is 'Custom'. func (o LookupUserRuleResultOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v LookupUserRuleResult) string { return v.Kind }).(pulumi.StringOutput) } @@ -117,6 +155,26 @@ func (o LookupUserRuleResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupUserRuleResult) string { return v.Name }).(pulumi.StringOutput) } +// Network protocol this rule applies to. +func (o LookupUserRuleResultOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserRuleResult) string { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the security configuration user rule resource. +func (o LookupUserRuleResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserRuleResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The source port ranges. +func (o LookupUserRuleResultOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupUserRuleResult) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The CIDR or source IP ranges. +func (o LookupUserRuleResultOutput) Sources() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v LookupUserRuleResult) []AddressPrefixItemResponse { return v.Sources }).(AddressPrefixItemResponseArrayOutput) +} + // The system metadata related to this resource. func (o LookupUserRuleResultOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v LookupUserRuleResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRuleCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRuleCollection.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRuleCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRuleCollection.go index 03e87f0a..99410416 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getUserRuleCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getUserRuleCollection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a network manager security user configuration rule collection. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2022-04-01-preview. func LookupUserRuleCollection(ctx *pulumi.Context, args *LookupUserRuleCollectionArgs, opts ...pulumi.InvokeOption) (*LookupUserRuleCollectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupUserRuleCollectionResult err := ctx.Invoke("azure-native:network:getUserRuleCollection", args, &rv, opts...) if err != nil { @@ -22,7 +24,7 @@ func LookupUserRuleCollection(ctx *pulumi.Context, args *LookupUserRuleCollectio } type LookupUserRuleCollectionArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -32,14 +34,12 @@ type LookupUserRuleCollectionArgs struct { RuleCollectionName string `pulumi:"ruleCollectionName"` } -// Defines the rule collection. +// Defines the user rule collection. type LookupUserRuleCollectionResult struct { // Groups for configuration AppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"appliesToGroups"` - // A description of the rule collection. + // A description of the user rule collection. Description *string `pulumi:"description"` - // A display name of the rule collection. - DisplayName *string `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -68,7 +68,7 @@ func LookupUserRuleCollectionOutput(ctx *pulumi.Context, args LookupUserRuleColl } type LookupUserRuleCollectionOutputArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput `pulumi:"configurationName"` // The name of the network manager. NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` @@ -82,7 +82,7 @@ func (LookupUserRuleCollectionOutputArgs) ElementType() reflect.Type { return reflect.TypeOf((*LookupUserRuleCollectionArgs)(nil)).Elem() } -// Defines the rule collection. +// Defines the user rule collection. type LookupUserRuleCollectionResultOutput struct{ *pulumi.OutputState } func (LookupUserRuleCollectionResultOutput) ElementType() reflect.Type { @@ -104,16 +104,11 @@ func (o LookupUserRuleCollectionResultOutput) AppliesToGroups() NetworkManagerSe }).(NetworkManagerSecurityGroupItemResponseArrayOutput) } -// A description of the rule collection. +// A description of the user rule collection. func (o LookupUserRuleCollectionResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupUserRuleCollectionResult) *string { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the rule collection. -func (o LookupUserRuleCollectionResultOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupUserRuleCollectionResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o LookupUserRuleCollectionResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupUserRuleCollectionResult) string { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualApplianceSite.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualApplianceSite.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualApplianceSite.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualApplianceSite.go index 62b5f75e..19764a1e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualApplianceSite.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualApplianceSite.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Virtual Appliance Site. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualApplianceSite(ctx *pulumi.Context, args *LookupVirtualApplianceSiteArgs, opts ...pulumi.InvokeOption) (*LookupVirtualApplianceSiteResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualApplianceSiteResult err := ctx.Invoke("azure-native:network:getVirtualApplianceSite", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHub.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHub.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHub.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHub.go index 56a09114..b9c84367 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHub.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHub.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a VirtualHub. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualHub(ctx *pulumi.Context, args *LookupVirtualHubArgs, opts ...pulumi.InvokeOption) (*LookupVirtualHubResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualHubResult err := ctx.Invoke("azure-native:network:getVirtualHub", args, &rv, opts...) if err != nil { @@ -42,18 +44,26 @@ type LookupVirtualHubResult struct { Etag string `pulumi:"etag"` // The expressRouteGateway associated with this VirtualHub. ExpressRouteGateway *SubResourceResponse `pulumi:"expressRouteGateway"` + // The hubRoutingPreference of this VirtualHub. + HubRoutingPreference *string `pulumi:"hubRoutingPreference"` // Resource ID. Id *string `pulumi:"id"` // List of references to IpConfigurations. IpConfigurations []SubResourceResponse `pulumi:"ipConfigurations"` + // Kind of service virtual hub. This is metadata used for the Azure portal experience for Route Server. + Kind string `pulumi:"kind"` // Resource location. Location string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` // The P2SVpnGateway associated with this VirtualHub. P2SVpnGateway *SubResourceResponse `pulumi:"p2SVpnGateway"` + // The preferred gateway to route on-prem traffic + PreferredRoutingGateway *string `pulumi:"preferredRoutingGateway"` // The provisioning state of the virtual hub resource. ProvisioningState string `pulumi:"provisioningState"` + // List of references to RouteMaps. + RouteMaps []SubResourceResponse `pulumi:"routeMaps"` // The routeTable associated with this virtual hub. RouteTable *VirtualHubRouteTableResponse `pulumi:"routeTable"` // The routing state. @@ -72,6 +82,8 @@ type LookupVirtualHubResult struct { VirtualHubRouteTableV2s []VirtualHubRouteTableV2Response `pulumi:"virtualHubRouteTableV2s"` // VirtualRouter ASN. VirtualRouterAsn *float64 `pulumi:"virtualRouterAsn"` + // The VirtualHub Router autoscale configuration. + VirtualRouterAutoScaleConfiguration *VirtualRouterAutoScaleConfigurationResponse `pulumi:"virtualRouterAutoScaleConfiguration"` // VirtualRouter IPs. VirtualRouterIps []string `pulumi:"virtualRouterIps"` // The VirtualWAN to which the VirtualHub belongs. @@ -149,6 +161,11 @@ func (o LookupVirtualHubResultOutput) ExpressRouteGateway() SubResourceResponseP return o.ApplyT(func(v LookupVirtualHubResult) *SubResourceResponse { return v.ExpressRouteGateway }).(SubResourceResponsePtrOutput) } +// The hubRoutingPreference of this VirtualHub. +func (o LookupVirtualHubResultOutput) HubRoutingPreference() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualHubResult) *string { return v.HubRoutingPreference }).(pulumi.StringPtrOutput) +} + // Resource ID. func (o LookupVirtualHubResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualHubResult) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -159,6 +176,11 @@ func (o LookupVirtualHubResultOutput) IpConfigurations() SubResourceResponseArra return o.ApplyT(func(v LookupVirtualHubResult) []SubResourceResponse { return v.IpConfigurations }).(SubResourceResponseArrayOutput) } +// Kind of service virtual hub. This is metadata used for the Azure portal experience for Route Server. +func (o LookupVirtualHubResultOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v LookupVirtualHubResult) string { return v.Kind }).(pulumi.StringOutput) +} + // Resource location. func (o LookupVirtualHubResultOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualHubResult) string { return v.Location }).(pulumi.StringOutput) @@ -174,11 +196,21 @@ func (o LookupVirtualHubResultOutput) P2SVpnGateway() SubResourceResponsePtrOutp return o.ApplyT(func(v LookupVirtualHubResult) *SubResourceResponse { return v.P2SVpnGateway }).(SubResourceResponsePtrOutput) } +// The preferred gateway to route on-prem traffic +func (o LookupVirtualHubResultOutput) PreferredRoutingGateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualHubResult) *string { return v.PreferredRoutingGateway }).(pulumi.StringPtrOutput) +} + // The provisioning state of the virtual hub resource. func (o LookupVirtualHubResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualHubResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// List of references to RouteMaps. +func (o LookupVirtualHubResultOutput) RouteMaps() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualHubResult) []SubResourceResponse { return v.RouteMaps }).(SubResourceResponseArrayOutput) +} + // The routeTable associated with this virtual hub. func (o LookupVirtualHubResultOutput) RouteTable() VirtualHubRouteTableResponsePtrOutput { return o.ApplyT(func(v LookupVirtualHubResult) *VirtualHubRouteTableResponse { return v.RouteTable }).(VirtualHubRouteTableResponsePtrOutput) @@ -224,6 +256,13 @@ func (o LookupVirtualHubResultOutput) VirtualRouterAsn() pulumi.Float64PtrOutput return o.ApplyT(func(v LookupVirtualHubResult) *float64 { return v.VirtualRouterAsn }).(pulumi.Float64PtrOutput) } +// The VirtualHub Router autoscale configuration. +func (o LookupVirtualHubResultOutput) VirtualRouterAutoScaleConfiguration() VirtualRouterAutoScaleConfigurationResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualHubResult) *VirtualRouterAutoScaleConfigurationResponse { + return v.VirtualRouterAutoScaleConfiguration + }).(VirtualRouterAutoScaleConfigurationResponsePtrOutput) +} + // VirtualRouter IPs. func (o LookupVirtualHubResultOutput) VirtualRouterIps() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupVirtualHubResult) []string { return v.VirtualRouterIps }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubBgpConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubBgpConnection.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubBgpConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubBgpConnection.go index 616926db..10610e4f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubBgpConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubBgpConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a Virtual Hub Bgp Connection. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualHubBgpConnection(ctx *pulumi.Context, args *LookupVirtualHubBgpConnectionArgs, opts ...pulumi.InvokeOption) (*LookupVirtualHubBgpConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualHubBgpConnectionResult err := ctx.Invoke("azure-native:network:getVirtualHubBgpConnection", args, &rv, opts...) if err != nil { @@ -36,6 +38,8 @@ type LookupVirtualHubBgpConnectionResult struct { ConnectionState string `pulumi:"connectionState"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // The reference to the HubVirtualNetworkConnection resource. + HubVirtualNetworkConnection *SubResourceResponse `pulumi:"hubVirtualNetworkConnection"` // Resource ID. Id *string `pulumi:"id"` // Name of the connection. @@ -101,6 +105,11 @@ func (o LookupVirtualHubBgpConnectionResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualHubBgpConnectionResult) string { return v.Etag }).(pulumi.StringOutput) } +// The reference to the HubVirtualNetworkConnection resource. +func (o LookupVirtualHubBgpConnectionResultOutput) HubVirtualNetworkConnection() SubResourceResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualHubBgpConnectionResult) *SubResourceResponse { return v.HubVirtualNetworkConnection }).(SubResourceResponsePtrOutput) +} + // Resource ID. func (o LookupVirtualHubBgpConnectionResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualHubBgpConnectionResult) *string { return v.Id }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubIpConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubIpConfiguration.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubIpConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubIpConfiguration.go index d323f5c2..2f554550 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubIpConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubIpConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a Virtual Hub Ip configuration. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualHubIpConfiguration(ctx *pulumi.Context, args *LookupVirtualHubIpConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupVirtualHubIpConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualHubIpConfigurationResult err := ctx.Invoke("azure-native:network:getVirtualHubIpConfiguration", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubRouteTableV2.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubRouteTableV2.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubRouteTableV2.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubRouteTableV2.go index 161495b6..5902ce5e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualHubRouteTableV2.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualHubRouteTableV2.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a VirtualHubRouteTableV2. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualHubRouteTableV2(ctx *pulumi.Context, args *LookupVirtualHubRouteTableV2Args, opts ...pulumi.InvokeOption) (*LookupVirtualHubRouteTableV2Result, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualHubRouteTableV2Result err := ctx.Invoke("azure-native:network:getVirtualHubRouteTableV2", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetwork.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetwork.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetwork.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetwork.go index f4499497..bbc50dc1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetwork.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetwork.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified virtual network by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetwork(ctx *pulumi.Context, args *LookupVirtualNetworkArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkResult err := ctx.Invoke("azure-native:network:getVirtualNetwork", args, &rv, opts...) if err != nil { @@ -44,10 +46,16 @@ type LookupVirtualNetworkResult struct { EnableDdosProtection *bool `pulumi:"enableDdosProtection"` // Indicates if VM protection is enabled for all the subnets in the virtual network. EnableVmProtection *bool `pulumi:"enableVmProtection"` + // Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. + Encryption *VirtualNetworkEncryptionResponse `pulumi:"encryption"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // The extended location of the virtual network. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` + // A collection of references to flow log resources. + FlowLogs []FlowLogResponse `pulumi:"flowLogs"` + // The FlowTimeout value (in minutes) for the Virtual Network + FlowTimeoutInMinutes *int `pulumi:"flowTimeoutInMinutes"` // Resource ID. Id *string `pulumi:"id"` // Array of IpAllocation which reference this VNET. @@ -76,11 +84,11 @@ func (val *LookupVirtualNetworkResult) Defaults() *LookupVirtualNetworkResult { return nil } tmp := *val - if isZero(tmp.EnableDdosProtection) { + if tmp.EnableDdosProtection == nil { enableDdosProtection_ := false tmp.EnableDdosProtection = &enableDdosProtection_ } - if isZero(tmp.EnableVmProtection) { + if tmp.EnableVmProtection == nil { enableVmProtection_ := false tmp.EnableVmProtection = &enableVmProtection_ } @@ -158,6 +166,11 @@ func (o LookupVirtualNetworkResultOutput) EnableVmProtection() pulumi.BoolPtrOut return o.ApplyT(func(v LookupVirtualNetworkResult) *bool { return v.EnableVmProtection }).(pulumi.BoolPtrOutput) } +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +func (o LookupVirtualNetworkResultOutput) Encryption() VirtualNetworkEncryptionResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkResult) *VirtualNetworkEncryptionResponse { return v.Encryption }).(VirtualNetworkEncryptionResponsePtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupVirtualNetworkResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkResult) string { return v.Etag }).(pulumi.StringOutput) @@ -168,6 +181,16 @@ func (o LookupVirtualNetworkResultOutput) ExtendedLocation() ExtendedLocationRes return o.ApplyT(func(v LookupVirtualNetworkResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } +// A collection of references to flow log resources. +func (o LookupVirtualNetworkResultOutput) FlowLogs() FlowLogResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkResult) []FlowLogResponse { return v.FlowLogs }).(FlowLogResponseArrayOutput) +} + +// The FlowTimeout value (in minutes) for the Virtual Network +func (o LookupVirtualNetworkResultOutput) FlowTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkResult) *int { return v.FlowTimeoutInMinutes }).(pulumi.IntPtrOutput) +} + // Resource ID. func (o LookupVirtualNetworkResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualNetworkResult) *string { return v.Id }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGateway.go similarity index 77% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGateway.go index e3e1651a..2f727ff6 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified virtual network gateway by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetworkGateway(ctx *pulumi.Context, args *LookupVirtualNetworkGatewayArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkGatewayResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGateway", args, &rv, opts...) if err != nil { @@ -32,12 +34,22 @@ type LookupVirtualNetworkGatewayArgs struct { type LookupVirtualNetworkGatewayResult struct { // ActiveActive flag. ActiveActive *bool `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState *string `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic *bool `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic *bool `pulumi:"allowVirtualWanTraffic"` // Virtual network gateway's BGP speaker settings. BgpSettings *BgpSettingsResponse `pulumi:"bgpSettings"` // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. CustomRoutes *AddressSpaceResponse `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection *bool `pulumi:"disableIPSecReplayProtection"` // Whether BGP is enabled for this virtual network gateway or not. EnableBgp *bool `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` // Whether dns forwarding is enabled or not. EnableDnsForwarding *bool `pulumi:"enableDnsForwarding"` // Whether private IP needs to be enabled on this gateway for connections or not. @@ -60,6 +72,8 @@ type LookupVirtualNetworkGatewayResult struct { Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` + // NatRules for virtual network gateway. + NatRules []VirtualNetworkGatewayNatRuleResponse `pulumi:"natRules"` // The provisioning state of the virtual network gateway resource. ProvisioningState string `pulumi:"provisioningState"` // The resource GUID property of the virtual network gateway resource. @@ -72,6 +86,8 @@ type LookupVirtualNetworkGatewayResult struct { Type string `pulumi:"type"` // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. VNetExtendedLocationResourceId *string `pulumi:"vNetExtendedLocationResourceId"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups []VirtualNetworkGatewayPolicyGroupResponse `pulumi:"virtualNetworkGatewayPolicyGroups"` // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. VpnClientConfiguration *VpnClientConfigurationResponse `pulumi:"vpnClientConfiguration"` // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. @@ -124,6 +140,21 @@ func (o LookupVirtualNetworkGatewayResultOutput) ActiveActive() pulumi.BoolPtrOu return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.ActiveActive }).(pulumi.BoolPtrOutput) } +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o LookupVirtualNetworkGatewayResultOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *string { return v.AdminState }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o LookupVirtualNetworkGatewayResultOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.AllowRemoteVnetTraffic }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o LookupVirtualNetworkGatewayResultOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.AllowVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + // Virtual network gateway's BGP speaker settings. func (o LookupVirtualNetworkGatewayResultOutput) BgpSettings() BgpSettingsResponsePtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *BgpSettingsResponse { return v.BgpSettings }).(BgpSettingsResponsePtrOutput) @@ -134,11 +165,21 @@ func (o LookupVirtualNetworkGatewayResultOutput) CustomRoutes() AddressSpaceResp return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *AddressSpaceResponse { return v.CustomRoutes }).(AddressSpaceResponsePtrOutput) } +// disableIPSecReplayProtection flag. +func (o LookupVirtualNetworkGatewayResultOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.DisableIPSecReplayProtection }).(pulumi.BoolPtrOutput) +} + // Whether BGP is enabled for this virtual network gateway or not. func (o LookupVirtualNetworkGatewayResultOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.EnableBgp }).(pulumi.BoolPtrOutput) } +// EnableBgpRouteTranslationForNat flag. +func (o LookupVirtualNetworkGatewayResultOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + // Whether dns forwarding is enabled or not. func (o LookupVirtualNetworkGatewayResultOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *bool { return v.EnableDnsForwarding }).(pulumi.BoolPtrOutput) @@ -196,6 +237,11 @@ func (o LookupVirtualNetworkGatewayResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) string { return v.Name }).(pulumi.StringOutput) } +// NatRules for virtual network gateway. +func (o LookupVirtualNetworkGatewayResultOutput) NatRules() VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) []VirtualNetworkGatewayNatRuleResponse { return v.NatRules }).(VirtualNetworkGatewayNatRuleResponseArrayOutput) +} + // The provisioning state of the virtual network gateway resource. func (o LookupVirtualNetworkGatewayResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -226,6 +272,13 @@ func (o LookupVirtualNetworkGatewayResultOutput) VNetExtendedLocationResourceId( return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *string { return v.VNetExtendedLocationResourceId }).(pulumi.StringPtrOutput) } +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o LookupVirtualNetworkGatewayResultOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) []VirtualNetworkGatewayPolicyGroupResponse { + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupResponseArrayOutput) +} + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. func (o LookupVirtualNetworkGatewayResultOutput) VpnClientConfiguration() VpnClientConfigurationResponsePtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayResult) *VpnClientConfigurationResponse { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayAdvertisedRoutes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayAdvertisedRoutes.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayAdvertisedRoutes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayAdvertisedRoutes.go index 3b343922..c118baa5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayAdvertisedRoutes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayAdvertisedRoutes.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // This operation retrieves a list of routes the virtual network gateway is advertising to the specified peer. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetVirtualNetworkGatewayAdvertisedRoutes(ctx *pulumi.Context, args *GetVirtualNetworkGatewayAdvertisedRoutesArgs, opts ...pulumi.InvokeOption) (*GetVirtualNetworkGatewayAdvertisedRoutesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetVirtualNetworkGatewayAdvertisedRoutesResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayAdvertisedRoutes", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayBgpPeerStatus.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayBgpPeerStatus.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayBgpPeerStatus.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayBgpPeerStatus.go index eda09205..3a2a3f0c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayBgpPeerStatus.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayBgpPeerStatus.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The GetBgpPeerStatus operation retrieves the status of all BGP peers. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetVirtualNetworkGatewayBgpPeerStatus(ctx *pulumi.Context, args *GetVirtualNetworkGatewayBgpPeerStatusArgs, opts ...pulumi.InvokeOption) (*GetVirtualNetworkGatewayBgpPeerStatusResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetVirtualNetworkGatewayBgpPeerStatusResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayBgpPeerStatus", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayConnection.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayConnection.go index 675b8aaa..d8fbb075 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified virtual network gateway connection by resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetworkGatewayConnection(ctx *pulumi.Context, args *LookupVirtualNetworkGatewayConnectionArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkGatewayConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkGatewayConnectionResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayConnection", args, &rv, opts...) if err != nil { @@ -44,16 +46,24 @@ type LookupVirtualNetworkGatewayConnectionResult struct { DpdTimeoutSeconds *int `pulumi:"dpdTimeoutSeconds"` // The egress bytes transferred in this connection. EgressBytesTransferred float64 `pulumi:"egressBytesTransferred"` + // List of egress NatRules. + EgressNatRules []SubResourceResponse `pulumi:"egressNatRules"` // EnableBgp flag. EnableBgp *bool `pulumi:"enableBgp"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Bypass ExpressRoute Gateway for data forwarding. ExpressRouteGatewayBypass *bool `pulumi:"expressRouteGatewayBypass"` + // GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. + GatewayCustomBgpIpAddresses []GatewayCustomBgpIpAddressIpConfigurationResponse `pulumi:"gatewayCustomBgpIpAddresses"` // Resource ID. Id *string `pulumi:"id"` // The ingress bytes transferred in this connection. IngressBytesTransferred float64 `pulumi:"ingressBytesTransferred"` + // List of ingress NatRules. + IngressNatRules []SubResourceResponse `pulumi:"ingressNatRules"` // The IPSec Policies to be considered by this connection. IpsecPolicies []IpsecPolicyResponse `pulumi:"ipsecPolicies"` // The reference to local network gateway resource. @@ -164,11 +174,21 @@ func (o LookupVirtualNetworkGatewayConnectionResultOutput) EgressBytesTransferre return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) float64 { return v.EgressBytesTransferred }).(pulumi.Float64Output) } +// List of egress NatRules. +func (o LookupVirtualNetworkGatewayConnectionResultOutput) EgressNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) []SubResourceResponse { return v.EgressNatRules }).(SubResourceResponseArrayOutput) +} + // EnableBgp flag. func (o LookupVirtualNetworkGatewayConnectionResultOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) *bool { return v.EnableBgp }).(pulumi.BoolPtrOutput) } +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o LookupVirtualNetworkGatewayConnectionResultOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) *bool { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupVirtualNetworkGatewayConnectionResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) string { return v.Etag }).(pulumi.StringOutput) @@ -179,6 +199,13 @@ func (o LookupVirtualNetworkGatewayConnectionResultOutput) ExpressRouteGatewayBy return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) *bool { return v.ExpressRouteGatewayBypass }).(pulumi.BoolPtrOutput) } +// GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. +func (o LookupVirtualNetworkGatewayConnectionResultOutput) GatewayCustomBgpIpAddresses() GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) []GatewayCustomBgpIpAddressIpConfigurationResponse { + return v.GatewayCustomBgpIpAddresses + }).(GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) +} + // Resource ID. func (o LookupVirtualNetworkGatewayConnectionResultOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -189,6 +216,11 @@ func (o LookupVirtualNetworkGatewayConnectionResultOutput) IngressBytesTransferr return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) float64 { return v.IngressBytesTransferred }).(pulumi.Float64Output) } +// List of ingress NatRules. +func (o LookupVirtualNetworkGatewayConnectionResultOutput) IngressNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) []SubResourceResponse { return v.IngressNatRules }).(SubResourceResponseArrayOutput) +} + // The IPSec Policies to be considered by this connection. func (o LookupVirtualNetworkGatewayConnectionResultOutput) IpsecPolicies() IpsecPolicyResponseArrayOutput { return o.ApplyT(func(v LookupVirtualNetworkGatewayConnectionResult) []IpsecPolicyResponse { return v.IpsecPolicies }).(IpsecPolicyResponseArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayLearnedRoutes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayLearnedRoutes.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayLearnedRoutes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayLearnedRoutes.go index e7739a7b..f4f40873 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayLearnedRoutes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayLearnedRoutes.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // This operation retrieves a list of routes the virtual network gateway has learned, including routes learned from BGP peers. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetVirtualNetworkGatewayLearnedRoutes(ctx *pulumi.Context, args *GetVirtualNetworkGatewayLearnedRoutesArgs, opts ...pulumi.InvokeOption) (*GetVirtualNetworkGatewayLearnedRoutesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetVirtualNetworkGatewayLearnedRoutesResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayLearnedRoutes", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayNatRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayNatRule.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayNatRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayNatRule.go index a7104c99..37f7dacf 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayNatRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayNatRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a nat rule. -// API Version: 2021-03-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetworkGatewayNatRule(ctx *pulumi.Context, args *LookupVirtualNetworkGatewayNatRuleArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkGatewayNatRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkGatewayNatRuleResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayNatRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientConnectionHealth.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientConnectionHealth.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientConnectionHealth.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientConnectionHealth.go index fb536c10..0e56cdb9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientConnectionHealth.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientConnectionHealth.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get VPN client connection health detail per P2S client connection of the virtual network gateway in the specified resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetVirtualNetworkGatewayVpnclientConnectionHealth(ctx *pulumi.Context, args *GetVirtualNetworkGatewayVpnclientConnectionHealthArgs, opts ...pulumi.InvokeOption) (*GetVirtualNetworkGatewayVpnclientConnectionHealthResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetVirtualNetworkGatewayVpnclientConnectionHealthResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayVpnclientConnectionHealth", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientIpsecParameters.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientIpsecParameters.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientIpsecParameters.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientIpsecParameters.go index 587780d7..ad11d0b0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkGatewayVpnclientIpsecParameters.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkGatewayVpnclientIpsecParameters.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Get VpnclientIpsecParameters operation retrieves information about the vpnclient ipsec policy for P2S client of virtual network gateway in the specified resource group through Network resource provider. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func GetVirtualNetworkGatewayVpnclientIpsecParameters(ctx *pulumi.Context, args *GetVirtualNetworkGatewayVpnclientIpsecParametersArgs, opts ...pulumi.InvokeOption) (*GetVirtualNetworkGatewayVpnclientIpsecParametersResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv GetVirtualNetworkGatewayVpnclientIpsecParametersResult err := ctx.Invoke("azure-native:network:getVirtualNetworkGatewayVpnclientIpsecParameters", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkLink.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkLink.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkLink.go index 6dc96f01..7c12640e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkLink.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkLink.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a virtual network link to the specified Private DNS zone. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. func LookupVirtualNetworkLink(ctx *pulumi.Context, args *LookupVirtualNetworkLinkArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkLinkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkLinkResult err := ctx.Invoke("azure-native:network:getVirtualNetworkLink", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkPeering.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkPeering.go index b3e1ae61..b0453873 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkPeering.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified virtual network peering. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetworkPeering(ctx *pulumi.Context, args *LookupVirtualNetworkPeeringArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkPeeringResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkPeeringResult err := ctx.Invoke("azure-native:network:getVirtualNetworkPeering", args, &rv, opts...) if err != nil { @@ -48,14 +50,20 @@ type LookupVirtualNetworkPeeringResult struct { Name *string `pulumi:"name"` // The status of the virtual network peering. PeeringState *string `pulumi:"peeringState"` + // The peering sync status of the virtual network peering. + PeeringSyncLevel *string `pulumi:"peeringSyncLevel"` // The provisioning state of the virtual network peering resource. ProvisioningState string `pulumi:"provisioningState"` - // The reference to the remote virtual network address space. + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace *AddressSpaceResponse `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities *VirtualNetworkBgpCommunitiesResponse `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork *SubResourceResponse `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace *AddressSpaceResponse `pulumi:"remoteVirtualNetworkAddressSpace"` + // The reference to the remote virtual network's encryption + RemoteVirtualNetworkEncryption VirtualNetworkEncryptionResponse `pulumi:"remoteVirtualNetworkEncryption"` // The resourceGuid property of the Virtual Network peering resource. ResourceGuid string `pulumi:"resourceGuid"` // Resource type. @@ -145,12 +153,17 @@ func (o LookupVirtualNetworkPeeringResultOutput) PeeringState() pulumi.StringPtr return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) *string { return v.PeeringState }).(pulumi.StringPtrOutput) } +// The peering sync status of the virtual network peering. +func (o LookupVirtualNetworkPeeringResultOutput) PeeringSyncLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) *string { return v.PeeringSyncLevel }).(pulumi.StringPtrOutput) +} + // The provisioning state of the virtual network peering resource. func (o LookupVirtualNetworkPeeringResultOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The reference to the remote virtual network address space. +// The reference to the address space peered with the remote virtual network. func (o LookupVirtualNetworkPeeringResultOutput) RemoteAddressSpace() AddressSpaceResponsePtrOutput { return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) *AddressSpaceResponse { return v.RemoteAddressSpace }).(AddressSpaceResponsePtrOutput) } @@ -167,6 +180,20 @@ func (o LookupVirtualNetworkPeeringResultOutput) RemoteVirtualNetwork() SubResou return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) *SubResourceResponse { return v.RemoteVirtualNetwork }).(SubResourceResponsePtrOutput) } +// The reference to the current address space of the remote virtual network. +func (o LookupVirtualNetworkPeeringResultOutput) RemoteVirtualNetworkAddressSpace() AddressSpaceResponsePtrOutput { + return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) *AddressSpaceResponse { + return v.RemoteVirtualNetworkAddressSpace + }).(AddressSpaceResponsePtrOutput) +} + +// The reference to the remote virtual network's encryption +func (o LookupVirtualNetworkPeeringResultOutput) RemoteVirtualNetworkEncryption() VirtualNetworkEncryptionResponseOutput { + return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) VirtualNetworkEncryptionResponse { + return v.RemoteVirtualNetworkEncryption + }).(VirtualNetworkEncryptionResponseOutput) +} + // The resourceGuid property of the Virtual Network peering resource. func (o LookupVirtualNetworkPeeringResultOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v LookupVirtualNetworkPeeringResult) string { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkTap.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkTap.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkTap.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkTap.go index 65270038..9b236396 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualNetworkTap.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualNetworkTap.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets information about the specified virtual network tap. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualNetworkTap(ctx *pulumi.Context, args *LookupVirtualNetworkTapArgs, opts ...pulumi.InvokeOption) (*LookupVirtualNetworkTapResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualNetworkTapResult err := ctx.Invoke("azure-native:network:getVirtualNetworkTap", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouter.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouter.go index 6228cccf..1550c4e8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouter.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Virtual Router. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func LookupVirtualRouter(ctx *pulumi.Context, args *LookupVirtualRouterArgs, opts ...pulumi.InvokeOption) (*LookupVirtualRouterResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualRouterResult err := ctx.Invoke("azure-native:network:getVirtualRouter", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouterPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouterPeering.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouterPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouterPeering.go index bd2a45ce..b51b0b4a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualRouterPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualRouterPeering.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified Virtual Router Peering. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func LookupVirtualRouterPeering(ctx *pulumi.Context, args *LookupVirtualRouterPeeringArgs, opts ...pulumi.InvokeOption) (*LookupVirtualRouterPeeringResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualRouterPeeringResult err := ctx.Invoke("azure-native:network:getVirtualRouterPeering", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualWan.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualWan.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualWan.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualWan.go index 018ac5ba..1885c051 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVirtualWan.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVirtualWan.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a VirtualWAN. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVirtualWan(ctx *pulumi.Context, args *LookupVirtualWanArgs, opts ...pulumi.InvokeOption) (*LookupVirtualWanResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVirtualWanResult err := ctx.Invoke("azure-native:network:getVirtualWan", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnConnection.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnConnection.go index de07bab3..7d57dd1a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a vpn connection. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVpnConnection(ctx *pulumi.Context, args *LookupVpnConnectionArgs, opts ...pulumi.InvokeOption) (*LookupVpnConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVpnConnectionResult err := ctx.Invoke("azure-native:network:getVpnConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnGateway.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnGateway.go index 599fdfec..24cbaa26 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnGateway.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a virtual wan vpn gateway. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVpnGateway(ctx *pulumi.Context, args *LookupVpnGatewayArgs, opts ...pulumi.InvokeOption) (*LookupVpnGatewayResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVpnGatewayResult err := ctx.Invoke("azure-native:network:getVpnGateway", args, &rv, opts...) if err != nil { @@ -34,6 +36,8 @@ type LookupVpnGatewayResult struct { BgpSettings *BgpSettingsResponse `pulumi:"bgpSettings"` // List of all vpn connections to the gateway. Connections []VpnConnectionResponse `pulumi:"connections"` + // Enable BGP routes translation for NAT on this VpnGateway. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -109,6 +113,11 @@ func (o LookupVpnGatewayResultOutput) Connections() VpnConnectionResponseArrayOu return o.ApplyT(func(v LookupVpnGatewayResult) []VpnConnectionResponse { return v.Connections }).(VpnConnectionResponseArrayOutput) } +// Enable BGP routes translation for NAT on this VpnGateway. +func (o LookupVpnGatewayResultOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupVpnGatewayResult) *bool { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupVpnGatewayResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupVpnGatewayResult) string { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnServerConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnServerConfiguration.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnServerConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnServerConfiguration.go index 64826980..086de32b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnServerConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnServerConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a VpnServerConfiguration. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVpnServerConfiguration(ctx *pulumi.Context, args *LookupVpnServerConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupVpnServerConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVpnServerConfigurationResult err := ctx.Invoke("azure-native:network:getVpnServerConfiguration", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type LookupVpnServerConfigurationArgs struct { type LookupVpnServerConfigurationResult struct { // The set of aad vpn authentication parameters. AadAuthenticationParameters *AadAuthenticationParametersResponse `pulumi:"aadAuthenticationParameters"` + // List of all VpnServerConfigurationPolicyGroups. + ConfigurationPolicyGroups []VpnServerConfigurationPolicyGroupResponse `pulumi:"configurationPolicyGroups"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. @@ -116,6 +120,13 @@ func (o LookupVpnServerConfigurationResultOutput) AadAuthenticationParameters() }).(AadAuthenticationParametersResponsePtrOutput) } +// List of all VpnServerConfigurationPolicyGroups. +func (o LookupVpnServerConfigurationResultOutput) ConfigurationPolicyGroups() VpnServerConfigurationPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v LookupVpnServerConfigurationResult) []VpnServerConfigurationPolicyGroupResponse { + return v.ConfigurationPolicyGroups + }).(VpnServerConfigurationPolicyGroupResponseArrayOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LookupVpnServerConfigurationResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupVpnServerConfigurationResult) string { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnSite.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnSite.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnSite.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnSite.go index cdc0667e..2fb6fa60 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getVpnSite.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getVpnSite.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the details of a VPN site. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupVpnSite(ctx *pulumi.Context, args *LookupVpnSiteArgs, opts ...pulumi.InvokeOption) (*LookupVpnSiteResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupVpnSiteResult err := ctx.Invoke("azure-native:network:getVpnSite", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getWebApplicationFirewallPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getWebApplicationFirewallPolicy.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getWebApplicationFirewallPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getWebApplicationFirewallPolicy.go index bd720693..5b3f6d61 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getWebApplicationFirewallPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getWebApplicationFirewallPolicy.go @@ -7,18 +7,20 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieve protection policy with specified name within a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. func LookupWebApplicationFirewallPolicy(ctx *pulumi.Context, args *LookupWebApplicationFirewallPolicyArgs, opts ...pulumi.InvokeOption) (*LookupWebApplicationFirewallPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupWebApplicationFirewallPolicyResult err := ctx.Invoke("azure-native:network:getWebApplicationFirewallPolicy", args, &rv, opts...) if err != nil { return nil, err } - return &rv, nil + return rv.Defaults(), nil } type LookupWebApplicationFirewallPolicyArgs struct { @@ -60,6 +62,17 @@ type LookupWebApplicationFirewallPolicyResult struct { Type string `pulumi:"type"` } +// Defaults sets the appropriate defaults for LookupWebApplicationFirewallPolicyResult +func (val *LookupWebApplicationFirewallPolicyResult) Defaults() *LookupWebApplicationFirewallPolicyResult { + if val == nil { + return nil + } + tmp := *val + tmp.PolicySettings = tmp.PolicySettings.Defaults() + + return &tmp +} + func LookupWebApplicationFirewallPolicyOutput(ctx *pulumi.Context, args LookupWebApplicationFirewallPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupWebApplicationFirewallPolicyResultOutput { return pulumi.ToOutputWithContext(context.Background(), args). ApplyT(func(v interface{}) (LookupWebApplicationFirewallPolicyResult, error) { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getZone.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getZone.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getZone.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getZone.go index 02647da7..0db85349 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/getZone.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/getZone.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a DNS zone. Retrieves the zone properties, but not the record sets within the zone. -// API Version: 2018-05-01. +// Azure REST API version: 2018-05-01. func LookupZone(ctx *pulumi.Context, args *LookupZoneArgs, opts ...pulumi.InvokeOption) (*LookupZoneResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupZoneResult err := ctx.Invoke("azure-native:network:getZone", args, &rv, opts...) if err != nil { @@ -64,7 +66,7 @@ func (val *LookupZoneResult) Defaults() *LookupZoneResult { return nil } tmp := *val - if isZero(tmp.ZoneType) { + if tmp.ZoneType == nil { zoneType_ := "Public" tmp.ZoneType = &zoneType_ } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubRouteTable.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubRouteTable.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubRouteTable.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubRouteTable.go index fb25ffd7..29088376 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubRouteTable.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubRouteTable.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // RouteTable resource in a virtual hub. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type HubRouteTable struct { pulumi.CustomResourceState @@ -90,8 +91,21 @@ func NewHubRouteTable(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:HubRouteTable"), }, + { + Type: pulumi.String("azure-native:network/v20221101:HubRouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:HubRouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:HubRouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:HubRouteTable"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource HubRouteTable err := ctx.RegisterResource("azure-native:network:HubRouteTable", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubVirtualNetworkConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubVirtualNetworkConnection.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubVirtualNetworkConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubVirtualNetworkConnection.go index 3febd737..d12f5d4c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/hubVirtualNetworkConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/hubVirtualNetworkConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // HubVirtualNetworkConnection Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type HubVirtualNetworkConnection struct { pulumi.CustomResourceState @@ -87,8 +88,21 @@ func NewHubVirtualNetworkConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:HubVirtualNetworkConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:HubVirtualNetworkConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:HubVirtualNetworkConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:HubVirtualNetworkConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:HubVirtualNetworkConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource HubVirtualNetworkConnection err := ctx.RegisterResource("azure-native:network:HubVirtualNetworkConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundEndpoint.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundEndpoint.go index de13d341..3b00f31c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundEndpoint.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes an inbound endpoint for a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. Prior API version in Azure Native 1.x: 2020-04-01-preview type InboundEndpoint struct { pulumi.CustomResourceState @@ -46,6 +47,9 @@ func NewInboundEndpoint(ctx *pulumi.Context, if args.DnsResolverName == nil { return nil, errors.New("invalid value for required argument 'DnsResolverName'") } + if args.IpConfigurations == nil { + return nil, errors.New("invalid value for required argument 'IpConfigurations'") + } if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } @@ -58,6 +62,7 @@ func NewInboundEndpoint(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource InboundEndpoint err := ctx.RegisterResource("azure-native:network:InboundEndpoint", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundNatRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundNatRule.go similarity index 78% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundNatRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundNatRule.go index d9039ec2..4f1879b8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/inboundNatRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/inboundNatRule.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Inbound NAT rule of the load balancer. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type InboundNatRule struct { pulumi.CustomResourceState + // A reference to backendAddressPool resource. + BackendAddressPool SubResourceResponsePtrOutput `pulumi:"backendAddressPool"` // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. BackendIPConfiguration NetworkInterfaceIPConfigurationResponseOutput `pulumi:"backendIPConfiguration"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. @@ -30,6 +33,10 @@ type InboundNatRule struct { FrontendIPConfiguration SubResourceResponsePtrOutput `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort pulumi.IntPtrOutput `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd pulumi.IntPtrOutput `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart pulumi.IntPtrOutput `pulumi:"frontendPortRangeStart"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. IdleTimeoutInMinutes pulumi.IntPtrOutput `pulumi:"idleTimeoutInMinutes"` // The name of the resource that is unique within the set of inbound NAT rules used by the load balancer. This name can be used to access the resource. @@ -167,8 +174,21 @@ func NewInboundNatRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:InboundNatRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:InboundNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:InboundNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:InboundNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:InboundNatRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource InboundNatRule err := ctx.RegisterResource("azure-native:network:InboundNatRule", name, args, &resource, opts...) if err != nil { @@ -201,6 +221,8 @@ func (InboundNatRuleState) ElementType() reflect.Type { } type inboundNatRuleArgs struct { + // A reference to backendAddressPool resource. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. BackendPort *int `pulumi:"backendPort"` // Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. @@ -211,11 +233,15 @@ type inboundNatRuleArgs struct { FrontendIPConfiguration *SubResource `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort *int `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd *int `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart *int `pulumi:"frontendPortRangeStart"` // Resource ID. Id *string `pulumi:"id"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` - // The name of the inbound nat rule. + // The name of the inbound NAT rule. InboundNatRuleName *string `pulumi:"inboundNatRuleName"` // The name of the load balancer. LoadBalancerName string `pulumi:"loadBalancerName"` @@ -229,6 +255,8 @@ type inboundNatRuleArgs struct { // The set of arguments for constructing a InboundNatRule resource. type InboundNatRuleArgs struct { + // A reference to backendAddressPool resource. + BackendAddressPool SubResourcePtrInput // The port used for the internal endpoint. Acceptable values range from 1 to 65535. BackendPort pulumi.IntPtrInput // Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. @@ -239,11 +267,15 @@ type InboundNatRuleArgs struct { FrontendIPConfiguration SubResourcePtrInput // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort pulumi.IntPtrInput + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd pulumi.IntPtrInput + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart pulumi.IntPtrInput // Resource ID. Id pulumi.StringPtrInput // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. IdleTimeoutInMinutes pulumi.IntPtrInput - // The name of the inbound nat rule. + // The name of the inbound NAT rule. InboundNatRuleName pulumi.StringPtrInput // The name of the load balancer. LoadBalancerName pulumi.StringInput @@ -292,6 +324,11 @@ func (o InboundNatRuleOutput) ToInboundNatRuleOutputWithContext(ctx context.Cont return o } +// A reference to backendAddressPool resource. +func (o InboundNatRuleOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *InboundNatRule) SubResourceResponsePtrOutput { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) +} + // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. func (o InboundNatRuleOutput) BackendIPConfiguration() NetworkInterfaceIPConfigurationResponseOutput { return o.ApplyT(func(v *InboundNatRule) NetworkInterfaceIPConfigurationResponseOutput { return v.BackendIPConfiguration }).(NetworkInterfaceIPConfigurationResponseOutput) @@ -327,6 +364,16 @@ func (o InboundNatRuleOutput) FrontendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v *InboundNatRule) pulumi.IntPtrOutput { return v.FrontendPort }).(pulumi.IntPtrOutput) } +// The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleOutput) FrontendPortRangeEnd() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InboundNatRule) pulumi.IntPtrOutput { return v.FrontendPortRangeEnd }).(pulumi.IntPtrOutput) +} + +// The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleOutput) FrontendPortRangeStart() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InboundNatRule) pulumi.IntPtrOutput { return v.FrontendPortRangeStart }).(pulumi.IntPtrOutput) +} + // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. func (o InboundNatRuleOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { return o.ApplyT(func(v *InboundNatRule) pulumi.IntPtrOutput { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/init.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/init.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/init.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/init.go index 4e54bb33..c8048540 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/init.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-azure-native-sdk" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -99,6 +99,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &InboundEndpoint{} case "azure-native:network:InboundNatRule": r = &InboundNatRule{} + case "azure-native:network:InterfaceEndpoint": + r = &InterfaceEndpoint{} case "azure-native:network:IpAllocation": r = &IpAllocation{} case "azure-native:network:IpGroup": @@ -133,12 +135,16 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &NetworkSecurityPerimeter{} case "azure-native:network:NetworkVirtualAppliance": r = &NetworkVirtualAppliance{} + case "azure-native:network:NetworkVirtualApplianceConnection": + r = &NetworkVirtualApplianceConnection{} case "azure-native:network:NetworkWatcher": r = &NetworkWatcher{} case "azure-native:network:NspAccessRule": r = &NspAccessRule{} case "azure-native:network:NspAssociation": r = &NspAssociation{} + case "azure-native:network:NspLink": + r = &NspLink{} case "azure-native:network:NspProfile": r = &NspProfile{} case "azure-native:network:OutboundEndpoint": @@ -161,6 +167,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &PrivateLinkServicePrivateEndpointConnection{} case "azure-native:network:PrivateRecordSet": r = &PrivateRecordSet{} + case "azure-native:network:PrivateResolverVirtualNetworkLink": + r = &PrivateResolverVirtualNetworkLink{} case "azure-native:network:PrivateZone": r = &PrivateZone{} case "azure-native:network:Profile": @@ -177,6 +185,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RouteFilter{} case "azure-native:network:RouteFilterRule": r = &RouteFilterRule{} + case "azure-native:network:RouteMap": + r = &RouteMap{} case "azure-native:network:RouteTable": r = &RouteTable{} case "azure-native:network:RoutingIntent": @@ -260,7 +270,7 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi } func init() { - version, err := pulumiazurenativesdk.PkgVersion() + version, err := utilities.PkgVersion() if err != nil { version = semver.Version{Major: 1} } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/interfaceEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/interfaceEndpoint.go new file mode 100644 index 00000000..41d0a6d0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/interfaceEndpoint.go @@ -0,0 +1,318 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Interface endpoint resource. +// Azure REST API version: 2019-02-01. +type InterfaceEndpoint struct { + pulumi.CustomResourceState + + // A reference to the service being brought into the virtual network. + EndpointService EndpointServiceResponsePtrOutput `pulumi:"endpointService"` + // Gets a unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrOutput `pulumi:"etag"` + // A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. + Fqdn pulumi.StringPtrOutput `pulumi:"fqdn"` + // Resource location. + Location pulumi.StringPtrOutput `pulumi:"location"` + // Resource name. + Name pulumi.StringOutput `pulumi:"name"` + // Gets an array of references to the network interfaces created for this interface endpoint. + NetworkInterfaces NetworkInterfaceResponseArrayOutput `pulumi:"networkInterfaces"` + // A read-only property that identifies who created this interface endpoint. + Owner pulumi.StringOutput `pulumi:"owner"` + // The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // The ID of the subnet from which the private IP will be allocated. + Subnet SubnetResponsePtrOutput `pulumi:"subnet"` + // Resource tags. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Resource type. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewInterfaceEndpoint registers a new resource with the given unique name, arguments, and options. +func NewInterfaceEndpoint(ctx *pulumi.Context, + name string, args *InterfaceEndpointArgs, opts ...pulumi.ResourceOption) (*InterfaceEndpoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.Subnet != nil { + args.Subnet = args.Subnet.ToSubnetTypePtrOutput().ApplyT(func(v *SubnetType) *SubnetType { return v.Defaults() }).(SubnetTypePtrOutput) + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20180801:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20181001:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20181101:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20181201:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190201:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190401:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190601:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190701:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190801:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20190901:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20191101:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20191201:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200301:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200401:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200501:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200601:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200701:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20200801:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20201101:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20210201:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20210301:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20210501:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20210801:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20220101:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20220501:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20220701:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20220901:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20221101:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:InterfaceEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:InterfaceEndpoint"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource InterfaceEndpoint + err := ctx.RegisterResource("azure-native:network:InterfaceEndpoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInterfaceEndpoint gets an existing InterfaceEndpoint resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetInterfaceEndpoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InterfaceEndpointState, opts ...pulumi.ResourceOption) (*InterfaceEndpoint, error) { + var resource InterfaceEndpoint + err := ctx.ReadResource("azure-native:network:InterfaceEndpoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering InterfaceEndpoint resources. +type interfaceEndpointState struct { +} + +type InterfaceEndpointState struct { +} + +func (InterfaceEndpointState) ElementType() reflect.Type { + return reflect.TypeOf((*interfaceEndpointState)(nil)).Elem() +} + +type interfaceEndpointArgs struct { + // A reference to the service being brought into the virtual network. + EndpointService *EndpointService `pulumi:"endpointService"` + // A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. + Fqdn *string `pulumi:"fqdn"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the interface endpoint. + InterfaceEndpointName *string `pulumi:"interfaceEndpointName"` + // Resource location. + Location *string `pulumi:"location"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The ID of the subnet from which the private IP will be allocated. + Subnet *SubnetType `pulumi:"subnet"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a InterfaceEndpoint resource. +type InterfaceEndpointArgs struct { + // A reference to the service being brought into the virtual network. + EndpointService EndpointServicePtrInput + // A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. + Fqdn pulumi.StringPtrInput + // Resource ID. + Id pulumi.StringPtrInput + // The name of the interface endpoint. + InterfaceEndpointName pulumi.StringPtrInput + // Resource location. + Location pulumi.StringPtrInput + // The name of the resource group. + ResourceGroupName pulumi.StringInput + // The ID of the subnet from which the private IP will be allocated. + Subnet SubnetTypePtrInput + // Resource tags. + Tags pulumi.StringMapInput +} + +func (InterfaceEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*interfaceEndpointArgs)(nil)).Elem() +} + +type InterfaceEndpointInput interface { + pulumi.Input + + ToInterfaceEndpointOutput() InterfaceEndpointOutput + ToInterfaceEndpointOutputWithContext(ctx context.Context) InterfaceEndpointOutput +} + +func (*InterfaceEndpoint) ElementType() reflect.Type { + return reflect.TypeOf((**InterfaceEndpoint)(nil)).Elem() +} + +func (i *InterfaceEndpoint) ToInterfaceEndpointOutput() InterfaceEndpointOutput { + return i.ToInterfaceEndpointOutputWithContext(context.Background()) +} + +func (i *InterfaceEndpoint) ToInterfaceEndpointOutputWithContext(ctx context.Context) InterfaceEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(InterfaceEndpointOutput) +} + +type InterfaceEndpointOutput struct{ *pulumi.OutputState } + +func (InterfaceEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InterfaceEndpoint)(nil)).Elem() +} + +func (o InterfaceEndpointOutput) ToInterfaceEndpointOutput() InterfaceEndpointOutput { + return o +} + +func (o InterfaceEndpointOutput) ToInterfaceEndpointOutputWithContext(ctx context.Context) InterfaceEndpointOutput { + return o +} + +// A reference to the service being brought into the virtual network. +func (o InterfaceEndpointOutput) EndpointService() EndpointServiceResponsePtrOutput { + return o.ApplyT(func(v *InterfaceEndpoint) EndpointServiceResponsePtrOutput { return v.EndpointService }).(EndpointServiceResponsePtrOutput) +} + +// Gets a unique read-only string that changes whenever the resource is updated. +func (o InterfaceEndpointOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringPtrOutput { return v.Etag }).(pulumi.StringPtrOutput) +} + +// A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. +func (o InterfaceEndpointOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringPtrOutput { return v.Fqdn }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o InterfaceEndpointOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o InterfaceEndpointOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Gets an array of references to the network interfaces created for this interface endpoint. +func (o InterfaceEndpointOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v *InterfaceEndpoint) NetworkInterfaceResponseArrayOutput { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) +} + +// A read-only property that identifies who created this interface endpoint. +func (o InterfaceEndpointOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) +} + +// The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o InterfaceEndpointOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The ID of the subnet from which the private IP will be allocated. +func (o InterfaceEndpointOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v *InterfaceEndpoint) SubnetResponsePtrOutput { return v.Subnet }).(SubnetResponsePtrOutput) +} + +// Resource tags. +func (o InterfaceEndpointOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o InterfaceEndpointOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *InterfaceEndpoint) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(InterfaceEndpointOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipAllocation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipAllocation.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipAllocation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipAllocation.go index c794884b..3f92a583 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipAllocation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipAllocation.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // IpAllocation resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type IpAllocation struct { pulumi.CustomResourceState @@ -52,7 +53,7 @@ func NewIpAllocation(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } - if isZero(args.PrefixLength) { + if args.PrefixLength == nil { args.PrefixLength = pulumi.IntPtr(0) } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -101,8 +102,21 @@ func NewIpAllocation(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:IpAllocation"), }, + { + Type: pulumi.String("azure-native:network/v20221101:IpAllocation"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:IpAllocation"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:IpAllocation"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:IpAllocation"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource IpAllocation err := ctx.RegisterResource("azure-native:network:IpAllocation", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipGroup.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipGroup.go index ad674dee..32b6b386 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/ipGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/ipGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The IpGroups resource information. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type IpGroup struct { pulumi.CustomResourceState @@ -101,8 +102,21 @@ func NewIpGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:IpGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:IpGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:IpGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:IpGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:IpGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource IpGroup err := ctx.RegisterResource("azure-native:network:IpGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveConnectivityConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfiguration.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveConnectivityConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfiguration.go index 79d58daa..406ac98a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveConnectivityConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists active connectivity configurations in a network manager. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListActiveConnectivityConfiguration(ctx *pulumi.Context, args *ListActiveConnectivityConfigurationArgs, opts ...pulumi.InvokeOption) (*ListActiveConnectivityConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListActiveConnectivityConfigurationResult err := ctx.Invoke("azure-native:network:listActiveConnectivityConfiguration", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfigurations.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfigurations.go new file mode 100644 index 00000000..10815ec6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveConnectivityConfigurations.go @@ -0,0 +1,106 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Lists active connectivity configurations in a network manager. +// Azure REST API version: 2023-02-01. +func ListActiveConnectivityConfigurations(ctx *pulumi.Context, args *ListActiveConnectivityConfigurationsArgs, opts ...pulumi.InvokeOption) (*ListActiveConnectivityConfigurationsResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListActiveConnectivityConfigurationsResult + err := ctx.Invoke("azure-native:network:listActiveConnectivityConfigurations", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListActiveConnectivityConfigurationsArgs struct { + // The name of the network manager. + NetworkManagerName string `pulumi:"networkManagerName"` + // List of regions. + Regions []string `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top *int `pulumi:"top"` +} + +// Result of the request to list active connectivity configurations. It contains a list of active connectivity configurations and a skiptoken to get the next set of results. +type ListActiveConnectivityConfigurationsResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of active connectivity configurations. + Value []ActiveConnectivityConfigurationResponse `pulumi:"value"` +} + +func ListActiveConnectivityConfigurationsOutput(ctx *pulumi.Context, args ListActiveConnectivityConfigurationsOutputArgs, opts ...pulumi.InvokeOption) ListActiveConnectivityConfigurationsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListActiveConnectivityConfigurationsResult, error) { + args := v.(ListActiveConnectivityConfigurationsArgs) + r, err := ListActiveConnectivityConfigurations(ctx, &args, opts...) + var s ListActiveConnectivityConfigurationsResult + if r != nil { + s = *r + } + return s, err + }).(ListActiveConnectivityConfigurationsResultOutput) +} + +type ListActiveConnectivityConfigurationsOutputArgs struct { + // The name of the network manager. + NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` + // List of regions. + Regions pulumi.StringArrayInput `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top pulumi.IntPtrInput `pulumi:"top"` +} + +func (ListActiveConnectivityConfigurationsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveConnectivityConfigurationsArgs)(nil)).Elem() +} + +// Result of the request to list active connectivity configurations. It contains a list of active connectivity configurations and a skiptoken to get the next set of results. +type ListActiveConnectivityConfigurationsResultOutput struct{ *pulumi.OutputState } + +func (ListActiveConnectivityConfigurationsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveConnectivityConfigurationsResult)(nil)).Elem() +} + +func (o ListActiveConnectivityConfigurationsResultOutput) ToListActiveConnectivityConfigurationsResultOutput() ListActiveConnectivityConfigurationsResultOutput { + return o +} + +func (o ListActiveConnectivityConfigurationsResultOutput) ToListActiveConnectivityConfigurationsResultOutputWithContext(ctx context.Context) ListActiveConnectivityConfigurationsResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListActiveConnectivityConfigurationsResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListActiveConnectivityConfigurationsResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of active connectivity configurations. +func (o ListActiveConnectivityConfigurationsResultOutput) Value() ActiveConnectivityConfigurationResponseArrayOutput { + return o.ApplyT(func(v ListActiveConnectivityConfigurationsResult) []ActiveConnectivityConfigurationResponse { + return v.Value + }).(ActiveConnectivityConfigurationResponseArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListActiveConnectivityConfigurationsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityAdminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityAdminRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRule.go index e4513e50..b7818e00 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityAdminRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists active security admin rules in a network manager. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListActiveSecurityAdminRule(ctx *pulumi.Context, args *ListActiveSecurityAdminRuleArgs, opts ...pulumi.InvokeOption) (*ListActiveSecurityAdminRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListActiveSecurityAdminRuleResult err := ctx.Invoke("azure-native:network:listActiveSecurityAdminRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRules.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRules.go new file mode 100644 index 00000000..77c85113 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityAdminRules.go @@ -0,0 +1,104 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Lists active security admin rules in a network manager. +// Azure REST API version: 2023-02-01. +func ListActiveSecurityAdminRules(ctx *pulumi.Context, args *ListActiveSecurityAdminRulesArgs, opts ...pulumi.InvokeOption) (*ListActiveSecurityAdminRulesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListActiveSecurityAdminRulesResult + err := ctx.Invoke("azure-native:network:listActiveSecurityAdminRules", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListActiveSecurityAdminRulesArgs struct { + // The name of the network manager. + NetworkManagerName string `pulumi:"networkManagerName"` + // List of regions. + Regions []string `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top *int `pulumi:"top"` +} + +// Result of the request to list active security admin rules. It contains a list of active security admin rules and a skiptoken to get the next set of results. +type ListActiveSecurityAdminRulesResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of active security admin rules. + Value []interface{} `pulumi:"value"` +} + +func ListActiveSecurityAdminRulesOutput(ctx *pulumi.Context, args ListActiveSecurityAdminRulesOutputArgs, opts ...pulumi.InvokeOption) ListActiveSecurityAdminRulesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListActiveSecurityAdminRulesResult, error) { + args := v.(ListActiveSecurityAdminRulesArgs) + r, err := ListActiveSecurityAdminRules(ctx, &args, opts...) + var s ListActiveSecurityAdminRulesResult + if r != nil { + s = *r + } + return s, err + }).(ListActiveSecurityAdminRulesResultOutput) +} + +type ListActiveSecurityAdminRulesOutputArgs struct { + // The name of the network manager. + NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` + // List of regions. + Regions pulumi.StringArrayInput `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top pulumi.IntPtrInput `pulumi:"top"` +} + +func (ListActiveSecurityAdminRulesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveSecurityAdminRulesArgs)(nil)).Elem() +} + +// Result of the request to list active security admin rules. It contains a list of active security admin rules and a skiptoken to get the next set of results. +type ListActiveSecurityAdminRulesResultOutput struct{ *pulumi.OutputState } + +func (ListActiveSecurityAdminRulesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveSecurityAdminRulesResult)(nil)).Elem() +} + +func (o ListActiveSecurityAdminRulesResultOutput) ToListActiveSecurityAdminRulesResultOutput() ListActiveSecurityAdminRulesResultOutput { + return o +} + +func (o ListActiveSecurityAdminRulesResultOutput) ToListActiveSecurityAdminRulesResultOutputWithContext(ctx context.Context) ListActiveSecurityAdminRulesResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListActiveSecurityAdminRulesResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListActiveSecurityAdminRulesResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of active security admin rules. +func (o ListActiveSecurityAdminRulesResultOutput) Value() pulumi.ArrayOutput { + return o.ApplyT(func(v ListActiveSecurityAdminRulesResult) []interface{} { return v.Value }).(pulumi.ArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListActiveSecurityAdminRulesResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityUserRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityUserRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRule.go index 01898390..61d066c9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listActiveSecurityUserRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists Active Security User Rules in a network manager. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListActiveSecurityUserRule(ctx *pulumi.Context, args *ListActiveSecurityUserRuleArgs, opts ...pulumi.InvokeOption) (*ListActiveSecurityUserRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListActiveSecurityUserRuleResult err := ctx.Invoke("azure-native:network:listActiveSecurityUserRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRules.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRules.go new file mode 100644 index 00000000..6d4cf163 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listActiveSecurityUserRules.go @@ -0,0 +1,100 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Lists Active Security User Rules in a network manager. +// Azure REST API version: 2022-04-01-preview. +func ListActiveSecurityUserRules(ctx *pulumi.Context, args *ListActiveSecurityUserRulesArgs, opts ...pulumi.InvokeOption) (*ListActiveSecurityUserRulesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListActiveSecurityUserRulesResult + err := ctx.Invoke("azure-native:network:listActiveSecurityUserRules", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListActiveSecurityUserRulesArgs struct { + // The name of the network manager. + NetworkManagerName string `pulumi:"networkManagerName"` + // List of regions. + Regions []string `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` +} + +// Result of the request to list active security user rules. It contains a list of active security user rules and a skiptoken to get the next set of results. +type ListActiveSecurityUserRulesResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of active security user rules. + Value []interface{} `pulumi:"value"` +} + +func ListActiveSecurityUserRulesOutput(ctx *pulumi.Context, args ListActiveSecurityUserRulesOutputArgs, opts ...pulumi.InvokeOption) ListActiveSecurityUserRulesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListActiveSecurityUserRulesResult, error) { + args := v.(ListActiveSecurityUserRulesArgs) + r, err := ListActiveSecurityUserRules(ctx, &args, opts...) + var s ListActiveSecurityUserRulesResult + if r != nil { + s = *r + } + return s, err + }).(ListActiveSecurityUserRulesResultOutput) +} + +type ListActiveSecurityUserRulesOutputArgs struct { + // The name of the network manager. + NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` + // List of regions. + Regions pulumi.StringArrayInput `pulumi:"regions"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` +} + +func (ListActiveSecurityUserRulesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveSecurityUserRulesArgs)(nil)).Elem() +} + +// Result of the request to list active security user rules. It contains a list of active security user rules and a skiptoken to get the next set of results. +type ListActiveSecurityUserRulesResultOutput struct{ *pulumi.OutputState } + +func (ListActiveSecurityUserRulesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListActiveSecurityUserRulesResult)(nil)).Elem() +} + +func (o ListActiveSecurityUserRulesResultOutput) ToListActiveSecurityUserRulesResultOutput() ListActiveSecurityUserRulesResultOutput { + return o +} + +func (o ListActiveSecurityUserRulesResultOutput) ToListActiveSecurityUserRulesResultOutputWithContext(ctx context.Context) ListActiveSecurityUserRulesResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListActiveSecurityUserRulesResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListActiveSecurityUserRulesResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of active security user rules. +func (o ListActiveSecurityUserRulesResultOutput) Value() pulumi.ArrayOutput { + return o.ApplyT(func(v ListActiveSecurityUserRulesResult) []interface{} { return v.Value }).(pulumi.ArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListActiveSecurityUserRulesResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsForwardingRulesetByVirtualNetwork.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsForwardingRulesetByVirtualNetwork.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsForwardingRulesetByVirtualNetwork.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsForwardingRulesetByVirtualNetwork.go index 55c92e73..f253dce9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsForwardingRulesetByVirtualNetwork.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsForwardingRulesetByVirtualNetwork.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists DNS forwarding ruleset resource IDs attached to a virtual network. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func ListDnsForwardingRulesetByVirtualNetwork(ctx *pulumi.Context, args *ListDnsForwardingRulesetByVirtualNetworkArgs, opts ...pulumi.InvokeOption) (*ListDnsForwardingRulesetByVirtualNetworkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListDnsForwardingRulesetByVirtualNetworkResult err := ctx.Invoke("azure-native:network:listDnsForwardingRulesetByVirtualNetwork", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsResolverByVirtualNetwork.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsResolverByVirtualNetwork.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsResolverByVirtualNetwork.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsResolverByVirtualNetwork.go index feb380a8..948f7311 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listDnsResolverByVirtualNetwork.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listDnsResolverByVirtualNetwork.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists DNS resolver resource IDs linked to a virtual network. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. func ListDnsResolverByVirtualNetwork(ctx *pulumi.Context, args *ListDnsResolverByVirtualNetworkArgs, opts ...pulumi.InvokeOption) (*ListDnsResolverByVirtualNetworkResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListDnsResolverByVirtualNetworkResult err := ctx.Invoke("azure-native:network:listDnsResolverByVirtualNetwork", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveConnectivityConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveConnectivityConfiguration.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveConnectivityConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveConnectivityConfiguration.go index a304e730..7c8fc95b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveConnectivityConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveConnectivityConfiguration.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List all effective connectivity configurations applied on a virtual network. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListEffectiveConnectivityConfiguration(ctx *pulumi.Context, args *ListEffectiveConnectivityConfigurationArgs, opts ...pulumi.InvokeOption) (*ListEffectiveConnectivityConfigurationResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListEffectiveConnectivityConfigurationResult err := ctx.Invoke("azure-native:network:listEffectiveConnectivityConfiguration", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkGroup.go index 5d6154e3..e9e918a0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists all effective virtual networks by specified network group. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListEffectiveVirtualNetworkByNetworkGroup(ctx *pulumi.Context, args *ListEffectiveVirtualNetworkByNetworkGroupArgs, opts ...pulumi.InvokeOption) (*ListEffectiveVirtualNetworkByNetworkGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListEffectiveVirtualNetworkByNetworkGroupResult err := ctx.Invoke("azure-native:network:listEffectiveVirtualNetworkByNetworkGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkManager.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkManager.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkManager.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkManager.go index 5732880b..4a4c1c54 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listEffectiveVirtualNetworkByNetworkManager.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listEffectiveVirtualNetworkByNetworkManager.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List effective virtual networks in a network manager. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2022-04-01-preview. func ListEffectiveVirtualNetworkByNetworkManager(ctx *pulumi.Context, args *ListEffectiveVirtualNetworkByNetworkManagerArgs, opts ...pulumi.InvokeOption) (*ListEffectiveVirtualNetworkByNetworkManagerResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListEffectiveVirtualNetworkByNetworkManagerResult err := ctx.Invoke("azure-native:network:listEffectiveVirtualNetworkByNetworkManager", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignature.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignature.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignature.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignature.go index c8a4736c..d1d9a3a1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignature.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignature.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the current status of IDPS signatures for the relevant policy -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func ListFirewallPolicyIdpsSignature(ctx *pulumi.Context, args *ListFirewallPolicyIdpsSignatureArgs, opts ...pulumi.InvokeOption) (*ListFirewallPolicyIdpsSignatureResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListFirewallPolicyIdpsSignatureResult err := ctx.Invoke("azure-native:network:listFirewallPolicyIdpsSignature", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignaturesFilterValue.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignaturesFilterValue.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignaturesFilterValue.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignaturesFilterValue.go index 48daa106..89204811 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listFirewallPolicyIdpsSignaturesFilterValue.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listFirewallPolicyIdpsSignaturesFilterValue.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Retrieves the current filter values for the signatures overrides -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. func ListFirewallPolicyIdpsSignaturesFilterValue(ctx *pulumi.Context, args *ListFirewallPolicyIdpsSignaturesFilterValueArgs, opts ...pulumi.InvokeOption) (*ListFirewallPolicyIdpsSignaturesFilterValueResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListFirewallPolicyIdpsSignaturesFilterValueResult err := ctx.Invoke("azure-native:network:listFirewallPolicyIdpsSignaturesFilterValue", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listListEffectiveVirtualNetworkByNetworkGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listListEffectiveVirtualNetworkByNetworkGroup.go new file mode 100644 index 00000000..4a11d3e0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listListEffectiveVirtualNetworkByNetworkGroup.go @@ -0,0 +1,102 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Lists all effective virtual networks by specified network group. +// Azure REST API version: 2022-04-01-preview. +func ListListEffectiveVirtualNetworkByNetworkGroup(ctx *pulumi.Context, args *ListListEffectiveVirtualNetworkByNetworkGroupArgs, opts ...pulumi.InvokeOption) (*ListListEffectiveVirtualNetworkByNetworkGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListListEffectiveVirtualNetworkByNetworkGroupResult + err := ctx.Invoke("azure-native:network:listListEffectiveVirtualNetworkByNetworkGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListListEffectiveVirtualNetworkByNetworkGroupArgs struct { + // The name of the network group. + NetworkGroupName string `pulumi:"networkGroupName"` + // The name of the network manager. + NetworkManagerName string `pulumi:"networkManagerName"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` +} + +// Result of the request to list Effective Virtual Network. It contains a list of groups and a URL link to get the next set of results. +type ListListEffectiveVirtualNetworkByNetworkGroupResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of EffectiveVirtualNetwork + Value []EffectiveVirtualNetworkResponse `pulumi:"value"` +} + +func ListListEffectiveVirtualNetworkByNetworkGroupOutput(ctx *pulumi.Context, args ListListEffectiveVirtualNetworkByNetworkGroupOutputArgs, opts ...pulumi.InvokeOption) ListListEffectiveVirtualNetworkByNetworkGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListListEffectiveVirtualNetworkByNetworkGroupResult, error) { + args := v.(ListListEffectiveVirtualNetworkByNetworkGroupArgs) + r, err := ListListEffectiveVirtualNetworkByNetworkGroup(ctx, &args, opts...) + var s ListListEffectiveVirtualNetworkByNetworkGroupResult + if r != nil { + s = *r + } + return s, err + }).(ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) +} + +type ListListEffectiveVirtualNetworkByNetworkGroupOutputArgs struct { + // The name of the network group. + NetworkGroupName pulumi.StringInput `pulumi:"networkGroupName"` + // The name of the network manager. + NetworkManagerName pulumi.StringInput `pulumi:"networkManagerName"` + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` +} + +func (ListListEffectiveVirtualNetworkByNetworkGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListListEffectiveVirtualNetworkByNetworkGroupArgs)(nil)).Elem() +} + +// Result of the request to list Effective Virtual Network. It contains a list of groups and a URL link to get the next set of results. +type ListListEffectiveVirtualNetworkByNetworkGroupResultOutput struct{ *pulumi.OutputState } + +func (ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListListEffectiveVirtualNetworkByNetworkGroupResult)(nil)).Elem() +} + +func (o ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) ToListListEffectiveVirtualNetworkByNetworkGroupResultOutput() ListListEffectiveVirtualNetworkByNetworkGroupResultOutput { + return o +} + +func (o ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) ToListListEffectiveVirtualNetworkByNetworkGroupResultOutputWithContext(ctx context.Context) ListListEffectiveVirtualNetworkByNetworkGroupResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListListEffectiveVirtualNetworkByNetworkGroupResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of EffectiveVirtualNetwork +func (o ListListEffectiveVirtualNetworkByNetworkGroupResultOutput) Value() EffectiveVirtualNetworkResponseArrayOutput { + return o.ApplyT(func(v ListListEffectiveVirtualNetworkByNetworkGroupResult) []EffectiveVirtualNetworkResponse { + return v.Value + }).(EffectiveVirtualNetworkResponseArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListListEffectiveVirtualNetworkByNetworkGroupResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerDeploymentStatus.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerDeploymentStatus.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerDeploymentStatus.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerDeploymentStatus.go index cd314ead..be8faae0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerDeploymentStatus.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerDeploymentStatus.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Post to List of Network Manager Deployment Status. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. func ListNetworkManagerDeploymentStatus(ctx *pulumi.Context, args *ListNetworkManagerDeploymentStatusArgs, opts ...pulumi.InvokeOption) (*ListNetworkManagerDeploymentStatusResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListNetworkManagerDeploymentStatusResult err := ctx.Invoke("azure-native:network:listNetworkManagerDeploymentStatus", args, &rv, opts...) if err != nil { @@ -32,6 +34,8 @@ type ListNetworkManagerDeploymentStatusArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Continuation token for pagination, capturing the next page size and offset, as well as the context of the query. SkipToken *string `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top *int `pulumi:"top"` } // A list of Network Manager Deployment Status @@ -66,6 +70,8 @@ type ListNetworkManagerDeploymentStatusOutputArgs struct { ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` // Continuation token for pagination, capturing the next page size and offset, as well as the context of the query. SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top pulumi.IntPtrInput `pulumi:"top"` } func (ListNetworkManagerDeploymentStatusOutputArgs) ElementType() reflect.Type { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveConnectivityConfigurations.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveConnectivityConfigurations.go new file mode 100644 index 00000000..2f250b9a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveConnectivityConfigurations.go @@ -0,0 +1,102 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// List all effective connectivity configurations applied on a virtual network. +// Azure REST API version: 2023-02-01. +func ListNetworkManagerEffectiveConnectivityConfigurations(ctx *pulumi.Context, args *ListNetworkManagerEffectiveConnectivityConfigurationsArgs, opts ...pulumi.InvokeOption) (*ListNetworkManagerEffectiveConnectivityConfigurationsResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListNetworkManagerEffectiveConnectivityConfigurationsResult + err := ctx.Invoke("azure-native:network:listNetworkManagerEffectiveConnectivityConfigurations", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListNetworkManagerEffectiveConnectivityConfigurationsArgs struct { + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top *int `pulumi:"top"` + // The name of the virtual network. + VirtualNetworkName string `pulumi:"virtualNetworkName"` +} + +// Result of the request to list networkManagerEffectiveConnectivityConfiguration. It contains a list of groups and a skiptoken to get the next set of results. +type ListNetworkManagerEffectiveConnectivityConfigurationsResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of NetworkManagerEffectiveConnectivityConfiguration + Value []EffectiveConnectivityConfigurationResponse `pulumi:"value"` +} + +func ListNetworkManagerEffectiveConnectivityConfigurationsOutput(ctx *pulumi.Context, args ListNetworkManagerEffectiveConnectivityConfigurationsOutputArgs, opts ...pulumi.InvokeOption) ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListNetworkManagerEffectiveConnectivityConfigurationsResult, error) { + args := v.(ListNetworkManagerEffectiveConnectivityConfigurationsArgs) + r, err := ListNetworkManagerEffectiveConnectivityConfigurations(ctx, &args, opts...) + var s ListNetworkManagerEffectiveConnectivityConfigurationsResult + if r != nil { + s = *r + } + return s, err + }).(ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) +} + +type ListNetworkManagerEffectiveConnectivityConfigurationsOutputArgs struct { + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top pulumi.IntPtrInput `pulumi:"top"` + // The name of the virtual network. + VirtualNetworkName pulumi.StringInput `pulumi:"virtualNetworkName"` +} + +func (ListNetworkManagerEffectiveConnectivityConfigurationsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListNetworkManagerEffectiveConnectivityConfigurationsArgs)(nil)).Elem() +} + +// Result of the request to list networkManagerEffectiveConnectivityConfiguration. It contains a list of groups and a skiptoken to get the next set of results. +type ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput struct{ *pulumi.OutputState } + +func (ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListNetworkManagerEffectiveConnectivityConfigurationsResult)(nil)).Elem() +} + +func (o ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) ToListNetworkManagerEffectiveConnectivityConfigurationsResultOutput() ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput { + return o +} + +func (o ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) ToListNetworkManagerEffectiveConnectivityConfigurationsResultOutputWithContext(ctx context.Context) ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListNetworkManagerEffectiveConnectivityConfigurationsResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of NetworkManagerEffectiveConnectivityConfiguration +func (o ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput) Value() EffectiveConnectivityConfigurationResponseArrayOutput { + return o.ApplyT(func(v ListNetworkManagerEffectiveConnectivityConfigurationsResult) []EffectiveConnectivityConfigurationResponse { + return v.Value + }).(EffectiveConnectivityConfigurationResponseArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListNetworkManagerEffectiveConnectivityConfigurationsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerEffectiveSecurityAdminRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerEffectiveSecurityAdminRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRule.go index 066b4b2c..8a689e01 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/listNetworkManagerEffectiveSecurityAdminRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRule.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List all effective security admin rules applied on a virtual network. -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. func ListNetworkManagerEffectiveSecurityAdminRule(ctx *pulumi.Context, args *ListNetworkManagerEffectiveSecurityAdminRuleArgs, opts ...pulumi.InvokeOption) (*ListNetworkManagerEffectiveSecurityAdminRuleResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListNetworkManagerEffectiveSecurityAdminRuleResult err := ctx.Invoke("azure-native:network:listNetworkManagerEffectiveSecurityAdminRule", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRules.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRules.go new file mode 100644 index 00000000..d2e01e56 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/listNetworkManagerEffectiveSecurityAdminRules.go @@ -0,0 +1,100 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// List all effective security admin rules applied on a virtual network. +// Azure REST API version: 2023-02-01. +func ListNetworkManagerEffectiveSecurityAdminRules(ctx *pulumi.Context, args *ListNetworkManagerEffectiveSecurityAdminRulesArgs, opts ...pulumi.InvokeOption) (*ListNetworkManagerEffectiveSecurityAdminRulesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv ListNetworkManagerEffectiveSecurityAdminRulesResult + err := ctx.Invoke("azure-native:network:listNetworkManagerEffectiveSecurityAdminRules", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type ListNetworkManagerEffectiveSecurityAdminRulesArgs struct { + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top *int `pulumi:"top"` + // The name of the virtual network. + VirtualNetworkName string `pulumi:"virtualNetworkName"` +} + +// Result of the request to list networkManagerEffectiveSecurityAdminRules. It contains a list of groups and a skiptoken to get the next set of results. +type ListNetworkManagerEffectiveSecurityAdminRulesResult struct { + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken *string `pulumi:"skipToken"` + // Gets a page of NetworkManagerEffectiveSecurityAdminRules + Value []interface{} `pulumi:"value"` +} + +func ListNetworkManagerEffectiveSecurityAdminRulesOutput(ctx *pulumi.Context, args ListNetworkManagerEffectiveSecurityAdminRulesOutputArgs, opts ...pulumi.InvokeOption) ListNetworkManagerEffectiveSecurityAdminRulesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (ListNetworkManagerEffectiveSecurityAdminRulesResult, error) { + args := v.(ListNetworkManagerEffectiveSecurityAdminRulesArgs) + r, err := ListNetworkManagerEffectiveSecurityAdminRules(ctx, &args, opts...) + var s ListNetworkManagerEffectiveSecurityAdminRulesResult + if r != nil { + s = *r + } + return s, err + }).(ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) +} + +type ListNetworkManagerEffectiveSecurityAdminRulesOutputArgs struct { + // The name of the resource group. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` + // When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. + SkipToken pulumi.StringPtrInput `pulumi:"skipToken"` + // An optional query parameter which specifies the maximum number of records to be returned by the server. + Top pulumi.IntPtrInput `pulumi:"top"` + // The name of the virtual network. + VirtualNetworkName pulumi.StringInput `pulumi:"virtualNetworkName"` +} + +func (ListNetworkManagerEffectiveSecurityAdminRulesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListNetworkManagerEffectiveSecurityAdminRulesArgs)(nil)).Elem() +} + +// Result of the request to list networkManagerEffectiveSecurityAdminRules. It contains a list of groups and a skiptoken to get the next set of results. +type ListNetworkManagerEffectiveSecurityAdminRulesResultOutput struct{ *pulumi.OutputState } + +func (ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListNetworkManagerEffectiveSecurityAdminRulesResult)(nil)).Elem() +} + +func (o ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) ToListNetworkManagerEffectiveSecurityAdminRulesResultOutput() ListNetworkManagerEffectiveSecurityAdminRulesResultOutput { + return o +} + +func (o ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) ToListNetworkManagerEffectiveSecurityAdminRulesResultOutputWithContext(ctx context.Context) ListNetworkManagerEffectiveSecurityAdminRulesResultOutput { + return o +} + +// When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data. +func (o ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) SkipToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListNetworkManagerEffectiveSecurityAdminRulesResult) *string { return v.SkipToken }).(pulumi.StringPtrOutput) +} + +// Gets a page of NetworkManagerEffectiveSecurityAdminRules +func (o ListNetworkManagerEffectiveSecurityAdminRulesResultOutput) Value() pulumi.ArrayOutput { + return o.ApplyT(func(v ListNetworkManagerEffectiveSecurityAdminRulesResult) []interface{} { return v.Value }).(pulumi.ArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(ListNetworkManagerEffectiveSecurityAdminRulesResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancer.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancer.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancer.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancer.go index 8e6f79de..01a8d297 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancer.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancer.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // LoadBalancer resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type LoadBalancer struct { pulumi.CustomResourceState @@ -24,7 +25,7 @@ type LoadBalancer struct { ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` // Object representing the frontend IPs to be used for the load balancer. FrontendIPConfigurations FrontendIPConfigurationResponseArrayOutput `pulumi:"frontendIPConfigurations"` - // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. + // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatPools InboundNatPoolResponseArrayOutput `pulumi:"inboundNatPools"` // Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatRules InboundNatRuleResponseArrayOutput `pulumi:"inboundNatRules"` @@ -193,8 +194,21 @@ func NewLoadBalancer(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:LoadBalancer"), }, + { + Type: pulumi.String("azure-native:network/v20221101:LoadBalancer"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:LoadBalancer"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:LoadBalancer"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:LoadBalancer"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource LoadBalancer err := ctx.RegisterResource("azure-native:network:LoadBalancer", name, args, &resource, opts...) if err != nil { @@ -235,7 +249,7 @@ type loadBalancerArgs struct { FrontendIPConfigurations []FrontendIPConfiguration `pulumi:"frontendIPConfigurations"` // Resource ID. Id *string `pulumi:"id"` - // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. + // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatPools []InboundNatPool `pulumi:"inboundNatPools"` // Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatRules []InboundNatRuleType `pulumi:"inboundNatRules"` @@ -267,7 +281,7 @@ type LoadBalancerArgs struct { FrontendIPConfigurations FrontendIPConfigurationArrayInput // Resource ID. Id pulumi.StringPtrInput - // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. + // Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatPools InboundNatPoolArrayInput // Collection of inbound NAT Rules used by a load balancer. Defining inbound NAT rules on your load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an Inbound NAT pool. They have to reference individual inbound NAT rules. InboundNatRules InboundNatRuleTypeArrayInput @@ -346,7 +360,7 @@ func (o LoadBalancerOutput) FrontendIPConfigurations() FrontendIPConfigurationRe return o.ApplyT(func(v *LoadBalancer) FrontendIPConfigurationResponseArrayOutput { return v.FrontendIPConfigurations }).(FrontendIPConfigurationResponseArrayOutput) } -// Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound Nat rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. +// Defines an external port range for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an inbound NAT pool. They have to reference individual inbound NAT rules. func (o LoadBalancerOutput) InboundNatPools() InboundNatPoolResponseArrayOutput { return o.ApplyT(func(v *LoadBalancer) InboundNatPoolResponseArrayOutput { return v.InboundNatPools }).(InboundNatPoolResponseArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancerBackendAddressPool.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancerBackendAddressPool.go similarity index 74% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancerBackendAddressPool.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancerBackendAddressPool.go index 3d3a7eba..f2ef3ce8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/loadBalancerBackendAddressPool.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/loadBalancerBackendAddressPool.go @@ -7,23 +7,30 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Pool of backend IP addresses. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type LoadBalancerBackendAddressPool struct { pulumi.CustomResourceState // An array of references to IP addresses defined in network interfaces. BackendIPConfigurations NetworkInterfaceIPConfigurationResponseArrayOutput `pulumi:"backendIPConfigurations"` + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds pulumi.IntPtrOutput `pulumi:"drainPeriodInSeconds"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` + // An array of references to inbound NAT rules that use this backend address pool. + InboundNatRules SubResourceResponseArrayOutput `pulumi:"inboundNatRules"` // An array of backend addresses. LoadBalancerBackendAddresses LoadBalancerBackendAddressResponseArrayOutput `pulumi:"loadBalancerBackendAddresses"` // An array of references to load balancing rules that use this backend address pool. LoadBalancingRules SubResourceResponseArrayOutput `pulumi:"loadBalancingRules"` + // The location of the backend address pool. + Location pulumi.StringPtrOutput `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name pulumi.StringPtrOutput `pulumi:"name"` // A reference to an outbound rule that uses this backend address pool. @@ -32,8 +39,12 @@ type LoadBalancerBackendAddressPool struct { OutboundRules SubResourceResponseArrayOutput `pulumi:"outboundRules"` // The provisioning state of the backend address pool resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces GatewayLoadBalancerTunnelInterfaceResponseArrayOutput `pulumi:"tunnelInterfaces"` // Type of the resource. Type pulumi.StringOutput `pulumi:"type"` + // A reference to a virtual network. + VirtualNetwork SubResourceResponsePtrOutput `pulumi:"virtualNetwork"` } // NewLoadBalancerBackendAddressPool registers a new resource with the given unique name, arguments, and options. @@ -92,8 +103,21 @@ func NewLoadBalancerBackendAddressPool(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:LoadBalancerBackendAddressPool"), }, + { + Type: pulumi.String("azure-native:network/v20221101:LoadBalancerBackendAddressPool"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:LoadBalancerBackendAddressPool"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:LoadBalancerBackendAddressPool"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:LoadBalancerBackendAddressPool"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource LoadBalancerBackendAddressPool err := ctx.RegisterResource("azure-native:network:LoadBalancerBackendAddressPool", name, args, &resource, opts...) if err != nil { @@ -128,32 +152,48 @@ func (LoadBalancerBackendAddressPoolState) ElementType() reflect.Type { type loadBalancerBackendAddressPoolArgs struct { // The name of the backend address pool. BackendAddressPoolName *string `pulumi:"backendAddressPoolName"` + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds *int `pulumi:"drainPeriodInSeconds"` // Resource ID. Id *string `pulumi:"id"` // An array of backend addresses. LoadBalancerBackendAddresses []LoadBalancerBackendAddress `pulumi:"loadBalancerBackendAddresses"` // The name of the load balancer. LoadBalancerName string `pulumi:"loadBalancerName"` + // The location of the backend address pool. + Location *string `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name *string `pulumi:"name"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces []GatewayLoadBalancerTunnelInterface `pulumi:"tunnelInterfaces"` + // A reference to a virtual network. + VirtualNetwork *SubResource `pulumi:"virtualNetwork"` } // The set of arguments for constructing a LoadBalancerBackendAddressPool resource. type LoadBalancerBackendAddressPoolArgs struct { // The name of the backend address pool. BackendAddressPoolName pulumi.StringPtrInput + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds pulumi.IntPtrInput // Resource ID. Id pulumi.StringPtrInput // An array of backend addresses. LoadBalancerBackendAddresses LoadBalancerBackendAddressArrayInput // The name of the load balancer. LoadBalancerName pulumi.StringInput + // The location of the backend address pool. + Location pulumi.StringPtrInput // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces GatewayLoadBalancerTunnelInterfaceArrayInput + // A reference to a virtual network. + VirtualNetwork SubResourcePtrInput } func (LoadBalancerBackendAddressPoolArgs) ElementType() reflect.Type { @@ -200,11 +240,21 @@ func (o LoadBalancerBackendAddressPoolOutput) BackendIPConfigurations() NetworkI }).(NetworkInterfaceIPConfigurationResponseArrayOutput) } +// Amount of seconds Load Balancer waits for before sending RESET to client and backend address. +func (o LoadBalancerBackendAddressPoolOutput) DrainPeriodInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.IntPtrOutput { return v.DrainPeriodInSeconds }).(pulumi.IntPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o LoadBalancerBackendAddressPoolOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// An array of references to inbound NAT rules that use this backend address pool. +func (o LoadBalancerBackendAddressPoolOutput) InboundNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *LoadBalancerBackendAddressPool) SubResourceResponseArrayOutput { return v.InboundNatRules }).(SubResourceResponseArrayOutput) +} + // An array of backend addresses. func (o LoadBalancerBackendAddressPoolOutput) LoadBalancerBackendAddresses() LoadBalancerBackendAddressResponseArrayOutput { return o.ApplyT(func(v *LoadBalancerBackendAddressPool) LoadBalancerBackendAddressResponseArrayOutput { @@ -217,6 +267,11 @@ func (o LoadBalancerBackendAddressPoolOutput) LoadBalancingRules() SubResourceRe return o.ApplyT(func(v *LoadBalancerBackendAddressPool) SubResourceResponseArrayOutput { return v.LoadBalancingRules }).(SubResourceResponseArrayOutput) } +// The location of the backend address pool. +func (o LoadBalancerBackendAddressPoolOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. func (o LoadBalancerBackendAddressPoolOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) @@ -237,11 +292,23 @@ func (o LoadBalancerBackendAddressPoolOutput) ProvisioningState() pulumi.StringO return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// An array of gateway load balancer tunnel interfaces. +func (o LoadBalancerBackendAddressPoolOutput) TunnelInterfaces() GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return o.ApplyT(func(v *LoadBalancerBackendAddressPool) GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return v.TunnelInterfaces + }).(GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) +} + // Type of the resource. func (o LoadBalancerBackendAddressPoolOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancerBackendAddressPool) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } +// A reference to a virtual network. +func (o LoadBalancerBackendAddressPoolOutput) VirtualNetwork() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *LoadBalancerBackendAddressPool) SubResourceResponsePtrOutput { return v.VirtualNetwork }).(SubResourceResponsePtrOutput) +} + func init() { pulumi.RegisterOutputType(LoadBalancerBackendAddressPoolOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/localNetworkGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/localNetworkGateway.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/localNetworkGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/localNetworkGateway.go index 0bdce7ac..92fe855a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/localNetworkGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/localNetworkGateway.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A common class for general resource information. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type LocalNetworkGateway struct { pulumi.CustomResourceState @@ -180,8 +181,21 @@ func NewLocalNetworkGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:LocalNetworkGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:LocalNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:LocalNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:LocalNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:LocalNetworkGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource LocalNetworkGateway err := ctx.RegisterResource("azure-native:network:LocalNetworkGateway", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/managementGroupNetworkManagerConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/managementGroupNetworkManagerConnection.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/managementGroupNetworkManagerConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/managementGroupNetworkManagerConnection.go index 32b89eda..61f89c7a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/managementGroupNetworkManagerConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/managementGroupNetworkManagerConnection.go @@ -7,16 +7,17 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Network Manager Connection resource -// API Version: 2021-05-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-05-01-preview type ManagementGroupNetworkManagerConnection struct { pulumi.CustomResourceState - // A description of the scope connection. + // A description of the network manager connection. Description pulumi.StringPtrOutput `pulumi:"description"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` @@ -42,10 +43,38 @@ func NewManagementGroupNetworkManagerConnection(ctx *pulumi.Context, } aliases := pulumi.Aliases([]pulumi.Alias{ { - Type: pulumi.String("azure-native:network/v20210501preview:ManagementGroupNetworkManagerConnection"), + Type: pulumi.String("azure-native:network/v20220101:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20220201preview:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20220401preview:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20220501:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20220701:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20220901:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20221101:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ManagementGroupNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ManagementGroupNetworkManagerConnection"), }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ManagementGroupNetworkManagerConnection err := ctx.RegisterResource("azure-native:network:ManagementGroupNetworkManagerConnection", name, args, &resource, opts...) if err != nil { @@ -78,7 +107,7 @@ func (ManagementGroupNetworkManagerConnectionState) ElementType() reflect.Type { } type managementGroupNetworkManagerConnectionArgs struct { - // A description of the scope connection. + // A description of the network manager connection. Description *string `pulumi:"description"` // The management group Id which uniquely identify the Microsoft Azure management group. ManagementGroupId string `pulumi:"managementGroupId"` @@ -90,7 +119,7 @@ type managementGroupNetworkManagerConnectionArgs struct { // The set of arguments for constructing a ManagementGroupNetworkManagerConnection resource. type ManagementGroupNetworkManagerConnectionArgs struct { - // A description of the scope connection. + // A description of the network manager connection. Description pulumi.StringPtrInput // The management group Id which uniquely identify the Microsoft Azure management group. ManagementGroupId pulumi.StringInput @@ -137,7 +166,7 @@ func (o ManagementGroupNetworkManagerConnectionOutput) ToManagementGroupNetworkM return o } -// A description of the scope connection. +// A description of the network manager connection. func (o ManagementGroupNetworkManagerConnectionOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagementGroupNetworkManagerConnection) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natGateway.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natGateway.go index 2aa249d3..cec39358 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natGateway.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Nat Gateway resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NatGateway struct { pulumi.CustomResourceState @@ -124,8 +125,21 @@ func NewNatGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NatGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NatGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NatGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NatGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NatGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NatGateway err := ctx.RegisterResource("azure-native:network:NatGateway", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natRule.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natRule.go index c7058cd3..09cbb7e4 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/natRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/natRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnGatewayNatRule Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NatRule struct { pulumi.CustomResourceState @@ -82,8 +83,21 @@ func NewNatRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NatRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NatRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NatRule err := ctx.RegisterResource("azure-native:network:NatRule", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkExperimentProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkExperimentProfile.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkExperimentProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkExperimentProfile.go index 8d62b3d3..63fa4a02 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkExperimentProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkExperimentProfile.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines an Network Experiment Profile and lists of Experiments -// API Version: 2019-11-01. +// Azure REST API version: 2019-11-01. Prior API version in Azure Native 1.x: 2019-11-01 type NetworkExperimentProfile struct { pulumi.CustomResourceState @@ -48,6 +49,7 @@ func NewNetworkExperimentProfile(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkExperimentProfile err := ctx.RegisterResource("azure-native:network:NetworkExperimentProfile", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkGroup.go similarity index 75% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkGroup.go index e4462023..be7bf59b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkGroup.go @@ -7,31 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The network group resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type NetworkGroup struct { pulumi.CustomResourceState - // Network group conditional filter. - ConditionalMembership pulumi.StringPtrOutput `pulumi:"conditionalMembership"` // A description of the network group. Description pulumi.StringPtrOutput `pulumi:"description"` - // A friendly name for the network group. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` - // Group members of network group. - GroupMembers GroupMembersItemResponseArrayOutput `pulumi:"groupMembers"` - // Group member type. - MemberType pulumi.StringPtrOutput `pulumi:"memberType"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the scope assignment resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -76,8 +71,21 @@ func NewNetworkGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkGroup err := ctx.RegisterResource("azure-native:network:NetworkGroup", name, args, &resource, opts...) if err != nil { @@ -110,17 +118,9 @@ func (NetworkGroupState) ElementType() reflect.Type { } type networkGroupArgs struct { - // Network group conditional filter. - ConditionalMembership *string `pulumi:"conditionalMembership"` // A description of the network group. Description *string `pulumi:"description"` - // A friendly name for the network group. - DisplayName *string `pulumi:"displayName"` - // Group members of network group. - GroupMembers []GroupMembersItem `pulumi:"groupMembers"` - // Group member type. - MemberType *string `pulumi:"memberType"` - // The name of the network group to get. + // The name of the network group. NetworkGroupName *string `pulumi:"networkGroupName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` @@ -130,17 +130,9 @@ type networkGroupArgs struct { // The set of arguments for constructing a NetworkGroup resource. type NetworkGroupArgs struct { - // Network group conditional filter. - ConditionalMembership pulumi.StringPtrInput // A description of the network group. Description pulumi.StringPtrInput - // A friendly name for the network group. - DisplayName pulumi.StringPtrInput - // Group members of network group. - GroupMembers GroupMembersItemArrayInput - // Group member type. - MemberType pulumi.StringPtrInput - // The name of the network group to get. + // The name of the network group. NetworkGroupName pulumi.StringPtrInput // The name of the network manager. NetworkManagerName pulumi.StringInput @@ -185,36 +177,16 @@ func (o NetworkGroupOutput) ToNetworkGroupOutputWithContext(ctx context.Context) return o } -// Network group conditional filter. -func (o NetworkGroupOutput) ConditionalMembership() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkGroup) pulumi.StringPtrOutput { return v.ConditionalMembership }).(pulumi.StringPtrOutput) -} - // A description of the network group. func (o NetworkGroupOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkGroup) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the network group. -func (o NetworkGroupOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkGroup) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o NetworkGroupOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *NetworkGroup) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } -// Group members of network group. -func (o NetworkGroupOutput) GroupMembers() GroupMembersItemResponseArrayOutput { - return o.ApplyT(func(v *NetworkGroup) GroupMembersItemResponseArrayOutput { return v.GroupMembers }).(GroupMembersItemResponseArrayOutput) -} - -// Group member type. -func (o NetworkGroupOutput) MemberType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkGroup) pulumi.StringPtrOutput { return v.MemberType }).(pulumi.StringPtrOutput) -} - // Resource name. func (o NetworkGroupOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *NetworkGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) @@ -225,6 +197,11 @@ func (o NetworkGroupOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *NetworkGroup) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o NetworkGroupOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *NetworkGroup) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o NetworkGroupOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *NetworkGroup) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterface.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterface.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterface.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterface.go index 5ebff596..79c5704b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterface.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterface.go @@ -7,20 +7,27 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A network interface in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkInterface struct { pulumi.CustomResourceState + // Auxiliary mode of Network Interface resource. + AuxiliaryMode pulumi.StringPtrOutput `pulumi:"auxiliaryMode"` + // Auxiliary sku of Network Interface resource. + AuxiliarySku pulumi.StringPtrOutput `pulumi:"auxiliarySku"` + // Indicates whether to disable tcp state tracking. + DisableTcpStateTracking pulumi.BoolPtrOutput `pulumi:"disableTcpStateTracking"` // The DNS settings in network interface. DnsSettings NetworkInterfaceDnsSettingsResponsePtrOutput `pulumi:"dnsSettings"` // A reference to the dscp configuration to which the network interface is linked. DscpConfiguration SubResourceResponseOutput `pulumi:"dscpConfiguration"` - // If the network interface is accelerated networking enabled. + // If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. EnableAcceleratedNetworking pulumi.BoolPtrOutput `pulumi:"enableAcceleratedNetworking"` // Indicates whether IP forwarding is enabled on this network interface. EnableIPForwarding pulumi.BoolPtrOutput `pulumi:"enableIPForwarding"` @@ -62,6 +69,10 @@ type NetworkInterface struct { Type pulumi.StringOutput `pulumi:"type"` // The reference to a virtual machine. VirtualMachine SubResourceResponseOutput `pulumi:"virtualMachine"` + // Whether the virtual machine this nic is attached to supports encryption. + VnetEncryptionSupported pulumi.BoolOutput `pulumi:"vnetEncryptionSupported"` + // WorkloadType of the NetworkInterface for BareMetal resources + WorkloadType pulumi.StringPtrOutput `pulumi:"workloadType"` } // NewNetworkInterface registers a new resource with the given unique name, arguments, and options. @@ -207,8 +218,21 @@ func NewNetworkInterface(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkInterface"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkInterface"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkInterface"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkInterface"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkInterface"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkInterface err := ctx.RegisterResource("azure-native:network:NetworkInterface", name, args, &resource, opts...) if err != nil { @@ -241,9 +265,15 @@ func (NetworkInterfaceState) ElementType() reflect.Type { } type networkInterfaceArgs struct { + // Auxiliary mode of Network Interface resource. + AuxiliaryMode *string `pulumi:"auxiliaryMode"` + // Auxiliary sku of Network Interface resource. + AuxiliarySku *string `pulumi:"auxiliarySku"` + // Indicates whether to disable tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The DNS settings in network interface. DnsSettings *NetworkInterfaceDnsSettings `pulumi:"dnsSettings"` - // If the network interface is accelerated networking enabled. + // If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. EnableAcceleratedNetworking *bool `pulumi:"enableAcceleratedNetworking"` // Indicates whether IP forwarding is enabled on this network interface. EnableIPForwarding *bool `pulumi:"enableIPForwarding"` @@ -269,13 +299,21 @@ type networkInterfaceArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags. Tags map[string]string `pulumi:"tags"` + // WorkloadType of the NetworkInterface for BareMetal resources + WorkloadType *string `pulumi:"workloadType"` } // The set of arguments for constructing a NetworkInterface resource. type NetworkInterfaceArgs struct { + // Auxiliary mode of Network Interface resource. + AuxiliaryMode pulumi.StringPtrInput + // Auxiliary sku of Network Interface resource. + AuxiliarySku pulumi.StringPtrInput + // Indicates whether to disable tcp state tracking. + DisableTcpStateTracking pulumi.BoolPtrInput // The DNS settings in network interface. DnsSettings NetworkInterfaceDnsSettingsPtrInput - // If the network interface is accelerated networking enabled. + // If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. EnableAcceleratedNetworking pulumi.BoolPtrInput // Indicates whether IP forwarding is enabled on this network interface. EnableIPForwarding pulumi.BoolPtrInput @@ -301,6 +339,8 @@ type NetworkInterfaceArgs struct { ResourceGroupName pulumi.StringInput // Resource tags. Tags pulumi.StringMapInput + // WorkloadType of the NetworkInterface for BareMetal resources + WorkloadType pulumi.StringPtrInput } func (NetworkInterfaceArgs) ElementType() reflect.Type { @@ -340,6 +380,21 @@ func (o NetworkInterfaceOutput) ToNetworkInterfaceOutputWithContext(ctx context. return o } +// Auxiliary mode of Network Interface resource. +func (o NetworkInterfaceOutput) AuxiliaryMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkInterface) pulumi.StringPtrOutput { return v.AuxiliaryMode }).(pulumi.StringPtrOutput) +} + +// Auxiliary sku of Network Interface resource. +func (o NetworkInterfaceOutput) AuxiliarySku() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkInterface) pulumi.StringPtrOutput { return v.AuxiliarySku }).(pulumi.StringPtrOutput) +} + +// Indicates whether to disable tcp state tracking. +func (o NetworkInterfaceOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NetworkInterface) pulumi.BoolPtrOutput { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The DNS settings in network interface. func (o NetworkInterfaceOutput) DnsSettings() NetworkInterfaceDnsSettingsResponsePtrOutput { return o.ApplyT(func(v *NetworkInterface) NetworkInterfaceDnsSettingsResponsePtrOutput { return v.DnsSettings }).(NetworkInterfaceDnsSettingsResponsePtrOutput) @@ -350,7 +405,7 @@ func (o NetworkInterfaceOutput) DscpConfiguration() SubResourceResponseOutput { return o.ApplyT(func(v *NetworkInterface) SubResourceResponseOutput { return v.DscpConfiguration }).(SubResourceResponseOutput) } -// If the network interface is accelerated networking enabled. +// If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. func (o NetworkInterfaceOutput) EnableAcceleratedNetworking() pulumi.BoolPtrOutput { return o.ApplyT(func(v *NetworkInterface) pulumi.BoolPtrOutput { return v.EnableAcceleratedNetworking }).(pulumi.BoolPtrOutput) } @@ -459,6 +514,16 @@ func (o NetworkInterfaceOutput) VirtualMachine() SubResourceResponseOutput { return o.ApplyT(func(v *NetworkInterface) SubResourceResponseOutput { return v.VirtualMachine }).(SubResourceResponseOutput) } +// Whether the virtual machine this nic is attached to supports encryption. +func (o NetworkInterfaceOutput) VnetEncryptionSupported() pulumi.BoolOutput { + return o.ApplyT(func(v *NetworkInterface) pulumi.BoolOutput { return v.VnetEncryptionSupported }).(pulumi.BoolOutput) +} + +// WorkloadType of the NetworkInterface for BareMetal resources +func (o NetworkInterfaceOutput) WorkloadType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkInterface) pulumi.StringPtrOutput { return v.WorkloadType }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterOutputType(NetworkInterfaceOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterfaceTapConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterfaceTapConfiguration.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterfaceTapConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterfaceTapConfiguration.go index 372627c0..5d12535c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkInterfaceTapConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkInterfaceTapConfiguration.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Tap configuration in a Network Interface. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkInterfaceTapConfiguration struct { pulumi.CustomResourceState @@ -126,8 +127,21 @@ func NewNetworkInterfaceTapConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkInterfaceTapConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkInterfaceTapConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkInterfaceTapConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkInterfaceTapConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkInterfaceTapConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkInterfaceTapConfiguration err := ctx.RegisterResource("azure-native:network:NetworkInterfaceTapConfiguration", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkManager.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkManager.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkManager.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkManager.go index 080bd0b1..1153f384 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkManager.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkManager.go @@ -7,19 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Managed Network resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type NetworkManager struct { pulumi.CustomResourceState // A description of the network manager. Description pulumi.StringPtrOutput `pulumi:"description"` - // A friendly name for the network manager. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource location. @@ -29,9 +28,11 @@ type NetworkManager struct { // Scope Access. NetworkManagerScopeAccesses pulumi.StringArrayOutput `pulumi:"networkManagerScopeAccesses"` // Scope of Network Manager. - NetworkManagerScopes NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput `pulumi:"networkManagerScopes"` - // The provisioning state of the scope assignment resource. + NetworkManagerScopes NetworkManagerPropertiesResponseNetworkManagerScopesOutput `pulumi:"networkManagerScopes"` + // The provisioning state of the network manager resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource tags. @@ -47,6 +48,12 @@ func NewNetworkManager(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } + if args.NetworkManagerScopeAccesses == nil { + return nil, errors.New("invalid value for required argument 'NetworkManagerScopeAccesses'") + } + if args.NetworkManagerScopes == nil { + return nil, errors.New("invalid value for required argument 'NetworkManagerScopes'") + } if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } @@ -75,8 +82,21 @@ func NewNetworkManager(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkManager"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkManager"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkManager"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkManager"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkManager"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkManager err := ctx.RegisterResource("azure-native:network:NetworkManager", name, args, &resource, opts...) if err != nil { @@ -111,8 +131,6 @@ func (NetworkManagerState) ElementType() reflect.Type { type networkManagerArgs struct { // A description of the network manager. Description *string `pulumi:"description"` - // A friendly name for the network manager. - DisplayName *string `pulumi:"displayName"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -122,7 +140,7 @@ type networkManagerArgs struct { // Scope Access. NetworkManagerScopeAccesses []string `pulumi:"networkManagerScopeAccesses"` // Scope of Network Manager. - NetworkManagerScopes *NetworkManagerPropertiesNetworkManagerScopes `pulumi:"networkManagerScopes"` + NetworkManagerScopes NetworkManagerPropertiesNetworkManagerScopes `pulumi:"networkManagerScopes"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags. @@ -133,8 +151,6 @@ type networkManagerArgs struct { type NetworkManagerArgs struct { // A description of the network manager. Description pulumi.StringPtrInput - // A friendly name for the network manager. - DisplayName pulumi.StringPtrInput // Resource ID. Id pulumi.StringPtrInput // Resource location. @@ -144,7 +160,7 @@ type NetworkManagerArgs struct { // Scope Access. NetworkManagerScopeAccesses pulumi.StringArrayInput // Scope of Network Manager. - NetworkManagerScopes NetworkManagerPropertiesNetworkManagerScopesPtrInput + NetworkManagerScopes NetworkManagerPropertiesNetworkManagerScopesInput // The name of the resource group. ResourceGroupName pulumi.StringInput // Resource tags. @@ -193,11 +209,6 @@ func (o NetworkManagerOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkManager) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A friendly name for the network manager. -func (o NetworkManagerOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkManager) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o NetworkManagerOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *NetworkManager) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -219,17 +230,22 @@ func (o NetworkManagerOutput) NetworkManagerScopeAccesses() pulumi.StringArrayOu } // Scope of Network Manager. -func (o NetworkManagerOutput) NetworkManagerScopes() NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput { - return o.ApplyT(func(v *NetworkManager) NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput { +func (o NetworkManagerOutput) NetworkManagerScopes() NetworkManagerPropertiesResponseNetworkManagerScopesOutput { + return o.ApplyT(func(v *NetworkManager) NetworkManagerPropertiesResponseNetworkManagerScopesOutput { return v.NetworkManagerScopes - }).(NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) + }).(NetworkManagerPropertiesResponseNetworkManagerScopesOutput) } -// The provisioning state of the scope assignment resource. +// The provisioning state of the network manager resource. func (o NetworkManagerOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *NetworkManager) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o NetworkManagerOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *NetworkManager) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) +} + // The system metadata related to this resource. func (o NetworkManagerOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *NetworkManager) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkProfile.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkProfile.go index 39f0631f..68e1fbda 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkProfile.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Network profile resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkProfile struct { pulumi.CustomResourceState @@ -128,8 +129,21 @@ func NewNetworkProfile(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkProfile"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkProfile"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkProfile"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkProfile"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkProfile"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkProfile err := ctx.RegisterResource("azure-native:network:NetworkProfile", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityGroup.go similarity index 88% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityGroup.go index a36986cc..f532d5ee 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // NetworkSecurityGroup resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkSecurityGroup struct { pulumi.CustomResourceState @@ -22,6 +23,8 @@ type NetworkSecurityGroup struct { Etag pulumi.StringOutput `pulumi:"etag"` // A collection of references to flow log resources. FlowLogs FlowLogResponseArrayOutput `pulumi:"flowLogs"` + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection pulumi.BoolPtrOutput `pulumi:"flushConnection"` // Resource location. Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. @@ -185,8 +188,21 @@ func NewNetworkSecurityGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkSecurityGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkSecurityGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkSecurityGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkSecurityGroup err := ctx.RegisterResource("azure-native:network:NetworkSecurityGroup", name, args, &resource, opts...) if err != nil { @@ -219,6 +235,8 @@ func (NetworkSecurityGroupState) ElementType() reflect.Type { } type networkSecurityGroupArgs struct { + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection *bool `pulumi:"flushConnection"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -235,6 +253,8 @@ type networkSecurityGroupArgs struct { // The set of arguments for constructing a NetworkSecurityGroup resource. type NetworkSecurityGroupArgs struct { + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection pulumi.BoolPtrInput // Resource ID. Id pulumi.StringPtrInput // Resource location. @@ -301,6 +321,11 @@ func (o NetworkSecurityGroupOutput) FlowLogs() FlowLogResponseArrayOutput { return o.ApplyT(func(v *NetworkSecurityGroup) FlowLogResponseArrayOutput { return v.FlowLogs }).(FlowLogResponseArrayOutput) } +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o NetworkSecurityGroupOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroup) pulumi.BoolPtrOutput { return v.FlushConnection }).(pulumi.BoolPtrOutput) +} + // Resource location. func (o NetworkSecurityGroupOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkSecurityGroup) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityPerimeter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityPerimeter.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityPerimeter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityPerimeter.go index 9b76597c..98dce608 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkSecurityPerimeter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkSecurityPerimeter.go @@ -7,21 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Network Security Perimeter resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-03-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type NetworkSecurityPerimeter struct { pulumi.CustomResourceState + // A description of the network security perimeter. + Description pulumi.StringPtrOutput `pulumi:"description"` + // A friendly name for the network security perimeter. + DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringOutput `pulumi:"etag"` // Resource location. Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` - // perimeter guid of the network security perimeter. - PerimeterGuid pulumi.StringOutput `pulumi:"perimeterGuid"` // The provisioning state of the scope assignment resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // Resource tags. @@ -49,6 +54,7 @@ func NewNetworkSecurityPerimeter(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkSecurityPerimeter err := ctx.RegisterResource("azure-native:network:NetworkSecurityPerimeter", name, args, &resource, opts...) if err != nil { @@ -81,6 +87,10 @@ func (NetworkSecurityPerimeterState) ElementType() reflect.Type { } type networkSecurityPerimeterArgs struct { + // A description of the network security perimeter. + Description *string `pulumi:"description"` + // A friendly name for the network security perimeter. + DisplayName *string `pulumi:"displayName"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -97,6 +107,10 @@ type networkSecurityPerimeterArgs struct { // The set of arguments for constructing a NetworkSecurityPerimeter resource. type NetworkSecurityPerimeterArgs struct { + // A description of the network security perimeter. + Description pulumi.StringPtrInput + // A friendly name for the network security perimeter. + DisplayName pulumi.StringPtrInput // Resource ID. Id pulumi.StringPtrInput // Resource location. @@ -148,6 +162,21 @@ func (o NetworkSecurityPerimeterOutput) ToNetworkSecurityPerimeterOutputWithCont return o } +// A description of the network security perimeter. +func (o NetworkSecurityPerimeterOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// A friendly name for the network security perimeter. +func (o NetworkSecurityPerimeterOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o NetworkSecurityPerimeterOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + // Resource location. func (o NetworkSecurityPerimeterOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) @@ -158,11 +187,6 @@ func (o NetworkSecurityPerimeterOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// perimeter guid of the network security perimeter. -func (o NetworkSecurityPerimeterOutput) PerimeterGuid() pulumi.StringOutput { - return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringOutput { return v.PerimeterGuid }).(pulumi.StringOutput) -} - // The provisioning state of the scope assignment resource. func (o NetworkSecurityPerimeterOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *NetworkSecurityPerimeter) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkVirtualAppliance.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualAppliance.go similarity index 76% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkVirtualAppliance.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualAppliance.go index 10e45216..fea1da25 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkVirtualAppliance.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualAppliance.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // NetworkVirtualAppliance Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkVirtualAppliance struct { pulumi.CustomResourceState + // Details required for Additional Network Interface. + AdditionalNics VirtualApplianceAdditionalNicPropertiesResponseArrayOutput `pulumi:"additionalNics"` // Address Prefix. AddressPrefix pulumi.StringOutput `pulumi:"addressPrefix"` // BootStrapConfigurationBlobs storage URLs. @@ -24,6 +27,10 @@ type NetworkVirtualAppliance struct { CloudInitConfiguration pulumi.StringPtrOutput `pulumi:"cloudInitConfiguration"` // CloudInitConfigurationBlob storage URLs. CloudInitConfigurationBlobs pulumi.StringArrayOutput `pulumi:"cloudInitConfigurationBlobs"` + // The delegation for the Virtual Appliance + Delegation DelegationPropertiesResponsePtrOutput `pulumi:"delegation"` + // The deployment type. PartnerManaged for the SaaS NVA + DeploymentType pulumi.StringOutput `pulumi:"deploymentType"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // The service principal that has read access to cloud-init and config blob. @@ -36,14 +43,20 @@ type NetworkVirtualAppliance struct { Name pulumi.StringOutput `pulumi:"name"` // Network Virtual Appliance SKU. NvaSku VirtualApplianceSkuPropertiesResponsePtrOutput `pulumi:"nvaSku"` + // The delegation for the Virtual Appliance + PartnerManagedResource PartnerManagedResourcePropertiesResponsePtrOutput `pulumi:"partnerManagedResource"` // The provisioning state of the resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Public key for SSH login. + SshPublicKey pulumi.StringPtrOutput `pulumi:"sshPublicKey"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // Resource type. Type pulumi.StringOutput `pulumi:"type"` - // VirtualAppliance ASN. + // VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. VirtualApplianceAsn pulumi.Float64PtrOutput `pulumi:"virtualApplianceAsn"` + // List of references to VirtualApplianceConnections. + VirtualApplianceConnections SubResourceResponseArrayOutput `pulumi:"virtualApplianceConnections"` // List of Virtual Appliance Network Interfaces. VirtualApplianceNics VirtualApplianceNicPropertiesResponseArrayOutput `pulumi:"virtualApplianceNics"` // List of references to VirtualApplianceSite. @@ -111,8 +124,21 @@ func NewNetworkVirtualAppliance(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkVirtualAppliance"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkVirtualAppliance"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkVirtualAppliance"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkVirtualAppliance"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkVirtualAppliance"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkVirtualAppliance err := ctx.RegisterResource("azure-native:network:NetworkVirtualAppliance", name, args, &resource, opts...) if err != nil { @@ -145,12 +171,16 @@ func (NetworkVirtualApplianceState) ElementType() reflect.Type { } type networkVirtualApplianceArgs struct { + // Details required for Additional Network Interface. + AdditionalNics []VirtualApplianceAdditionalNicProperties `pulumi:"additionalNics"` // BootStrapConfigurationBlobs storage URLs. BootStrapConfigurationBlobs []string `pulumi:"bootStrapConfigurationBlobs"` // CloudInitConfiguration string in plain text. CloudInitConfiguration *string `pulumi:"cloudInitConfiguration"` // CloudInitConfigurationBlob storage URLs. CloudInitConfigurationBlobs []string `pulumi:"cloudInitConfigurationBlobs"` + // The delegation for the Virtual Appliance + Delegation *DelegationProperties `pulumi:"delegation"` // Resource ID. Id *string `pulumi:"id"` // The service principal that has read access to cloud-init and config blob. @@ -163,9 +193,11 @@ type networkVirtualApplianceArgs struct { NvaSku *VirtualApplianceSkuProperties `pulumi:"nvaSku"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // Public key for SSH login. + SshPublicKey *string `pulumi:"sshPublicKey"` // Resource tags. Tags map[string]string `pulumi:"tags"` - // VirtualAppliance ASN. + // VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. VirtualApplianceAsn *float64 `pulumi:"virtualApplianceAsn"` // The Virtual Hub where Network Virtual Appliance is being deployed. VirtualHub *SubResource `pulumi:"virtualHub"` @@ -173,12 +205,16 @@ type networkVirtualApplianceArgs struct { // The set of arguments for constructing a NetworkVirtualAppliance resource. type NetworkVirtualApplianceArgs struct { + // Details required for Additional Network Interface. + AdditionalNics VirtualApplianceAdditionalNicPropertiesArrayInput // BootStrapConfigurationBlobs storage URLs. BootStrapConfigurationBlobs pulumi.StringArrayInput // CloudInitConfiguration string in plain text. CloudInitConfiguration pulumi.StringPtrInput // CloudInitConfigurationBlob storage URLs. CloudInitConfigurationBlobs pulumi.StringArrayInput + // The delegation for the Virtual Appliance + Delegation DelegationPropertiesPtrInput // Resource ID. Id pulumi.StringPtrInput // The service principal that has read access to cloud-init and config blob. @@ -191,9 +227,11 @@ type NetworkVirtualApplianceArgs struct { NvaSku VirtualApplianceSkuPropertiesPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // Public key for SSH login. + SshPublicKey pulumi.StringPtrInput // Resource tags. Tags pulumi.StringMapInput - // VirtualAppliance ASN. + // VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. VirtualApplianceAsn pulumi.Float64PtrInput // The Virtual Hub where Network Virtual Appliance is being deployed. VirtualHub SubResourcePtrInput @@ -236,6 +274,13 @@ func (o NetworkVirtualApplianceOutput) ToNetworkVirtualApplianceOutputWithContex return o } +// Details required for Additional Network Interface. +func (o NetworkVirtualApplianceOutput) AdditionalNics() VirtualApplianceAdditionalNicPropertiesResponseArrayOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) VirtualApplianceAdditionalNicPropertiesResponseArrayOutput { + return v.AdditionalNics + }).(VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) +} + // Address Prefix. func (o NetworkVirtualApplianceOutput) AddressPrefix() pulumi.StringOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringOutput { return v.AddressPrefix }).(pulumi.StringOutput) @@ -256,6 +301,16 @@ func (o NetworkVirtualApplianceOutput) CloudInitConfigurationBlobs() pulumi.Stri return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringArrayOutput { return v.CloudInitConfigurationBlobs }).(pulumi.StringArrayOutput) } +// The delegation for the Virtual Appliance +func (o NetworkVirtualApplianceOutput) Delegation() DelegationPropertiesResponsePtrOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) DelegationPropertiesResponsePtrOutput { return v.Delegation }).(DelegationPropertiesResponsePtrOutput) +} + +// The deployment type. PartnerManaged for the SaaS NVA +func (o NetworkVirtualApplianceOutput) DeploymentType() pulumi.StringOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringOutput { return v.DeploymentType }).(pulumi.StringOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o NetworkVirtualApplianceOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -286,11 +341,23 @@ func (o NetworkVirtualApplianceOutput) NvaSku() VirtualApplianceSkuPropertiesRes return o.ApplyT(func(v *NetworkVirtualAppliance) VirtualApplianceSkuPropertiesResponsePtrOutput { return v.NvaSku }).(VirtualApplianceSkuPropertiesResponsePtrOutput) } +// The delegation for the Virtual Appliance +func (o NetworkVirtualApplianceOutput) PartnerManagedResource() PartnerManagedResourcePropertiesResponsePtrOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) PartnerManagedResourcePropertiesResponsePtrOutput { + return v.PartnerManagedResource + }).(PartnerManagedResourcePropertiesResponsePtrOutput) +} + // The provisioning state of the resource. func (o NetworkVirtualApplianceOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Public key for SSH login. +func (o NetworkVirtualApplianceOutput) SshPublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringPtrOutput { return v.SshPublicKey }).(pulumi.StringPtrOutput) +} + // Resource tags. func (o NetworkVirtualApplianceOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) @@ -301,11 +368,16 @@ func (o NetworkVirtualApplianceOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } -// VirtualAppliance ASN. +// VirtualAppliance ASN. Microsoft private, public and IANA reserved ASN are not supported. func (o NetworkVirtualApplianceOutput) VirtualApplianceAsn() pulumi.Float64PtrOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) pulumi.Float64PtrOutput { return v.VirtualApplianceAsn }).(pulumi.Float64PtrOutput) } +// List of references to VirtualApplianceConnections. +func (o NetworkVirtualApplianceOutput) VirtualApplianceConnections() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *NetworkVirtualAppliance) SubResourceResponseArrayOutput { return v.VirtualApplianceConnections }).(SubResourceResponseArrayOutput) +} + // List of Virtual Appliance Network Interfaces. func (o NetworkVirtualApplianceOutput) VirtualApplianceNics() VirtualApplianceNicPropertiesResponseArrayOutput { return o.ApplyT(func(v *NetworkVirtualAppliance) VirtualApplianceNicPropertiesResponseArrayOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualApplianceConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualApplianceConnection.go new file mode 100644 index 00000000..27e65282 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkVirtualApplianceConnection.go @@ -0,0 +1,219 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// NetworkVirtualApplianceConnection resource. +// Azure REST API version: 2023-02-01. +type NetworkVirtualApplianceConnection struct { + pulumi.CustomResourceState + + // Network Virtual Appliance ASN. + Asn pulumi.Float64PtrOutput `pulumi:"asn"` + // List of bgpPeerAddresses for the NVA instances + BgpPeerAddress pulumi.StringArrayOutput `pulumi:"bgpPeerAddress"` + // Enable internet security. + EnableInternetSecurity pulumi.BoolPtrOutput `pulumi:"enableInternetSecurity"` + // The name of the resource. + Name pulumi.StringPtrOutput `pulumi:"name"` + // The provisioning state of the NetworkVirtualApplianceConnection resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration RoutingConfigurationNfvResponsePtrOutput `pulumi:"routingConfiguration"` + // Unique identifier for the connection. + TunnelIdentifier pulumi.Float64PtrOutput `pulumi:"tunnelIdentifier"` +} + +// NewNetworkVirtualApplianceConnection registers a new resource with the given unique name, arguments, and options. +func NewNetworkVirtualApplianceConnection(ctx *pulumi.Context, + name string, args *NetworkVirtualApplianceConnectionArgs, opts ...pulumi.ResourceOption) (*NetworkVirtualApplianceConnection, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.NetworkVirtualApplianceName == nil { + return nil, errors.New("invalid value for required argument 'NetworkVirtualApplianceName'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20221101:NetworkVirtualApplianceConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkVirtualApplianceConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkVirtualApplianceConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkVirtualApplianceConnection"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource NetworkVirtualApplianceConnection + err := ctx.RegisterResource("azure-native:network:NetworkVirtualApplianceConnection", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetNetworkVirtualApplianceConnection gets an existing NetworkVirtualApplianceConnection resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetNetworkVirtualApplianceConnection(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *NetworkVirtualApplianceConnectionState, opts ...pulumi.ResourceOption) (*NetworkVirtualApplianceConnection, error) { + var resource NetworkVirtualApplianceConnection + err := ctx.ReadResource("azure-native:network:NetworkVirtualApplianceConnection", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering NetworkVirtualApplianceConnection resources. +type networkVirtualApplianceConnectionState struct { +} + +type NetworkVirtualApplianceConnectionState struct { +} + +func (NetworkVirtualApplianceConnectionState) ElementType() reflect.Type { + return reflect.TypeOf((*networkVirtualApplianceConnectionState)(nil)).Elem() +} + +type networkVirtualApplianceConnectionArgs struct { + // Network Virtual Appliance ASN. + Asn *float64 `pulumi:"asn"` + // List of bgpPeerAddresses for the NVA instances + BgpPeerAddress []string `pulumi:"bgpPeerAddress"` + // The name of the NVA connection. + ConnectionName *string `pulumi:"connectionName"` + // Enable internet security. + EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource. + Name *string `pulumi:"name"` + // The name of the Network Virtual Appliance. + NetworkVirtualApplianceName string `pulumi:"networkVirtualApplianceName"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration *RoutingConfigurationNfv `pulumi:"routingConfiguration"` + // Unique identifier for the connection. + TunnelIdentifier *float64 `pulumi:"tunnelIdentifier"` +} + +// The set of arguments for constructing a NetworkVirtualApplianceConnection resource. +type NetworkVirtualApplianceConnectionArgs struct { + // Network Virtual Appliance ASN. + Asn pulumi.Float64PtrInput + // List of bgpPeerAddresses for the NVA instances + BgpPeerAddress pulumi.StringArrayInput + // The name of the NVA connection. + ConnectionName pulumi.StringPtrInput + // Enable internet security. + EnableInternetSecurity pulumi.BoolPtrInput + // Resource ID. + Id pulumi.StringPtrInput + // The name of the resource. + Name pulumi.StringPtrInput + // The name of the Network Virtual Appliance. + NetworkVirtualApplianceName pulumi.StringInput + // The name of the resource group. + ResourceGroupName pulumi.StringInput + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration RoutingConfigurationNfvPtrInput + // Unique identifier for the connection. + TunnelIdentifier pulumi.Float64PtrInput +} + +func (NetworkVirtualApplianceConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*networkVirtualApplianceConnectionArgs)(nil)).Elem() +} + +type NetworkVirtualApplianceConnectionInput interface { + pulumi.Input + + ToNetworkVirtualApplianceConnectionOutput() NetworkVirtualApplianceConnectionOutput + ToNetworkVirtualApplianceConnectionOutputWithContext(ctx context.Context) NetworkVirtualApplianceConnectionOutput +} + +func (*NetworkVirtualApplianceConnection) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkVirtualApplianceConnection)(nil)).Elem() +} + +func (i *NetworkVirtualApplianceConnection) ToNetworkVirtualApplianceConnectionOutput() NetworkVirtualApplianceConnectionOutput { + return i.ToNetworkVirtualApplianceConnectionOutputWithContext(context.Background()) +} + +func (i *NetworkVirtualApplianceConnection) ToNetworkVirtualApplianceConnectionOutputWithContext(ctx context.Context) NetworkVirtualApplianceConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkVirtualApplianceConnectionOutput) +} + +type NetworkVirtualApplianceConnectionOutput struct{ *pulumi.OutputState } + +func (NetworkVirtualApplianceConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkVirtualApplianceConnection)(nil)).Elem() +} + +func (o NetworkVirtualApplianceConnectionOutput) ToNetworkVirtualApplianceConnectionOutput() NetworkVirtualApplianceConnectionOutput { + return o +} + +func (o NetworkVirtualApplianceConnectionOutput) ToNetworkVirtualApplianceConnectionOutputWithContext(ctx context.Context) NetworkVirtualApplianceConnectionOutput { + return o +} + +// Network Virtual Appliance ASN. +func (o NetworkVirtualApplianceConnectionOutput) Asn() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.Float64PtrOutput { return v.Asn }).(pulumi.Float64PtrOutput) +} + +// List of bgpPeerAddresses for the NVA instances +func (o NetworkVirtualApplianceConnectionOutput) BgpPeerAddress() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.StringArrayOutput { return v.BgpPeerAddress }).(pulumi.StringArrayOutput) +} + +// Enable internet security. +func (o NetworkVirtualApplianceConnectionOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.BoolPtrOutput { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) +} + +// The name of the resource. +func (o NetworkVirtualApplianceConnectionOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the NetworkVirtualApplianceConnection resource. +func (o NetworkVirtualApplianceConnectionOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The Routing Configuration indicating the associated and propagated route tables on this connection. +func (o NetworkVirtualApplianceConnectionOutput) RoutingConfiguration() RoutingConfigurationNfvResponsePtrOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) RoutingConfigurationNfvResponsePtrOutput { + return v.RoutingConfiguration + }).(RoutingConfigurationNfvResponsePtrOutput) +} + +// Unique identifier for the connection. +func (o NetworkVirtualApplianceConnectionOutput) TunnelIdentifier() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *NetworkVirtualApplianceConnection) pulumi.Float64PtrOutput { return v.TunnelIdentifier }).(pulumi.Float64PtrOutput) +} + +func init() { + pulumi.RegisterOutputType(NetworkVirtualApplianceConnectionOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkWatcher.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkWatcher.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkWatcher.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkWatcher.go index 8fdfaa61..a1855dac 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/networkWatcher.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/networkWatcher.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Network watcher in a resource group. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type NetworkWatcher struct { pulumi.CustomResourceState @@ -161,8 +162,21 @@ func NewNetworkWatcher(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:NetworkWatcher"), }, + { + Type: pulumi.String("azure-native:network/v20221101:NetworkWatcher"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:NetworkWatcher"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:NetworkWatcher"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:NetworkWatcher"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NetworkWatcher err := ctx.RegisterResource("azure-native:network:NetworkWatcher", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAccessRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAccessRule.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAccessRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAccessRule.go index abe6dd22..33915555 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAccessRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAccessRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The NSP access rule resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type NspAccessRule struct { pulumi.CustomResourceState @@ -28,7 +29,7 @@ type NspAccessRule struct { Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` - // Inbound rule specified by the perimeter id. + // Rule specified by the perimeter id. NetworkSecurityPerimeters PerimeterBasedAccessRuleResponseArrayOutput `pulumi:"networkSecurityPerimeters"` // Outbound rules phone number format. PhoneNumbers pulumi.StringArrayOutput `pulumi:"phoneNumbers"` @@ -64,6 +65,7 @@ func NewNspAccessRule(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NspAccessRule err := ctx.RegisterResource("azure-native:network:NspAccessRule", name, args, &resource, opts...) if err != nil { @@ -114,8 +116,6 @@ type nspAccessRuleArgs struct { Name *string `pulumi:"name"` // The name of the network security perimeter. NetworkSecurityPerimeterName string `pulumi:"networkSecurityPerimeterName"` - // Inbound rule specified by the perimeter id. - NetworkSecurityPerimeters []PerimeterBasedAccessRule `pulumi:"networkSecurityPerimeters"` // Outbound rules phone number format. PhoneNumbers []string `pulumi:"phoneNumbers"` // The name of the NSP profile. @@ -148,8 +148,6 @@ type NspAccessRuleArgs struct { Name pulumi.StringPtrInput // The name of the network security perimeter. NetworkSecurityPerimeterName pulumi.StringInput - // Inbound rule specified by the perimeter id. - NetworkSecurityPerimeters PerimeterBasedAccessRuleArrayInput // Outbound rules phone number format. PhoneNumbers pulumi.StringArrayInput // The name of the NSP profile. @@ -229,7 +227,7 @@ func (o NspAccessRuleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *NspAccessRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// Inbound rule specified by the perimeter id. +// Rule specified by the perimeter id. func (o NspAccessRuleOutput) NetworkSecurityPerimeters() PerimeterBasedAccessRuleResponseArrayOutput { return o.ApplyT(func(v *NspAccessRule) PerimeterBasedAccessRuleResponseArrayOutput { return v.NetworkSecurityPerimeters }).(PerimeterBasedAccessRuleResponseArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAssociation.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAssociation.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAssociation.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAssociation.go index af48efcd..e00be657 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspAssociation.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspAssociation.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The NSP resource association resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type NspAssociation struct { pulumi.CustomResourceState @@ -55,6 +56,7 @@ func NewNspAssociation(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NspAssociation err := ctx.RegisterResource("azure-native:network:NspAssociation", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspLink.go new file mode 100644 index 00000000..e013964c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspLink.go @@ -0,0 +1,238 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The network security perimeter link resource +// Azure REST API version: 2021-02-01-preview. +type NspLink struct { + pulumi.CustomResourceState + + // Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. + AutoApprovedRemotePerimeterResourceId pulumi.StringPtrOutput `pulumi:"autoApprovedRemotePerimeterResourceId"` + // A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. + Description pulumi.StringPtrOutput `pulumi:"description"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringOutput `pulumi:"etag"` + // Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. + LocalInboundProfiles pulumi.StringArrayOutput `pulumi:"localInboundProfiles"` + // Local Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. + LocalOutboundProfiles pulumi.StringArrayOutput `pulumi:"localOutboundProfiles"` + // Resource name. + Name pulumi.StringOutput `pulumi:"name"` + // The provisioning state of the NSP Link resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. + RemoteInboundProfiles pulumi.StringArrayOutput `pulumi:"remoteInboundProfiles"` + // Remote Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. + RemoteOutboundProfiles pulumi.StringArrayOutput `pulumi:"remoteOutboundProfiles"` + // Remote NSP Guid with which the link gets created. + RemotePerimeterGuid pulumi.StringOutput `pulumi:"remotePerimeterGuid"` + // Remote NSP location with which the link gets created. + RemotePerimeterLocation pulumi.StringOutput `pulumi:"remotePerimeterLocation"` + // The NSP link state. + Status pulumi.StringOutput `pulumi:"status"` + // Resource type. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewNspLink registers a new resource with the given unique name, arguments, and options. +func NewNspLink(ctx *pulumi.Context, + name string, args *NspLinkArgs, opts ...pulumi.ResourceOption) (*NspLink, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.NetworkSecurityPerimeterName == nil { + return nil, errors.New("invalid value for required argument 'NetworkSecurityPerimeterName'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20210201preview:NspLink"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource NspLink + err := ctx.RegisterResource("azure-native:network:NspLink", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetNspLink gets an existing NspLink resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetNspLink(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *NspLinkState, opts ...pulumi.ResourceOption) (*NspLink, error) { + var resource NspLink + err := ctx.ReadResource("azure-native:network:NspLink", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering NspLink resources. +type nspLinkState struct { +} + +type NspLinkState struct { +} + +func (NspLinkState) ElementType() reflect.Type { + return reflect.TypeOf((*nspLinkState)(nil)).Elem() +} + +type nspLinkArgs struct { + // Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. + AutoApprovedRemotePerimeterResourceId *string `pulumi:"autoApprovedRemotePerimeterResourceId"` + // A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. + Description *string `pulumi:"description"` + // The name of the NSP link. + LinkName *string `pulumi:"linkName"` + // Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. + LocalInboundProfiles []string `pulumi:"localInboundProfiles"` + // The name of the network security perimeter. + NetworkSecurityPerimeterName string `pulumi:"networkSecurityPerimeterName"` + // Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. + RemoteInboundProfiles []string `pulumi:"remoteInboundProfiles"` + // The name of the resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` +} + +// The set of arguments for constructing a NspLink resource. +type NspLinkArgs struct { + // Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. + AutoApprovedRemotePerimeterResourceId pulumi.StringPtrInput + // A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. + Description pulumi.StringPtrInput + // The name of the NSP link. + LinkName pulumi.StringPtrInput + // Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. + LocalInboundProfiles pulumi.StringArrayInput + // The name of the network security perimeter. + NetworkSecurityPerimeterName pulumi.StringInput + // Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. + RemoteInboundProfiles pulumi.StringArrayInput + // The name of the resource group. + ResourceGroupName pulumi.StringInput +} + +func (NspLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*nspLinkArgs)(nil)).Elem() +} + +type NspLinkInput interface { + pulumi.Input + + ToNspLinkOutput() NspLinkOutput + ToNspLinkOutputWithContext(ctx context.Context) NspLinkOutput +} + +func (*NspLink) ElementType() reflect.Type { + return reflect.TypeOf((**NspLink)(nil)).Elem() +} + +func (i *NspLink) ToNspLinkOutput() NspLinkOutput { + return i.ToNspLinkOutputWithContext(context.Background()) +} + +func (i *NspLink) ToNspLinkOutputWithContext(ctx context.Context) NspLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(NspLinkOutput) +} + +type NspLinkOutput struct{ *pulumi.OutputState } + +func (NspLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NspLink)(nil)).Elem() +} + +func (o NspLinkOutput) ToNspLinkOutput() NspLinkOutput { + return o +} + +func (o NspLinkOutput) ToNspLinkOutputWithContext(ctx context.Context) NspLinkOutput { + return o +} + +// Perimeter ARM Id for the remote NSP with which the link gets created in Auto-approval mode. It should be used when the NSP admin have Microsoft.Network/networkSecurityPerimeters/linkPerimeter/action permission on the remote NSP resource. +func (o NspLinkOutput) AutoApprovedRemotePerimeterResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringPtrOutput { return v.AutoApprovedRemotePerimeterResourceId }).(pulumi.StringPtrOutput) +} + +// A message passed to the owner of the remote NSP link resource with this connection request. In case of Auto-approved flow, it is default to 'Auto Approved'. Restricted to 140 chars. +func (o NspLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o NspLinkOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Local Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. It's default value is ['*']. +func (o NspLinkOutput) LocalInboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringArrayOutput { return v.LocalInboundProfiles }).(pulumi.StringArrayOutput) +} + +// Local Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. +func (o NspLinkOutput) LocalOutboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringArrayOutput { return v.LocalOutboundProfiles }).(pulumi.StringArrayOutput) +} + +// Resource name. +func (o NspLinkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The provisioning state of the NSP Link resource. +func (o NspLinkOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Remote Inbound profile names to which Inbound is allowed. Use ['*'] to allow inbound to all profiles. This property can only be updated in auto-approval mode. It's default value is ['*']. +func (o NspLinkOutput) RemoteInboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringArrayOutput { return v.RemoteInboundProfiles }).(pulumi.StringArrayOutput) +} + +// Remote Outbound profile names from which Outbound is allowed. In current version, it is readonly property and it's value is set to ['*'] to allow outbound from all profiles. In later version, user will be able to modify it. +func (o NspLinkOutput) RemoteOutboundProfiles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringArrayOutput { return v.RemoteOutboundProfiles }).(pulumi.StringArrayOutput) +} + +// Remote NSP Guid with which the link gets created. +func (o NspLinkOutput) RemotePerimeterGuid() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.RemotePerimeterGuid }).(pulumi.StringOutput) +} + +// Remote NSP location with which the link gets created. +func (o NspLinkOutput) RemotePerimeterLocation() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.RemotePerimeterLocation }).(pulumi.StringOutput) +} + +// The NSP link state. +func (o NspLinkOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// Resource type. +func (o NspLinkOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *NspLink) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(NspLinkOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspProfile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspProfile.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspProfile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspProfile.go index 53018a0e..ce949dcc 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/nspProfile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/nspProfile.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The network security perimeter profile resource -// API Version: 2021-02-01-preview. +// Azure REST API version: 2021-02-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type NspProfile struct { pulumi.CustomResourceState @@ -49,6 +50,7 @@ func NewNspProfile(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource NspProfile err := ctx.RegisterResource("azure-native:network:NspProfile", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/outboundEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/outboundEndpoint.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/outboundEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/outboundEndpoint.go index 7bf0924c..8ee7b7d7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/outboundEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/outboundEndpoint.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes an outbound endpoint for a DNS resolver. -// API Version: 2020-04-01-preview. +// Azure REST API version: 2022-07-01. Prior API version in Azure Native 1.x: 2020-04-01-preview type OutboundEndpoint struct { pulumi.CustomResourceState @@ -27,7 +28,7 @@ type OutboundEndpoint struct { // The resourceGuid property of the outbound endpoint resource. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The reference to the subnet used for the outbound endpoint. - Subnet SubResourceResponsePtrOutput `pulumi:"subnet"` + Subnet SubResourceResponseOutput `pulumi:"subnet"` // Metadata pertaining to creation and last modification of the resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource tags. @@ -49,6 +50,9 @@ func NewOutboundEndpoint(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } + if args.Subnet == nil { + return nil, errors.New("invalid value for required argument 'Subnet'") + } aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:network/v20200401preview:OutboundEndpoint"), @@ -58,6 +62,7 @@ func NewOutboundEndpoint(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource OutboundEndpoint err := ctx.RegisterResource("azure-native:network:OutboundEndpoint", name, args, &resource, opts...) if err != nil { @@ -99,7 +104,7 @@ type outboundEndpointArgs struct { // The name of the resource group. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` // The reference to the subnet used for the outbound endpoint. - Subnet *SubResource `pulumi:"subnet"` + Subnet SubResource `pulumi:"subnet"` // Resource tags. Tags map[string]string `pulumi:"tags"` } @@ -115,7 +120,7 @@ type OutboundEndpointArgs struct { // The name of the resource group. The name is case insensitive. ResourceGroupName pulumi.StringInput // The reference to the subnet used for the outbound endpoint. - Subnet SubResourcePtrInput + Subnet SubResourceInput // Resource tags. Tags pulumi.StringMapInput } @@ -183,8 +188,8 @@ func (o OutboundEndpointOutput) ResourceGuid() pulumi.StringOutput { } // The reference to the subnet used for the outbound endpoint. -func (o OutboundEndpointOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v *OutboundEndpoint) SubResourceResponsePtrOutput { return v.Subnet }).(SubResourceResponsePtrOutput) +func (o OutboundEndpointOutput) Subnet() SubResourceResponseOutput { + return o.ApplyT(func(v *OutboundEndpoint) SubResourceResponseOutput { return v.Subnet }).(SubResourceResponseOutput) } // Metadata pertaining to creation and last modification of the resource. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnGateway.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnGateway.go index 6c331097..6708a918 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnGateway.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // P2SVpnGateway Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type P2sVpnGateway struct { pulumi.CustomResourceState @@ -136,8 +137,21 @@ func NewP2sVpnGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:P2sVpnGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:P2sVpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:P2sVpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:P2sVpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:P2sVpnGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource P2sVpnGateway err := ctx.RegisterResource("azure-native:network:P2sVpnGateway", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnServerConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnServerConfiguration.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnServerConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnServerConfiguration.go index cfa8ce23..12883a67 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/p2sVpnServerConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/p2sVpnServerConfiguration.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // P2SVpnServerConfiguration Resource. -// API Version: 2019-07-01. +// Azure REST API version: 2019-07-01. Prior API version in Azure Native 1.x: 2019-07-01 type P2sVpnServerConfiguration struct { pulumi.CustomResourceState @@ -82,6 +83,7 @@ func NewP2sVpnServerConfiguration(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource P2sVpnServerConfiguration err := ctx.RegisterResource("azure-native:network:P2sVpnServerConfiguration", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/packetCapture.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/packetCapture.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/packetCapture.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/packetCapture.go index 01387f04..dce8f8c2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/packetCapture.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/packetCapture.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Information about packet capture session. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PacketCapture struct { pulumi.CustomResourceState @@ -26,10 +27,14 @@ type PacketCapture struct { Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the packet capture session. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. + Scope PacketCaptureMachineScopeResponsePtrOutput `pulumi:"scope"` // The storage location for a packet capture session. StorageLocation PacketCaptureStorageLocationResponseOutput `pulumi:"storageLocation"` - // The ID of the targeted resource, only VM is currently supported. + // The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. Target pulumi.StringOutput `pulumi:"target"` + // Target type of the resource provided. + TargetType pulumi.StringPtrOutput `pulumi:"targetType"` // Maximum duration of the capture session in seconds. TimeLimitInSeconds pulumi.IntPtrOutput `pulumi:"timeLimitInSeconds"` // Maximum size of the capture output. @@ -55,13 +60,13 @@ func NewPacketCapture(ctx *pulumi.Context, if args.Target == nil { return nil, errors.New("invalid value for required argument 'Target'") } - if isZero(args.BytesToCapturePerPacket) { + if args.BytesToCapturePerPacket == nil { args.BytesToCapturePerPacket = pulumi.Float64Ptr(0.0) } - if isZero(args.TimeLimitInSeconds) { + if args.TimeLimitInSeconds == nil { args.TimeLimitInSeconds = pulumi.IntPtr(18000) } - if isZero(args.TotalBytesPerSession) { + if args.TotalBytesPerSession == nil { args.TotalBytesPerSession = pulumi.Float64Ptr(1073741824.0) } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -185,8 +190,21 @@ func NewPacketCapture(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PacketCapture"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PacketCapture"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PacketCapture"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PacketCapture"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PacketCapture"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PacketCapture err := ctx.RegisterResource("azure-native:network:PacketCapture", name, args, &resource, opts...) if err != nil { @@ -229,10 +247,14 @@ type packetCaptureArgs struct { PacketCaptureName *string `pulumi:"packetCaptureName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. + Scope *PacketCaptureMachineScope `pulumi:"scope"` // The storage location for a packet capture session. StorageLocation PacketCaptureStorageLocation `pulumi:"storageLocation"` - // The ID of the targeted resource, only VM is currently supported. + // The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. Target string `pulumi:"target"` + // Target type of the resource provided. + TargetType *PacketCaptureTargetType `pulumi:"targetType"` // Maximum duration of the capture session in seconds. TimeLimitInSeconds *int `pulumi:"timeLimitInSeconds"` // Maximum size of the capture output. @@ -251,10 +273,14 @@ type PacketCaptureArgs struct { PacketCaptureName pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. + Scope PacketCaptureMachineScopePtrInput // The storage location for a packet capture session. StorageLocation PacketCaptureStorageLocationInput - // The ID of the targeted resource, only VM is currently supported. + // The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. Target pulumi.StringInput + // Target type of the resource provided. + TargetType PacketCaptureTargetTypePtrInput // Maximum duration of the capture session in seconds. TimeLimitInSeconds pulumi.IntPtrInput // Maximum size of the capture output. @@ -323,16 +349,26 @@ func (o PacketCaptureOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *PacketCapture) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +func (o PacketCaptureOutput) Scope() PacketCaptureMachineScopeResponsePtrOutput { + return o.ApplyT(func(v *PacketCapture) PacketCaptureMachineScopeResponsePtrOutput { return v.Scope }).(PacketCaptureMachineScopeResponsePtrOutput) +} + // The storage location for a packet capture session. func (o PacketCaptureOutput) StorageLocation() PacketCaptureStorageLocationResponseOutput { return o.ApplyT(func(v *PacketCapture) PacketCaptureStorageLocationResponseOutput { return v.StorageLocation }).(PacketCaptureStorageLocationResponseOutput) } -// The ID of the targeted resource, only VM is currently supported. +// The ID of the targeted resource, only AzureVM and AzureVMSS as target type are currently supported. func (o PacketCaptureOutput) Target() pulumi.StringOutput { return o.ApplyT(func(v *PacketCapture) pulumi.StringOutput { return v.Target }).(pulumi.StringOutput) } +// Target type of the resource provided. +func (o PacketCaptureOutput) TargetType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PacketCapture) pulumi.StringPtrOutput { return v.TargetType }).(pulumi.StringPtrOutput) +} + // Maximum duration of the capture session in seconds. func (o PacketCaptureOutput) TimeLimitInSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v *PacketCapture) pulumi.IntPtrOutput { return v.TimeLimitInSeconds }).(pulumi.IntPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/policy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/policy.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/policy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/policy.go index 48761b64..e2a82550 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/policy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/policy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines web application firewall policy. -// API Version: 2020-11-01. +// Azure REST API version: 2022-05-01. Prior API version in Azure Native 1.x: 2020-11-01 type Policy struct { pulumi.CustomResourceState @@ -76,6 +77,7 @@ func NewPolicy(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Policy err := ctx.RegisterResource("azure-native:network:Policy", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateDnsZoneGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateDnsZoneGroup.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateDnsZoneGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateDnsZoneGroup.go index 7fb66f4c..e4c22a8b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateDnsZoneGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateDnsZoneGroup.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Private dns zone group resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PrivateDnsZoneGroup struct { pulumi.CustomResourceState @@ -85,8 +86,21 @@ func NewPrivateDnsZoneGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PrivateDnsZoneGroup"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PrivateDnsZoneGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PrivateDnsZoneGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PrivateDnsZoneGroup"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PrivateDnsZoneGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateDnsZoneGroup err := ctx.RegisterResource("azure-native:network:PrivateDnsZoneGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateEndpoint.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateEndpoint.go similarity index 79% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateEndpoint.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateEndpoint.go index c605e768..383016e5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateEndpoint.go @@ -7,21 +7,28 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Private endpoint resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PrivateEndpoint struct { pulumi.CustomResourceState + // Application security groups in which the private endpoint IP configuration is included. + ApplicationSecurityGroups ApplicationSecurityGroupResponseArrayOutput `pulumi:"applicationSecurityGroups"` // An array of custom dns configurations. CustomDnsConfigs CustomDnsConfigPropertiesFormatResponseArrayOutput `pulumi:"customDnsConfigs"` + // The custom name of the network interface attached to the private endpoint. + CustomNetworkInterfaceName pulumi.StringPtrOutput `pulumi:"customNetworkInterfaceName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // The extended location of the load balancer. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` + // A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. + IpConfigurations PrivateEndpointIPConfigurationResponseArrayOutput `pulumi:"ipConfigurations"` // Resource location. Location pulumi.StringPtrOutput `pulumi:"location"` // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. @@ -137,8 +144,21 @@ func NewPrivateEndpoint(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PrivateEndpoint"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PrivateEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PrivateEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PrivateEndpoint"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PrivateEndpoint"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateEndpoint err := ctx.RegisterResource("azure-native:network:PrivateEndpoint", name, args, &resource, opts...) if err != nil { @@ -171,12 +191,18 @@ func (PrivateEndpointState) ElementType() reflect.Type { } type privateEndpointArgs struct { + // Application security groups in which the private endpoint IP configuration is included. + ApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"applicationSecurityGroups"` // An array of custom dns configurations. CustomDnsConfigs []CustomDnsConfigPropertiesFormat `pulumi:"customDnsConfigs"` + // The custom name of the network interface attached to the private endpoint. + CustomNetworkInterfaceName *string `pulumi:"customNetworkInterfaceName"` // The extended location of the load balancer. ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` // Resource ID. Id *string `pulumi:"id"` + // A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. + IpConfigurations []PrivateEndpointIPConfiguration `pulumi:"ipConfigurations"` // Resource location. Location *string `pulumi:"location"` // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. @@ -195,12 +221,18 @@ type privateEndpointArgs struct { // The set of arguments for constructing a PrivateEndpoint resource. type PrivateEndpointArgs struct { + // Application security groups in which the private endpoint IP configuration is included. + ApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput // An array of custom dns configurations. CustomDnsConfigs CustomDnsConfigPropertiesFormatArrayInput + // The custom name of the network interface attached to the private endpoint. + CustomNetworkInterfaceName pulumi.StringPtrInput // The extended location of the load balancer. ExtendedLocation ExtendedLocationPtrInput // Resource ID. Id pulumi.StringPtrInput + // A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. + IpConfigurations PrivateEndpointIPConfigurationArrayInput // Resource location. Location pulumi.StringPtrInput // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. @@ -254,11 +286,23 @@ func (o PrivateEndpointOutput) ToPrivateEndpointOutputWithContext(ctx context.Co return o } +// Application security groups in which the private endpoint IP configuration is included. +func (o PrivateEndpointOutput) ApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { + return o.ApplyT(func(v *PrivateEndpoint) ApplicationSecurityGroupResponseArrayOutput { + return v.ApplicationSecurityGroups + }).(ApplicationSecurityGroupResponseArrayOutput) +} + // An array of custom dns configurations. func (o PrivateEndpointOutput) CustomDnsConfigs() CustomDnsConfigPropertiesFormatResponseArrayOutput { return o.ApplyT(func(v *PrivateEndpoint) CustomDnsConfigPropertiesFormatResponseArrayOutput { return v.CustomDnsConfigs }).(CustomDnsConfigPropertiesFormatResponseArrayOutput) } +// The custom name of the network interface attached to the private endpoint. +func (o PrivateEndpointOutput) CustomNetworkInterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateEndpoint) pulumi.StringPtrOutput { return v.CustomNetworkInterfaceName }).(pulumi.StringPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o PrivateEndpointOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *PrivateEndpoint) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -269,6 +313,11 @@ func (o PrivateEndpointOutput) ExtendedLocation() ExtendedLocationResponsePtrOut return o.ApplyT(func(v *PrivateEndpoint) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } +// A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. +func (o PrivateEndpointOutput) IpConfigurations() PrivateEndpointIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v *PrivateEndpoint) PrivateEndpointIPConfigurationResponseArrayOutput { return v.IpConfigurations }).(PrivateEndpointIPConfigurationResponseArrayOutput) +} + // Resource location. func (o PrivateEndpointOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *PrivateEndpoint) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkService.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkService.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkService.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkService.go index a6425652..9f6ca525 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkService.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkService.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Private link service resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PrivateLinkService struct { pulumi.CustomResourceState @@ -127,8 +128,21 @@ func NewPrivateLinkService(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PrivateLinkService"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PrivateLinkService"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PrivateLinkService"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PrivateLinkService"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PrivateLinkService"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateLinkService err := ctx.RegisterResource("azure-native:network:PrivateLinkService", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkServicePrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkServicePrivateEndpointConnection.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkServicePrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkServicePrivateEndpointConnection.go index 50045c2d..7d8807a9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateLinkServicePrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateLinkServicePrivateEndpointConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // PrivateEndpointConnection resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PrivateLinkServicePrivateEndpointConnection struct { pulumi.CustomResourceState @@ -24,6 +25,8 @@ type PrivateLinkServicePrivateEndpointConnection struct { Name pulumi.StringPtrOutput `pulumi:"name"` // The resource of private end point. PrivateEndpoint PrivateEndpointResponseOutput `pulumi:"privateEndpoint"` + // The location of the private endpoint. + PrivateEndpointLocation pulumi.StringOutput `pulumi:"privateEndpointLocation"` // A collection of information about the state of the connection between service consumer and provider. PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStateResponsePtrOutput `pulumi:"privateLinkServiceConnectionState"` // The provisioning state of the private endpoint connection resource. @@ -100,8 +103,21 @@ func NewPrivateLinkServicePrivateEndpointConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PrivateLinkServicePrivateEndpointConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PrivateLinkServicePrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PrivateLinkServicePrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PrivateLinkServicePrivateEndpointConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PrivateLinkServicePrivateEndpointConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateLinkServicePrivateEndpointConnection err := ctx.RegisterResource("azure-native:network:PrivateLinkServicePrivateEndpointConnection", name, args, &resource, opts...) if err != nil { @@ -223,6 +239,13 @@ func (o PrivateLinkServicePrivateEndpointConnectionOutput) PrivateEndpoint() Pri }).(PrivateEndpointResponseOutput) } +// The location of the private endpoint. +func (o PrivateLinkServicePrivateEndpointConnectionOutput) PrivateEndpointLocation() pulumi.StringOutput { + return o.ApplyT(func(v *PrivateLinkServicePrivateEndpointConnection) pulumi.StringOutput { + return v.PrivateEndpointLocation + }).(pulumi.StringOutput) +} + // A collection of information about the state of the connection between service consumer and provider. func (o PrivateLinkServicePrivateEndpointConnectionOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { return o.ApplyT(func(v *PrivateLinkServicePrivateEndpointConnection) PrivateLinkServiceConnectionStateResponsePtrOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateRecordSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateRecordSet.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateRecordSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateRecordSet.go index 888baa4f..0230e02a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateRecordSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateRecordSet.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a DNS record set (a collection of DNS records with the same name and type) in a Private DNS zone. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. Prior API version in Azure Native 1.x: 2020-06-01 type PrivateRecordSet struct { pulumi.CustomResourceState @@ -76,6 +77,7 @@ func NewPrivateRecordSet(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateRecordSet err := ctx.RegisterResource("azure-native:network:PrivateRecordSet", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateResolverVirtualNetworkLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateResolverVirtualNetworkLink.go new file mode 100644 index 00000000..5c8634bf --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateResolverVirtualNetworkLink.go @@ -0,0 +1,194 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Describes a virtual network link. +// Azure REST API version: 2022-07-01. +type PrivateResolverVirtualNetworkLink struct { + pulumi.CustomResourceState + + // ETag of the virtual network link. + Etag pulumi.StringOutput `pulumi:"etag"` + // Metadata attached to the virtual network link. + Metadata pulumi.StringMapOutput `pulumi:"metadata"` + // The name of the resource + Name pulumi.StringOutput `pulumi:"name"` + // The current provisioning state of the virtual network link. This is a read-only property and any attempt to set this value will be ignored. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Metadata pertaining to creation and last modification of the resource. + SystemData SystemDataResponseOutput `pulumi:"systemData"` + // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type pulumi.StringOutput `pulumi:"type"` + // The reference to the virtual network. This cannot be changed after creation. + VirtualNetwork SubResourceResponseOutput `pulumi:"virtualNetwork"` +} + +// NewPrivateResolverVirtualNetworkLink registers a new resource with the given unique name, arguments, and options. +func NewPrivateResolverVirtualNetworkLink(ctx *pulumi.Context, + name string, args *PrivateResolverVirtualNetworkLinkArgs, opts ...pulumi.ResourceOption) (*PrivateResolverVirtualNetworkLink, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DnsForwardingRulesetName == nil { + return nil, errors.New("invalid value for required argument 'DnsForwardingRulesetName'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.VirtualNetwork == nil { + return nil, errors.New("invalid value for required argument 'VirtualNetwork'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20200401preview:PrivateResolverVirtualNetworkLink"), + }, + { + Type: pulumi.String("azure-native:network/v20220701:PrivateResolverVirtualNetworkLink"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource PrivateResolverVirtualNetworkLink + err := ctx.RegisterResource("azure-native:network:PrivateResolverVirtualNetworkLink", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPrivateResolverVirtualNetworkLink gets an existing PrivateResolverVirtualNetworkLink resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPrivateResolverVirtualNetworkLink(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PrivateResolverVirtualNetworkLinkState, opts ...pulumi.ResourceOption) (*PrivateResolverVirtualNetworkLink, error) { + var resource PrivateResolverVirtualNetworkLink + err := ctx.ReadResource("azure-native:network:PrivateResolverVirtualNetworkLink", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PrivateResolverVirtualNetworkLink resources. +type privateResolverVirtualNetworkLinkState struct { +} + +type PrivateResolverVirtualNetworkLinkState struct { +} + +func (PrivateResolverVirtualNetworkLinkState) ElementType() reflect.Type { + return reflect.TypeOf((*privateResolverVirtualNetworkLinkState)(nil)).Elem() +} + +type privateResolverVirtualNetworkLinkArgs struct { + // The name of the DNS forwarding ruleset. + DnsForwardingRulesetName string `pulumi:"dnsForwardingRulesetName"` + // Metadata attached to the virtual network link. + Metadata map[string]string `pulumi:"metadata"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The reference to the virtual network. This cannot be changed after creation. + VirtualNetwork SubResource `pulumi:"virtualNetwork"` + // The name of the virtual network link. + VirtualNetworkLinkName *string `pulumi:"virtualNetworkLinkName"` +} + +// The set of arguments for constructing a PrivateResolverVirtualNetworkLink resource. +type PrivateResolverVirtualNetworkLinkArgs struct { + // The name of the DNS forwarding ruleset. + DnsForwardingRulesetName pulumi.StringInput + // Metadata attached to the virtual network link. + Metadata pulumi.StringMapInput + // The name of the resource group. The name is case insensitive. + ResourceGroupName pulumi.StringInput + // The reference to the virtual network. This cannot be changed after creation. + VirtualNetwork SubResourceInput + // The name of the virtual network link. + VirtualNetworkLinkName pulumi.StringPtrInput +} + +func (PrivateResolverVirtualNetworkLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*privateResolverVirtualNetworkLinkArgs)(nil)).Elem() +} + +type PrivateResolverVirtualNetworkLinkInput interface { + pulumi.Input + + ToPrivateResolverVirtualNetworkLinkOutput() PrivateResolverVirtualNetworkLinkOutput + ToPrivateResolverVirtualNetworkLinkOutputWithContext(ctx context.Context) PrivateResolverVirtualNetworkLinkOutput +} + +func (*PrivateResolverVirtualNetworkLink) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateResolverVirtualNetworkLink)(nil)).Elem() +} + +func (i *PrivateResolverVirtualNetworkLink) ToPrivateResolverVirtualNetworkLinkOutput() PrivateResolverVirtualNetworkLinkOutput { + return i.ToPrivateResolverVirtualNetworkLinkOutputWithContext(context.Background()) +} + +func (i *PrivateResolverVirtualNetworkLink) ToPrivateResolverVirtualNetworkLinkOutputWithContext(ctx context.Context) PrivateResolverVirtualNetworkLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateResolverVirtualNetworkLinkOutput) +} + +type PrivateResolverVirtualNetworkLinkOutput struct{ *pulumi.OutputState } + +func (PrivateResolverVirtualNetworkLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateResolverVirtualNetworkLink)(nil)).Elem() +} + +func (o PrivateResolverVirtualNetworkLinkOutput) ToPrivateResolverVirtualNetworkLinkOutput() PrivateResolverVirtualNetworkLinkOutput { + return o +} + +func (o PrivateResolverVirtualNetworkLinkOutput) ToPrivateResolverVirtualNetworkLinkOutputWithContext(ctx context.Context) PrivateResolverVirtualNetworkLinkOutput { + return o +} + +// ETag of the virtual network link. +func (o PrivateResolverVirtualNetworkLinkOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Metadata attached to the virtual network link. +func (o PrivateResolverVirtualNetworkLinkOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput) +} + +// The name of the resource +func (o PrivateResolverVirtualNetworkLinkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The current provisioning state of the virtual network link. This is a read-only property and any attempt to set this value will be ignored. +func (o PrivateResolverVirtualNetworkLinkOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Metadata pertaining to creation and last modification of the resource. +func (o PrivateResolverVirtualNetworkLinkOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) +} + +// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" +func (o PrivateResolverVirtualNetworkLinkOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +// The reference to the virtual network. This cannot be changed after creation. +func (o PrivateResolverVirtualNetworkLinkOutput) VirtualNetwork() SubResourceResponseOutput { + return o.ApplyT(func(v *PrivateResolverVirtualNetworkLink) SubResourceResponseOutput { return v.VirtualNetwork }).(SubResourceResponseOutput) +} + +func init() { + pulumi.RegisterOutputType(PrivateResolverVirtualNetworkLinkOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateZone.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateZone.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateZone.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateZone.go index c1f7133f..d6941222 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/privateZone.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/privateZone.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a Private DNS zone. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. Prior API version in Azure Native 1.x: 2020-06-01 type PrivateZone struct { pulumi.CustomResourceState @@ -66,6 +67,7 @@ func NewPrivateZone(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateZone err := ctx.RegisterResource("azure-native:network:PrivateZone", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/profile.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/profile.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/profile.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/profile.go index e67117bd..4d6ad41c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/profile.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/profile.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Class representing a Traffic Manager profile. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. Prior API version in Azure Native 1.x: 2018-08-01 type Profile struct { pulumi.CustomResourceState @@ -74,11 +75,15 @@ func NewProfile(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20180801:Profile"), }, + { + Type: pulumi.String("azure-native:network/v20220401:Profile"), + }, { Type: pulumi.String("azure-native:network/v20220401preview:Profile"), }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Profile err := ctx.RegisterResource("azure-native:network:Profile", name, args, &resource, opts...) if err != nil { @@ -131,7 +136,7 @@ type profileArgs struct { ProfileName *string `pulumi:"profileName"` // The status of the Traffic Manager profile. ProfileStatus *string `pulumi:"profileStatus"` - // The name of the resource group containing the Traffic Manager profile. + // The name of the resource group. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` // Resource tags. Tags map[string]string `pulumi:"tags"` @@ -165,7 +170,7 @@ type ProfileArgs struct { ProfileName pulumi.StringPtrInput // The status of the Traffic Manager profile. ProfileStatus pulumi.StringPtrInput - // The name of the resource group containing the Traffic Manager profile. + // The name of the resource group. The name is case insensitive. ResourceGroupName pulumi.StringInput // Resource tags. Tags pulumi.StringMapInput diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPAddress.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPAddress.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPAddress.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPAddress.go index 3617490e..a4dcf27e 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPAddress.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPAddress.go @@ -7,17 +7,20 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Public IP address resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PublicIPAddress struct { pulumi.CustomResourceState // The DDoS protection custom policy associated with the public IP address. DdosSettings DdosSettingsResponsePtrOutput `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption pulumi.StringPtrOutput `pulumi:"deleteOption"` // The FQDN of the DNS record associated with the public IP address. DnsSettings PublicIPAddressDnsSettingsResponsePtrOutput `pulumi:"dnsSettings"` // A unique read-only string that changes whenever the resource is updated. @@ -207,8 +210,21 @@ func NewPublicIPAddress(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PublicIPAddress"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PublicIPAddress"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PublicIPAddress"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PublicIPAddress"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PublicIPAddress"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PublicIPAddress err := ctx.RegisterResource("azure-native:network:PublicIPAddress", name, args, &resource, opts...) if err != nil { @@ -243,6 +259,8 @@ func (PublicIPAddressState) ElementType() reflect.Type { type publicIPAddressArgs struct { // The DDoS protection custom policy associated with the public IP address. DdosSettings *DdosSettings `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption *string `pulumi:"deleteOption"` // The FQDN of the DNS record associated with the public IP address. DnsSettings *PublicIPAddressDnsSettings `pulumi:"dnsSettings"` // The extended location of the public ip address. @@ -287,6 +305,8 @@ type publicIPAddressArgs struct { type PublicIPAddressArgs struct { // The DDoS protection custom policy associated with the public IP address. DdosSettings DdosSettingsPtrInput + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption pulumi.StringPtrInput // The FQDN of the DNS record associated with the public IP address. DnsSettings PublicIPAddressDnsSettingsPtrInput // The extended location of the public ip address. @@ -369,6 +389,11 @@ func (o PublicIPAddressOutput) DdosSettings() DdosSettingsResponsePtrOutput { return o.ApplyT(func(v *PublicIPAddress) DdosSettingsResponsePtrOutput { return v.DdosSettings }).(DdosSettingsResponsePtrOutput) } +// Specify what happens to the public IP address when the VM using it is deleted +func (o PublicIPAddressOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddress) pulumi.StringPtrOutput { return v.DeleteOption }).(pulumi.StringPtrOutput) +} + // The FQDN of the DNS record associated with the public IP address. func (o PublicIPAddressOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { return o.ApplyT(func(v *PublicIPAddress) PublicIPAddressDnsSettingsResponsePtrOutput { return v.DnsSettings }).(PublicIPAddressDnsSettingsResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPPrefix.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPPrefix.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPPrefix.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPPrefix.go index 250a3df2..5ee568a2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/publicIPPrefix.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/publicIPPrefix.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Public IP prefix resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type PublicIPPrefix struct { pulumi.CustomResourceState @@ -149,8 +150,21 @@ func NewPublicIPPrefix(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:PublicIPPrefix"), }, + { + Type: pulumi.String("azure-native:network/v20221101:PublicIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:PublicIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:PublicIPPrefix"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:PublicIPPrefix"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PublicIPPrefix err := ctx.RegisterResource("azure-native:network:PublicIPPrefix", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumi-plugin.json similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumi-plugin.json rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumi-plugin.json diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiEnums.go similarity index 70% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiEnums.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiEnums.go index 5a6aaa93..53e569b0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiEnums.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiEnums.go @@ -30,10 +30,10 @@ const ( type ActionType string const ( - ActionTypeAllow = ActionType("Allow") - ActionTypeBlock = ActionType("Block") - ActionTypeLog = ActionType("Log") - ActionTypeRedirect = ActionType("Redirect") + ActionTypeAnomalyScoring = ActionType("AnomalyScoring") + ActionTypeAllow = ActionType("Allow") + ActionTypeBlock = ActionType("Block") + ActionTypeLog = ActionType("Log") ) // Address prefix type. @@ -52,6 +52,14 @@ const ( AdminRuleKindDefault = AdminRuleKind("Default") ) +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +type AdminState string + +const ( + AdminStateEnabled = AdminState("Enabled") + AdminStateDisabled = AdminState("Disabled") +) + // The allowed type DNS record types for this profile. type AllowedEndpointRecordType string @@ -62,6 +70,22 @@ const ( AllowedEndpointRecordTypeAny = AllowedEndpointRecordType("Any") ) +// If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. +type AlwaysServe string + +const ( + AlwaysServeEnabled = AlwaysServe("Enabled") + AlwaysServeDisabled = AlwaysServe("Disabled") +) + +// Verify client certificate revocation status. +type ApplicationGatewayClientRevocationOptions string + +const ( + ApplicationGatewayClientRevocationOptionsNone = ApplicationGatewayClientRevocationOptions("None") + ApplicationGatewayClientRevocationOptionsOCSP = ApplicationGatewayClientRevocationOptions("OCSP") +) + // Cookie based affinity. type ApplicationGatewayCookieBasedAffinity string @@ -70,12 +94,19 @@ const ( ApplicationGatewayCookieBasedAffinityDisabled = ApplicationGatewayCookieBasedAffinity("Disabled") ) -// Status code of the application gateway customer error. +// Status code of the application gateway custom error. type ApplicationGatewayCustomErrorStatusCode string const ( + ApplicationGatewayCustomErrorStatusCodeHttpStatus400 = ApplicationGatewayCustomErrorStatusCode("HttpStatus400") ApplicationGatewayCustomErrorStatusCodeHttpStatus403 = ApplicationGatewayCustomErrorStatusCode("HttpStatus403") + ApplicationGatewayCustomErrorStatusCodeHttpStatus404 = ApplicationGatewayCustomErrorStatusCode("HttpStatus404") + ApplicationGatewayCustomErrorStatusCodeHttpStatus405 = ApplicationGatewayCustomErrorStatusCode("HttpStatus405") + ApplicationGatewayCustomErrorStatusCodeHttpStatus408 = ApplicationGatewayCustomErrorStatusCode("HttpStatus408") + ApplicationGatewayCustomErrorStatusCodeHttpStatus500 = ApplicationGatewayCustomErrorStatusCode("HttpStatus500") ApplicationGatewayCustomErrorStatusCodeHttpStatus502 = ApplicationGatewayCustomErrorStatusCode("HttpStatus502") + ApplicationGatewayCustomErrorStatusCodeHttpStatus503 = ApplicationGatewayCustomErrorStatusCode("HttpStatus503") + ApplicationGatewayCustomErrorStatusCodeHttpStatus504 = ApplicationGatewayCustomErrorStatusCode("HttpStatus504") ) // Web application firewall mode. @@ -86,12 +117,40 @@ const ( ApplicationGatewayFirewallModePrevention = ApplicationGatewayFirewallMode("Prevention") ) +// Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. +type ApplicationGatewayFirewallRateLimitDuration string + +const ( + ApplicationGatewayFirewallRateLimitDurationOneMin = ApplicationGatewayFirewallRateLimitDuration("OneMin") + ApplicationGatewayFirewallRateLimitDurationFiveMins = ApplicationGatewayFirewallRateLimitDuration("FiveMins") +) + +// User Session clause variable. +type ApplicationGatewayFirewallUserSessionVariable string + +const ( + ApplicationGatewayFirewallUserSessionVariableClientAddr = ApplicationGatewayFirewallUserSessionVariable("ClientAddr") + ApplicationGatewayFirewallUserSessionVariableGeoLocation = ApplicationGatewayFirewallUserSessionVariable("GeoLocation") + ApplicationGatewayFirewallUserSessionVariableNone = ApplicationGatewayFirewallUserSessionVariable("None") +) + +// Load Distribution Targets resource of an application gateway. +type ApplicationGatewayLoadDistributionAlgorithm string + +const ( + ApplicationGatewayLoadDistributionAlgorithmRoundRobin = ApplicationGatewayLoadDistributionAlgorithm("RoundRobin") + ApplicationGatewayLoadDistributionAlgorithmLeastConnections = ApplicationGatewayLoadDistributionAlgorithm("LeastConnections") + ApplicationGatewayLoadDistributionAlgorithmIpHash = ApplicationGatewayLoadDistributionAlgorithm("IpHash") +) + // The protocol used for the probe. type ApplicationGatewayProtocol string const ( ApplicationGatewayProtocolHttp = ApplicationGatewayProtocol("Http") ApplicationGatewayProtocolHttps = ApplicationGatewayProtocol("Https") + ApplicationGatewayProtocolTcp = ApplicationGatewayProtocol("Tcp") + ApplicationGatewayProtocolTls = ApplicationGatewayProtocol("Tls") ) // HTTP redirection type. @@ -166,6 +225,8 @@ const ( ApplicationGatewaySslPolicyNameAppGwSslPolicy20150501 = ApplicationGatewaySslPolicyName("AppGwSslPolicy20150501") ApplicationGatewaySslPolicyNameAppGwSslPolicy20170401 = ApplicationGatewaySslPolicyName("AppGwSslPolicy20170401") ApplicationGatewaySslPolicyNameAppGwSslPolicy20170401S = ApplicationGatewaySslPolicyName("AppGwSslPolicy20170401S") + ApplicationGatewaySslPolicyNameAppGwSslPolicy20220101 = ApplicationGatewaySslPolicyName("AppGwSslPolicy20220101") + ApplicationGatewaySslPolicyNameAppGwSslPolicy20220101S = ApplicationGatewaySslPolicyName("AppGwSslPolicy20220101S") ) // Type of Ssl Policy. @@ -174,6 +235,7 @@ type ApplicationGatewaySslPolicyType string const ( ApplicationGatewaySslPolicyTypePredefined = ApplicationGatewaySslPolicyType("Predefined") ApplicationGatewaySslPolicyTypeCustom = ApplicationGatewaySslPolicyType("Custom") + ApplicationGatewaySslPolicyTypeCustomV2 = ApplicationGatewaySslPolicyType("CustomV2") ) // Minimum version of Ssl protocol to be supported on application gateway. @@ -183,6 +245,7 @@ const ( ApplicationGatewaySslProtocol_TLSv1_0 = ApplicationGatewaySslProtocol("TLSv1_0") ApplicationGatewaySslProtocol_TLSv1_1 = ApplicationGatewaySslProtocol("TLSv1_1") ApplicationGatewaySslProtocol_TLSv1_2 = ApplicationGatewaySslProtocol("TLSv1_2") + ApplicationGatewaySslProtocol_TLSv1_3 = ApplicationGatewaySslProtocol("TLSv1_3") ) // Tier of an application gateway. @@ -212,6 +275,14 @@ const ( AuthorizationUseStatusInUse = AuthorizationUseStatus("InUse") ) +// The operation mode for automatically learning private ranges to not be SNAT +type AutoLearnPrivateRangesMode string + +const ( + AutoLearnPrivateRangesModeEnabled = AutoLearnPrivateRangesMode("Enabled") + AutoLearnPrivateRangesModeDisabled = AutoLearnPrivateRangesMode("Disabled") +) + // Protocol type. type AzureFirewallApplicationRuleProtocolType string @@ -261,6 +332,7 @@ type AzureFirewallSkuTier string const ( AzureFirewallSkuTierStandard = AzureFirewallSkuTier("Standard") AzureFirewallSkuTierPremium = AzureFirewallSkuTier("Premium") + AzureFirewallSkuTierBasic = AzureFirewallSkuTier("Basic") ) // The operation mode for Threat Intelligence. @@ -280,16 +352,26 @@ const ( BackendEnabledStateDisabled = BackendEnabledState("Disabled") ) +// The name of this Bastion Host. +type BastionHostSkuName string + +const ( + BastionHostSkuNameBasic = BastionHostSkuName("Basic") + BastionHostSkuNameStandard = BastionHostSkuName("Standard") +) + // The commissioned state of the Custom IP Prefix. type CommissionedState string const ( - CommissionedStateProvisioning = CommissionedState("Provisioning") - CommissionedStateProvisioned = CommissionedState("Provisioned") - CommissionedStateCommissioning = CommissionedState("Commissioning") - CommissionedStateCommissioned = CommissionedState("Commissioned") - CommissionedStateDecommissioning = CommissionedState("Decommissioning") - CommissionedStateDeprovisioning = CommissionedState("Deprovisioning") + CommissionedStateProvisioning = CommissionedState("Provisioning") + CommissionedStateProvisioned = CommissionedState("Provisioned") + CommissionedStateCommissioning = CommissionedState("Commissioning") + CommissionedStateCommissionedNoInternetAdvertise = CommissionedState("CommissionedNoInternetAdvertise") + CommissionedStateCommissioned = CommissionedState("Commissioned") + CommissionedStateDecommissioning = CommissionedState("Decommissioning") + CommissionedStateDeprovisioning = CommissionedState("Deprovisioning") + CommissionedStateDeprovisioned = CommissionedState("Deprovisioned") ) // Configuration Deployment Type. @@ -297,7 +379,6 @@ type ConfigurationType string const ( ConfigurationTypeSecurityAdmin = ConfigurationType("SecurityAdmin") - ConfigurationTypeSecurityUser = ConfigurationType("SecurityUser") ConfigurationTypeConnectivity = ConfigurationType("Connectivity") ) @@ -344,39 +425,30 @@ const ( CoverageLevelFull = CoverageLevel("Full") ) -// Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. -type CustomRuleEnabledState string - -const ( - CustomRuleEnabledStateDisabled = CustomRuleEnabledState("Disabled") - CustomRuleEnabledStateEnabled = CustomRuleEnabledState("Enabled") -) - -// The protocol for which the DDoS protection policy is being customized. -type DdosCustomPolicyProtocol string +// Type of custom IP prefix. Should be Singular, Parent, or Child. +type CustomIpPrefixType string const ( - DdosCustomPolicyProtocolTcp = DdosCustomPolicyProtocol("Tcp") - DdosCustomPolicyProtocolUdp = DdosCustomPolicyProtocol("Udp") - DdosCustomPolicyProtocolSyn = DdosCustomPolicyProtocol("Syn") + CustomIpPrefixTypeSingular = CustomIpPrefixType("Singular") + CustomIpPrefixTypeParent = CustomIpPrefixType("Parent") + CustomIpPrefixTypeChild = CustomIpPrefixType("Child") ) -// The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. -type DdosCustomPolicyTriggerSensitivityOverride string +// Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. +type CustomRuleEnabledState string const ( - DdosCustomPolicyTriggerSensitivityOverrideRelaxed = DdosCustomPolicyTriggerSensitivityOverride("Relaxed") - DdosCustomPolicyTriggerSensitivityOverrideLow = DdosCustomPolicyTriggerSensitivityOverride("Low") - DdosCustomPolicyTriggerSensitivityOverrideDefault = DdosCustomPolicyTriggerSensitivityOverride("Default") - DdosCustomPolicyTriggerSensitivityOverrideHigh = DdosCustomPolicyTriggerSensitivityOverride("High") + CustomRuleEnabledStateDisabled = CustomRuleEnabledState("Disabled") + CustomRuleEnabledStateEnabled = CustomRuleEnabledState("Enabled") ) -// The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. -type DdosSettingsProtectionCoverage string +// The DDoS protection mode of the public IP +type DdosSettingsProtectionMode string const ( - DdosSettingsProtectionCoverageBasic = DdosSettingsProtectionCoverage("Basic") - DdosSettingsProtectionCoverageStandard = DdosSettingsProtectionCoverage("Standard") + DdosSettingsProtectionModeVirtualNetworkInherited = DdosSettingsProtectionMode("VirtualNetworkInherited") + DdosSettingsProtectionModeEnabled = DdosSettingsProtectionMode("Enabled") + DdosSettingsProtectionModeDisabled = DdosSettingsProtectionMode("Disabled") ) // Flag if need to delete existing network security groups. @@ -395,6 +467,14 @@ const ( DeleteExistingPeeringTrue = DeleteExistingPeering("True") ) +// Specify what happens to the public IP address when the VM using it is deleted +type DeleteOptions string + +const ( + DeleteOptionsDelete = DeleteOptions("Delete") + DeleteOptionsDetach = DeleteOptions("Detach") +) + // Destination port behavior. type DestinationPortBehavior string @@ -435,6 +515,7 @@ const ( EndpointMonitorStatusDisabled = EndpointMonitorStatus("Disabled") EndpointMonitorStatusInactive = EndpointMonitorStatus("Inactive") EndpointMonitorStatusStopped = EndpointMonitorStatus("Stopped") + EndpointMonitorStatusUnmonitored = EndpointMonitorStatus("Unmonitored") ) // The status of the endpoint. If the endpoint is Enabled, it is probed for endpoint health and is included in the traffic routing method. @@ -455,6 +536,8 @@ const ( EndpointTypeEnumExternalAddress = EndpointTypeEnum("ExternalAddress") EndpointTypeEnumMMAWorkspaceMachine = EndpointTypeEnum("MMAWorkspaceMachine") EndpointTypeEnumMMAWorkspaceNetwork = EndpointTypeEnum("MMAWorkspaceNetwork") + EndpointTypeEnumAzureArcVM = EndpointTypeEnum("AzureArcVM") + EndpointTypeEnumAzureVMSS = EndpointTypeEnum("AzureVMSS") ) // Whether to enforce certificate name check on HTTPS requests to all backend pools. No effect on non-HTTPS requests. @@ -534,6 +617,14 @@ const ( ExpressRoutePeeringTypeMicrosoftPeering = ExpressRoutePeeringType("MicrosoftPeering") ) +// The billing type of the ExpressRoutePort resource. +type ExpressRoutePortsBillingType string + +const ( + ExpressRoutePortsBillingTypeMeteredData = ExpressRoutePortsBillingType("MeteredData") + ExpressRoutePortsBillingTypeUnlimitedData = ExpressRoutePortsBillingType("UnlimitedData") +) + // Encapsulation method on physical ports. type ExpressRoutePortsEncapsulation string @@ -673,6 +764,7 @@ type FirewallPolicySkuTier string const ( FirewallPolicySkuTierStandard = FirewallPolicySkuTier("Standard") FirewallPolicySkuTierPremium = FirewallPolicySkuTier("Premium") + FirewallPolicySkuTierBasic = FirewallPolicySkuTier("Basic") ) // The file type of flow log. @@ -767,6 +859,39 @@ const ( FrontDoorRedirectTypePermanentRedirect = FrontDoorRedirectType("PermanentRedirect") ) +// Traffic type of gateway load balancer tunnel interface. +type GatewayLoadBalancerTunnelInterfaceType string + +const ( + GatewayLoadBalancerTunnelInterfaceTypeNone = GatewayLoadBalancerTunnelInterfaceType("None") + GatewayLoadBalancerTunnelInterfaceTypeInternal = GatewayLoadBalancerTunnelInterfaceType("Internal") + GatewayLoadBalancerTunnelInterfaceTypeExternal = GatewayLoadBalancerTunnelInterfaceType("External") +) + +// Protocol of gateway load balancer tunnel interface. +type GatewayLoadBalancerTunnelProtocol string + +const ( + GatewayLoadBalancerTunnelProtocolNone = GatewayLoadBalancerTunnelProtocol("None") + GatewayLoadBalancerTunnelProtocolNative = GatewayLoadBalancerTunnelProtocol("Native") + GatewayLoadBalancerTunnelProtocolVXLAN = GatewayLoadBalancerTunnelProtocol("VXLAN") +) + +// The Geo for CIDR advertising. Should be an Geo code. +type Geo string + +const ( + GeoGLOBAL = Geo("GLOBAL") + GeoAFRI = Geo("AFRI") + GeoAPAC = Geo("APAC") + GeoEURO = Geo("EURO") + GeoLATAM = Geo("LATAM") + GeoNAM = Geo("NAM") + GeoME = Geo("ME") + GeoOCEANIA = Geo("OCEANIA") + GeoAQ = Geo("AQ") +) + // Group connectivity type. type GroupConnectivity string @@ -800,6 +925,15 @@ const ( HealthProbeEnabledDisabled = HealthProbeEnabled("Disabled") ) +// The hubRoutingPreference of this VirtualHub. +type HubRoutingPreference string + +const ( + HubRoutingPreferenceExpressRoute = HubRoutingPreference("ExpressRoute") + HubRoutingPreferenceVpnGateway = HubRoutingPreference("VpnGateway") + HubRoutingPreferenceASPath = HubRoutingPreference("ASPath") +) + // The private IP address allocation method. type IPAllocationMethod string @@ -892,6 +1026,15 @@ const ( IsGlobalTrue = IsGlobal("True") ) +// A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. +type LoadBalancerBackendAddressAdminState string + +const ( + LoadBalancerBackendAddressAdminStateNone = LoadBalancerBackendAddressAdminState("None") + LoadBalancerBackendAddressAdminStateUp = LoadBalancerBackendAddressAdminState("Up") + LoadBalancerBackendAddressAdminStateDown = LoadBalancerBackendAddressAdminState("Down") +) + // The protocol for the outbound rule in load balancer. type LoadBalancerOutboundRuleProtocol string @@ -907,6 +1050,7 @@ type LoadBalancerSkuName string const ( LoadBalancerSkuNameBasic = LoadBalancerSkuName("Basic") LoadBalancerSkuNameStandard = LoadBalancerSkuName("Standard") + LoadBalancerSkuNameGateway = LoadBalancerSkuName("Gateway") ) // Tier of a load balancer SKU. @@ -931,6 +1075,7 @@ type ManagedRuleEnabledState string const ( ManagedRuleEnabledStateDisabled = ManagedRuleEnabledState("Disabled") + ManagedRuleEnabledStateEnabled = ManagedRuleEnabledState("Enabled") ) // The variable type to be excluded. @@ -955,7 +1100,7 @@ const ( ManagedRuleExclusionSelectorMatchOperatorEqualsAny = ManagedRuleExclusionSelectorMatchOperator("EqualsAny") ) -// Defines the action to take when a managed rule set score threshold is met. +// Defines the rule set action. type ManagedRuleSetActionType string const ( @@ -988,6 +1133,36 @@ const ( NatGatewaySkuNameStandard = NatGatewaySkuName("Standard") ) +// Network intent policy based services. +type NetworkIntentPolicyBasedService string + +const ( + NetworkIntentPolicyBasedServiceNone = NetworkIntentPolicyBasedService("None") + NetworkIntentPolicyBasedServiceAll = NetworkIntentPolicyBasedService("All") + NetworkIntentPolicyBasedServiceAllowRulesOnly = NetworkIntentPolicyBasedService("AllowRulesOnly") +) + +// Auxiliary mode of Network Interface resource. +type NetworkInterfaceAuxiliaryMode string + +const ( + NetworkInterfaceAuxiliaryModeNone = NetworkInterfaceAuxiliaryMode("None") + NetworkInterfaceAuxiliaryModeMaxConnections = NetworkInterfaceAuxiliaryMode("MaxConnections") + NetworkInterfaceAuxiliaryModeFloating = NetworkInterfaceAuxiliaryMode("Floating") + NetworkInterfaceAuxiliaryModeAcceleratedConnections = NetworkInterfaceAuxiliaryMode("AcceleratedConnections") +) + +// Auxiliary sku of Network Interface resource. +type NetworkInterfaceAuxiliarySku string + +const ( + NetworkInterfaceAuxiliarySkuNone = NetworkInterfaceAuxiliarySku("None") + NetworkInterfaceAuxiliarySkuA1 = NetworkInterfaceAuxiliarySku("A1") + NetworkInterfaceAuxiliarySkuA2 = NetworkInterfaceAuxiliarySku("A2") + NetworkInterfaceAuxiliarySkuA4 = NetworkInterfaceAuxiliarySku("A4") + NetworkInterfaceAuxiliarySkuA8 = NetworkInterfaceAuxiliarySku("A8") +) + // Migration phase of Network Interface resource. type NetworkInterfaceMigrationPhase string @@ -1007,6 +1182,15 @@ const ( NetworkInterfaceNicTypeElastic = NetworkInterfaceNicType("Elastic") ) +// Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. +type NextStep string + +const ( + NextStepUnknown = NextStep("Unknown") + NextStepContinue = NextStep("Continue") + NextStepTerminate = NextStep("Terminate") +) + // Comparison type to use for matching with the variable value. type Operator string @@ -1036,9 +1220,15 @@ const ( type OwaspCrsExclusionEntryMatchVariable string const ( - OwaspCrsExclusionEntryMatchVariableRequestHeaderNames = OwaspCrsExclusionEntryMatchVariable("RequestHeaderNames") - OwaspCrsExclusionEntryMatchVariableRequestCookieNames = OwaspCrsExclusionEntryMatchVariable("RequestCookieNames") - OwaspCrsExclusionEntryMatchVariableRequestArgNames = OwaspCrsExclusionEntryMatchVariable("RequestArgNames") + OwaspCrsExclusionEntryMatchVariableRequestHeaderNames = OwaspCrsExclusionEntryMatchVariable("RequestHeaderNames") + OwaspCrsExclusionEntryMatchVariableRequestCookieNames = OwaspCrsExclusionEntryMatchVariable("RequestCookieNames") + OwaspCrsExclusionEntryMatchVariableRequestArgNames = OwaspCrsExclusionEntryMatchVariable("RequestArgNames") + OwaspCrsExclusionEntryMatchVariableRequestHeaderKeys = OwaspCrsExclusionEntryMatchVariable("RequestHeaderKeys") + OwaspCrsExclusionEntryMatchVariableRequestHeaderValues = OwaspCrsExclusionEntryMatchVariable("RequestHeaderValues") + OwaspCrsExclusionEntryMatchVariableRequestCookieKeys = OwaspCrsExclusionEntryMatchVariable("RequestCookieKeys") + OwaspCrsExclusionEntryMatchVariableRequestCookieValues = OwaspCrsExclusionEntryMatchVariable("RequestCookieValues") + OwaspCrsExclusionEntryMatchVariableRequestArgKeys = OwaspCrsExclusionEntryMatchVariable("RequestArgKeys") + OwaspCrsExclusionEntryMatchVariableRequestArgValues = OwaspCrsExclusionEntryMatchVariable("RequestArgValues") ) // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. @@ -1052,6 +1242,171 @@ const ( OwaspCrsExclusionEntrySelectorMatchOperatorEqualsAny = OwaspCrsExclusionEntrySelectorMatchOperator("EqualsAny") ) +// Target type of the resource provided. +type PacketCaptureTargetType string + +const ( + PacketCaptureTargetTypeAzureVM = PacketCaptureTargetType("AzureVM") + PacketCaptureTargetTypeAzureVMSS = PacketCaptureTargetType("AzureVMSS") +) + +func (PacketCaptureTargetType) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureTargetType)(nil)).Elem() +} + +func (e PacketCaptureTargetType) ToPacketCaptureTargetTypeOutput() PacketCaptureTargetTypeOutput { + return pulumi.ToOutput(e).(PacketCaptureTargetTypeOutput) +} + +func (e PacketCaptureTargetType) ToPacketCaptureTargetTypeOutputWithContext(ctx context.Context) PacketCaptureTargetTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(PacketCaptureTargetTypeOutput) +} + +func (e PacketCaptureTargetType) ToPacketCaptureTargetTypePtrOutput() PacketCaptureTargetTypePtrOutput { + return e.ToPacketCaptureTargetTypePtrOutputWithContext(context.Background()) +} + +func (e PacketCaptureTargetType) ToPacketCaptureTargetTypePtrOutputWithContext(ctx context.Context) PacketCaptureTargetTypePtrOutput { + return PacketCaptureTargetType(e).ToPacketCaptureTargetTypeOutputWithContext(ctx).ToPacketCaptureTargetTypePtrOutputWithContext(ctx) +} + +func (e PacketCaptureTargetType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PacketCaptureTargetType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PacketCaptureTargetType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e PacketCaptureTargetType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type PacketCaptureTargetTypeOutput struct{ *pulumi.OutputState } + +func (PacketCaptureTargetTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureTargetType)(nil)).Elem() +} + +func (o PacketCaptureTargetTypeOutput) ToPacketCaptureTargetTypeOutput() PacketCaptureTargetTypeOutput { + return o +} + +func (o PacketCaptureTargetTypeOutput) ToPacketCaptureTargetTypeOutputWithContext(ctx context.Context) PacketCaptureTargetTypeOutput { + return o +} + +func (o PacketCaptureTargetTypeOutput) ToPacketCaptureTargetTypePtrOutput() PacketCaptureTargetTypePtrOutput { + return o.ToPacketCaptureTargetTypePtrOutputWithContext(context.Background()) +} + +func (o PacketCaptureTargetTypeOutput) ToPacketCaptureTargetTypePtrOutputWithContext(ctx context.Context) PacketCaptureTargetTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketCaptureTargetType) *PacketCaptureTargetType { + return &v + }).(PacketCaptureTargetTypePtrOutput) +} + +func (o PacketCaptureTargetTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o PacketCaptureTargetTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PacketCaptureTargetType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o PacketCaptureTargetTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PacketCaptureTargetTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PacketCaptureTargetType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type PacketCaptureTargetTypePtrOutput struct{ *pulumi.OutputState } + +func (PacketCaptureTargetTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PacketCaptureTargetType)(nil)).Elem() +} + +func (o PacketCaptureTargetTypePtrOutput) ToPacketCaptureTargetTypePtrOutput() PacketCaptureTargetTypePtrOutput { + return o +} + +func (o PacketCaptureTargetTypePtrOutput) ToPacketCaptureTargetTypePtrOutputWithContext(ctx context.Context) PacketCaptureTargetTypePtrOutput { + return o +} + +func (o PacketCaptureTargetTypePtrOutput) Elem() PacketCaptureTargetTypeOutput { + return o.ApplyT(func(v *PacketCaptureTargetType) PacketCaptureTargetType { + if v != nil { + return *v + } + var ret PacketCaptureTargetType + return ret + }).(PacketCaptureTargetTypeOutput) +} + +func (o PacketCaptureTargetTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PacketCaptureTargetTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *PacketCaptureTargetType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// PacketCaptureTargetTypeInput is an input type that accepts PacketCaptureTargetTypeArgs and PacketCaptureTargetTypeOutput values. +// You can construct a concrete instance of `PacketCaptureTargetTypeInput` via: +// +// PacketCaptureTargetTypeArgs{...} +type PacketCaptureTargetTypeInput interface { + pulumi.Input + + ToPacketCaptureTargetTypeOutput() PacketCaptureTargetTypeOutput + ToPacketCaptureTargetTypeOutputWithContext(context.Context) PacketCaptureTargetTypeOutput +} + +var packetCaptureTargetTypePtrType = reflect.TypeOf((**PacketCaptureTargetType)(nil)).Elem() + +type PacketCaptureTargetTypePtrInput interface { + pulumi.Input + + ToPacketCaptureTargetTypePtrOutput() PacketCaptureTargetTypePtrOutput + ToPacketCaptureTargetTypePtrOutputWithContext(context.Context) PacketCaptureTargetTypePtrOutput +} + +type packetCaptureTargetTypePtr string + +func PacketCaptureTargetTypePtr(v string) PacketCaptureTargetTypePtrInput { + return (*packetCaptureTargetTypePtr)(&v) +} + +func (*packetCaptureTargetTypePtr) ElementType() reflect.Type { + return packetCaptureTargetTypePtrType +} + +func (in *packetCaptureTargetTypePtr) ToPacketCaptureTargetTypePtrOutput() PacketCaptureTargetTypePtrOutput { + return pulumi.ToOutput(in).(PacketCaptureTargetTypePtrOutput) +} + +func (in *packetCaptureTargetTypePtr) ToPacketCaptureTargetTypePtrOutputWithContext(ctx context.Context) PacketCaptureTargetTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(PacketCaptureTargetTypePtrOutput) +} + // Protocol to be filtered on. type PcProtocol string @@ -1108,6 +1463,15 @@ const ( PreferredIPVersionIPv6 = PreferredIPVersion("IPv6") ) +// The preferred gateway to route on-prem traffic +type PreferredRoutingGateway string + +const ( + PreferredRoutingGatewayExpressRoute = PreferredRoutingGateway("ExpressRoute") + PreferredRoutingGatewayVpnGateway = PreferredRoutingGateway("VpnGateway") + PreferredRoutingGatewayNone = PreferredRoutingGateway("None") +) + // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. type ProbeProtocol string @@ -1193,6 +1557,173 @@ const ( PublicIPPrefixSkuTierGlobal = PublicIPPrefixSkuTier("Global") ) +// The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. +type PublicIpAddressDnsSettingsDomainNameLabelScope string + +const ( + PublicIpAddressDnsSettingsDomainNameLabelScopeTenantReuse = PublicIpAddressDnsSettingsDomainNameLabelScope("TenantReuse") + PublicIpAddressDnsSettingsDomainNameLabelScopeSubscriptionReuse = PublicIpAddressDnsSettingsDomainNameLabelScope("SubscriptionReuse") + PublicIpAddressDnsSettingsDomainNameLabelScopeResourceGroupReuse = PublicIpAddressDnsSettingsDomainNameLabelScope("ResourceGroupReuse") + PublicIpAddressDnsSettingsDomainNameLabelScopeNoReuse = PublicIpAddressDnsSettingsDomainNameLabelScope("NoReuse") +) + +func (PublicIpAddressDnsSettingsDomainNameLabelScope) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIpAddressDnsSettingsDomainNameLabelScope)(nil)).Elem() +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutput() PublicIpAddressDnsSettingsDomainNameLabelScopeOutput { + return pulumi.ToOutput(e).(PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopeOutput { + return pulumi.ToOutputWithContext(ctx, e).(PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return e.ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(context.Background()) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return PublicIpAddressDnsSettingsDomainNameLabelScope(e).ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutputWithContext(ctx).ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(ctx) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e PublicIpAddressDnsSettingsDomainNameLabelScope) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type PublicIpAddressDnsSettingsDomainNameLabelScopeOutput struct{ *pulumi.OutputState } + +func (PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIpAddressDnsSettingsDomainNameLabelScope)(nil)).Elem() +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutput() PublicIpAddressDnsSettingsDomainNameLabelScopeOutput { + return o +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopeOutput { + return o +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o.ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(context.Background()) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIpAddressDnsSettingsDomainNameLabelScope) *PublicIpAddressDnsSettingsDomainNameLabelScope { + return &v + }).(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PublicIpAddressDnsSettingsDomainNameLabelScope) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PublicIpAddressDnsSettingsDomainNameLabelScope) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput struct{ *pulumi.OutputState } + +func (PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIpAddressDnsSettingsDomainNameLabelScope)(nil)).Elem() +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) Elem() PublicIpAddressDnsSettingsDomainNameLabelScopeOutput { + return o.ApplyT(func(v *PublicIpAddressDnsSettingsDomainNameLabelScope) PublicIpAddressDnsSettingsDomainNameLabelScope { + if v != nil { + return *v + } + var ret PublicIpAddressDnsSettingsDomainNameLabelScope + return ret + }).(PublicIpAddressDnsSettingsDomainNameLabelScopeOutput) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *PublicIpAddressDnsSettingsDomainNameLabelScope) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// PublicIpAddressDnsSettingsDomainNameLabelScopeInput is an input type that accepts PublicIpAddressDnsSettingsDomainNameLabelScopeArgs and PublicIpAddressDnsSettingsDomainNameLabelScopeOutput values. +// You can construct a concrete instance of `PublicIpAddressDnsSettingsDomainNameLabelScopeInput` via: +// +// PublicIpAddressDnsSettingsDomainNameLabelScopeArgs{...} +type PublicIpAddressDnsSettingsDomainNameLabelScopeInput interface { + pulumi.Input + + ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutput() PublicIpAddressDnsSettingsDomainNameLabelScopeOutput + ToPublicIpAddressDnsSettingsDomainNameLabelScopeOutputWithContext(context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopeOutput +} + +var publicIpAddressDnsSettingsDomainNameLabelScopePtrType = reflect.TypeOf((**PublicIpAddressDnsSettingsDomainNameLabelScope)(nil)).Elem() + +type PublicIpAddressDnsSettingsDomainNameLabelScopePtrInput interface { + pulumi.Input + + ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput + ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput +} + +type publicIpAddressDnsSettingsDomainNameLabelScopePtr string + +func PublicIpAddressDnsSettingsDomainNameLabelScopePtr(v string) PublicIpAddressDnsSettingsDomainNameLabelScopePtrInput { + return (*publicIpAddressDnsSettingsDomainNameLabelScopePtr)(&v) +} + +func (*publicIpAddressDnsSettingsDomainNameLabelScopePtr) ElementType() reflect.Type { + return publicIpAddressDnsSettingsDomainNameLabelScopePtrType +} + +func (in *publicIpAddressDnsSettingsDomainNameLabelScopePtr) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return pulumi.ToOutput(in).(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) +} + +func (in *publicIpAddressDnsSettingsDomainNameLabelScopePtr) ToPublicIpAddressDnsSettingsDomainNameLabelScopePtrOutputWithContext(ctx context.Context) PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) +} + // The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. type ResourceIdentityType string @@ -1367,6 +1898,28 @@ const ( RouteFilterRuleTypeEnumCommunity = RouteFilterRuleTypeEnum("Community") ) +// Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' +type RouteMapActionType string + +const ( + RouteMapActionTypeUnknown = RouteMapActionType("Unknown") + RouteMapActionTypeRemove = RouteMapActionType("Remove") + RouteMapActionTypeAdd = RouteMapActionType("Add") + RouteMapActionTypeReplace = RouteMapActionType("Replace") + RouteMapActionTypeDrop = RouteMapActionType("Drop") +) + +// Match condition to apply RouteMap rules. +type RouteMapMatchCondition string + +const ( + RouteMapMatchConditionUnknown = RouteMapMatchCondition("Unknown") + RouteMapMatchConditionContains = RouteMapMatchCondition("Contains") + RouteMapMatchConditionEquals = RouteMapMatchCondition("Equals") + RouteMapMatchConditionNotContains = RouteMapMatchCondition("NotContains") + RouteMapMatchConditionNotEquals = RouteMapMatchCondition("NotEquals") +) + // The type of Azure hop the packet should be sent to. type RouteNextHopType string @@ -1429,6 +1982,34 @@ const ( RulesEngineOperatorEndsWith = RulesEngineOperator("EndsWith") ) +// When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. +type ScrubbingRuleEntryMatchOperator string + +const ( + ScrubbingRuleEntryMatchOperatorEquals = ScrubbingRuleEntryMatchOperator("Equals") + ScrubbingRuleEntryMatchOperatorEqualsAny = ScrubbingRuleEntryMatchOperator("EqualsAny") +) + +// The variable to be scrubbed from the logs. +type ScrubbingRuleEntryMatchVariable string + +const ( + ScrubbingRuleEntryMatchVariableRequestHeaderNames = ScrubbingRuleEntryMatchVariable("RequestHeaderNames") + ScrubbingRuleEntryMatchVariableRequestCookieNames = ScrubbingRuleEntryMatchVariable("RequestCookieNames") + ScrubbingRuleEntryMatchVariableRequestArgNames = ScrubbingRuleEntryMatchVariable("RequestArgNames") + ScrubbingRuleEntryMatchVariableRequestPostArgNames = ScrubbingRuleEntryMatchVariable("RequestPostArgNames") + ScrubbingRuleEntryMatchVariableRequestJSONArgNames = ScrubbingRuleEntryMatchVariable("RequestJSONArgNames") + ScrubbingRuleEntryMatchVariableRequestIPAddress = ScrubbingRuleEntryMatchVariable("RequestIPAddress") +) + +// Defines the state of log scrubbing rule. Default value is Enabled. +type ScrubbingRuleEntryState string + +const ( + ScrubbingRuleEntryStateEnabled = ScrubbingRuleEntryState("Enabled") + ScrubbingRuleEntryStateDisabled = ScrubbingRuleEntryState("Disabled") +) + // Indicates the access allowed for this particular rule type SecurityConfigurationRuleAccess string @@ -1495,14 +2076,6 @@ const ( SecurityRuleProtocolAh = SecurityRuleProtocol("Ah") ) -// Security Type. -type SecurityType string - -const ( - SecurityTypeAdminPolicy = SecurityType("AdminPolicy") - SecurityTypeUserPolicy = SecurityType("UserPolicy") -) - // The ServiceProviderProvisioningState state of the resource. type ServiceProviderProvisioningState string @@ -1607,6 +2180,14 @@ const ( UserRuleKindDefault = UserRuleKind("Default") ) +// If the encrypted VNet allows VM that does not support encryption +type VirtualNetworkEncryptionEnforcement string + +const ( + VirtualNetworkEncryptionEnforcementDropUnencrypted = VirtualNetworkEncryptionEnforcement("DropUnencrypted") + VirtualNetworkEncryptionEnforcementAllowUnencrypted = VirtualNetworkEncryptionEnforcement("AllowUnencrypted") +) + // The connection mode for this connection. type VirtualNetworkGatewayConnectionMode string @@ -1689,6 +2270,16 @@ const ( VirtualNetworkGatewayTypeEnumLocalGateway = VirtualNetworkGatewayTypeEnum("LocalGateway") ) +// The peering sync status of the virtual network peering. +type VirtualNetworkPeeringLevel string + +const ( + VirtualNetworkPeeringLevelFullyInSync = VirtualNetworkPeeringLevel("FullyInSync") + VirtualNetworkPeeringLevelRemoteNotInSync = VirtualNetworkPeeringLevel("RemoteNotInSync") + VirtualNetworkPeeringLevelLocalNotInSync = VirtualNetworkPeeringLevel("LocalNotInSync") + VirtualNetworkPeeringLevelLocalAndRemoteNotInSync = VirtualNetworkPeeringLevel("LocalAndRemoteNotInSync") +) + // The status of the virtual network peering. type VirtualNetworkPeeringStateEnum string @@ -1714,6 +2305,14 @@ const ( VirtualNetworkPrivateLinkServiceNetworkPoliciesDisabled = VirtualNetworkPrivateLinkServiceNetworkPolicies("Disabled") ) +// Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. +type VnetLocalRouteOverrideCriteria string + +const ( + VnetLocalRouteOverrideCriteriaContains = VnetLocalRouteOverrideCriteria("Contains") + VnetLocalRouteOverrideCriteriaEqual = VnetLocalRouteOverrideCriteria("Equal") +) + // VPN authentication types enabled for the VpnServerConfiguration. type VpnAuthenticationType string @@ -1845,20 +2444,39 @@ const ( WebApplicationFirewallOperatorEndsWith = WebApplicationFirewallOperator("EndsWith") WebApplicationFirewallOperatorRegex = WebApplicationFirewallOperator("Regex") WebApplicationFirewallOperatorGeoMatch = WebApplicationFirewallOperator("GeoMatch") + WebApplicationFirewallOperatorAny = WebApplicationFirewallOperator("Any") ) // The rule type. type WebApplicationFirewallRuleType string const ( - WebApplicationFirewallRuleTypeMatchRule = WebApplicationFirewallRuleType("MatchRule") - WebApplicationFirewallRuleTypeInvalid = WebApplicationFirewallRuleType("Invalid") + WebApplicationFirewallRuleTypeMatchRule = WebApplicationFirewallRuleType("MatchRule") + WebApplicationFirewallRuleTypeRateLimitRule = WebApplicationFirewallRuleType("RateLimitRule") + WebApplicationFirewallRuleTypeInvalid = WebApplicationFirewallRuleType("Invalid") +) + +// State of the log scrubbing config. Default value is Enabled. +type WebApplicationFirewallScrubbingState string + +const ( + WebApplicationFirewallScrubbingStateDisabled = WebApplicationFirewallScrubbingState("Disabled") + WebApplicationFirewallScrubbingStateEnabled = WebApplicationFirewallScrubbingState("Enabled") +) + +// Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. +type WebApplicationFirewallState string + +const ( + WebApplicationFirewallStateDisabled = WebApplicationFirewallState("Disabled") + WebApplicationFirewallStateEnabled = WebApplicationFirewallState("Enabled") ) // Transforms applied before matching. type WebApplicationFirewallTransform string const ( + WebApplicationFirewallTransformUppercase = WebApplicationFirewallTransform("Uppercase") WebApplicationFirewallTransformLowercase = WebApplicationFirewallTransform("Lowercase") WebApplicationFirewallTransformTrim = WebApplicationFirewallTransform("Trim") WebApplicationFirewallTransformUrlDecode = WebApplicationFirewallTransform("UrlDecode") @@ -2033,6 +2651,10 @@ func (in *zoneTypePtr) ToZoneTypePtrOutputWithContext(ctx context.Context) ZoneT } func init() { + pulumi.RegisterOutputType(PacketCaptureTargetTypeOutput{}) + pulumi.RegisterOutputType(PacketCaptureTargetTypePtrOutput{}) + pulumi.RegisterOutputType(PublicIpAddressDnsSettingsDomainNameLabelScopeOutput{}) + pulumi.RegisterOutputType(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput{}) pulumi.RegisterOutputType(ResourceIdentityTypeOutput{}) pulumi.RegisterOutputType(ResourceIdentityTypePtrOutput{}) pulumi.RegisterOutputType(ZoneTypeOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes.go similarity index 88% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes.go index 3aa0be6d..0fd07112 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes.go @@ -7,9 +7,12 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +var _ = utilities.GetEnvOrDefault + // An A record. type ARecord struct { // The IPv4 address of this A record. @@ -574,6 +577,168 @@ func (o AadAuthenticationParametersResponsePtrOutput) AadTenant() pulumi.StringP }).(pulumi.StringPtrOutput) } +// Action to be taken on a route matching a RouteMap criterion. +type Action struct { + // List of parameters relevant to the action.For instance if type is drop then parameters has list of prefixes to be dropped.If type is add, parameters would have list of ASN numbers to be added + Parameters []Parameter `pulumi:"parameters"` + // Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' + Type *string `pulumi:"type"` +} + +// ActionInput is an input type that accepts ActionArgs and ActionOutput values. +// You can construct a concrete instance of `ActionInput` via: +// +// ActionArgs{...} +type ActionInput interface { + pulumi.Input + + ToActionOutput() ActionOutput + ToActionOutputWithContext(context.Context) ActionOutput +} + +// Action to be taken on a route matching a RouteMap criterion. +type ActionArgs struct { + // List of parameters relevant to the action.For instance if type is drop then parameters has list of prefixes to be dropped.If type is add, parameters would have list of ASN numbers to be added + Parameters ParameterArrayInput `pulumi:"parameters"` + // Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (ActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Action)(nil)).Elem() +} + +func (i ActionArgs) ToActionOutput() ActionOutput { + return i.ToActionOutputWithContext(context.Background()) +} + +func (i ActionArgs) ToActionOutputWithContext(ctx context.Context) ActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ActionOutput) +} + +// ActionArrayInput is an input type that accepts ActionArray and ActionArrayOutput values. +// You can construct a concrete instance of `ActionArrayInput` via: +// +// ActionArray{ ActionArgs{...} } +type ActionArrayInput interface { + pulumi.Input + + ToActionArrayOutput() ActionArrayOutput + ToActionArrayOutputWithContext(context.Context) ActionArrayOutput +} + +type ActionArray []ActionInput + +func (ActionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Action)(nil)).Elem() +} + +func (i ActionArray) ToActionArrayOutput() ActionArrayOutput { + return i.ToActionArrayOutputWithContext(context.Background()) +} + +func (i ActionArray) ToActionArrayOutputWithContext(ctx context.Context) ActionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ActionArrayOutput) +} + +// Action to be taken on a route matching a RouteMap criterion. +type ActionOutput struct{ *pulumi.OutputState } + +func (ActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Action)(nil)).Elem() +} + +func (o ActionOutput) ToActionOutput() ActionOutput { + return o +} + +func (o ActionOutput) ToActionOutputWithContext(ctx context.Context) ActionOutput { + return o +} + +// List of parameters relevant to the action.For instance if type is drop then parameters has list of prefixes to be dropped.If type is add, parameters would have list of ASN numbers to be added +func (o ActionOutput) Parameters() ParameterArrayOutput { + return o.ApplyT(func(v Action) []Parameter { return v.Parameters }).(ParameterArrayOutput) +} + +// Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' +func (o ActionOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v Action) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ActionArrayOutput struct{ *pulumi.OutputState } + +func (ActionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Action)(nil)).Elem() +} + +func (o ActionArrayOutput) ToActionArrayOutput() ActionArrayOutput { + return o +} + +func (o ActionArrayOutput) ToActionArrayOutputWithContext(ctx context.Context) ActionArrayOutput { + return o +} + +func (o ActionArrayOutput) Index(i pulumi.IntInput) ActionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Action { + return vs[0].([]Action)[vs[1].(int)] + }).(ActionOutput) +} + +// Action to be taken on a route matching a RouteMap criterion. +type ActionResponse struct { + // List of parameters relevant to the action.For instance if type is drop then parameters has list of prefixes to be dropped.If type is add, parameters would have list of ASN numbers to be added + Parameters []ParameterResponse `pulumi:"parameters"` + // Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' + Type *string `pulumi:"type"` +} + +// Action to be taken on a route matching a RouteMap criterion. +type ActionResponseOutput struct{ *pulumi.OutputState } + +func (ActionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ActionResponse)(nil)).Elem() +} + +func (o ActionResponseOutput) ToActionResponseOutput() ActionResponseOutput { + return o +} + +func (o ActionResponseOutput) ToActionResponseOutputWithContext(ctx context.Context) ActionResponseOutput { + return o +} + +// List of parameters relevant to the action.For instance if type is drop then parameters has list of prefixes to be dropped.If type is add, parameters would have list of ASN numbers to be added +func (o ActionResponseOutput) Parameters() ParameterResponseArrayOutput { + return o.ApplyT(func(v ActionResponse) []ParameterResponse { return v.Parameters }).(ParameterResponseArrayOutput) +} + +// Type of action to be taken. Supported types are 'Remove', 'Add', 'Replace', and 'Drop.' +func (o ActionResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActionResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ActionResponseArrayOutput struct{ *pulumi.OutputState } + +func (ActionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ActionResponse)(nil)).Elem() +} + +func (o ActionResponseArrayOutput) ToActionResponseArrayOutput() ActionResponseArrayOutput { + return o +} + +func (o ActionResponseArrayOutput) ToActionResponseArrayOutputWithContext(ctx context.Context) ActionResponseArrayOutput { + return o +} + +func (o ActionResponseArrayOutput) Index(i pulumi.IntInput) ActionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ActionResponse { + return vs[0].([]ActionResponse)[vs[1].(int)] + }).(ActionResponseOutput) +} + // Active connectivity configuration. type ActiveConnectivityConfigurationResponse struct { // Groups for configuration @@ -592,7 +757,7 @@ type ActiveConnectivityConfigurationResponse struct { DisplayName *string `pulumi:"displayName"` // List of hubItems Hubs []HubResponse `pulumi:"hubs"` - // Resource ID. + // Connectivity configuration ID. Id *string `pulumi:"id"` // Flag if global mesh is supported. IsGlobal *string `pulumi:"isGlobal"` @@ -600,6 +765,8 @@ type ActiveConnectivityConfigurationResponse struct { ProvisioningState string `pulumi:"provisioningState"` // Deployment region. Region *string `pulumi:"region"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` } // Active connectivity configuration. @@ -661,7 +828,7 @@ func (o ActiveConnectivityConfigurationResponseOutput) Hubs() HubResponseArrayOu return o.ApplyT(func(v ActiveConnectivityConfigurationResponse) []HubResponse { return v.Hubs }).(HubResponseArrayOutput) } -// Resource ID. +// Connectivity configuration ID. func (o ActiveConnectivityConfigurationResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v ActiveConnectivityConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -681,6 +848,11 @@ func (o ActiveConnectivityConfigurationResponseOutput) Region() pulumi.StringPtr return o.ApplyT(func(v ActiveConnectivityConfigurationResponse) *string { return v.Region }).(pulumi.StringPtrOutput) } +// Unique identifier for this resource. +func (o ActiveConnectivityConfigurationResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v ActiveConnectivityConfigurationResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + type ActiveConnectivityConfigurationResponseArrayOutput struct{ *pulumi.OutputState } func (ActiveConnectivityConfigurationResponseArrayOutput) ElementType() reflect.Type { @@ -720,7 +892,7 @@ type ActiveDefaultSecurityAdminRuleResponse struct { // Indicates if the traffic matched against the rule in inbound or outbound. Direction string `pulumi:"direction"` // A friendly name for the rule. - DisplayName string `pulumi:"displayName"` + DisplayName *string `pulumi:"displayName"` // Default rule flag. Flag *string `pulumi:"flag"` // Resource ID. @@ -736,6 +908,8 @@ type ActiveDefaultSecurityAdminRuleResponse struct { ProvisioningState string `pulumi:"provisioningState"` // Deployment region. Region *string `pulumi:"region"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // Groups for rule collection RuleCollectionAppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"ruleCollectionAppliesToGroups"` // A description of the rule collection. @@ -767,7 +941,7 @@ type ActiveDefaultSecurityUserRuleResponse struct { // Indicates if the traffic matched against the rule in inbound or outbound. Direction string `pulumi:"direction"` // A friendly name for the rule. - DisplayName string `pulumi:"displayName"` + DisplayName *string `pulumi:"displayName"` // Default rule flag. Flag *string `pulumi:"flag"` // Resource ID. @@ -821,13 +995,15 @@ type ActiveSecurityAdminRuleResponse struct { // Expected value is 'Custom'. Kind string `pulumi:"kind"` // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` + Priority int `pulumi:"priority"` // Network protocol this rule applies to. Protocol string `pulumi:"protocol"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` // Deployment region. Region *string `pulumi:"region"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // Groups for rule collection RuleCollectionAppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"ruleCollectionAppliesToGroups"` // A description of the rule collection. @@ -893,6 +1069,107 @@ type AddressPrefixItem struct { AddressPrefixType *string `pulumi:"addressPrefixType"` } +// AddressPrefixItemInput is an input type that accepts AddressPrefixItemArgs and AddressPrefixItemOutput values. +// You can construct a concrete instance of `AddressPrefixItemInput` via: +// +// AddressPrefixItemArgs{...} +type AddressPrefixItemInput interface { + pulumi.Input + + ToAddressPrefixItemOutput() AddressPrefixItemOutput + ToAddressPrefixItemOutputWithContext(context.Context) AddressPrefixItemOutput +} + +// Address prefix item. +type AddressPrefixItemArgs struct { + // Address prefix. + AddressPrefix pulumi.StringPtrInput `pulumi:"addressPrefix"` + // Address prefix type. + AddressPrefixType pulumi.StringPtrInput `pulumi:"addressPrefixType"` +} + +func (AddressPrefixItemArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AddressPrefixItem)(nil)).Elem() +} + +func (i AddressPrefixItemArgs) ToAddressPrefixItemOutput() AddressPrefixItemOutput { + return i.ToAddressPrefixItemOutputWithContext(context.Background()) +} + +func (i AddressPrefixItemArgs) ToAddressPrefixItemOutputWithContext(ctx context.Context) AddressPrefixItemOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddressPrefixItemOutput) +} + +// AddressPrefixItemArrayInput is an input type that accepts AddressPrefixItemArray and AddressPrefixItemArrayOutput values. +// You can construct a concrete instance of `AddressPrefixItemArrayInput` via: +// +// AddressPrefixItemArray{ AddressPrefixItemArgs{...} } +type AddressPrefixItemArrayInput interface { + pulumi.Input + + ToAddressPrefixItemArrayOutput() AddressPrefixItemArrayOutput + ToAddressPrefixItemArrayOutputWithContext(context.Context) AddressPrefixItemArrayOutput +} + +type AddressPrefixItemArray []AddressPrefixItemInput + +func (AddressPrefixItemArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AddressPrefixItem)(nil)).Elem() +} + +func (i AddressPrefixItemArray) ToAddressPrefixItemArrayOutput() AddressPrefixItemArrayOutput { + return i.ToAddressPrefixItemArrayOutputWithContext(context.Background()) +} + +func (i AddressPrefixItemArray) ToAddressPrefixItemArrayOutputWithContext(ctx context.Context) AddressPrefixItemArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AddressPrefixItemArrayOutput) +} + +// Address prefix item. +type AddressPrefixItemOutput struct{ *pulumi.OutputState } + +func (AddressPrefixItemOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AddressPrefixItem)(nil)).Elem() +} + +func (o AddressPrefixItemOutput) ToAddressPrefixItemOutput() AddressPrefixItemOutput { + return o +} + +func (o AddressPrefixItemOutput) ToAddressPrefixItemOutputWithContext(ctx context.Context) AddressPrefixItemOutput { + return o +} + +// Address prefix. +func (o AddressPrefixItemOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v AddressPrefixItem) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +} + +// Address prefix type. +func (o AddressPrefixItemOutput) AddressPrefixType() pulumi.StringPtrOutput { + return o.ApplyT(func(v AddressPrefixItem) *string { return v.AddressPrefixType }).(pulumi.StringPtrOutput) +} + +type AddressPrefixItemArrayOutput struct{ *pulumi.OutputState } + +func (AddressPrefixItemArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AddressPrefixItem)(nil)).Elem() +} + +func (o AddressPrefixItemArrayOutput) ToAddressPrefixItemArrayOutput() AddressPrefixItemArrayOutput { + return o +} + +func (o AddressPrefixItemArrayOutput) ToAddressPrefixItemArrayOutputWithContext(ctx context.Context) AddressPrefixItemArrayOutput { + return o +} + +func (o AddressPrefixItemArrayOutput) Index(i pulumi.IntInput) AddressPrefixItemOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AddressPrefixItem { + return vs[0].([]AddressPrefixItem)[vs[1].(int)] + }).(AddressPrefixItemOutput) +} + // Address prefix item. type AddressPrefixItemResponse struct { // Address prefix. @@ -2813,10 +3090,309 @@ func (o ApplicationGatewayBackendHttpSettingsResponseArrayOutput) Index(i pulumi }).(ApplicationGatewayBackendHttpSettingsResponseOutput) } +// Backend address pool settings of an application gateway. +type ApplicationGatewayBackendSettings struct { + // Server name indication to be sent to the backend servers for Tls protocol. + HostName *string `pulumi:"hostName"` + // Resource ID. + Id *string `pulumi:"id"` + // Name of the backend settings that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Whether to pick server name indication from the host name of the backend server for Tls protocol. Default value is false. + PickHostNameFromBackendAddress *bool `pulumi:"pickHostNameFromBackendAddress"` + // The destination port on the backend. + Port *int `pulumi:"port"` + // Probe resource of an application gateway. + Probe *SubResource `pulumi:"probe"` + // The protocol used to communicate with the backend. + Protocol *string `pulumi:"protocol"` + // Connection timeout in seconds. Application Gateway will fail the request if response is not received within ConnectionTimeout. Acceptable values are from 1 second to 86400 seconds. + Timeout *int `pulumi:"timeout"` + // Array of references to application gateway trusted root certificates. + TrustedRootCertificates []SubResource `pulumi:"trustedRootCertificates"` +} + +// ApplicationGatewayBackendSettingsInput is an input type that accepts ApplicationGatewayBackendSettingsArgs and ApplicationGatewayBackendSettingsOutput values. +// You can construct a concrete instance of `ApplicationGatewayBackendSettingsInput` via: +// +// ApplicationGatewayBackendSettingsArgs{...} +type ApplicationGatewayBackendSettingsInput interface { + pulumi.Input + + ToApplicationGatewayBackendSettingsOutput() ApplicationGatewayBackendSettingsOutput + ToApplicationGatewayBackendSettingsOutputWithContext(context.Context) ApplicationGatewayBackendSettingsOutput +} + +// Backend address pool settings of an application gateway. +type ApplicationGatewayBackendSettingsArgs struct { + // Server name indication to be sent to the backend servers for Tls protocol. + HostName pulumi.StringPtrInput `pulumi:"hostName"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the backend settings that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // Whether to pick server name indication from the host name of the backend server for Tls protocol. Default value is false. + PickHostNameFromBackendAddress pulumi.BoolPtrInput `pulumi:"pickHostNameFromBackendAddress"` + // The destination port on the backend. + Port pulumi.IntPtrInput `pulumi:"port"` + // Probe resource of an application gateway. + Probe SubResourcePtrInput `pulumi:"probe"` + // The protocol used to communicate with the backend. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Connection timeout in seconds. Application Gateway will fail the request if response is not received within ConnectionTimeout. Acceptable values are from 1 second to 86400 seconds. + Timeout pulumi.IntPtrInput `pulumi:"timeout"` + // Array of references to application gateway trusted root certificates. + TrustedRootCertificates SubResourceArrayInput `pulumi:"trustedRootCertificates"` +} + +func (ApplicationGatewayBackendSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayBackendSettings)(nil)).Elem() +} + +func (i ApplicationGatewayBackendSettingsArgs) ToApplicationGatewayBackendSettingsOutput() ApplicationGatewayBackendSettingsOutput { + return i.ToApplicationGatewayBackendSettingsOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayBackendSettingsArgs) ToApplicationGatewayBackendSettingsOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayBackendSettingsOutput) +} + +// ApplicationGatewayBackendSettingsArrayInput is an input type that accepts ApplicationGatewayBackendSettingsArray and ApplicationGatewayBackendSettingsArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayBackendSettingsArrayInput` via: +// +// ApplicationGatewayBackendSettingsArray{ ApplicationGatewayBackendSettingsArgs{...} } +type ApplicationGatewayBackendSettingsArrayInput interface { + pulumi.Input + + ToApplicationGatewayBackendSettingsArrayOutput() ApplicationGatewayBackendSettingsArrayOutput + ToApplicationGatewayBackendSettingsArrayOutputWithContext(context.Context) ApplicationGatewayBackendSettingsArrayOutput +} + +type ApplicationGatewayBackendSettingsArray []ApplicationGatewayBackendSettingsInput + +func (ApplicationGatewayBackendSettingsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayBackendSettings)(nil)).Elem() +} + +func (i ApplicationGatewayBackendSettingsArray) ToApplicationGatewayBackendSettingsArrayOutput() ApplicationGatewayBackendSettingsArrayOutput { + return i.ToApplicationGatewayBackendSettingsArrayOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayBackendSettingsArray) ToApplicationGatewayBackendSettingsArrayOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayBackendSettingsArrayOutput) +} + +// Backend address pool settings of an application gateway. +type ApplicationGatewayBackendSettingsOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayBackendSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayBackendSettings)(nil)).Elem() +} + +func (o ApplicationGatewayBackendSettingsOutput) ToApplicationGatewayBackendSettingsOutput() ApplicationGatewayBackendSettingsOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsOutput) ToApplicationGatewayBackendSettingsOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsOutput { + return o +} + +// Server name indication to be sent to the backend servers for Tls protocol. +func (o ApplicationGatewayBackendSettingsOutput) HostName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *string { return v.HostName }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o ApplicationGatewayBackendSettingsOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Name of the backend settings that is unique within an Application Gateway. +func (o ApplicationGatewayBackendSettingsOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Whether to pick server name indication from the host name of the backend server for Tls protocol. Default value is false. +func (o ApplicationGatewayBackendSettingsOutput) PickHostNameFromBackendAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *bool { return v.PickHostNameFromBackendAddress }).(pulumi.BoolPtrOutput) +} + +// The destination port on the backend. +func (o ApplicationGatewayBackendSettingsOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Probe resource of an application gateway. +func (o ApplicationGatewayBackendSettingsOutput) Probe() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *SubResource { return v.Probe }).(SubResourcePtrOutput) +} + +// The protocol used to communicate with the backend. +func (o ApplicationGatewayBackendSettingsOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// Connection timeout in seconds. Application Gateway will fail the request if response is not received within ConnectionTimeout. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayBackendSettingsOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) *int { return v.Timeout }).(pulumi.IntPtrOutput) +} + +// Array of references to application gateway trusted root certificates. +func (o ApplicationGatewayBackendSettingsOutput) TrustedRootCertificates() SubResourceArrayOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettings) []SubResource { return v.TrustedRootCertificates }).(SubResourceArrayOutput) +} + +type ApplicationGatewayBackendSettingsArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayBackendSettingsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayBackendSettings)(nil)).Elem() +} + +func (o ApplicationGatewayBackendSettingsArrayOutput) ToApplicationGatewayBackendSettingsArrayOutput() ApplicationGatewayBackendSettingsArrayOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsArrayOutput) ToApplicationGatewayBackendSettingsArrayOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsArrayOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayBackendSettingsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayBackendSettings { + return vs[0].([]ApplicationGatewayBackendSettings)[vs[1].(int)] + }).(ApplicationGatewayBackendSettingsOutput) +} + +// Backend address pool settings of an application gateway. +type ApplicationGatewayBackendSettingsResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Server name indication to be sent to the backend servers for Tls protocol. + HostName *string `pulumi:"hostName"` + // Resource ID. + Id *string `pulumi:"id"` + // Name of the backend settings that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Whether to pick server name indication from the host name of the backend server for Tls protocol. Default value is false. + PickHostNameFromBackendAddress *bool `pulumi:"pickHostNameFromBackendAddress"` + // The destination port on the backend. + Port *int `pulumi:"port"` + // Probe resource of an application gateway. + Probe *SubResourceResponse `pulumi:"probe"` + // The protocol used to communicate with the backend. + Protocol *string `pulumi:"protocol"` + // The provisioning state of the backend HTTP settings resource. + ProvisioningState string `pulumi:"provisioningState"` + // Connection timeout in seconds. Application Gateway will fail the request if response is not received within ConnectionTimeout. Acceptable values are from 1 second to 86400 seconds. + Timeout *int `pulumi:"timeout"` + // Array of references to application gateway trusted root certificates. + TrustedRootCertificates []SubResourceResponse `pulumi:"trustedRootCertificates"` + // Type of the resource. + Type string `pulumi:"type"` +} + +// Backend address pool settings of an application gateway. +type ApplicationGatewayBackendSettingsResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayBackendSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayBackendSettingsResponse)(nil)).Elem() +} + +func (o ApplicationGatewayBackendSettingsResponseOutput) ToApplicationGatewayBackendSettingsResponseOutput() ApplicationGatewayBackendSettingsResponseOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsResponseOutput) ToApplicationGatewayBackendSettingsResponseOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsResponseOutput { + return o +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayBackendSettingsResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Server name indication to be sent to the backend servers for Tls protocol. +func (o ApplicationGatewayBackendSettingsResponseOutput) HostName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *string { return v.HostName }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o ApplicationGatewayBackendSettingsResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Name of the backend settings that is unique within an Application Gateway. +func (o ApplicationGatewayBackendSettingsResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Whether to pick server name indication from the host name of the backend server for Tls protocol. Default value is false. +func (o ApplicationGatewayBackendSettingsResponseOutput) PickHostNameFromBackendAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *bool { return v.PickHostNameFromBackendAddress }).(pulumi.BoolPtrOutput) +} + +// The destination port on the backend. +func (o ApplicationGatewayBackendSettingsResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Probe resource of an application gateway. +func (o ApplicationGatewayBackendSettingsResponseOutput) Probe() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *SubResourceResponse { return v.Probe }).(SubResourceResponsePtrOutput) +} + +// The protocol used to communicate with the backend. +func (o ApplicationGatewayBackendSettingsResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the backend HTTP settings resource. +func (o ApplicationGatewayBackendSettingsResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Connection timeout in seconds. Application Gateway will fail the request if response is not received within ConnectionTimeout. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayBackendSettingsResponseOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) *int { return v.Timeout }).(pulumi.IntPtrOutput) +} + +// Array of references to application gateway trusted root certificates. +func (o ApplicationGatewayBackendSettingsResponseOutput) TrustedRootCertificates() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) []SubResourceResponse { + return v.TrustedRootCertificates + }).(SubResourceResponseArrayOutput) +} + +// Type of the resource. +func (o ApplicationGatewayBackendSettingsResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayBackendSettingsResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ApplicationGatewayBackendSettingsResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayBackendSettingsResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayBackendSettingsResponse)(nil)).Elem() +} + +func (o ApplicationGatewayBackendSettingsResponseArrayOutput) ToApplicationGatewayBackendSettingsResponseArrayOutput() ApplicationGatewayBackendSettingsResponseArrayOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsResponseArrayOutput) ToApplicationGatewayBackendSettingsResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayBackendSettingsResponseArrayOutput { + return o +} + +func (o ApplicationGatewayBackendSettingsResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayBackendSettingsResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayBackendSettingsResponse { + return vs[0].([]ApplicationGatewayBackendSettingsResponse)[vs[1].(int)] + }).(ApplicationGatewayBackendSettingsResponseOutput) +} + // Application gateway client authentication configuration. type ApplicationGatewayClientAuthConfiguration struct { // Verify client certificate issuer name on the application gateway. VerifyClientCertIssuerDN *bool `pulumi:"verifyClientCertIssuerDN"` + // Verify client certificate revocation status. + VerifyClientRevocation *string `pulumi:"verifyClientRevocation"` } // ApplicationGatewayClientAuthConfigurationInput is an input type that accepts ApplicationGatewayClientAuthConfigurationArgs and ApplicationGatewayClientAuthConfigurationOutput values. @@ -2834,6 +3410,8 @@ type ApplicationGatewayClientAuthConfigurationInput interface { type ApplicationGatewayClientAuthConfigurationArgs struct { // Verify client certificate issuer name on the application gateway. VerifyClientCertIssuerDN pulumi.BoolPtrInput `pulumi:"verifyClientCertIssuerDN"` + // Verify client certificate revocation status. + VerifyClientRevocation pulumi.StringPtrInput `pulumi:"verifyClientRevocation"` } func (ApplicationGatewayClientAuthConfigurationArgs) ElementType() reflect.Type { @@ -2919,6 +3497,11 @@ func (o ApplicationGatewayClientAuthConfigurationOutput) VerifyClientCertIssuerD return o.ApplyT(func(v ApplicationGatewayClientAuthConfiguration) *bool { return v.VerifyClientCertIssuerDN }).(pulumi.BoolPtrOutput) } +// Verify client certificate revocation status. +func (o ApplicationGatewayClientAuthConfigurationOutput) VerifyClientRevocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayClientAuthConfiguration) *string { return v.VerifyClientRevocation }).(pulumi.StringPtrOutput) +} + type ApplicationGatewayClientAuthConfigurationPtrOutput struct{ *pulumi.OutputState } func (ApplicationGatewayClientAuthConfigurationPtrOutput) ElementType() reflect.Type { @@ -2953,10 +3536,22 @@ func (o ApplicationGatewayClientAuthConfigurationPtrOutput) VerifyClientCertIssu }).(pulumi.BoolPtrOutput) } +// Verify client certificate revocation status. +func (o ApplicationGatewayClientAuthConfigurationPtrOutput) VerifyClientRevocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayClientAuthConfiguration) *string { + if v == nil { + return nil + } + return v.VerifyClientRevocation + }).(pulumi.StringPtrOutput) +} + // Application gateway client authentication configuration. type ApplicationGatewayClientAuthConfigurationResponse struct { // Verify client certificate issuer name on the application gateway. VerifyClientCertIssuerDN *bool `pulumi:"verifyClientCertIssuerDN"` + // Verify client certificate revocation status. + VerifyClientRevocation *string `pulumi:"verifyClientRevocation"` } // Application gateway client authentication configuration. @@ -2979,6 +3574,11 @@ func (o ApplicationGatewayClientAuthConfigurationResponseOutput) VerifyClientCer return o.ApplyT(func(v ApplicationGatewayClientAuthConfigurationResponse) *bool { return v.VerifyClientCertIssuerDN }).(pulumi.BoolPtrOutput) } +// Verify client certificate revocation status. +func (o ApplicationGatewayClientAuthConfigurationResponseOutput) VerifyClientRevocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayClientAuthConfigurationResponse) *string { return v.VerifyClientRevocation }).(pulumi.StringPtrOutput) +} + type ApplicationGatewayClientAuthConfigurationResponsePtrOutput struct{ *pulumi.OutputState } func (ApplicationGatewayClientAuthConfigurationResponsePtrOutput) ElementType() reflect.Type { @@ -3013,6 +3613,16 @@ func (o ApplicationGatewayClientAuthConfigurationResponsePtrOutput) VerifyClient }).(pulumi.BoolPtrOutput) } +// Verify client certificate revocation status. +func (o ApplicationGatewayClientAuthConfigurationResponsePtrOutput) VerifyClientRevocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayClientAuthConfigurationResponse) *string { + if v == nil { + return nil + } + return v.VerifyClientRevocation + }).(pulumi.StringPtrOutput) +} + // Connection draining allows open connections to a backend server to be active for a specified time after the backend server got removed from the configuration. type ApplicationGatewayConnectionDraining struct { // The number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds. @@ -3249,11 +3859,11 @@ func (o ApplicationGatewayConnectionDrainingResponsePtrOutput) Enabled() pulumi. }).(pulumi.BoolPtrOutput) } -// Customer error of an application gateway. +// Custom error of an application gateway. type ApplicationGatewayCustomError struct { - // Error page URL of the application gateway customer error. + // Error page URL of the application gateway custom error. CustomErrorPageUrl *string `pulumi:"customErrorPageUrl"` - // Status code of the application gateway customer error. + // Status code of the application gateway custom error. StatusCode *string `pulumi:"statusCode"` } @@ -3268,11 +3878,11 @@ type ApplicationGatewayCustomErrorInput interface { ToApplicationGatewayCustomErrorOutputWithContext(context.Context) ApplicationGatewayCustomErrorOutput } -// Customer error of an application gateway. +// Custom error of an application gateway. type ApplicationGatewayCustomErrorArgs struct { - // Error page URL of the application gateway customer error. + // Error page URL of the application gateway custom error. CustomErrorPageUrl pulumi.StringPtrInput `pulumi:"customErrorPageUrl"` - // Status code of the application gateway customer error. + // Status code of the application gateway custom error. StatusCode pulumi.StringPtrInput `pulumi:"statusCode"` } @@ -3313,7 +3923,7 @@ func (i ApplicationGatewayCustomErrorArray) ToApplicationGatewayCustomErrorArray return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayCustomErrorArrayOutput) } -// Customer error of an application gateway. +// Custom error of an application gateway. type ApplicationGatewayCustomErrorOutput struct{ *pulumi.OutputState } func (ApplicationGatewayCustomErrorOutput) ElementType() reflect.Type { @@ -3328,12 +3938,12 @@ func (o ApplicationGatewayCustomErrorOutput) ToApplicationGatewayCustomErrorOutp return o } -// Error page URL of the application gateway customer error. +// Error page URL of the application gateway custom error. func (o ApplicationGatewayCustomErrorOutput) CustomErrorPageUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v ApplicationGatewayCustomError) *string { return v.CustomErrorPageUrl }).(pulumi.StringPtrOutput) } -// Status code of the application gateway customer error. +// Status code of the application gateway custom error. func (o ApplicationGatewayCustomErrorOutput) StatusCode() pulumi.StringPtrOutput { return o.ApplyT(func(v ApplicationGatewayCustomError) *string { return v.StatusCode }).(pulumi.StringPtrOutput) } @@ -3358,15 +3968,15 @@ func (o ApplicationGatewayCustomErrorArrayOutput) Index(i pulumi.IntInput) Appli }).(ApplicationGatewayCustomErrorOutput) } -// Customer error of an application gateway. +// Custom error of an application gateway. type ApplicationGatewayCustomErrorResponse struct { - // Error page URL of the application gateway customer error. + // Error page URL of the application gateway custom error. CustomErrorPageUrl *string `pulumi:"customErrorPageUrl"` - // Status code of the application gateway customer error. + // Status code of the application gateway custom error. StatusCode *string `pulumi:"statusCode"` } -// Customer error of an application gateway. +// Custom error of an application gateway. type ApplicationGatewayCustomErrorResponseOutput struct{ *pulumi.OutputState } func (ApplicationGatewayCustomErrorResponseOutput) ElementType() reflect.Type { @@ -3381,12 +3991,12 @@ func (o ApplicationGatewayCustomErrorResponseOutput) ToApplicationGatewayCustomE return o } -// Error page URL of the application gateway customer error. +// Error page URL of the application gateway custom error. func (o ApplicationGatewayCustomErrorResponseOutput) CustomErrorPageUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v ApplicationGatewayCustomErrorResponse) *string { return v.CustomErrorPageUrl }).(pulumi.StringPtrOutput) } -// Status code of the application gateway customer error. +// Status code of the application gateway custom error. func (o ApplicationGatewayCustomErrorResponseOutput) StatusCode() pulumi.StringPtrOutput { return o.ApplyT(func(v ApplicationGatewayCustomErrorResponse) *string { return v.StatusCode }).(pulumi.StringPtrOutput) } @@ -4217,6 +4827,242 @@ func (o ApplicationGatewayFrontendPortResponseArrayOutput) Index(i pulumi.IntInp }).(ApplicationGatewayFrontendPortResponseOutput) } +// Application Gateway global configuration. +type ApplicationGatewayGlobalConfiguration struct { + // Enable request buffering. + EnableRequestBuffering *bool `pulumi:"enableRequestBuffering"` + // Enable response buffering. + EnableResponseBuffering *bool `pulumi:"enableResponseBuffering"` +} + +// ApplicationGatewayGlobalConfigurationInput is an input type that accepts ApplicationGatewayGlobalConfigurationArgs and ApplicationGatewayGlobalConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayGlobalConfigurationInput` via: +// +// ApplicationGatewayGlobalConfigurationArgs{...} +type ApplicationGatewayGlobalConfigurationInput interface { + pulumi.Input + + ToApplicationGatewayGlobalConfigurationOutput() ApplicationGatewayGlobalConfigurationOutput + ToApplicationGatewayGlobalConfigurationOutputWithContext(context.Context) ApplicationGatewayGlobalConfigurationOutput +} + +// Application Gateway global configuration. +type ApplicationGatewayGlobalConfigurationArgs struct { + // Enable request buffering. + EnableRequestBuffering pulumi.BoolPtrInput `pulumi:"enableRequestBuffering"` + // Enable response buffering. + EnableResponseBuffering pulumi.BoolPtrInput `pulumi:"enableResponseBuffering"` +} + +func (ApplicationGatewayGlobalConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayGlobalConfiguration)(nil)).Elem() +} + +func (i ApplicationGatewayGlobalConfigurationArgs) ToApplicationGatewayGlobalConfigurationOutput() ApplicationGatewayGlobalConfigurationOutput { + return i.ToApplicationGatewayGlobalConfigurationOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayGlobalConfigurationArgs) ToApplicationGatewayGlobalConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayGlobalConfigurationOutput) +} + +func (i ApplicationGatewayGlobalConfigurationArgs) ToApplicationGatewayGlobalConfigurationPtrOutput() ApplicationGatewayGlobalConfigurationPtrOutput { + return i.ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayGlobalConfigurationArgs) ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayGlobalConfigurationOutput).ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(ctx) +} + +// ApplicationGatewayGlobalConfigurationPtrInput is an input type that accepts ApplicationGatewayGlobalConfigurationArgs, ApplicationGatewayGlobalConfigurationPtr and ApplicationGatewayGlobalConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewayGlobalConfigurationPtrInput` via: +// +// ApplicationGatewayGlobalConfigurationArgs{...} +// +// or: +// +// nil +type ApplicationGatewayGlobalConfigurationPtrInput interface { + pulumi.Input + + ToApplicationGatewayGlobalConfigurationPtrOutput() ApplicationGatewayGlobalConfigurationPtrOutput + ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(context.Context) ApplicationGatewayGlobalConfigurationPtrOutput +} + +type applicationGatewayGlobalConfigurationPtrType ApplicationGatewayGlobalConfigurationArgs + +func ApplicationGatewayGlobalConfigurationPtr(v *ApplicationGatewayGlobalConfigurationArgs) ApplicationGatewayGlobalConfigurationPtrInput { + return (*applicationGatewayGlobalConfigurationPtrType)(v) +} + +func (*applicationGatewayGlobalConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayGlobalConfiguration)(nil)).Elem() +} + +func (i *applicationGatewayGlobalConfigurationPtrType) ToApplicationGatewayGlobalConfigurationPtrOutput() ApplicationGatewayGlobalConfigurationPtrOutput { + return i.ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *applicationGatewayGlobalConfigurationPtrType) ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayGlobalConfigurationPtrOutput) +} + +// Application Gateway global configuration. +type ApplicationGatewayGlobalConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayGlobalConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayGlobalConfiguration)(nil)).Elem() +} + +func (o ApplicationGatewayGlobalConfigurationOutput) ToApplicationGatewayGlobalConfigurationOutput() ApplicationGatewayGlobalConfigurationOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationOutput) ToApplicationGatewayGlobalConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationOutput) ToApplicationGatewayGlobalConfigurationPtrOutput() ApplicationGatewayGlobalConfigurationPtrOutput { + return o.ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ApplicationGatewayGlobalConfigurationOutput) ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayGlobalConfiguration) *ApplicationGatewayGlobalConfiguration { + return &v + }).(ApplicationGatewayGlobalConfigurationPtrOutput) +} + +// Enable request buffering. +func (o ApplicationGatewayGlobalConfigurationOutput) EnableRequestBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayGlobalConfiguration) *bool { return v.EnableRequestBuffering }).(pulumi.BoolPtrOutput) +} + +// Enable response buffering. +func (o ApplicationGatewayGlobalConfigurationOutput) EnableResponseBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayGlobalConfiguration) *bool { return v.EnableResponseBuffering }).(pulumi.BoolPtrOutput) +} + +type ApplicationGatewayGlobalConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayGlobalConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayGlobalConfiguration)(nil)).Elem() +} + +func (o ApplicationGatewayGlobalConfigurationPtrOutput) ToApplicationGatewayGlobalConfigurationPtrOutput() ApplicationGatewayGlobalConfigurationPtrOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationPtrOutput) ToApplicationGatewayGlobalConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationPtrOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationPtrOutput) Elem() ApplicationGatewayGlobalConfigurationOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfiguration) ApplicationGatewayGlobalConfiguration { + if v != nil { + return *v + } + var ret ApplicationGatewayGlobalConfiguration + return ret + }).(ApplicationGatewayGlobalConfigurationOutput) +} + +// Enable request buffering. +func (o ApplicationGatewayGlobalConfigurationPtrOutput) EnableRequestBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfiguration) *bool { + if v == nil { + return nil + } + return v.EnableRequestBuffering + }).(pulumi.BoolPtrOutput) +} + +// Enable response buffering. +func (o ApplicationGatewayGlobalConfigurationPtrOutput) EnableResponseBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfiguration) *bool { + if v == nil { + return nil + } + return v.EnableResponseBuffering + }).(pulumi.BoolPtrOutput) +} + +// Application Gateway global configuration. +type ApplicationGatewayGlobalConfigurationResponse struct { + // Enable request buffering. + EnableRequestBuffering *bool `pulumi:"enableRequestBuffering"` + // Enable response buffering. + EnableResponseBuffering *bool `pulumi:"enableResponseBuffering"` +} + +// Application Gateway global configuration. +type ApplicationGatewayGlobalConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayGlobalConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayGlobalConfigurationResponse)(nil)).Elem() +} + +func (o ApplicationGatewayGlobalConfigurationResponseOutput) ToApplicationGatewayGlobalConfigurationResponseOutput() ApplicationGatewayGlobalConfigurationResponseOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationResponseOutput) ToApplicationGatewayGlobalConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationResponseOutput { + return o +} + +// Enable request buffering. +func (o ApplicationGatewayGlobalConfigurationResponseOutput) EnableRequestBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayGlobalConfigurationResponse) *bool { return v.EnableRequestBuffering }).(pulumi.BoolPtrOutput) +} + +// Enable response buffering. +func (o ApplicationGatewayGlobalConfigurationResponseOutput) EnableResponseBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayGlobalConfigurationResponse) *bool { return v.EnableResponseBuffering }).(pulumi.BoolPtrOutput) +} + +type ApplicationGatewayGlobalConfigurationResponsePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayGlobalConfigurationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayGlobalConfigurationResponse)(nil)).Elem() +} + +func (o ApplicationGatewayGlobalConfigurationResponsePtrOutput) ToApplicationGatewayGlobalConfigurationResponsePtrOutput() ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationResponsePtrOutput) ToApplicationGatewayGlobalConfigurationResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return o +} + +func (o ApplicationGatewayGlobalConfigurationResponsePtrOutput) Elem() ApplicationGatewayGlobalConfigurationResponseOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfigurationResponse) ApplicationGatewayGlobalConfigurationResponse { + if v != nil { + return *v + } + var ret ApplicationGatewayGlobalConfigurationResponse + return ret + }).(ApplicationGatewayGlobalConfigurationResponseOutput) +} + +// Enable request buffering. +func (o ApplicationGatewayGlobalConfigurationResponsePtrOutput) EnableRequestBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.EnableRequestBuffering + }).(pulumi.BoolPtrOutput) +} + +// Enable response buffering. +func (o ApplicationGatewayGlobalConfigurationResponsePtrOutput) EnableResponseBuffering() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayGlobalConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.EnableResponseBuffering + }).(pulumi.BoolPtrOutput) +} + // Header configuration of the Actions set in Application Gateway. type ApplicationGatewayHeaderConfiguration struct { // Header name of the header configuration. @@ -4925,6695 +5771,7242 @@ func (o ApplicationGatewayIPConfigurationResponseArrayOutput) Index(i pulumi.Int }).(ApplicationGatewayIPConfigurationResponseOutput) } -// Path rule of URL path map of an application gateway. -type ApplicationGatewayPathRule struct { - // Backend address pool resource of URL path map path rule. - BackendAddressPool *SubResource `pulumi:"backendAddressPool"` - // Backend http settings resource of URL path map path rule. - BackendHttpSettings *SubResource `pulumi:"backendHttpSettings"` - // Reference to the FirewallPolicy resource. - FirewallPolicy *SubResource `pulumi:"firewallPolicy"` +// Listener of an application gateway. +type ApplicationGatewayListener struct { + // Frontend IP configuration resource of an application gateway. + FrontendIPConfiguration *SubResource `pulumi:"frontendIPConfiguration"` + // Frontend port resource of an application gateway. + FrontendPort *SubResource `pulumi:"frontendPort"` // Resource ID. Id *string `pulumi:"id"` - // Name of the path rule that is unique within an Application Gateway. + // Name of the listener that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Path rules of URL path map. - Paths []string `pulumi:"paths"` - // Redirect configuration resource of URL path map path rule. - RedirectConfiguration *SubResource `pulumi:"redirectConfiguration"` - // Rewrite rule set resource of URL path map path rule. - RewriteRuleSet *SubResource `pulumi:"rewriteRuleSet"` + // Protocol of the listener. + Protocol *string `pulumi:"protocol"` + // SSL certificate resource of an application gateway. + SslCertificate *SubResource `pulumi:"sslCertificate"` + // SSL profile resource of the application gateway. + SslProfile *SubResource `pulumi:"sslProfile"` } -// ApplicationGatewayPathRuleInput is an input type that accepts ApplicationGatewayPathRuleArgs and ApplicationGatewayPathRuleOutput values. -// You can construct a concrete instance of `ApplicationGatewayPathRuleInput` via: +// ApplicationGatewayListenerInput is an input type that accepts ApplicationGatewayListenerArgs and ApplicationGatewayListenerOutput values. +// You can construct a concrete instance of `ApplicationGatewayListenerInput` via: // -// ApplicationGatewayPathRuleArgs{...} -type ApplicationGatewayPathRuleInput interface { +// ApplicationGatewayListenerArgs{...} +type ApplicationGatewayListenerInput interface { pulumi.Input - ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput - ToApplicationGatewayPathRuleOutputWithContext(context.Context) ApplicationGatewayPathRuleOutput + ToApplicationGatewayListenerOutput() ApplicationGatewayListenerOutput + ToApplicationGatewayListenerOutputWithContext(context.Context) ApplicationGatewayListenerOutput } -// Path rule of URL path map of an application gateway. -type ApplicationGatewayPathRuleArgs struct { - // Backend address pool resource of URL path map path rule. - BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` - // Backend http settings resource of URL path map path rule. - BackendHttpSettings SubResourcePtrInput `pulumi:"backendHttpSettings"` - // Reference to the FirewallPolicy resource. - FirewallPolicy SubResourcePtrInput `pulumi:"firewallPolicy"` +// Listener of an application gateway. +type ApplicationGatewayListenerArgs struct { + // Frontend IP configuration resource of an application gateway. + FrontendIPConfiguration SubResourcePtrInput `pulumi:"frontendIPConfiguration"` + // Frontend port resource of an application gateway. + FrontendPort SubResourcePtrInput `pulumi:"frontendPort"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the path rule that is unique within an Application Gateway. + // Name of the listener that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Path rules of URL path map. - Paths pulumi.StringArrayInput `pulumi:"paths"` - // Redirect configuration resource of URL path map path rule. - RedirectConfiguration SubResourcePtrInput `pulumi:"redirectConfiguration"` - // Rewrite rule set resource of URL path map path rule. - RewriteRuleSet SubResourcePtrInput `pulumi:"rewriteRuleSet"` + // Protocol of the listener. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // SSL certificate resource of an application gateway. + SslCertificate SubResourcePtrInput `pulumi:"sslCertificate"` + // SSL profile resource of the application gateway. + SslProfile SubResourcePtrInput `pulumi:"sslProfile"` } -func (ApplicationGatewayPathRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPathRule)(nil)).Elem() +func (ApplicationGatewayListenerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayListener)(nil)).Elem() } -func (i ApplicationGatewayPathRuleArgs) ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput { - return i.ToApplicationGatewayPathRuleOutputWithContext(context.Background()) +func (i ApplicationGatewayListenerArgs) ToApplicationGatewayListenerOutput() ApplicationGatewayListenerOutput { + return i.ToApplicationGatewayListenerOutputWithContext(context.Background()) } -func (i ApplicationGatewayPathRuleArgs) ToApplicationGatewayPathRuleOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPathRuleOutput) +func (i ApplicationGatewayListenerArgs) ToApplicationGatewayListenerOutputWithContext(ctx context.Context) ApplicationGatewayListenerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayListenerOutput) } -// ApplicationGatewayPathRuleArrayInput is an input type that accepts ApplicationGatewayPathRuleArray and ApplicationGatewayPathRuleArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayPathRuleArrayInput` via: +// ApplicationGatewayListenerArrayInput is an input type that accepts ApplicationGatewayListenerArray and ApplicationGatewayListenerArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayListenerArrayInput` via: // -// ApplicationGatewayPathRuleArray{ ApplicationGatewayPathRuleArgs{...} } -type ApplicationGatewayPathRuleArrayInput interface { +// ApplicationGatewayListenerArray{ ApplicationGatewayListenerArgs{...} } +type ApplicationGatewayListenerArrayInput interface { pulumi.Input - ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput - ToApplicationGatewayPathRuleArrayOutputWithContext(context.Context) ApplicationGatewayPathRuleArrayOutput + ToApplicationGatewayListenerArrayOutput() ApplicationGatewayListenerArrayOutput + ToApplicationGatewayListenerArrayOutputWithContext(context.Context) ApplicationGatewayListenerArrayOutput } -type ApplicationGatewayPathRuleArray []ApplicationGatewayPathRuleInput +type ApplicationGatewayListenerArray []ApplicationGatewayListenerInput -func (ApplicationGatewayPathRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPathRule)(nil)).Elem() +func (ApplicationGatewayListenerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayListener)(nil)).Elem() } -func (i ApplicationGatewayPathRuleArray) ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput { - return i.ToApplicationGatewayPathRuleArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayListenerArray) ToApplicationGatewayListenerArrayOutput() ApplicationGatewayListenerArrayOutput { + return i.ToApplicationGatewayListenerArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayPathRuleArray) ToApplicationGatewayPathRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPathRuleArrayOutput) +func (i ApplicationGatewayListenerArray) ToApplicationGatewayListenerArrayOutputWithContext(ctx context.Context) ApplicationGatewayListenerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayListenerArrayOutput) } -// Path rule of URL path map of an application gateway. -type ApplicationGatewayPathRuleOutput struct{ *pulumi.OutputState } +// Listener of an application gateway. +type ApplicationGatewayListenerOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPathRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPathRule)(nil)).Elem() +func (ApplicationGatewayListenerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayListener)(nil)).Elem() } -func (o ApplicationGatewayPathRuleOutput) ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput { +func (o ApplicationGatewayListenerOutput) ToApplicationGatewayListenerOutput() ApplicationGatewayListenerOutput { return o } -func (o ApplicationGatewayPathRuleOutput) ToApplicationGatewayPathRuleOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleOutput { +func (o ApplicationGatewayListenerOutput) ToApplicationGatewayListenerOutputWithContext(ctx context.Context) ApplicationGatewayListenerOutput { return o } -// Backend address pool resource of URL path map path rule. -func (o ApplicationGatewayPathRuleOutput) BackendAddressPool() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) -} - -// Backend http settings resource of URL path map path rule. -func (o ApplicationGatewayPathRuleOutput) BackendHttpSettings() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.BackendHttpSettings }).(SubResourcePtrOutput) +// Frontend IP configuration resource of an application gateway. +func (o ApplicationGatewayListenerOutput) FrontendIPConfiguration() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *SubResource { return v.FrontendIPConfiguration }).(SubResourcePtrOutput) } -// Reference to the FirewallPolicy resource. -func (o ApplicationGatewayPathRuleOutput) FirewallPolicy() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.FirewallPolicy }).(SubResourcePtrOutput) +// Frontend port resource of an application gateway. +func (o ApplicationGatewayListenerOutput) FrontendPort() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *SubResource { return v.FrontendPort }).(SubResourcePtrOutput) } // Resource ID. -func (o ApplicationGatewayPathRuleOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayListenerOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the path rule that is unique within an Application Gateway. -func (o ApplicationGatewayPathRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of the listener that is unique within an Application Gateway. +func (o ApplicationGatewayListenerOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Path rules of URL path map. -func (o ApplicationGatewayPathRuleOutput) Paths() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) []string { return v.Paths }).(pulumi.StringArrayOutput) +// Protocol of the listener. +func (o ApplicationGatewayListenerOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -// Redirect configuration resource of URL path map path rule. -func (o ApplicationGatewayPathRuleOutput) RedirectConfiguration() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.RedirectConfiguration }).(SubResourcePtrOutput) +// SSL certificate resource of an application gateway. +func (o ApplicationGatewayListenerOutput) SslCertificate() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *SubResource { return v.SslCertificate }).(SubResourcePtrOutput) } -// Rewrite rule set resource of URL path map path rule. -func (o ApplicationGatewayPathRuleOutput) RewriteRuleSet() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.RewriteRuleSet }).(SubResourcePtrOutput) +// SSL profile resource of the application gateway. +func (o ApplicationGatewayListenerOutput) SslProfile() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListener) *SubResource { return v.SslProfile }).(SubResourcePtrOutput) } -type ApplicationGatewayPathRuleArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayListenerArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPathRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPathRule)(nil)).Elem() +func (ApplicationGatewayListenerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayListener)(nil)).Elem() } -func (o ApplicationGatewayPathRuleArrayOutput) ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput { +func (o ApplicationGatewayListenerArrayOutput) ToApplicationGatewayListenerArrayOutput() ApplicationGatewayListenerArrayOutput { return o } -func (o ApplicationGatewayPathRuleArrayOutput) ToApplicationGatewayPathRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleArrayOutput { +func (o ApplicationGatewayListenerArrayOutput) ToApplicationGatewayListenerArrayOutputWithContext(ctx context.Context) ApplicationGatewayListenerArrayOutput { return o } -func (o ApplicationGatewayPathRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPathRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPathRule { - return vs[0].([]ApplicationGatewayPathRule)[vs[1].(int)] - }).(ApplicationGatewayPathRuleOutput) +func (o ApplicationGatewayListenerArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayListenerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayListener { + return vs[0].([]ApplicationGatewayListener)[vs[1].(int)] + }).(ApplicationGatewayListenerOutput) } -// Path rule of URL path map of an application gateway. -type ApplicationGatewayPathRuleResponse struct { - // Backend address pool resource of URL path map path rule. - BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` - // Backend http settings resource of URL path map path rule. - BackendHttpSettings *SubResourceResponse `pulumi:"backendHttpSettings"` +// Listener of an application gateway. +type ApplicationGatewayListenerResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` - // Reference to the FirewallPolicy resource. - FirewallPolicy *SubResourceResponse `pulumi:"firewallPolicy"` + // Frontend IP configuration resource of an application gateway. + FrontendIPConfiguration *SubResourceResponse `pulumi:"frontendIPConfiguration"` + // Frontend port resource of an application gateway. + FrontendPort *SubResourceResponse `pulumi:"frontendPort"` // Resource ID. Id *string `pulumi:"id"` - // Name of the path rule that is unique within an Application Gateway. + // Name of the listener that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Path rules of URL path map. - Paths []string `pulumi:"paths"` - // The provisioning state of the path rule resource. + // Protocol of the listener. + Protocol *string `pulumi:"protocol"` + // The provisioning state of the listener resource. ProvisioningState string `pulumi:"provisioningState"` - // Redirect configuration resource of URL path map path rule. - RedirectConfiguration *SubResourceResponse `pulumi:"redirectConfiguration"` - // Rewrite rule set resource of URL path map path rule. - RewriteRuleSet *SubResourceResponse `pulumi:"rewriteRuleSet"` + // SSL certificate resource of an application gateway. + SslCertificate *SubResourceResponse `pulumi:"sslCertificate"` + // SSL profile resource of the application gateway. + SslProfile *SubResourceResponse `pulumi:"sslProfile"` // Type of the resource. Type string `pulumi:"type"` } -// Path rule of URL path map of an application gateway. -type ApplicationGatewayPathRuleResponseOutput struct{ *pulumi.OutputState } +// Listener of an application gateway. +type ApplicationGatewayListenerResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPathRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPathRuleResponse)(nil)).Elem() +func (ApplicationGatewayListenerResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayListenerResponse)(nil)).Elem() } -func (o ApplicationGatewayPathRuleResponseOutput) ToApplicationGatewayPathRuleResponseOutput() ApplicationGatewayPathRuleResponseOutput { +func (o ApplicationGatewayListenerResponseOutput) ToApplicationGatewayListenerResponseOutput() ApplicationGatewayListenerResponseOutput { return o } -func (o ApplicationGatewayPathRuleResponseOutput) ToApplicationGatewayPathRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleResponseOutput { +func (o ApplicationGatewayListenerResponseOutput) ToApplicationGatewayListenerResponseOutputWithContext(ctx context.Context) ApplicationGatewayListenerResponseOutput { return o } -// Backend address pool resource of URL path map path rule. -func (o ApplicationGatewayPathRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) -} - -// Backend http settings resource of URL path map path rule. -func (o ApplicationGatewayPathRuleResponseOutput) BackendHttpSettings() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.BackendHttpSettings }).(SubResourceResponsePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayListenerResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) string { return v.Etag }).(pulumi.StringOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayPathRuleResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +// Frontend IP configuration resource of an application gateway. +func (o ApplicationGatewayListenerResponseOutput) FrontendIPConfiguration() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *SubResourceResponse { return v.FrontendIPConfiguration }).(SubResourceResponsePtrOutput) } -// Reference to the FirewallPolicy resource. -func (o ApplicationGatewayPathRuleResponseOutput) FirewallPolicy() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.FirewallPolicy }).(SubResourceResponsePtrOutput) +// Frontend port resource of an application gateway. +func (o ApplicationGatewayListenerResponseOutput) FrontendPort() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *SubResourceResponse { return v.FrontendPort }).(SubResourceResponsePtrOutput) } // Resource ID. -func (o ApplicationGatewayPathRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayListenerResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the path rule that is unique within an Application Gateway. -func (o ApplicationGatewayPathRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of the listener that is unique within an Application Gateway. +func (o ApplicationGatewayListenerResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Path rules of URL path map. -func (o ApplicationGatewayPathRuleResponseOutput) Paths() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) []string { return v.Paths }).(pulumi.StringArrayOutput) +// Protocol of the listener. +func (o ApplicationGatewayListenerResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -// The provisioning state of the path rule resource. -func (o ApplicationGatewayPathRuleResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// The provisioning state of the listener resource. +func (o ApplicationGatewayListenerResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Redirect configuration resource of URL path map path rule. -func (o ApplicationGatewayPathRuleResponseOutput) RedirectConfiguration() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.RedirectConfiguration }).(SubResourceResponsePtrOutput) +// SSL certificate resource of an application gateway. +func (o ApplicationGatewayListenerResponseOutput) SslCertificate() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *SubResourceResponse { return v.SslCertificate }).(SubResourceResponsePtrOutput) } -// Rewrite rule set resource of URL path map path rule. -func (o ApplicationGatewayPathRuleResponseOutput) RewriteRuleSet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.RewriteRuleSet }).(SubResourceResponsePtrOutput) +// SSL profile resource of the application gateway. +func (o ApplicationGatewayListenerResponseOutput) SslProfile() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) *SubResourceResponse { return v.SslProfile }).(SubResourceResponsePtrOutput) } // Type of the resource. -func (o ApplicationGatewayPathRuleResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ApplicationGatewayListenerResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayListenerResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayPathRuleResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayListenerResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPathRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPathRuleResponse)(nil)).Elem() +func (ApplicationGatewayListenerResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayListenerResponse)(nil)).Elem() } -func (o ApplicationGatewayPathRuleResponseArrayOutput) ToApplicationGatewayPathRuleResponseArrayOutput() ApplicationGatewayPathRuleResponseArrayOutput { +func (o ApplicationGatewayListenerResponseArrayOutput) ToApplicationGatewayListenerResponseArrayOutput() ApplicationGatewayListenerResponseArrayOutput { return o } -func (o ApplicationGatewayPathRuleResponseArrayOutput) ToApplicationGatewayPathRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleResponseArrayOutput { +func (o ApplicationGatewayListenerResponseArrayOutput) ToApplicationGatewayListenerResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayListenerResponseArrayOutput { return o } -func (o ApplicationGatewayPathRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPathRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPathRuleResponse { - return vs[0].([]ApplicationGatewayPathRuleResponse)[vs[1].(int)] - }).(ApplicationGatewayPathRuleResponseOutput) +func (o ApplicationGatewayListenerResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayListenerResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayListenerResponse { + return vs[0].([]ApplicationGatewayListenerResponse)[vs[1].(int)] + }).(ApplicationGatewayListenerResponseOutput) } -// Private Endpoint connection on an application gateway. -type ApplicationGatewayPrivateEndpointConnectionResponse struct { +// Load Distribution Policy of an application gateway. +type ApplicationGatewayLoadDistributionPolicy struct { + // Resource ID. + Id *string `pulumi:"id"` + // Load Distribution Targets resource of an application gateway. + LoadDistributionAlgorithm *string `pulumi:"loadDistributionAlgorithm"` + // Load Distribution Targets resource of an application gateway. + LoadDistributionTargets []ApplicationGatewayLoadDistributionTarget `pulumi:"loadDistributionTargets"` + // Name of the load distribution policy that is unique within an Application Gateway. + Name *string `pulumi:"name"` +} + +// ApplicationGatewayLoadDistributionPolicyInput is an input type that accepts ApplicationGatewayLoadDistributionPolicyArgs and ApplicationGatewayLoadDistributionPolicyOutput values. +// You can construct a concrete instance of `ApplicationGatewayLoadDistributionPolicyInput` via: +// +// ApplicationGatewayLoadDistributionPolicyArgs{...} +type ApplicationGatewayLoadDistributionPolicyInput interface { + pulumi.Input + + ToApplicationGatewayLoadDistributionPolicyOutput() ApplicationGatewayLoadDistributionPolicyOutput + ToApplicationGatewayLoadDistributionPolicyOutputWithContext(context.Context) ApplicationGatewayLoadDistributionPolicyOutput +} + +// Load Distribution Policy of an application gateway. +type ApplicationGatewayLoadDistributionPolicyArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Load Distribution Targets resource of an application gateway. + LoadDistributionAlgorithm pulumi.StringPtrInput `pulumi:"loadDistributionAlgorithm"` + // Load Distribution Targets resource of an application gateway. + LoadDistributionTargets ApplicationGatewayLoadDistributionTargetArrayInput `pulumi:"loadDistributionTargets"` + // Name of the load distribution policy that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (ApplicationGatewayLoadDistributionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionPolicy)(nil)).Elem() +} + +func (i ApplicationGatewayLoadDistributionPolicyArgs) ToApplicationGatewayLoadDistributionPolicyOutput() ApplicationGatewayLoadDistributionPolicyOutput { + return i.ToApplicationGatewayLoadDistributionPolicyOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayLoadDistributionPolicyArgs) ToApplicationGatewayLoadDistributionPolicyOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayLoadDistributionPolicyOutput) +} + +// ApplicationGatewayLoadDistributionPolicyArrayInput is an input type that accepts ApplicationGatewayLoadDistributionPolicyArray and ApplicationGatewayLoadDistributionPolicyArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayLoadDistributionPolicyArrayInput` via: +// +// ApplicationGatewayLoadDistributionPolicyArray{ ApplicationGatewayLoadDistributionPolicyArgs{...} } +type ApplicationGatewayLoadDistributionPolicyArrayInput interface { + pulumi.Input + + ToApplicationGatewayLoadDistributionPolicyArrayOutput() ApplicationGatewayLoadDistributionPolicyArrayOutput + ToApplicationGatewayLoadDistributionPolicyArrayOutputWithContext(context.Context) ApplicationGatewayLoadDistributionPolicyArrayOutput +} + +type ApplicationGatewayLoadDistributionPolicyArray []ApplicationGatewayLoadDistributionPolicyInput + +func (ApplicationGatewayLoadDistributionPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionPolicy)(nil)).Elem() +} + +func (i ApplicationGatewayLoadDistributionPolicyArray) ToApplicationGatewayLoadDistributionPolicyArrayOutput() ApplicationGatewayLoadDistributionPolicyArrayOutput { + return i.ToApplicationGatewayLoadDistributionPolicyArrayOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayLoadDistributionPolicyArray) ToApplicationGatewayLoadDistributionPolicyArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayLoadDistributionPolicyArrayOutput) +} + +// Load Distribution Policy of an application gateway. +type ApplicationGatewayLoadDistributionPolicyOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayLoadDistributionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionPolicy)(nil)).Elem() +} + +func (o ApplicationGatewayLoadDistributionPolicyOutput) ToApplicationGatewayLoadDistributionPolicyOutput() ApplicationGatewayLoadDistributionPolicyOutput { + return o +} + +func (o ApplicationGatewayLoadDistributionPolicyOutput) ToApplicationGatewayLoadDistributionPolicyOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyOutput { + return o +} + +// Resource ID. +func (o ApplicationGatewayLoadDistributionPolicyOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicy) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Load Distribution Targets resource of an application gateway. +func (o ApplicationGatewayLoadDistributionPolicyOutput) LoadDistributionAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicy) *string { return v.LoadDistributionAlgorithm }).(pulumi.StringPtrOutput) +} + +// Load Distribution Targets resource of an application gateway. +func (o ApplicationGatewayLoadDistributionPolicyOutput) LoadDistributionTargets() ApplicationGatewayLoadDistributionTargetArrayOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicy) []ApplicationGatewayLoadDistributionTarget { + return v.LoadDistributionTargets + }).(ApplicationGatewayLoadDistributionTargetArrayOutput) +} + +// Name of the load distribution policy that is unique within an Application Gateway. +func (o ApplicationGatewayLoadDistributionPolicyOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicy) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type ApplicationGatewayLoadDistributionPolicyArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayLoadDistributionPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionPolicy)(nil)).Elem() +} + +func (o ApplicationGatewayLoadDistributionPolicyArrayOutput) ToApplicationGatewayLoadDistributionPolicyArrayOutput() ApplicationGatewayLoadDistributionPolicyArrayOutput { + return o +} + +func (o ApplicationGatewayLoadDistributionPolicyArrayOutput) ToApplicationGatewayLoadDistributionPolicyArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyArrayOutput { + return o +} + +func (o ApplicationGatewayLoadDistributionPolicyArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayLoadDistributionPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayLoadDistributionPolicy { + return vs[0].([]ApplicationGatewayLoadDistributionPolicy)[vs[1].(int)] + }).(ApplicationGatewayLoadDistributionPolicyOutput) +} + +// Load Distribution Policy of an application gateway. +type ApplicationGatewayLoadDistributionPolicyResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // The consumer link id. - LinkIdentifier string `pulumi:"linkIdentifier"` - // Name of the private endpoint connection on an application gateway. + // Load Distribution Targets resource of an application gateway. + LoadDistributionAlgorithm *string `pulumi:"loadDistributionAlgorithm"` + // Load Distribution Targets resource of an application gateway. + LoadDistributionTargets []ApplicationGatewayLoadDistributionTargetResponse `pulumi:"loadDistributionTargets"` + // Name of the load distribution policy that is unique within an Application Gateway. Name *string `pulumi:"name"` - // The resource of private end point. - PrivateEndpoint PrivateEndpointResponse `pulumi:"privateEndpoint"` - // A collection of information about the state of the connection between service consumer and provider. - PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` - // The provisioning state of the application gateway private endpoint connection resource. + // The provisioning state of the Load Distribution Policy resource. ProvisioningState string `pulumi:"provisioningState"` // Type of the resource. Type string `pulumi:"type"` } -// Defaults sets the appropriate defaults for ApplicationGatewayPrivateEndpointConnectionResponse -func (val *ApplicationGatewayPrivateEndpointConnectionResponse) Defaults() *ApplicationGatewayPrivateEndpointConnectionResponse { - if val == nil { - return nil - } - tmp := *val - tmp.PrivateEndpoint = *tmp.PrivateEndpoint.Defaults() - - return &tmp -} - -// Private Endpoint connection on an application gateway. -type ApplicationGatewayPrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } +// Load Distribution Policy of an application gateway. +type ApplicationGatewayLoadDistributionPolicyResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateEndpointConnectionResponse)(nil)).Elem() +func (ApplicationGatewayLoadDistributionPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionPolicyResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ToApplicationGatewayPrivateEndpointConnectionResponseOutput() ApplicationGatewayPrivateEndpointConnectionResponseOutput { +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) ToApplicationGatewayLoadDistributionPolicyResponseOutput() ApplicationGatewayLoadDistributionPolicyResponseOutput { return o } -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ToApplicationGatewayPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateEndpointConnectionResponseOutput { +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) ToApplicationGatewayLoadDistributionPolicyResponseOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyResponseOutput { return o } // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The consumer link id. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) LinkIdentifier() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.LinkIdentifier }).(pulumi.StringOutput) +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the private endpoint connection on an application gateway. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Load Distribution Targets resource of an application gateway. +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) LoadDistributionAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) *string { return v.LoadDistributionAlgorithm }).(pulumi.StringPtrOutput) } -// The resource of private end point. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponseOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) PrivateEndpointResponse { - return v.PrivateEndpoint - }).(PrivateEndpointResponseOutput) +// Load Distribution Targets resource of an application gateway. +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) LoadDistributionTargets() ApplicationGatewayLoadDistributionTargetResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) []ApplicationGatewayLoadDistributionTargetResponse { + return v.LoadDistributionTargets + }).(ApplicationGatewayLoadDistributionTargetResponseArrayOutput) } -// A collection of information about the state of the connection between service consumer and provider. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *PrivateLinkServiceConnectionStateResponse { - return v.PrivateLinkServiceConnectionState - }).(PrivateLinkServiceConnectionStateResponsePtrOutput) +// Name of the load distribution policy that is unique within an Application Gateway. +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The provisioning state of the application gateway private endpoint connection resource. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// The provisioning state of the Load Distribution Policy resource. +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } // Type of the resource. -func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ApplicationGatewayLoadDistributionPolicyResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionPolicyResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayLoadDistributionPolicyResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateEndpointConnectionResponse)(nil)).Elem() +func (ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionPolicyResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ToApplicationGatewayPrivateEndpointConnectionResponseArrayOutput() ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { +func (o ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) ToApplicationGatewayLoadDistributionPolicyResponseArrayOutput() ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ToApplicationGatewayPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { +func (o ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) ToApplicationGatewayLoadDistributionPolicyResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateEndpointConnectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateEndpointConnectionResponse { - return vs[0].([]ApplicationGatewayPrivateEndpointConnectionResponse)[vs[1].(int)] - }).(ApplicationGatewayPrivateEndpointConnectionResponseOutput) +func (o ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayLoadDistributionPolicyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayLoadDistributionPolicyResponse { + return vs[0].([]ApplicationGatewayLoadDistributionPolicyResponse)[vs[1].(int)] + }).(ApplicationGatewayLoadDistributionPolicyResponseOutput) } -// Private Link Configuration on an application gateway. -type ApplicationGatewayPrivateLinkConfiguration struct { +// Load Distribution Target of an application gateway. +type ApplicationGatewayLoadDistributionTarget struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` // Resource ID. Id *string `pulumi:"id"` - // An array of application gateway private link ip configurations. - IpConfigurations []ApplicationGatewayPrivateLinkIpConfiguration `pulumi:"ipConfigurations"` - // Name of the private link configuration that is unique within an Application Gateway. + // Name of the load distribution policy that is unique within an Application Gateway. Name *string `pulumi:"name"` + // Weight per server. Range between 1 and 100. + WeightPerServer *int `pulumi:"weightPerServer"` } -// ApplicationGatewayPrivateLinkConfigurationInput is an input type that accepts ApplicationGatewayPrivateLinkConfigurationArgs and ApplicationGatewayPrivateLinkConfigurationOutput values. -// You can construct a concrete instance of `ApplicationGatewayPrivateLinkConfigurationInput` via: +// ApplicationGatewayLoadDistributionTargetInput is an input type that accepts ApplicationGatewayLoadDistributionTargetArgs and ApplicationGatewayLoadDistributionTargetOutput values. +// You can construct a concrete instance of `ApplicationGatewayLoadDistributionTargetInput` via: // -// ApplicationGatewayPrivateLinkConfigurationArgs{...} -type ApplicationGatewayPrivateLinkConfigurationInput interface { +// ApplicationGatewayLoadDistributionTargetArgs{...} +type ApplicationGatewayLoadDistributionTargetInput interface { pulumi.Input - ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput - ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(context.Context) ApplicationGatewayPrivateLinkConfigurationOutput + ToApplicationGatewayLoadDistributionTargetOutput() ApplicationGatewayLoadDistributionTargetOutput + ToApplicationGatewayLoadDistributionTargetOutputWithContext(context.Context) ApplicationGatewayLoadDistributionTargetOutput } -// Private Link Configuration on an application gateway. -type ApplicationGatewayPrivateLinkConfigurationArgs struct { +// Load Distribution Target of an application gateway. +type ApplicationGatewayLoadDistributionTargetArgs struct { + // Backend address pool resource of the application gateway. + BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // An array of application gateway private link ip configurations. - IpConfigurations ApplicationGatewayPrivateLinkIpConfigurationArrayInput `pulumi:"ipConfigurations"` - // Name of the private link configuration that is unique within an Application Gateway. + // Name of the load distribution policy that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` + // Weight per server. Range between 1 and 100. + WeightPerServer pulumi.IntPtrInput `pulumi:"weightPerServer"` } -func (ApplicationGatewayPrivateLinkConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionTarget)(nil)).Elem() } -func (i ApplicationGatewayPrivateLinkConfigurationArgs) ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput { - return i.ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(context.Background()) +func (i ApplicationGatewayLoadDistributionTargetArgs) ToApplicationGatewayLoadDistributionTargetOutput() ApplicationGatewayLoadDistributionTargetOutput { + return i.ToApplicationGatewayLoadDistributionTargetOutputWithContext(context.Background()) } -func (i ApplicationGatewayPrivateLinkConfigurationArgs) ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkConfigurationOutput) +func (i ApplicationGatewayLoadDistributionTargetArgs) ToApplicationGatewayLoadDistributionTargetOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayLoadDistributionTargetOutput) } -// ApplicationGatewayPrivateLinkConfigurationArrayInput is an input type that accepts ApplicationGatewayPrivateLinkConfigurationArray and ApplicationGatewayPrivateLinkConfigurationArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayPrivateLinkConfigurationArrayInput` via: +// ApplicationGatewayLoadDistributionTargetArrayInput is an input type that accepts ApplicationGatewayLoadDistributionTargetArray and ApplicationGatewayLoadDistributionTargetArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayLoadDistributionTargetArrayInput` via: // -// ApplicationGatewayPrivateLinkConfigurationArray{ ApplicationGatewayPrivateLinkConfigurationArgs{...} } -type ApplicationGatewayPrivateLinkConfigurationArrayInput interface { +// ApplicationGatewayLoadDistributionTargetArray{ ApplicationGatewayLoadDistributionTargetArgs{...} } +type ApplicationGatewayLoadDistributionTargetArrayInput interface { pulumi.Input - ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput - ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput + ToApplicationGatewayLoadDistributionTargetArrayOutput() ApplicationGatewayLoadDistributionTargetArrayOutput + ToApplicationGatewayLoadDistributionTargetArrayOutputWithContext(context.Context) ApplicationGatewayLoadDistributionTargetArrayOutput } -type ApplicationGatewayPrivateLinkConfigurationArray []ApplicationGatewayPrivateLinkConfigurationInput +type ApplicationGatewayLoadDistributionTargetArray []ApplicationGatewayLoadDistributionTargetInput -func (ApplicationGatewayPrivateLinkConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionTarget)(nil)).Elem() } -func (i ApplicationGatewayPrivateLinkConfigurationArray) ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput { - return i.ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayLoadDistributionTargetArray) ToApplicationGatewayLoadDistributionTargetArrayOutput() ApplicationGatewayLoadDistributionTargetArrayOutput { + return i.ToApplicationGatewayLoadDistributionTargetArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayPrivateLinkConfigurationArray) ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkConfigurationArrayOutput) +func (i ApplicationGatewayLoadDistributionTargetArray) ToApplicationGatewayLoadDistributionTargetArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayLoadDistributionTargetArrayOutput) } -// Private Link Configuration on an application gateway. -type ApplicationGatewayPrivateLinkConfigurationOutput struct{ *pulumi.OutputState } +// Load Distribution Target of an application gateway. +type ApplicationGatewayLoadDistributionTargetOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionTarget)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkConfigurationOutput) ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput { +func (o ApplicationGatewayLoadDistributionTargetOutput) ToApplicationGatewayLoadDistributionTargetOutput() ApplicationGatewayLoadDistributionTargetOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationOutput) ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationOutput { +func (o ApplicationGatewayLoadDistributionTargetOutput) ToApplicationGatewayLoadDistributionTargetOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetOutput { return o } +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayLoadDistributionTargetOutput) BackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTarget) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) +} + // Resource ID. -func (o ApplicationGatewayPrivateLinkConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayLoadDistributionTargetOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTarget) *string { return v.Id }).(pulumi.StringPtrOutput) } -// An array of application gateway private link ip configurations. -func (o ApplicationGatewayPrivateLinkConfigurationOutput) IpConfigurations() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) []ApplicationGatewayPrivateLinkIpConfiguration { - return v.IpConfigurations - }).(ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) +// Name of the load distribution policy that is unique within an Application Gateway. +func (o ApplicationGatewayLoadDistributionTargetOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTarget) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Name of the private link configuration that is unique within an Application Gateway. -func (o ApplicationGatewayPrivateLinkConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +// Weight per server. Range between 1 and 100. +func (o ApplicationGatewayLoadDistributionTargetOutput) WeightPerServer() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTarget) *int { return v.WeightPerServer }).(pulumi.IntPtrOutput) } -type ApplicationGatewayPrivateLinkConfigurationArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayLoadDistributionTargetArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionTarget)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput { +func (o ApplicationGatewayLoadDistributionTargetArrayOutput) ToApplicationGatewayLoadDistributionTargetArrayOutput() ApplicationGatewayLoadDistributionTargetArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput { +func (o ApplicationGatewayLoadDistributionTargetArrayOutput) ToApplicationGatewayLoadDistributionTargetArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkConfiguration { - return vs[0].([]ApplicationGatewayPrivateLinkConfiguration)[vs[1].(int)] - }).(ApplicationGatewayPrivateLinkConfigurationOutput) +func (o ApplicationGatewayLoadDistributionTargetArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayLoadDistributionTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayLoadDistributionTarget { + return vs[0].([]ApplicationGatewayLoadDistributionTarget)[vs[1].(int)] + }).(ApplicationGatewayLoadDistributionTargetOutput) } -// Private Link Configuration on an application gateway. -type ApplicationGatewayPrivateLinkConfigurationResponse struct { +// Load Distribution Target of an application gateway. +type ApplicationGatewayLoadDistributionTargetResponse struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // An array of application gateway private link ip configurations. - IpConfigurations []ApplicationGatewayPrivateLinkIpConfigurationResponse `pulumi:"ipConfigurations"` - // Name of the private link configuration that is unique within an Application Gateway. + // Name of the load distribution policy that is unique within an Application Gateway. Name *string `pulumi:"name"` - // The provisioning state of the application gateway private link configuration. - ProvisioningState string `pulumi:"provisioningState"` // Type of the resource. Type string `pulumi:"type"` + // Weight per server. Range between 1 and 100. + WeightPerServer *int `pulumi:"weightPerServer"` } -// Private Link Configuration on an application gateway. -type ApplicationGatewayPrivateLinkConfigurationResponseOutput struct{ *pulumi.OutputState } +// Load Distribution Target of an application gateway. +type ApplicationGatewayLoadDistributionTargetResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfigurationResponse)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayLoadDistributionTargetResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ToApplicationGatewayPrivateLinkConfigurationResponseOutput() ApplicationGatewayPrivateLinkConfigurationResponseOutput { +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) ToApplicationGatewayLoadDistributionTargetResponseOutput() ApplicationGatewayLoadDistributionTargetResponseOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ToApplicationGatewayPrivateLinkConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationResponseOutput { +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) ToApplicationGatewayLoadDistributionTargetResponseOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetResponseOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) *SubResourceResponse { + return v.BackendAddressPool + }).(SubResourceResponsePtrOutput) } -// Resource ID. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) string { return v.Etag }).(pulumi.StringOutput) } -// An array of application gateway private link ip configurations. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) IpConfigurations() ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) []ApplicationGatewayPrivateLinkIpConfigurationResponse { - return v.IpConfigurations - }).(ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) +// Resource ID. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the private link configuration that is unique within an Application Gateway. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of the load distribution policy that is unique within an Application Gateway. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The provisioning state of the application gateway private link configuration. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Type of the resource. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) string { return v.Type }).(pulumi.StringOutput) } -// Type of the resource. -func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) +// Weight per server. Range between 1 and 100. +func (o ApplicationGatewayLoadDistributionTargetResponseOutput) WeightPerServer() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayLoadDistributionTargetResponse) *int { return v.WeightPerServer }).(pulumi.IntPtrOutput) } -type ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayLoadDistributionTargetResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfigurationResponse)(nil)).Elem() +func (ApplicationGatewayLoadDistributionTargetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayLoadDistributionTargetResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkConfigurationResponseArrayOutput() ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { +func (o ApplicationGatewayLoadDistributionTargetResponseArrayOutput) ToApplicationGatewayLoadDistributionTargetResponseArrayOutput() ApplicationGatewayLoadDistributionTargetResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { +func (o ApplicationGatewayLoadDistributionTargetResponseArrayOutput) ToApplicationGatewayLoadDistributionTargetResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayLoadDistributionTargetResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkConfigurationResponse { - return vs[0].([]ApplicationGatewayPrivateLinkConfigurationResponse)[vs[1].(int)] - }).(ApplicationGatewayPrivateLinkConfigurationResponseOutput) +func (o ApplicationGatewayLoadDistributionTargetResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayLoadDistributionTargetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayLoadDistributionTargetResponse { + return vs[0].([]ApplicationGatewayLoadDistributionTargetResponse)[vs[1].(int)] + }).(ApplicationGatewayLoadDistributionTargetResponseOutput) } -// The application gateway private link ip configuration. -type ApplicationGatewayPrivateLinkIpConfiguration struct { +// Path rule of URL path map of an application gateway. +type ApplicationGatewayPathRule struct { + // Backend address pool resource of URL path map path rule. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` + // Backend http settings resource of URL path map path rule. + BackendHttpSettings *SubResource `pulumi:"backendHttpSettings"` + // Reference to the FirewallPolicy resource. + FirewallPolicy *SubResource `pulumi:"firewallPolicy"` // Resource ID. Id *string `pulumi:"id"` - // The name of application gateway private link ip configuration. + // Load Distribution Policy resource of URL path map path rule. + LoadDistributionPolicy *SubResource `pulumi:"loadDistributionPolicy"` + // Name of the path rule that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary *bool `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress *string `pulumi:"privateIPAddress"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // Reference to the subnet resource. - Subnet *SubResource `pulumi:"subnet"` + // Path rules of URL path map. + Paths []string `pulumi:"paths"` + // Redirect configuration resource of URL path map path rule. + RedirectConfiguration *SubResource `pulumi:"redirectConfiguration"` + // Rewrite rule set resource of URL path map path rule. + RewriteRuleSet *SubResource `pulumi:"rewriteRuleSet"` } -// ApplicationGatewayPrivateLinkIpConfigurationInput is an input type that accepts ApplicationGatewayPrivateLinkIpConfigurationArgs and ApplicationGatewayPrivateLinkIpConfigurationOutput values. -// You can construct a concrete instance of `ApplicationGatewayPrivateLinkIpConfigurationInput` via: +// ApplicationGatewayPathRuleInput is an input type that accepts ApplicationGatewayPathRuleArgs and ApplicationGatewayPathRuleOutput values. +// You can construct a concrete instance of `ApplicationGatewayPathRuleInput` via: // -// ApplicationGatewayPrivateLinkIpConfigurationArgs{...} -type ApplicationGatewayPrivateLinkIpConfigurationInput interface { +// ApplicationGatewayPathRuleArgs{...} +type ApplicationGatewayPathRuleInput interface { pulumi.Input - ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput - ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput + ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput + ToApplicationGatewayPathRuleOutputWithContext(context.Context) ApplicationGatewayPathRuleOutput } -// The application gateway private link ip configuration. -type ApplicationGatewayPrivateLinkIpConfigurationArgs struct { +// Path rule of URL path map of an application gateway. +type ApplicationGatewayPathRuleArgs struct { + // Backend address pool resource of URL path map path rule. + BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` + // Backend http settings resource of URL path map path rule. + BackendHttpSettings SubResourcePtrInput `pulumi:"backendHttpSettings"` + // Reference to the FirewallPolicy resource. + FirewallPolicy SubResourcePtrInput `pulumi:"firewallPolicy"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // The name of application gateway private link ip configuration. + // Load Distribution Policy resource of URL path map path rule. + LoadDistributionPolicy SubResourcePtrInput `pulumi:"loadDistributionPolicy"` + // Name of the path rule that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary pulumi.BoolPtrInput `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` - // The private IP address allocation method. - PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` - // Reference to the subnet resource. - Subnet SubResourcePtrInput `pulumi:"subnet"` + // Path rules of URL path map. + Paths pulumi.StringArrayInput `pulumi:"paths"` + // Redirect configuration resource of URL path map path rule. + RedirectConfiguration SubResourcePtrInput `pulumi:"redirectConfiguration"` + // Rewrite rule set resource of URL path map path rule. + RewriteRuleSet SubResourcePtrInput `pulumi:"rewriteRuleSet"` } -func (ApplicationGatewayPrivateLinkIpConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() +func (ApplicationGatewayPathRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPathRule)(nil)).Elem() } -func (i ApplicationGatewayPrivateLinkIpConfigurationArgs) ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput { - return i.ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(context.Background()) +func (i ApplicationGatewayPathRuleArgs) ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput { + return i.ToApplicationGatewayPathRuleOutputWithContext(context.Background()) } -func (i ApplicationGatewayPrivateLinkIpConfigurationArgs) ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkIpConfigurationOutput) +func (i ApplicationGatewayPathRuleArgs) ToApplicationGatewayPathRuleOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPathRuleOutput) } -// ApplicationGatewayPrivateLinkIpConfigurationArrayInput is an input type that accepts ApplicationGatewayPrivateLinkIpConfigurationArray and ApplicationGatewayPrivateLinkIpConfigurationArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayPrivateLinkIpConfigurationArrayInput` via: +// ApplicationGatewayPathRuleArrayInput is an input type that accepts ApplicationGatewayPathRuleArray and ApplicationGatewayPathRuleArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayPathRuleArrayInput` via: // -// ApplicationGatewayPrivateLinkIpConfigurationArray{ ApplicationGatewayPrivateLinkIpConfigurationArgs{...} } -type ApplicationGatewayPrivateLinkIpConfigurationArrayInput interface { +// ApplicationGatewayPathRuleArray{ ApplicationGatewayPathRuleArgs{...} } +type ApplicationGatewayPathRuleArrayInput interface { pulumi.Input - ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput - ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput + ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput + ToApplicationGatewayPathRuleArrayOutputWithContext(context.Context) ApplicationGatewayPathRuleArrayOutput } -type ApplicationGatewayPrivateLinkIpConfigurationArray []ApplicationGatewayPrivateLinkIpConfigurationInput +type ApplicationGatewayPathRuleArray []ApplicationGatewayPathRuleInput -func (ApplicationGatewayPrivateLinkIpConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() +func (ApplicationGatewayPathRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPathRule)(nil)).Elem() } -func (i ApplicationGatewayPrivateLinkIpConfigurationArray) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { - return i.ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayPathRuleArray) ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput { + return i.ToApplicationGatewayPathRuleArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayPrivateLinkIpConfigurationArray) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) +func (i ApplicationGatewayPathRuleArray) ToApplicationGatewayPathRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPathRuleArrayOutput) } -// The application gateway private link ip configuration. -type ApplicationGatewayPrivateLinkIpConfigurationOutput struct{ *pulumi.OutputState } +// Path rule of URL path map of an application gateway. +type ApplicationGatewayPathRuleOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkIpConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() +func (ApplicationGatewayPathRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPathRule)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput { +func (o ApplicationGatewayPathRuleOutput) ToApplicationGatewayPathRuleOutput() ApplicationGatewayPathRuleOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput { +func (o ApplicationGatewayPathRuleOutput) ToApplicationGatewayPathRuleOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleOutput { return o } +// Backend address pool resource of URL path map path rule. +func (o ApplicationGatewayPathRuleOutput) BackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) +} + +// Backend http settings resource of URL path map path rule. +func (o ApplicationGatewayPathRuleOutput) BackendHttpSettings() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.BackendHttpSettings }).(SubResourcePtrOutput) +} + +// Reference to the FirewallPolicy resource. +func (o ApplicationGatewayPathRuleOutput) FirewallPolicy() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.FirewallPolicy }).(SubResourcePtrOutput) +} + // Resource ID. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayPathRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The name of application gateway private link ip configuration. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +// Load Distribution Policy resource of URL path map path rule. +func (o ApplicationGatewayPathRuleOutput) LoadDistributionPolicy() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.LoadDistributionPolicy }).(SubResourcePtrOutput) } -// Whether the ip configuration is primary or not. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Primary() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *bool { return v.Primary }).(pulumi.BoolPtrOutput) +// Name of the path rule that is unique within an Application Gateway. +func (o ApplicationGatewayPathRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The private IP address of the IP configuration. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +// Path rules of URL path map. +func (o ApplicationGatewayPathRuleOutput) Paths() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) []string { return v.Paths }).(pulumi.StringArrayOutput) } -// The private IP address allocation method. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) +// Redirect configuration resource of URL path map path rule. +func (o ApplicationGatewayPathRuleOutput) RedirectConfiguration() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.RedirectConfiguration }).(SubResourcePtrOutput) } -// Reference to the subnet resource. -func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Subnet() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *SubResource { return v.Subnet }).(SubResourcePtrOutput) +// Rewrite rule set resource of URL path map path rule. +func (o ApplicationGatewayPathRuleOutput) RewriteRuleSet() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRule) *SubResource { return v.RewriteRuleSet }).(SubResourcePtrOutput) } -type ApplicationGatewayPrivateLinkIpConfigurationArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayPathRuleArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() +func (ApplicationGatewayPathRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPathRule)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { +func (o ApplicationGatewayPathRuleArrayOutput) ToApplicationGatewayPathRuleArrayOutput() ApplicationGatewayPathRuleArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { +func (o ApplicationGatewayPathRuleArrayOutput) ToApplicationGatewayPathRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkIpConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkIpConfiguration { - return vs[0].([]ApplicationGatewayPrivateLinkIpConfiguration)[vs[1].(int)] - }).(ApplicationGatewayPrivateLinkIpConfigurationOutput) +func (o ApplicationGatewayPathRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPathRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPathRule { + return vs[0].([]ApplicationGatewayPathRule)[vs[1].(int)] + }).(ApplicationGatewayPathRuleOutput) } -// The application gateway private link ip configuration. -type ApplicationGatewayPrivateLinkIpConfigurationResponse struct { +// Path rule of URL path map of an application gateway. +type ApplicationGatewayPathRuleResponse struct { + // Backend address pool resource of URL path map path rule. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` + // Backend http settings resource of URL path map path rule. + BackendHttpSettings *SubResourceResponse `pulumi:"backendHttpSettings"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // Reference to the FirewallPolicy resource. + FirewallPolicy *SubResourceResponse `pulumi:"firewallPolicy"` // Resource ID. Id *string `pulumi:"id"` - // The name of application gateway private link ip configuration. + // Load Distribution Policy resource of URL path map path rule. + LoadDistributionPolicy *SubResourceResponse `pulumi:"loadDistributionPolicy"` + // Name of the path rule that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary *bool `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress *string `pulumi:"privateIPAddress"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // The provisioning state of the application gateway private link IP configuration. + // Path rules of URL path map. + Paths []string `pulumi:"paths"` + // The provisioning state of the path rule resource. ProvisioningState string `pulumi:"provisioningState"` - // Reference to the subnet resource. - Subnet *SubResourceResponse `pulumi:"subnet"` - // The resource type. + // Redirect configuration resource of URL path map path rule. + RedirectConfiguration *SubResourceResponse `pulumi:"redirectConfiguration"` + // Rewrite rule set resource of URL path map path rule. + RewriteRuleSet *SubResourceResponse `pulumi:"rewriteRuleSet"` + // Type of the resource. Type string `pulumi:"type"` } -// The application gateway private link ip configuration. -type ApplicationGatewayPrivateLinkIpConfigurationResponseOutput struct{ *pulumi.OutputState } +// Path rule of URL path map of an application gateway. +type ApplicationGatewayPathRuleResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfigurationResponse)(nil)).Elem() +func (ApplicationGatewayPathRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPathRuleResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseOutput() ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { +func (o ApplicationGatewayPathRuleResponseOutput) ToApplicationGatewayPathRuleResponseOutput() ApplicationGatewayPathRuleResponseOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { +func (o ApplicationGatewayPathRuleResponseOutput) ToApplicationGatewayPathRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleResponseOutput { return o } +// Backend address pool resource of URL path map path rule. +func (o ApplicationGatewayPathRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) +} + +// Backend http settings resource of URL path map path rule. +func (o ApplicationGatewayPathRuleResponseOutput) BackendHttpSettings() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.BackendHttpSettings }).(SubResourceResponsePtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayPathRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Reference to the FirewallPolicy resource. +func (o ApplicationGatewayPathRuleResponseOutput) FirewallPolicy() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.FirewallPolicy }).(SubResourceResponsePtrOutput) } // Resource ID. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayPathRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The name of application gateway private link ip configuration. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Load Distribution Policy resource of URL path map path rule. +func (o ApplicationGatewayPathRuleResponseOutput) LoadDistributionPolicy() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.LoadDistributionPolicy }).(SubResourceResponsePtrOutput) } -// Whether the ip configuration is primary or not. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Primary() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *bool { return v.Primary }).(pulumi.BoolPtrOutput) +// Name of the path rule that is unique within an Application Gateway. +func (o ApplicationGatewayPathRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The private IP address of the IP configuration. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +// Path rules of URL path map. +func (o ApplicationGatewayPathRuleResponseOutput) Paths() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) []string { return v.Paths }).(pulumi.StringArrayOutput) } -// The private IP address allocation method. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { - return v.PrivateIPAllocationMethod - }).(pulumi.StringPtrOutput) +// The provisioning state of the path rule resource. +func (o ApplicationGatewayPathRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The provisioning state of the application gateway private link IP configuration. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Redirect configuration resource of URL path map path rule. +func (o ApplicationGatewayPathRuleResponseOutput) RedirectConfiguration() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.RedirectConfiguration }).(SubResourceResponsePtrOutput) } -// Reference to the subnet resource. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) +// Rewrite rule set resource of URL path map path rule. +func (o ApplicationGatewayPathRuleResponseOutput) RewriteRuleSet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) *SubResourceResponse { return v.RewriteRuleSet }).(SubResourceResponsePtrOutput) } -// The resource type. -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) +// Type of the resource. +func (o ApplicationGatewayPathRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPathRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayPathRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfigurationResponse)(nil)).Elem() +func (ApplicationGatewayPathRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPathRuleResponse)(nil)).Elem() } -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { +func (o ApplicationGatewayPathRuleResponseArrayOutput) ToApplicationGatewayPathRuleResponseArrayOutput() ApplicationGatewayPathRuleResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { +func (o ApplicationGatewayPathRuleResponseArrayOutput) ToApplicationGatewayPathRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPathRuleResponseArrayOutput { return o } -func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkIpConfigurationResponse { - return vs[0].([]ApplicationGatewayPrivateLinkIpConfigurationResponse)[vs[1].(int)] - }).(ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) +func (o ApplicationGatewayPathRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPathRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPathRuleResponse { + return vs[0].([]ApplicationGatewayPathRuleResponse)[vs[1].(int)] + }).(ApplicationGatewayPathRuleResponseOutput) } -// Probe of the application gateway. -type ApplicationGatewayProbe struct { - // Host name to send the probe to. - Host *string `pulumi:"host"` +// Private Endpoint connection on an application gateway. +type ApplicationGatewayPrivateEndpointConnectionResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. - Interval *int `pulumi:"interval"` - // Criterion for classifying a healthy probe response. - Match *ApplicationGatewayProbeHealthResponseMatch `pulumi:"match"` - // Minimum number of servers that are always marked healthy. Default value is 0. - MinServers *int `pulumi:"minServers"` - // Name of the probe that is unique within an Application Gateway. + // The consumer link id. + LinkIdentifier string `pulumi:"linkIdentifier"` + // Name of the private endpoint connection on an application gateway. Name *string `pulumi:"name"` - // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. - Path *string `pulumi:"path"` - // Whether the host header should be picked from the backend http settings. Default value is false. - PickHostNameFromBackendHttpSettings *bool `pulumi:"pickHostNameFromBackendHttpSettings"` - // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. - Port *int `pulumi:"port"` - // The protocol used for the probe. - Protocol *string `pulumi:"protocol"` - // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. - Timeout *int `pulumi:"timeout"` - // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. - UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` + // The resource of private end point. + PrivateEndpoint PrivateEndpointResponse `pulumi:"privateEndpoint"` + // A collection of information about the state of the connection between service consumer and provider. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` + // The provisioning state of the application gateway private endpoint connection resource. + ProvisioningState string `pulumi:"provisioningState"` + // Type of the resource. + Type string `pulumi:"type"` } -// ApplicationGatewayProbeInput is an input type that accepts ApplicationGatewayProbeArgs and ApplicationGatewayProbeOutput values. -// You can construct a concrete instance of `ApplicationGatewayProbeInput` via: -// -// ApplicationGatewayProbeArgs{...} -type ApplicationGatewayProbeInput interface { - pulumi.Input +// Defaults sets the appropriate defaults for ApplicationGatewayPrivateEndpointConnectionResponse +func (val *ApplicationGatewayPrivateEndpointConnectionResponse) Defaults() *ApplicationGatewayPrivateEndpointConnectionResponse { + if val == nil { + return nil + } + tmp := *val + tmp.PrivateEndpoint = *tmp.PrivateEndpoint.Defaults() - ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput - ToApplicationGatewayProbeOutputWithContext(context.Context) ApplicationGatewayProbeOutput + return &tmp } -// Probe of the application gateway. -type ApplicationGatewayProbeArgs struct { - // Host name to send the probe to. - Host pulumi.StringPtrInput `pulumi:"host"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. - Interval pulumi.IntPtrInput `pulumi:"interval"` - // Criterion for classifying a healthy probe response. - Match ApplicationGatewayProbeHealthResponseMatchPtrInput `pulumi:"match"` - // Minimum number of servers that are always marked healthy. Default value is 0. - MinServers pulumi.IntPtrInput `pulumi:"minServers"` - // Name of the probe that is unique within an Application Gateway. - Name pulumi.StringPtrInput `pulumi:"name"` - // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. - Path pulumi.StringPtrInput `pulumi:"path"` - // Whether the host header should be picked from the backend http settings. Default value is false. - PickHostNameFromBackendHttpSettings pulumi.BoolPtrInput `pulumi:"pickHostNameFromBackendHttpSettings"` - // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. - Port pulumi.IntPtrInput `pulumi:"port"` - // The protocol used for the probe. - Protocol pulumi.StringPtrInput `pulumi:"protocol"` - // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. - Timeout pulumi.IntPtrInput `pulumi:"timeout"` - // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. - UnhealthyThreshold pulumi.IntPtrInput `pulumi:"unhealthyThreshold"` -} +// Private Endpoint connection on an application gateway. +type ApplicationGatewayPrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayProbeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbe)(nil)).Elem() +func (ApplicationGatewayPrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateEndpointConnectionResponse)(nil)).Elem() } -func (i ApplicationGatewayProbeArgs) ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput { - return i.ToApplicationGatewayProbeOutputWithContext(context.Background()) +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ToApplicationGatewayPrivateEndpointConnectionResponseOutput() ApplicationGatewayPrivateEndpointConnectionResponseOutput { + return o } -func (i ApplicationGatewayProbeArgs) ToApplicationGatewayProbeOutputWithContext(ctx context.Context) ApplicationGatewayProbeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeOutput) +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ToApplicationGatewayPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateEndpointConnectionResponseOutput { + return o } -// ApplicationGatewayProbeArrayInput is an input type that accepts ApplicationGatewayProbeArray and ApplicationGatewayProbeArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayProbeArrayInput` via: -// -// ApplicationGatewayProbeArray{ ApplicationGatewayProbeArgs{...} } -type ApplicationGatewayProbeArrayInput interface { - pulumi.Input - - ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput - ToApplicationGatewayProbeArrayOutputWithContext(context.Context) ApplicationGatewayProbeArrayOutput +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) } -type ApplicationGatewayProbeArray []ApplicationGatewayProbeInput - -func (ApplicationGatewayProbeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayProbe)(nil)).Elem() +// Resource ID. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (i ApplicationGatewayProbeArray) ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput { - return i.ToApplicationGatewayProbeArrayOutputWithContext(context.Background()) +// The consumer link id. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) LinkIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.LinkIdentifier }).(pulumi.StringOutput) } -func (i ApplicationGatewayProbeArray) ToApplicationGatewayProbeArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeArrayOutput) +// Name of the private endpoint connection on an application gateway. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Probe of the application gateway. -type ApplicationGatewayProbeOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayProbeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbe)(nil)).Elem() +// The resource of private end point. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponseOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) PrivateEndpointResponse { + return v.PrivateEndpoint + }).(PrivateEndpointResponseOutput) } -func (o ApplicationGatewayProbeOutput) ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput { - return o +// A collection of information about the state of the connection between service consumer and provider. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) *PrivateLinkServiceConnectionStateResponse { + return v.PrivateLinkServiceConnectionState + }).(PrivateLinkServiceConnectionStateResponsePtrOutput) } -func (o ApplicationGatewayProbeOutput) ToApplicationGatewayProbeOutputWithContext(ctx context.Context) ApplicationGatewayProbeOutput { - return o +// The provisioning state of the application gateway private endpoint connection resource. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Host name to send the probe to. -func (o ApplicationGatewayProbeOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Host }).(pulumi.StringPtrOutput) +// Type of the resource. +func (o ApplicationGatewayPrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) } -// Resource ID. -func (o ApplicationGatewayProbeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Id }).(pulumi.StringPtrOutput) +type ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateEndpointConnectionResponse)(nil)).Elem() } -// The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. -func (o ApplicationGatewayProbeOutput) Interval() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Interval }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ToApplicationGatewayPrivateEndpointConnectionResponseArrayOutput() ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { + return o } -// Criterion for classifying a healthy probe response. -func (o ApplicationGatewayProbeOutput) Match() ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *ApplicationGatewayProbeHealthResponseMatch { return v.Match }).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) +func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) ToApplicationGatewayPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { + return o } -// Minimum number of servers that are always marked healthy. Default value is 0. -func (o ApplicationGatewayProbeOutput) MinServers() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.MinServers }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateEndpointConnectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateEndpointConnectionResponse { + return vs[0].([]ApplicationGatewayPrivateEndpointConnectionResponse)[vs[1].(int)] + }).(ApplicationGatewayPrivateEndpointConnectionResponseOutput) } -// Name of the probe that is unique within an Application Gateway. -func (o ApplicationGatewayProbeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Name }).(pulumi.StringPtrOutput) +// Private Link Configuration on an application gateway. +type ApplicationGatewayPrivateLinkConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // An array of application gateway private link ip configurations. + IpConfigurations []ApplicationGatewayPrivateLinkIpConfiguration `pulumi:"ipConfigurations"` + // Name of the private link configuration that is unique within an Application Gateway. + Name *string `pulumi:"name"` } -// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. -func (o ApplicationGatewayProbeOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Path }).(pulumi.StringPtrOutput) +// ApplicationGatewayPrivateLinkConfigurationInput is an input type that accepts ApplicationGatewayPrivateLinkConfigurationArgs and ApplicationGatewayPrivateLinkConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayPrivateLinkConfigurationInput` via: +// +// ApplicationGatewayPrivateLinkConfigurationArgs{...} +type ApplicationGatewayPrivateLinkConfigurationInput interface { + pulumi.Input + + ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput + ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(context.Context) ApplicationGatewayPrivateLinkConfigurationOutput } -// Whether the host header should be picked from the backend http settings. Default value is false. -func (o ApplicationGatewayProbeOutput) PickHostNameFromBackendHttpSettings() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *bool { return v.PickHostNameFromBackendHttpSettings }).(pulumi.BoolPtrOutput) +// Private Link Configuration on an application gateway. +type ApplicationGatewayPrivateLinkConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // An array of application gateway private link ip configurations. + IpConfigurations ApplicationGatewayPrivateLinkIpConfigurationArrayInput `pulumi:"ipConfigurations"` + // Name of the private link configuration that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` } -// Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. -func (o ApplicationGatewayProbeOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Port }).(pulumi.IntPtrOutput) +func (ApplicationGatewayPrivateLinkConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() } -// The protocol used for the probe. -func (o ApplicationGatewayProbeOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Protocol }).(pulumi.StringPtrOutput) +func (i ApplicationGatewayPrivateLinkConfigurationArgs) ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput { + return i.ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(context.Background()) } -// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. -func (o ApplicationGatewayProbeOutput) Timeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Timeout }).(pulumi.IntPtrOutput) +func (i ApplicationGatewayPrivateLinkConfigurationArgs) ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkConfigurationOutput) } -// The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. -func (o ApplicationGatewayProbeOutput) UnhealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) +// ApplicationGatewayPrivateLinkConfigurationArrayInput is an input type that accepts ApplicationGatewayPrivateLinkConfigurationArray and ApplicationGatewayPrivateLinkConfigurationArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayPrivateLinkConfigurationArrayInput` via: +// +// ApplicationGatewayPrivateLinkConfigurationArray{ ApplicationGatewayPrivateLinkConfigurationArgs{...} } +type ApplicationGatewayPrivateLinkConfigurationArrayInput interface { + pulumi.Input + + ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput + ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput } -type ApplicationGatewayProbeArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayPrivateLinkConfigurationArray []ApplicationGatewayPrivateLinkConfigurationInput -func (ApplicationGatewayProbeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayProbe)(nil)).Elem() +func (ApplicationGatewayPrivateLinkConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() } -func (o ApplicationGatewayProbeArrayOutput) ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput { +func (i ApplicationGatewayPrivateLinkConfigurationArray) ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput { + return i.ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayPrivateLinkConfigurationArray) ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkConfigurationArrayOutput) +} + +// Private Link Configuration on an application gateway. +type ApplicationGatewayPrivateLinkConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayPrivateLinkConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() +} + +func (o ApplicationGatewayPrivateLinkConfigurationOutput) ToApplicationGatewayPrivateLinkConfigurationOutput() ApplicationGatewayPrivateLinkConfigurationOutput { return o } -func (o ApplicationGatewayProbeArrayOutput) ToApplicationGatewayProbeArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeArrayOutput { +func (o ApplicationGatewayPrivateLinkConfigurationOutput) ToApplicationGatewayPrivateLinkConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationOutput { return o } -func (o ApplicationGatewayProbeArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayProbeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayProbe { - return vs[0].([]ApplicationGatewayProbe)[vs[1].(int)] - }).(ApplicationGatewayProbeOutput) +// Resource ID. +func (o ApplicationGatewayPrivateLinkConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Application gateway probe health response match. -type ApplicationGatewayProbeHealthResponseMatch struct { - // Body that must be contained in the health response. Default value is empty. - Body *string `pulumi:"body"` - // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. - StatusCodes []string `pulumi:"statusCodes"` +// An array of application gateway private link ip configurations. +func (o ApplicationGatewayPrivateLinkConfigurationOutput) IpConfigurations() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) []ApplicationGatewayPrivateLinkIpConfiguration { + return v.IpConfigurations + }).(ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) } -// ApplicationGatewayProbeHealthResponseMatchInput is an input type that accepts ApplicationGatewayProbeHealthResponseMatchArgs and ApplicationGatewayProbeHealthResponseMatchOutput values. -// You can construct a concrete instance of `ApplicationGatewayProbeHealthResponseMatchInput` via: -// -// ApplicationGatewayProbeHealthResponseMatchArgs{...} -type ApplicationGatewayProbeHealthResponseMatchInput interface { - pulumi.Input +// Name of the private link configuration that is unique within an Application Gateway. +func (o ApplicationGatewayPrivateLinkConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +} - ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput - ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(context.Context) ApplicationGatewayProbeHealthResponseMatchOutput +type ApplicationGatewayPrivateLinkConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayPrivateLinkConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfiguration)(nil)).Elem() } -// Application gateway probe health response match. -type ApplicationGatewayProbeHealthResponseMatchArgs struct { - // Body that must be contained in the health response. Default value is empty. - Body pulumi.StringPtrInput `pulumi:"body"` - // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. - StatusCodes pulumi.StringArrayInput `pulumi:"statusCodes"` +func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) ToApplicationGatewayPrivateLinkConfigurationArrayOutput() ApplicationGatewayPrivateLinkConfigurationArrayOutput { + return o } -func (ApplicationGatewayProbeHealthResponseMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() +func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) ToApplicationGatewayPrivateLinkConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationArrayOutput { + return o } -func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput { - return i.ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(context.Background()) +func (o ApplicationGatewayPrivateLinkConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkConfiguration { + return vs[0].([]ApplicationGatewayPrivateLinkConfiguration)[vs[1].(int)] + }).(ApplicationGatewayPrivateLinkConfigurationOutput) } -func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchOutput) +// Private Link Configuration on an application gateway. +type ApplicationGatewayPrivateLinkConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // An array of application gateway private link ip configurations. + IpConfigurations []ApplicationGatewayPrivateLinkIpConfigurationResponse `pulumi:"ipConfigurations"` + // Name of the private link configuration that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // The provisioning state of the application gateway private link configuration. + ProvisioningState string `pulumi:"provisioningState"` + // Type of the resource. + Type string `pulumi:"type"` } -func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return i.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) +// Private Link Configuration on an application gateway. +type ApplicationGatewayPrivateLinkConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayPrivateLinkConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkConfigurationResponse)(nil)).Elem() } -func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchOutput).ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx) +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ToApplicationGatewayPrivateLinkConfigurationResponseOutput() ApplicationGatewayPrivateLinkConfigurationResponseOutput { + return o } -// ApplicationGatewayProbeHealthResponseMatchPtrInput is an input type that accepts ApplicationGatewayProbeHealthResponseMatchArgs, ApplicationGatewayProbeHealthResponseMatchPtr and ApplicationGatewayProbeHealthResponseMatchPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewayProbeHealthResponseMatchPtrInput` via: -// -// ApplicationGatewayProbeHealthResponseMatchArgs{...} -// -// or: -// -// nil -type ApplicationGatewayProbeHealthResponseMatchPtrInput interface { - pulumi.Input +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ToApplicationGatewayPrivateLinkConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationResponseOutput { + return o +} - ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput - ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } -type applicationGatewayProbeHealthResponseMatchPtrType ApplicationGatewayProbeHealthResponseMatchArgs +// Resource ID. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} -func ApplicationGatewayProbeHealthResponseMatchPtr(v *ApplicationGatewayProbeHealthResponseMatchArgs) ApplicationGatewayProbeHealthResponseMatchPtrInput { - return (*applicationGatewayProbeHealthResponseMatchPtrType)(v) +// An array of application gateway private link ip configurations. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) IpConfigurations() ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) []ApplicationGatewayPrivateLinkIpConfigurationResponse { + return v.IpConfigurations + }).(ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) } -func (*applicationGatewayProbeHealthResponseMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() +// Name of the private link configuration that is unique within an Application Gateway. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i *applicationGatewayProbeHealthResponseMatchPtrType) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return i.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) +// The provisioning state of the application gateway private link configuration. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i *applicationGatewayProbeHealthResponseMatchPtrType) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) +// Type of the resource. +func (o ApplicationGatewayPrivateLinkConfigurationResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) } -// Application gateway probe health response match. -type ApplicationGatewayProbeHealthResponseMatchOutput struct{ *pulumi.OutputState } +type ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayProbeHealthResponseMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() +func (ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkConfigurationResponse)(nil)).Elem() } -func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput { +func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkConfigurationResponseArrayOutput() ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchOutput { +func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return o.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) +func (o ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkConfigurationResponse { + return vs[0].([]ApplicationGatewayPrivateLinkConfigurationResponse)[vs[1].(int)] + }).(ApplicationGatewayPrivateLinkConfigurationResponseOutput) } -func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayProbeHealthResponseMatch) *ApplicationGatewayProbeHealthResponseMatch { - return &v - }).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) +// The application gateway private link ip configuration. +type ApplicationGatewayPrivateLinkIpConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // The name of application gateway private link ip configuration. + Name *string `pulumi:"name"` + // Whether the ip configuration is primary or not. + Primary *bool `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress *string `pulumi:"privateIPAddress"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // Reference to the subnet resource. + Subnet *SubResource `pulumi:"subnet"` } -// Body that must be contained in the health response. Default value is empty. -func (o ApplicationGatewayProbeHealthResponseMatchOutput) Body() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatch) *string { return v.Body }).(pulumi.StringPtrOutput) -} +// ApplicationGatewayPrivateLinkIpConfigurationInput is an input type that accepts ApplicationGatewayPrivateLinkIpConfigurationArgs and ApplicationGatewayPrivateLinkIpConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayPrivateLinkIpConfigurationInput` via: +// +// ApplicationGatewayPrivateLinkIpConfigurationArgs{...} +type ApplicationGatewayPrivateLinkIpConfigurationInput interface { + pulumi.Input -// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. -func (o ApplicationGatewayProbeHealthResponseMatchOutput) StatusCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatch) []string { return v.StatusCodes }).(pulumi.StringArrayOutput) + ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput + ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput } -type ApplicationGatewayProbeHealthResponseMatchPtrOutput struct{ *pulumi.OutputState } +// The application gateway private link ip configuration. +type ApplicationGatewayPrivateLinkIpConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of application gateway private link ip configuration. + Name pulumi.StringPtrInput `pulumi:"name"` + // Whether the ip configuration is primary or not. + Primary pulumi.BoolPtrInput `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` + // The private IP address allocation method. + PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` + // Reference to the subnet resource. + Subnet SubResourcePtrInput `pulumi:"subnet"` +} -func (ApplicationGatewayProbeHealthResponseMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() +func (ApplicationGatewayPrivateLinkIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() } -func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return o +func (i ApplicationGatewayPrivateLinkIpConfigurationArgs) ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput { + return i.ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(context.Background()) } -func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { - return o +func (i ApplicationGatewayPrivateLinkIpConfigurationArgs) ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkIpConfigurationOutput) } -func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) Elem() ApplicationGatewayProbeHealthResponseMatchOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) ApplicationGatewayProbeHealthResponseMatch { - if v != nil { - return *v - } - var ret ApplicationGatewayProbeHealthResponseMatch - return ret - }).(ApplicationGatewayProbeHealthResponseMatchOutput) +// ApplicationGatewayPrivateLinkIpConfigurationArrayInput is an input type that accepts ApplicationGatewayPrivateLinkIpConfigurationArray and ApplicationGatewayPrivateLinkIpConfigurationArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayPrivateLinkIpConfigurationArrayInput` via: +// +// ApplicationGatewayPrivateLinkIpConfigurationArray{ ApplicationGatewayPrivateLinkIpConfigurationArgs{...} } +type ApplicationGatewayPrivateLinkIpConfigurationArrayInput interface { + pulumi.Input + + ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput + ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput } -// Body that must be contained in the health response. Default value is empty. -func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) Body() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) *string { - if v == nil { - return nil - } - return v.Body - }).(pulumi.StringPtrOutput) +type ApplicationGatewayPrivateLinkIpConfigurationArray []ApplicationGatewayPrivateLinkIpConfigurationInput + +func (ApplicationGatewayPrivateLinkIpConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() } -// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. -func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) StatusCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) []string { - if v == nil { - return nil - } - return v.StatusCodes - }).(pulumi.StringArrayOutput) +func (i ApplicationGatewayPrivateLinkIpConfigurationArray) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { + return i.ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(context.Background()) } -// Application gateway probe health response match. -type ApplicationGatewayProbeHealthResponseMatchResponse struct { - // Body that must be contained in the health response. Default value is empty. - Body *string `pulumi:"body"` - // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. - StatusCodes []string `pulumi:"statusCodes"` +func (i ApplicationGatewayPrivateLinkIpConfigurationArray) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) } -// Application gateway probe health response match. -type ApplicationGatewayProbeHealthResponseMatchResponseOutput struct{ *pulumi.OutputState } +// The application gateway private link ip configuration. +type ApplicationGatewayPrivateLinkIpConfigurationOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayProbeHealthResponseMatchResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatchResponse)(nil)).Elem() +func (ApplicationGatewayPrivateLinkIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() } -func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) ToApplicationGatewayProbeHealthResponseMatchResponseOutput() ApplicationGatewayProbeHealthResponseMatchResponseOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) ToApplicationGatewayPrivateLinkIpConfigurationOutput() ApplicationGatewayPrivateLinkIpConfigurationOutput { return o } -func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) ToApplicationGatewayProbeHealthResponseMatchResponseOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchResponseOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) ToApplicationGatewayPrivateLinkIpConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationOutput { return o } -// Body that must be contained in the health response. Default value is empty. -func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) Body() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatchResponse) *string { return v.Body }).(pulumi.StringPtrOutput) +// Resource ID. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. -func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) StatusCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatchResponse) []string { return v.StatusCodes }).(pulumi.StringArrayOutput) +// The name of application gateway private link ip configuration. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -type ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput struct{ *pulumi.OutputState } +// Whether the ip configuration is primary or not. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Primary() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *bool { return v.Primary }).(pulumi.BoolPtrOutput) +} -func (ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatchResponse)(nil)).Elem() +// The private IP address of the IP configuration. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ToApplicationGatewayProbeHealthResponseMatchResponsePtrOutput() ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { - return o +// The private IP address allocation method. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ToApplicationGatewayProbeHealthResponseMatchResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { - return o +// Reference to the subnet resource. +func (o ApplicationGatewayPrivateLinkIpConfigurationOutput) Subnet() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfiguration) *SubResource { return v.Subnet }).(SubResourcePtrOutput) } -func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) Elem() ApplicationGatewayProbeHealthResponseMatchResponseOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) ApplicationGatewayProbeHealthResponseMatchResponse { - if v != nil { - return *v - } - var ret ApplicationGatewayProbeHealthResponseMatchResponse - return ret - }).(ApplicationGatewayProbeHealthResponseMatchResponseOutput) +type ApplicationGatewayPrivateLinkIpConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfiguration)(nil)).Elem() } -// Body that must be contained in the health response. Default value is empty. -func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) Body() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) *string { - if v == nil { - return nil - } - return v.Body - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { + return o } -// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. -func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) StatusCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) []string { - if v == nil { - return nil - } - return v.StatusCodes - }).(pulumi.StringArrayOutput) +func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationArrayOutput { + return o } -// Probe of the application gateway. -type ApplicationGatewayProbeResponse struct { +func (o ApplicationGatewayPrivateLinkIpConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkIpConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkIpConfiguration { + return vs[0].([]ApplicationGatewayPrivateLinkIpConfiguration)[vs[1].(int)] + }).(ApplicationGatewayPrivateLinkIpConfigurationOutput) +} + +// The application gateway private link ip configuration. +type ApplicationGatewayPrivateLinkIpConfigurationResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` - // Host name to send the probe to. - Host *string `pulumi:"host"` // Resource ID. Id *string `pulumi:"id"` - // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. - Interval *int `pulumi:"interval"` - // Criterion for classifying a healthy probe response. - Match *ApplicationGatewayProbeHealthResponseMatchResponse `pulumi:"match"` - // Minimum number of servers that are always marked healthy. Default value is 0. - MinServers *int `pulumi:"minServers"` - // Name of the probe that is unique within an Application Gateway. + // The name of application gateway private link ip configuration. Name *string `pulumi:"name"` - // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. - Path *string `pulumi:"path"` - // Whether the host header should be picked from the backend http settings. Default value is false. - PickHostNameFromBackendHttpSettings *bool `pulumi:"pickHostNameFromBackendHttpSettings"` - // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. - Port *int `pulumi:"port"` - // The protocol used for the probe. - Protocol *string `pulumi:"protocol"` - // The provisioning state of the probe resource. + // Whether the ip configuration is primary or not. + Primary *bool `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress *string `pulumi:"privateIPAddress"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // The provisioning state of the application gateway private link IP configuration. ProvisioningState string `pulumi:"provisioningState"` - // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. - Timeout *int `pulumi:"timeout"` - // Type of the resource. + // Reference to the subnet resource. + Subnet *SubResourceResponse `pulumi:"subnet"` + // The resource type. Type string `pulumi:"type"` - // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. - UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` } -// Probe of the application gateway. -type ApplicationGatewayProbeResponseOutput struct{ *pulumi.OutputState } +// The application gateway private link ip configuration. +type ApplicationGatewayPrivateLinkIpConfigurationResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayProbeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayProbeResponse)(nil)).Elem() +func (ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayPrivateLinkIpConfigurationResponse)(nil)).Elem() } -func (o ApplicationGatewayProbeResponseOutput) ToApplicationGatewayProbeResponseOutput() ApplicationGatewayProbeResponseOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseOutput() ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { return o } -func (o ApplicationGatewayProbeResponseOutput) ToApplicationGatewayProbeResponseOutputWithContext(ctx context.Context) ApplicationGatewayProbeResponseOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { return o } // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayProbeResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Host name to send the probe to. -func (o ApplicationGatewayProbeResponseOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Host }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o ApplicationGatewayProbeResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. -func (o ApplicationGatewayProbeResponseOutput) Interval() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Interval }).(pulumi.IntPtrOutput) -} - -// Criterion for classifying a healthy probe response. -func (o ApplicationGatewayProbeResponseOutput) Match() ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *ApplicationGatewayProbeHealthResponseMatchResponse { - return v.Match - }).(ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) -} - -// Minimum number of servers that are always marked healthy. Default value is 0. -func (o ApplicationGatewayProbeResponseOutput) MinServers() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.MinServers }).(pulumi.IntPtrOutput) -} - -// Name of the probe that is unique within an Application Gateway. -func (o ApplicationGatewayProbeResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. -func (o ApplicationGatewayProbeResponseOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Path }).(pulumi.StringPtrOutput) -} - -// Whether the host header should be picked from the backend http settings. Default value is false. -func (o ApplicationGatewayProbeResponseOutput) PickHostNameFromBackendHttpSettings() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *bool { return v.PickHostNameFromBackendHttpSettings }).(pulumi.BoolPtrOutput) +// The name of application gateway private link ip configuration. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. -func (o ApplicationGatewayProbeResponseOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +// Whether the ip configuration is primary or not. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Primary() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *bool { return v.Primary }).(pulumi.BoolPtrOutput) } -// The protocol used for the probe. -func (o ApplicationGatewayProbeResponseOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +// The private IP address of the IP configuration. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -// The provisioning state of the probe resource. -func (o ApplicationGatewayProbeResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// The private IP address allocation method. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *string { + return v.PrivateIPAllocationMethod + }).(pulumi.StringPtrOutput) } -// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. -func (o ApplicationGatewayProbeResponseOutput) Timeout() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Timeout }).(pulumi.IntPtrOutput) +// The provisioning state of the application gateway private link IP configuration. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Type of the resource. -func (o ApplicationGatewayProbeResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.Type }).(pulumi.StringOutput) +// Reference to the subnet resource. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Subnet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) } -// The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. -func (o ApplicationGatewayProbeResponseOutput) UnhealthyThreshold() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) +// The resource type. +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayPrivateLinkIpConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayProbeResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayProbeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayProbeResponse)(nil)).Elem() +func (ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayPrivateLinkIpConfigurationResponse)(nil)).Elem() } -func (o ApplicationGatewayProbeResponseArrayOutput) ToApplicationGatewayProbeResponseArrayOutput() ApplicationGatewayProbeResponseArrayOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput() ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayProbeResponseArrayOutput) ToApplicationGatewayProbeResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeResponseArrayOutput { +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) ToApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayProbeResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayProbeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayProbeResponse { - return vs[0].([]ApplicationGatewayProbeResponse)[vs[1].(int)] - }).(ApplicationGatewayProbeResponseOutput) +func (o ApplicationGatewayPrivateLinkIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayPrivateLinkIpConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayPrivateLinkIpConfigurationResponse { + return vs[0].([]ApplicationGatewayPrivateLinkIpConfigurationResponse)[vs[1].(int)] + }).(ApplicationGatewayPrivateLinkIpConfigurationResponseOutput) } -// Redirect configuration of an application gateway. -type ApplicationGatewayRedirectConfiguration struct { +// Probe of the application gateway. +type ApplicationGatewayProbe struct { + // Host name to send the probe to. + Host *string `pulumi:"host"` // Resource ID. Id *string `pulumi:"id"` - // Include path in the redirected url. - IncludePath *bool `pulumi:"includePath"` - // Include query string in the redirected url. - IncludeQueryString *bool `pulumi:"includeQueryString"` - // Name of the redirect configuration that is unique within an Application Gateway. + // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. + Interval *int `pulumi:"interval"` + // Criterion for classifying a healthy probe response. + Match *ApplicationGatewayProbeHealthResponseMatch `pulumi:"match"` + // Minimum number of servers that are always marked healthy. Default value is 0. + MinServers *int `pulumi:"minServers"` + // Name of the probe that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Path rules specifying redirect configuration. - PathRules []SubResource `pulumi:"pathRules"` - // HTTP redirection type. - RedirectType *string `pulumi:"redirectType"` - // Request routing specifying redirect configuration. - RequestRoutingRules []SubResource `pulumi:"requestRoutingRules"` - // Reference to a listener to redirect the request to. - TargetListener *SubResource `pulumi:"targetListener"` - // Url to redirect the request to. - TargetUrl *string `pulumi:"targetUrl"` - // Url path maps specifying default redirect configuration. - UrlPathMaps []SubResource `pulumi:"urlPathMaps"` + // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. + Path *string `pulumi:"path"` + // Whether the host header should be picked from the backend http settings. Default value is false. + PickHostNameFromBackendHttpSettings *bool `pulumi:"pickHostNameFromBackendHttpSettings"` + // Whether the server name indication should be picked from the backend settings for Tls protocol. Default value is false. + PickHostNameFromBackendSettings *bool `pulumi:"pickHostNameFromBackendSettings"` + // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. + Port *int `pulumi:"port"` + // The protocol used for the probe. + Protocol *string `pulumi:"protocol"` + // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. + Timeout *int `pulumi:"timeout"` + // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. + UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` } -// ApplicationGatewayRedirectConfigurationInput is an input type that accepts ApplicationGatewayRedirectConfigurationArgs and ApplicationGatewayRedirectConfigurationOutput values. -// You can construct a concrete instance of `ApplicationGatewayRedirectConfigurationInput` via: +// ApplicationGatewayProbeInput is an input type that accepts ApplicationGatewayProbeArgs and ApplicationGatewayProbeOutput values. +// You can construct a concrete instance of `ApplicationGatewayProbeInput` via: // -// ApplicationGatewayRedirectConfigurationArgs{...} -type ApplicationGatewayRedirectConfigurationInput interface { +// ApplicationGatewayProbeArgs{...} +type ApplicationGatewayProbeInput interface { pulumi.Input - ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput - ToApplicationGatewayRedirectConfigurationOutputWithContext(context.Context) ApplicationGatewayRedirectConfigurationOutput + ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput + ToApplicationGatewayProbeOutputWithContext(context.Context) ApplicationGatewayProbeOutput } -// Redirect configuration of an application gateway. -type ApplicationGatewayRedirectConfigurationArgs struct { +// Probe of the application gateway. +type ApplicationGatewayProbeArgs struct { + // Host name to send the probe to. + Host pulumi.StringPtrInput `pulumi:"host"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Include path in the redirected url. - IncludePath pulumi.BoolPtrInput `pulumi:"includePath"` - // Include query string in the redirected url. - IncludeQueryString pulumi.BoolPtrInput `pulumi:"includeQueryString"` - // Name of the redirect configuration that is unique within an Application Gateway. + // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. + Interval pulumi.IntPtrInput `pulumi:"interval"` + // Criterion for classifying a healthy probe response. + Match ApplicationGatewayProbeHealthResponseMatchPtrInput `pulumi:"match"` + // Minimum number of servers that are always marked healthy. Default value is 0. + MinServers pulumi.IntPtrInput `pulumi:"minServers"` + // Name of the probe that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Path rules specifying redirect configuration. - PathRules SubResourceArrayInput `pulumi:"pathRules"` - // HTTP redirection type. - RedirectType pulumi.StringPtrInput `pulumi:"redirectType"` - // Request routing specifying redirect configuration. - RequestRoutingRules SubResourceArrayInput `pulumi:"requestRoutingRules"` - // Reference to a listener to redirect the request to. - TargetListener SubResourcePtrInput `pulumi:"targetListener"` - // Url to redirect the request to. - TargetUrl pulumi.StringPtrInput `pulumi:"targetUrl"` - // Url path maps specifying default redirect configuration. - UrlPathMaps SubResourceArrayInput `pulumi:"urlPathMaps"` + // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. + Path pulumi.StringPtrInput `pulumi:"path"` + // Whether the host header should be picked from the backend http settings. Default value is false. + PickHostNameFromBackendHttpSettings pulumi.BoolPtrInput `pulumi:"pickHostNameFromBackendHttpSettings"` + // Whether the server name indication should be picked from the backend settings for Tls protocol. Default value is false. + PickHostNameFromBackendSettings pulumi.BoolPtrInput `pulumi:"pickHostNameFromBackendSettings"` + // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. + Port pulumi.IntPtrInput `pulumi:"port"` + // The protocol used for the probe. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. + Timeout pulumi.IntPtrInput `pulumi:"timeout"` + // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. + UnhealthyThreshold pulumi.IntPtrInput `pulumi:"unhealthyThreshold"` } -func (ApplicationGatewayRedirectConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRedirectConfiguration)(nil)).Elem() +func (ApplicationGatewayProbeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbe)(nil)).Elem() } -func (i ApplicationGatewayRedirectConfigurationArgs) ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput { - return i.ToApplicationGatewayRedirectConfigurationOutputWithContext(context.Background()) +func (i ApplicationGatewayProbeArgs) ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput { + return i.ToApplicationGatewayProbeOutputWithContext(context.Background()) } -func (i ApplicationGatewayRedirectConfigurationArgs) ToApplicationGatewayRedirectConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRedirectConfigurationOutput) +func (i ApplicationGatewayProbeArgs) ToApplicationGatewayProbeOutputWithContext(ctx context.Context) ApplicationGatewayProbeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeOutput) } -// ApplicationGatewayRedirectConfigurationArrayInput is an input type that accepts ApplicationGatewayRedirectConfigurationArray and ApplicationGatewayRedirectConfigurationArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayRedirectConfigurationArrayInput` via: +// ApplicationGatewayProbeArrayInput is an input type that accepts ApplicationGatewayProbeArray and ApplicationGatewayProbeArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayProbeArrayInput` via: // -// ApplicationGatewayRedirectConfigurationArray{ ApplicationGatewayRedirectConfigurationArgs{...} } -type ApplicationGatewayRedirectConfigurationArrayInput interface { +// ApplicationGatewayProbeArray{ ApplicationGatewayProbeArgs{...} } +type ApplicationGatewayProbeArrayInput interface { pulumi.Input - ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput - ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayRedirectConfigurationArrayOutput + ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput + ToApplicationGatewayProbeArrayOutputWithContext(context.Context) ApplicationGatewayProbeArrayOutput } -type ApplicationGatewayRedirectConfigurationArray []ApplicationGatewayRedirectConfigurationInput +type ApplicationGatewayProbeArray []ApplicationGatewayProbeInput -func (ApplicationGatewayRedirectConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRedirectConfiguration)(nil)).Elem() +func (ApplicationGatewayProbeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayProbe)(nil)).Elem() } -func (i ApplicationGatewayRedirectConfigurationArray) ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput { - return i.ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayProbeArray) ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput { + return i.ToApplicationGatewayProbeArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayRedirectConfigurationArray) ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRedirectConfigurationArrayOutput) +func (i ApplicationGatewayProbeArray) ToApplicationGatewayProbeArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeArrayOutput) } -// Redirect configuration of an application gateway. -type ApplicationGatewayRedirectConfigurationOutput struct{ *pulumi.OutputState } +// Probe of the application gateway. +type ApplicationGatewayProbeOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRedirectConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRedirectConfiguration)(nil)).Elem() +func (ApplicationGatewayProbeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbe)(nil)).Elem() } -func (o ApplicationGatewayRedirectConfigurationOutput) ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput { +func (o ApplicationGatewayProbeOutput) ToApplicationGatewayProbeOutput() ApplicationGatewayProbeOutput { return o } -func (o ApplicationGatewayRedirectConfigurationOutput) ToApplicationGatewayRedirectConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationOutput { +func (o ApplicationGatewayProbeOutput) ToApplicationGatewayProbeOutputWithContext(ctx context.Context) ApplicationGatewayProbeOutput { return o } +// Host name to send the probe to. +func (o ApplicationGatewayProbeOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Host }).(pulumi.StringPtrOutput) +} + // Resource ID. -func (o ApplicationGatewayRedirectConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayProbeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Include path in the redirected url. -func (o ApplicationGatewayRedirectConfigurationOutput) IncludePath() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *bool { return v.IncludePath }).(pulumi.BoolPtrOutput) +// The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayProbeOutput) Interval() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Interval }).(pulumi.IntPtrOutput) } -// Include query string in the redirected url. -func (o ApplicationGatewayRedirectConfigurationOutput) IncludeQueryString() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *bool { return v.IncludeQueryString }).(pulumi.BoolPtrOutput) +// Criterion for classifying a healthy probe response. +func (o ApplicationGatewayProbeOutput) Match() ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *ApplicationGatewayProbeHealthResponseMatch { return v.Match }).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) } -// Name of the redirect configuration that is unique within an Application Gateway. -func (o ApplicationGatewayRedirectConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +// Minimum number of servers that are always marked healthy. Default value is 0. +func (o ApplicationGatewayProbeOutput) MinServers() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.MinServers }).(pulumi.IntPtrOutput) } -// Path rules specifying redirect configuration. -func (o ApplicationGatewayRedirectConfigurationOutput) PathRules() SubResourceArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.PathRules }).(SubResourceArrayOutput) +// Name of the probe that is unique within an Application Gateway. +func (o ApplicationGatewayProbeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Name }).(pulumi.StringPtrOutput) } -// HTTP redirection type. -func (o ApplicationGatewayRedirectConfigurationOutput) RedirectType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.RedirectType }).(pulumi.StringPtrOutput) +// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. +func (o ApplicationGatewayProbeOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Path }).(pulumi.StringPtrOutput) } -// Request routing specifying redirect configuration. -func (o ApplicationGatewayRedirectConfigurationOutput) RequestRoutingRules() SubResourceArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.RequestRoutingRules }).(SubResourceArrayOutput) +// Whether the host header should be picked from the backend http settings. Default value is false. +func (o ApplicationGatewayProbeOutput) PickHostNameFromBackendHttpSettings() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *bool { return v.PickHostNameFromBackendHttpSettings }).(pulumi.BoolPtrOutput) } -// Reference to a listener to redirect the request to. -func (o ApplicationGatewayRedirectConfigurationOutput) TargetListener() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *SubResource { return v.TargetListener }).(SubResourcePtrOutput) +// Whether the server name indication should be picked from the backend settings for Tls protocol. Default value is false. +func (o ApplicationGatewayProbeOutput) PickHostNameFromBackendSettings() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *bool { return v.PickHostNameFromBackendSettings }).(pulumi.BoolPtrOutput) } -// Url to redirect the request to. -func (o ApplicationGatewayRedirectConfigurationOutput) TargetUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.TargetUrl }).(pulumi.StringPtrOutput) +// Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. +func (o ApplicationGatewayProbeOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Port }).(pulumi.IntPtrOutput) } -// Url path maps specifying default redirect configuration. -func (o ApplicationGatewayRedirectConfigurationOutput) UrlPathMaps() SubResourceArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.UrlPathMaps }).(SubResourceArrayOutput) +// The protocol used for the probe. +func (o ApplicationGatewayProbeOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -type ApplicationGatewayRedirectConfigurationArrayOutput struct{ *pulumi.OutputState } +// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayProbeOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.Timeout }).(pulumi.IntPtrOutput) +} -func (ApplicationGatewayRedirectConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRedirectConfiguration)(nil)).Elem() +// The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. +func (o ApplicationGatewayProbeOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbe) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) } -func (o ApplicationGatewayRedirectConfigurationArrayOutput) ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput { - return o +type ApplicationGatewayProbeArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayProbeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayProbe)(nil)).Elem() } -func (o ApplicationGatewayRedirectConfigurationArrayOutput) ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationArrayOutput { +func (o ApplicationGatewayProbeArrayOutput) ToApplicationGatewayProbeArrayOutput() ApplicationGatewayProbeArrayOutput { return o } -func (o ApplicationGatewayRedirectConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRedirectConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRedirectConfiguration { - return vs[0].([]ApplicationGatewayRedirectConfiguration)[vs[1].(int)] - }).(ApplicationGatewayRedirectConfigurationOutput) +func (o ApplicationGatewayProbeArrayOutput) ToApplicationGatewayProbeArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeArrayOutput { + return o } -// Redirect configuration of an application gateway. -type ApplicationGatewayRedirectConfigurationResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Include path in the redirected url. - IncludePath *bool `pulumi:"includePath"` - // Include query string in the redirected url. - IncludeQueryString *bool `pulumi:"includeQueryString"` - // Name of the redirect configuration that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // Path rules specifying redirect configuration. - PathRules []SubResourceResponse `pulumi:"pathRules"` - // HTTP redirection type. - RedirectType *string `pulumi:"redirectType"` - // Request routing specifying redirect configuration. - RequestRoutingRules []SubResourceResponse `pulumi:"requestRoutingRules"` - // Reference to a listener to redirect the request to. - TargetListener *SubResourceResponse `pulumi:"targetListener"` - // Url to redirect the request to. - TargetUrl *string `pulumi:"targetUrl"` - // Type of the resource. - Type string `pulumi:"type"` - // Url path maps specifying default redirect configuration. - UrlPathMaps []SubResourceResponse `pulumi:"urlPathMaps"` +func (o ApplicationGatewayProbeArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayProbeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayProbe { + return vs[0].([]ApplicationGatewayProbe)[vs[1].(int)] + }).(ApplicationGatewayProbeOutput) } -// Redirect configuration of an application gateway. -type ApplicationGatewayRedirectConfigurationResponseOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayRedirectConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRedirectConfigurationResponse)(nil)).Elem() +// Application gateway probe health response match. +type ApplicationGatewayProbeHealthResponseMatch struct { + // Body that must be contained in the health response. Default value is empty. + Body *string `pulumi:"body"` + // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. + StatusCodes []string `pulumi:"statusCodes"` } -func (o ApplicationGatewayRedirectConfigurationResponseOutput) ToApplicationGatewayRedirectConfigurationResponseOutput() ApplicationGatewayRedirectConfigurationResponseOutput { - return o -} +// ApplicationGatewayProbeHealthResponseMatchInput is an input type that accepts ApplicationGatewayProbeHealthResponseMatchArgs and ApplicationGatewayProbeHealthResponseMatchOutput values. +// You can construct a concrete instance of `ApplicationGatewayProbeHealthResponseMatchInput` via: +// +// ApplicationGatewayProbeHealthResponseMatchArgs{...} +type ApplicationGatewayProbeHealthResponseMatchInput interface { + pulumi.Input -func (o ApplicationGatewayRedirectConfigurationResponseOutput) ToApplicationGatewayRedirectConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationResponseOutput { - return o + ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput + ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(context.Context) ApplicationGatewayProbeHealthResponseMatchOutput } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +// Application gateway probe health response match. +type ApplicationGatewayProbeHealthResponseMatchArgs struct { + // Body that must be contained in the health response. Default value is empty. + Body pulumi.StringPtrInput `pulumi:"body"` + // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. + StatusCodes pulumi.StringArrayInput `pulumi:"statusCodes"` } -// Resource ID. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (ApplicationGatewayProbeHealthResponseMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() } -// Include path in the redirected url. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) IncludePath() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *bool { return v.IncludePath }).(pulumi.BoolPtrOutput) +func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput { + return i.ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(context.Background()) } -// Include query string in the redirected url. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) IncludeQueryString() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *bool { return v.IncludeQueryString }).(pulumi.BoolPtrOutput) +func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchOutput) } -// Name of the redirect configuration that is unique within an Application Gateway. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return i.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) } -// Path rules specifying redirect configuration. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) PathRules() SubResourceResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { return v.PathRules }).(SubResourceResponseArrayOutput) +func (i ApplicationGatewayProbeHealthResponseMatchArgs) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchOutput).ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx) } -// HTTP redirection type. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) RedirectType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.RedirectType }).(pulumi.StringPtrOutput) -} +// ApplicationGatewayProbeHealthResponseMatchPtrInput is an input type that accepts ApplicationGatewayProbeHealthResponseMatchArgs, ApplicationGatewayProbeHealthResponseMatchPtr and ApplicationGatewayProbeHealthResponseMatchPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewayProbeHealthResponseMatchPtrInput` via: +// +// ApplicationGatewayProbeHealthResponseMatchArgs{...} +// +// or: +// +// nil +type ApplicationGatewayProbeHealthResponseMatchPtrInput interface { + pulumi.Input -// Request routing specifying redirect configuration. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) RequestRoutingRules() SubResourceResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { - return v.RequestRoutingRules - }).(SubResourceResponseArrayOutput) + ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput + ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput } -// Reference to a listener to redirect the request to. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) TargetListener() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *SubResourceResponse { return v.TargetListener }).(SubResourceResponsePtrOutput) +type applicationGatewayProbeHealthResponseMatchPtrType ApplicationGatewayProbeHealthResponseMatchArgs + +func ApplicationGatewayProbeHealthResponseMatchPtr(v *ApplicationGatewayProbeHealthResponseMatchArgs) ApplicationGatewayProbeHealthResponseMatchPtrInput { + return (*applicationGatewayProbeHealthResponseMatchPtrType)(v) } -// Url to redirect the request to. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) TargetUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.TargetUrl }).(pulumi.StringPtrOutput) +func (*applicationGatewayProbeHealthResponseMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() } -// Type of the resource. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) +func (i *applicationGatewayProbeHealthResponseMatchPtrType) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return i.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) } -// Url path maps specifying default redirect configuration. -func (o ApplicationGatewayRedirectConfigurationResponseOutput) UrlPathMaps() SubResourceResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { return v.UrlPathMaps }).(SubResourceResponseArrayOutput) +func (i *applicationGatewayProbeHealthResponseMatchPtrType) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) } -type ApplicationGatewayRedirectConfigurationResponseArrayOutput struct{ *pulumi.OutputState } +// Application gateway probe health response match. +type ApplicationGatewayProbeHealthResponseMatchOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRedirectConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRedirectConfigurationResponse)(nil)).Elem() +func (ApplicationGatewayProbeHealthResponseMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() } -func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) ToApplicationGatewayRedirectConfigurationResponseArrayOutput() ApplicationGatewayRedirectConfigurationResponseArrayOutput { +func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchOutput() ApplicationGatewayProbeHealthResponseMatchOutput { return o } -func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) ToApplicationGatewayRedirectConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationResponseArrayOutput { +func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchOutput { return o } -func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRedirectConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRedirectConfigurationResponse { - return vs[0].([]ApplicationGatewayRedirectConfigurationResponse)[vs[1].(int)] - }).(ApplicationGatewayRedirectConfigurationResponseOutput) +func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return o.ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(context.Background()) } -// Request routing rule of an application gateway. -type ApplicationGatewayRequestRoutingRule struct { - // Backend address pool resource of the application gateway. - BackendAddressPool *SubResource `pulumi:"backendAddressPool"` - // Backend http settings resource of the application gateway. - BackendHttpSettings *SubResource `pulumi:"backendHttpSettings"` - // Http listener resource of the application gateway. - HttpListener *SubResource `pulumi:"httpListener"` - // Resource ID. - Id *string `pulumi:"id"` - // Name of the request routing rule that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // Priority of the request routing rule. - Priority *int `pulumi:"priority"` - // Redirect configuration resource of the application gateway. - RedirectConfiguration *SubResource `pulumi:"redirectConfiguration"` - // Rewrite Rule Set resource in Basic rule of the application gateway. - RewriteRuleSet *SubResource `pulumi:"rewriteRuleSet"` - // Rule type. - RuleType *string `pulumi:"ruleType"` - // URL path map resource of the application gateway. - UrlPathMap *SubResource `pulumi:"urlPathMap"` +func (o ApplicationGatewayProbeHealthResponseMatchOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayProbeHealthResponseMatch) *ApplicationGatewayProbeHealthResponseMatch { + return &v + }).(ApplicationGatewayProbeHealthResponseMatchPtrOutput) } -// ApplicationGatewayRequestRoutingRuleInput is an input type that accepts ApplicationGatewayRequestRoutingRuleArgs and ApplicationGatewayRequestRoutingRuleOutput values. -// You can construct a concrete instance of `ApplicationGatewayRequestRoutingRuleInput` via: -// -// ApplicationGatewayRequestRoutingRuleArgs{...} -type ApplicationGatewayRequestRoutingRuleInput interface { - pulumi.Input +// Body that must be contained in the health response. Default value is empty. +func (o ApplicationGatewayProbeHealthResponseMatchOutput) Body() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatch) *string { return v.Body }).(pulumi.StringPtrOutput) +} - ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput - ToApplicationGatewayRequestRoutingRuleOutputWithContext(context.Context) ApplicationGatewayRequestRoutingRuleOutput +// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. +func (o ApplicationGatewayProbeHealthResponseMatchOutput) StatusCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatch) []string { return v.StatusCodes }).(pulumi.StringArrayOutput) } -// Request routing rule of an application gateway. -type ApplicationGatewayRequestRoutingRuleArgs struct { - // Backend address pool resource of the application gateway. - BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` - // Backend http settings resource of the application gateway. - BackendHttpSettings SubResourcePtrInput `pulumi:"backendHttpSettings"` - // Http listener resource of the application gateway. - HttpListener SubResourcePtrInput `pulumi:"httpListener"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the request routing rule that is unique within an Application Gateway. - Name pulumi.StringPtrInput `pulumi:"name"` - // Priority of the request routing rule. - Priority pulumi.IntPtrInput `pulumi:"priority"` - // Redirect configuration resource of the application gateway. - RedirectConfiguration SubResourcePtrInput `pulumi:"redirectConfiguration"` - // Rewrite Rule Set resource in Basic rule of the application gateway. - RewriteRuleSet SubResourcePtrInput `pulumi:"rewriteRuleSet"` - // Rule type. - RuleType pulumi.StringPtrInput `pulumi:"ruleType"` - // URL path map resource of the application gateway. - UrlPathMap SubResourcePtrInput `pulumi:"urlPathMap"` -} +type ApplicationGatewayProbeHealthResponseMatchPtrOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRequestRoutingRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRequestRoutingRule)(nil)).Elem() +func (ApplicationGatewayProbeHealthResponseMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatch)(nil)).Elem() } -func (i ApplicationGatewayRequestRoutingRuleArgs) ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput { - return i.ToApplicationGatewayRequestRoutingRuleOutputWithContext(context.Background()) +func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutput() ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return o } -func (i ApplicationGatewayRequestRoutingRuleArgs) ToApplicationGatewayRequestRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRequestRoutingRuleOutput) +func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) ToApplicationGatewayProbeHealthResponseMatchPtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchPtrOutput { + return o } -// ApplicationGatewayRequestRoutingRuleArrayInput is an input type that accepts ApplicationGatewayRequestRoutingRuleArray and ApplicationGatewayRequestRoutingRuleArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayRequestRoutingRuleArrayInput` via: -// -// ApplicationGatewayRequestRoutingRuleArray{ ApplicationGatewayRequestRoutingRuleArgs{...} } -type ApplicationGatewayRequestRoutingRuleArrayInput interface { - pulumi.Input - - ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput - ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput +func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) Elem() ApplicationGatewayProbeHealthResponseMatchOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) ApplicationGatewayProbeHealthResponseMatch { + if v != nil { + return *v + } + var ret ApplicationGatewayProbeHealthResponseMatch + return ret + }).(ApplicationGatewayProbeHealthResponseMatchOutput) } -type ApplicationGatewayRequestRoutingRuleArray []ApplicationGatewayRequestRoutingRuleInput - -func (ApplicationGatewayRequestRoutingRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRule)(nil)).Elem() +// Body that must be contained in the health response. Default value is empty. +func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) Body() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) *string { + if v == nil { + return nil + } + return v.Body + }).(pulumi.StringPtrOutput) } -func (i ApplicationGatewayRequestRoutingRuleArray) ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput { - return i.ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(context.Background()) +// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. +func (o ApplicationGatewayProbeHealthResponseMatchPtrOutput) StatusCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatch) []string { + if v == nil { + return nil + } + return v.StatusCodes + }).(pulumi.StringArrayOutput) } -func (i ApplicationGatewayRequestRoutingRuleArray) ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRequestRoutingRuleArrayOutput) +// Application gateway probe health response match. +type ApplicationGatewayProbeHealthResponseMatchResponse struct { + // Body that must be contained in the health response. Default value is empty. + Body *string `pulumi:"body"` + // Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. + StatusCodes []string `pulumi:"statusCodes"` } -// Request routing rule of an application gateway. -type ApplicationGatewayRequestRoutingRuleOutput struct{ *pulumi.OutputState } +// Application gateway probe health response match. +type ApplicationGatewayProbeHealthResponseMatchResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRequestRoutingRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRequestRoutingRule)(nil)).Elem() +func (ApplicationGatewayProbeHealthResponseMatchResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbeHealthResponseMatchResponse)(nil)).Elem() } -func (o ApplicationGatewayRequestRoutingRuleOutput) ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput { +func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) ToApplicationGatewayProbeHealthResponseMatchResponseOutput() ApplicationGatewayProbeHealthResponseMatchResponseOutput { return o } -func (o ApplicationGatewayRequestRoutingRuleOutput) ToApplicationGatewayRequestRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleOutput { +func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) ToApplicationGatewayProbeHealthResponseMatchResponseOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchResponseOutput { return o } -// Backend address pool resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) BackendAddressPool() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) -} - -// Backend http settings resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) BackendHttpSettings() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.BackendHttpSettings }).(SubResourcePtrOutput) -} - -// Http listener resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) HttpListener() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.HttpListener }).(SubResourcePtrOutput) -} - -// Resource ID. -func (o ApplicationGatewayRequestRoutingRuleOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Name of the request routing rule that is unique within an Application Gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// Priority of the request routing rule. -func (o ApplicationGatewayRequestRoutingRuleOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *int { return v.Priority }).(pulumi.IntPtrOutput) +// Body that must be contained in the health response. Default value is empty. +func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) Body() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatchResponse) *string { return v.Body }).(pulumi.StringPtrOutput) } -// Redirect configuration resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) RedirectConfiguration() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.RedirectConfiguration }).(SubResourcePtrOutput) +// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. +func (o ApplicationGatewayProbeHealthResponseMatchResponseOutput) StatusCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewayProbeHealthResponseMatchResponse) []string { return v.StatusCodes }).(pulumi.StringArrayOutput) } -// Rewrite Rule Set resource in Basic rule of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) RewriteRuleSet() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.RewriteRuleSet }).(SubResourcePtrOutput) -} +type ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput struct{ *pulumi.OutputState } -// Rule type. -func (o ApplicationGatewayRequestRoutingRuleOutput) RuleType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.RuleType }).(pulumi.StringPtrOutput) +func (ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayProbeHealthResponseMatchResponse)(nil)).Elem() } -// URL path map resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleOutput) UrlPathMap() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.UrlPathMap }).(SubResourcePtrOutput) +func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ToApplicationGatewayProbeHealthResponseMatchResponsePtrOutput() ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { + return o } -type ApplicationGatewayRequestRoutingRuleArrayOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayRequestRoutingRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRule)(nil)).Elem() +func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) ToApplicationGatewayProbeHealthResponseMatchResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { + return o } -func (o ApplicationGatewayRequestRoutingRuleArrayOutput) ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput { - return o +func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) Elem() ApplicationGatewayProbeHealthResponseMatchResponseOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) ApplicationGatewayProbeHealthResponseMatchResponse { + if v != nil { + return *v + } + var ret ApplicationGatewayProbeHealthResponseMatchResponse + return ret + }).(ApplicationGatewayProbeHealthResponseMatchResponseOutput) } -func (o ApplicationGatewayRequestRoutingRuleArrayOutput) ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput { - return o +// Body that must be contained in the health response. Default value is empty. +func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) Body() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) *string { + if v == nil { + return nil + } + return v.Body + }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayRequestRoutingRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRequestRoutingRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRequestRoutingRule { - return vs[0].([]ApplicationGatewayRequestRoutingRule)[vs[1].(int)] - }).(ApplicationGatewayRequestRoutingRuleOutput) +// Allowed ranges of healthy status codes. Default range of healthy status codes is 200-399. +func (o ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) StatusCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayProbeHealthResponseMatchResponse) []string { + if v == nil { + return nil + } + return v.StatusCodes + }).(pulumi.StringArrayOutput) } -// Request routing rule of an application gateway. -type ApplicationGatewayRequestRoutingRuleResponse struct { - // Backend address pool resource of the application gateway. - BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` - // Backend http settings resource of the application gateway. - BackendHttpSettings *SubResourceResponse `pulumi:"backendHttpSettings"` +// Probe of the application gateway. +type ApplicationGatewayProbeResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` - // Http listener resource of the application gateway. - HttpListener *SubResourceResponse `pulumi:"httpListener"` + // Host name to send the probe to. + Host *string `pulumi:"host"` // Resource ID. Id *string `pulumi:"id"` - // Name of the request routing rule that is unique within an Application Gateway. + // The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. + Interval *int `pulumi:"interval"` + // Criterion for classifying a healthy probe response. + Match *ApplicationGatewayProbeHealthResponseMatchResponse `pulumi:"match"` + // Minimum number of servers that are always marked healthy. Default value is 0. + MinServers *int `pulumi:"minServers"` + // Name of the probe that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Priority of the request routing rule. - Priority *int `pulumi:"priority"` - // The provisioning state of the request routing rule resource. + // Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. + Path *string `pulumi:"path"` + // Whether the host header should be picked from the backend http settings. Default value is false. + PickHostNameFromBackendHttpSettings *bool `pulumi:"pickHostNameFromBackendHttpSettings"` + // Whether the server name indication should be picked from the backend settings for Tls protocol. Default value is false. + PickHostNameFromBackendSettings *bool `pulumi:"pickHostNameFromBackendSettings"` + // Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. + Port *int `pulumi:"port"` + // The protocol used for the probe. + Protocol *string `pulumi:"protocol"` + // The provisioning state of the probe resource. ProvisioningState string `pulumi:"provisioningState"` - // Redirect configuration resource of the application gateway. - RedirectConfiguration *SubResourceResponse `pulumi:"redirectConfiguration"` - // Rewrite Rule Set resource in Basic rule of the application gateway. - RewriteRuleSet *SubResourceResponse `pulumi:"rewriteRuleSet"` - // Rule type. - RuleType *string `pulumi:"ruleType"` + // The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. + Timeout *int `pulumi:"timeout"` // Type of the resource. Type string `pulumi:"type"` - // URL path map resource of the application gateway. - UrlPathMap *SubResourceResponse `pulumi:"urlPathMap"` + // The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. + UnhealthyThreshold *int `pulumi:"unhealthyThreshold"` } -// Request routing rule of an application gateway. -type ApplicationGatewayRequestRoutingRuleResponseOutput struct{ *pulumi.OutputState } +// Probe of the application gateway. +type ApplicationGatewayProbeResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRequestRoutingRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRequestRoutingRuleResponse)(nil)).Elem() +func (ApplicationGatewayProbeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayProbeResponse)(nil)).Elem() } -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ToApplicationGatewayRequestRoutingRuleResponseOutput() ApplicationGatewayRequestRoutingRuleResponseOutput { +func (o ApplicationGatewayProbeResponseOutput) ToApplicationGatewayProbeResponseOutput() ApplicationGatewayProbeResponseOutput { return o } -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ToApplicationGatewayRequestRoutingRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleResponseOutput { +func (o ApplicationGatewayProbeResponseOutput) ToApplicationGatewayProbeResponseOutputWithContext(ctx context.Context) ApplicationGatewayProbeResponseOutput { return o } -// Backend address pool resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayProbeResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Backend http settings resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) BackendHttpSettings() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { - return v.BackendHttpSettings - }).(SubResourceResponsePtrOutput) +// Host name to send the probe to. +func (o ApplicationGatewayProbeResponseOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Host }).(pulumi.StringPtrOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +// Resource ID. +func (o ApplicationGatewayProbeResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Http listener resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) HttpListener() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.HttpListener }).(SubResourceResponsePtrOutput) +// The probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayProbeResponseOutput) Interval() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Interval }).(pulumi.IntPtrOutput) } -// Resource ID. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Criterion for classifying a healthy probe response. +func (o ApplicationGatewayProbeResponseOutput) Match() ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *ApplicationGatewayProbeHealthResponseMatchResponse { + return v.Match + }).(ApplicationGatewayProbeHealthResponseMatchResponsePtrOutput) } -// Name of the request routing rule that is unique within an Application Gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Minimum number of servers that are always marked healthy. Default value is 0. +func (o ApplicationGatewayProbeResponseOutput) MinServers() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.MinServers }).(pulumi.IntPtrOutput) } -// Priority of the request routing rule. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +// Name of the probe that is unique within an Application Gateway. +func (o ApplicationGatewayProbeResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The provisioning state of the request routing rule resource. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Relative path of probe. Valid path starts from '/'. Probe is sent to ://:. +func (o ApplicationGatewayProbeResponseOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Path }).(pulumi.StringPtrOutput) } -// Redirect configuration resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RedirectConfiguration() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { - return v.RedirectConfiguration - }).(SubResourceResponsePtrOutput) +// Whether the host header should be picked from the backend http settings. Default value is false. +func (o ApplicationGatewayProbeResponseOutput) PickHostNameFromBackendHttpSettings() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *bool { return v.PickHostNameFromBackendHttpSettings }).(pulumi.BoolPtrOutput) } -// Rewrite Rule Set resource in Basic rule of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RewriteRuleSet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.RewriteRuleSet }).(SubResourceResponsePtrOutput) +// Whether the server name indication should be picked from the backend settings for Tls protocol. Default value is false. +func (o ApplicationGatewayProbeResponseOutput) PickHostNameFromBackendSettings() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *bool { return v.PickHostNameFromBackendSettings }).(pulumi.BoolPtrOutput) } -// Rule type. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RuleType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.RuleType }).(pulumi.StringPtrOutput) +// Custom port which will be used for probing the backend servers. The valid value ranges from 1 to 65535. In case not set, port from http settings will be used. This property is valid for Standard_v2 and WAF_v2 only. +func (o ApplicationGatewayProbeResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// The protocol used for the probe. +func (o ApplicationGatewayProbeResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the probe resource. +func (o ApplicationGatewayProbeResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds. +func (o ApplicationGatewayProbeResponseOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.Timeout }).(pulumi.IntPtrOutput) } // Type of the resource. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ApplicationGatewayProbeResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) string { return v.Type }).(pulumi.StringOutput) } -// URL path map resource of the application gateway. -func (o ApplicationGatewayRequestRoutingRuleResponseOutput) UrlPathMap() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.UrlPathMap }).(SubResourceResponsePtrOutput) +// The probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20. +func (o ApplicationGatewayProbeResponseOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayProbeResponse) *int { return v.UnhealthyThreshold }).(pulumi.IntPtrOutput) } -type ApplicationGatewayRequestRoutingRuleResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayProbeResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRuleResponse)(nil)).Elem() +func (ApplicationGatewayProbeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayProbeResponse)(nil)).Elem() } -func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ToApplicationGatewayRequestRoutingRuleResponseArrayOutput() ApplicationGatewayRequestRoutingRuleResponseArrayOutput { +func (o ApplicationGatewayProbeResponseArrayOutput) ToApplicationGatewayProbeResponseArrayOutput() ApplicationGatewayProbeResponseArrayOutput { return o } -func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ToApplicationGatewayRequestRoutingRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleResponseArrayOutput { +func (o ApplicationGatewayProbeResponseArrayOutput) ToApplicationGatewayProbeResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayProbeResponseArrayOutput { return o } -func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRequestRoutingRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRequestRoutingRuleResponse { - return vs[0].([]ApplicationGatewayRequestRoutingRuleResponse)[vs[1].(int)] - }).(ApplicationGatewayRequestRoutingRuleResponseOutput) +func (o ApplicationGatewayProbeResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayProbeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayProbeResponse { + return vs[0].([]ApplicationGatewayProbeResponse)[vs[1].(int)] + }).(ApplicationGatewayProbeResponseOutput) } -// Application gateway resource. -type ApplicationGatewayResponse struct { - // Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - AuthenticationCertificates []ApplicationGatewayAuthenticationCertificateResponse `pulumi:"authenticationCertificates"` - // Autoscale Configuration. - AutoscaleConfiguration *ApplicationGatewayAutoscaleConfigurationResponse `pulumi:"autoscaleConfiguration"` - // Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - BackendAddressPools []ApplicationGatewayBackendAddressPoolResponse `pulumi:"backendAddressPools"` - // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - BackendHttpSettingsCollection []ApplicationGatewayBackendHttpSettingsResponse `pulumi:"backendHttpSettingsCollection"` - // Custom error configurations of the application gateway resource. - CustomErrorConfigurations []ApplicationGatewayCustomErrorResponse `pulumi:"customErrorConfigurations"` - // Whether FIPS is enabled on the application gateway resource. - EnableFips *bool `pulumi:"enableFips"` - // Whether HTTP2 is enabled on the application gateway resource. - EnableHttp2 *bool `pulumi:"enableHttp2"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Reference to the FirewallPolicy resource. - FirewallPolicy *SubResourceResponse `pulumi:"firewallPolicy"` - // If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config. - ForceFirewallPolicyAssociation *bool `pulumi:"forceFirewallPolicyAssociation"` - // Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - FrontendIPConfigurations []ApplicationGatewayFrontendIPConfigurationResponse `pulumi:"frontendIPConfigurations"` - // Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - FrontendPorts []ApplicationGatewayFrontendPortResponse `pulumi:"frontendPorts"` - // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - GatewayIPConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"gatewayIPConfigurations"` - // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - HttpListeners []ApplicationGatewayHttpListenerResponse `pulumi:"httpListeners"` +// Redirect configuration of an application gateway. +type ApplicationGatewayRedirectConfiguration struct { // Resource ID. Id *string `pulumi:"id"` - // The identity of the application gateway, if configured. - Identity *ManagedServiceIdentityResponse `pulumi:"identity"` - // Resource location. - Location *string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // Operational state of the application gateway resource. - OperationalState string `pulumi:"operationalState"` - // Private Endpoint connections on application gateway. - PrivateEndpointConnections []ApplicationGatewayPrivateEndpointConnectionResponse `pulumi:"privateEndpointConnections"` - // PrivateLink configurations on application gateway. - PrivateLinkConfigurations []ApplicationGatewayPrivateLinkConfigurationResponse `pulumi:"privateLinkConfigurations"` - // Probes of the application gateway resource. - Probes []ApplicationGatewayProbeResponse `pulumi:"probes"` - // The provisioning state of the application gateway resource. - ProvisioningState string `pulumi:"provisioningState"` - // Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - RedirectConfigurations []ApplicationGatewayRedirectConfigurationResponse `pulumi:"redirectConfigurations"` - // Request routing rules of the application gateway resource. - RequestRoutingRules []ApplicationGatewayRequestRoutingRuleResponse `pulumi:"requestRoutingRules"` - // The resource GUID property of the application gateway resource. - ResourceGuid string `pulumi:"resourceGuid"` - // Rewrite rules for the application gateway resource. - RewriteRuleSets []ApplicationGatewayRewriteRuleSetResponse `pulumi:"rewriteRuleSets"` - // SKU of the application gateway resource. - Sku *ApplicationGatewaySkuResponse `pulumi:"sku"` - // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - SslCertificates []ApplicationGatewaySslCertificateResponse `pulumi:"sslCertificates"` - // SSL policy of the application gateway resource. - SslPolicy *ApplicationGatewaySslPolicyResponse `pulumi:"sslPolicy"` - // SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - SslProfiles []ApplicationGatewaySslProfileResponse `pulumi:"sslProfiles"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - TrustedClientCertificates []ApplicationGatewayTrustedClientCertificateResponse `pulumi:"trustedClientCertificates"` - // Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - TrustedRootCertificates []ApplicationGatewayTrustedRootCertificateResponse `pulumi:"trustedRootCertificates"` - // Resource type. - Type string `pulumi:"type"` - // URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). - UrlPathMaps []ApplicationGatewayUrlPathMapResponse `pulumi:"urlPathMaps"` - // Web application firewall configuration. - WebApplicationFirewallConfiguration *ApplicationGatewayWebApplicationFirewallConfigurationResponse `pulumi:"webApplicationFirewallConfiguration"` - // A list of availability zones denoting where the resource needs to come from. - Zones []string `pulumi:"zones"` + // Include path in the redirected url. + IncludePath *bool `pulumi:"includePath"` + // Include query string in the redirected url. + IncludeQueryString *bool `pulumi:"includeQueryString"` + // Name of the redirect configuration that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Path rules specifying redirect configuration. + PathRules []SubResource `pulumi:"pathRules"` + // HTTP redirection type. + RedirectType *string `pulumi:"redirectType"` + // Request routing specifying redirect configuration. + RequestRoutingRules []SubResource `pulumi:"requestRoutingRules"` + // Reference to a listener to redirect the request to. + TargetListener *SubResource `pulumi:"targetListener"` + // Url to redirect the request to. + TargetUrl *string `pulumi:"targetUrl"` + // Url path maps specifying default redirect configuration. + UrlPathMaps []SubResource `pulumi:"urlPathMaps"` } -// Application gateway resource. -type ApplicationGatewayResponseOutput struct{ *pulumi.OutputState } +// ApplicationGatewayRedirectConfigurationInput is an input type that accepts ApplicationGatewayRedirectConfigurationArgs and ApplicationGatewayRedirectConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayRedirectConfigurationInput` via: +// +// ApplicationGatewayRedirectConfigurationArgs{...} +type ApplicationGatewayRedirectConfigurationInput interface { + pulumi.Input -func (ApplicationGatewayResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayResponse)(nil)).Elem() + ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput + ToApplicationGatewayRedirectConfigurationOutputWithContext(context.Context) ApplicationGatewayRedirectConfigurationOutput } -func (o ApplicationGatewayResponseOutput) ToApplicationGatewayResponseOutput() ApplicationGatewayResponseOutput { - return o +// Redirect configuration of an application gateway. +type ApplicationGatewayRedirectConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Include path in the redirected url. + IncludePath pulumi.BoolPtrInput `pulumi:"includePath"` + // Include query string in the redirected url. + IncludeQueryString pulumi.BoolPtrInput `pulumi:"includeQueryString"` + // Name of the redirect configuration that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // Path rules specifying redirect configuration. + PathRules SubResourceArrayInput `pulumi:"pathRules"` + // HTTP redirection type. + RedirectType pulumi.StringPtrInput `pulumi:"redirectType"` + // Request routing specifying redirect configuration. + RequestRoutingRules SubResourceArrayInput `pulumi:"requestRoutingRules"` + // Reference to a listener to redirect the request to. + TargetListener SubResourcePtrInput `pulumi:"targetListener"` + // Url to redirect the request to. + TargetUrl pulumi.StringPtrInput `pulumi:"targetUrl"` + // Url path maps specifying default redirect configuration. + UrlPathMaps SubResourceArrayInput `pulumi:"urlPathMaps"` } -func (o ApplicationGatewayResponseOutput) ToApplicationGatewayResponseOutputWithContext(ctx context.Context) ApplicationGatewayResponseOutput { - return o +func (ApplicationGatewayRedirectConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRedirectConfiguration)(nil)).Elem() } -// Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) AuthenticationCertificates() ApplicationGatewayAuthenticationCertificateResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayAuthenticationCertificateResponse { - return v.AuthenticationCertificates - }).(ApplicationGatewayAuthenticationCertificateResponseArrayOutput) +func (i ApplicationGatewayRedirectConfigurationArgs) ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput { + return i.ToApplicationGatewayRedirectConfigurationOutputWithContext(context.Background()) } -// Autoscale Configuration. -func (o ApplicationGatewayResponseOutput) AutoscaleConfiguration() ApplicationGatewayAutoscaleConfigurationResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewayAutoscaleConfigurationResponse { - return v.AutoscaleConfiguration - }).(ApplicationGatewayAutoscaleConfigurationResponsePtrOutput) +func (i ApplicationGatewayRedirectConfigurationArgs) ToApplicationGatewayRedirectConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRedirectConfigurationOutput) } -// Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) BackendAddressPools() ApplicationGatewayBackendAddressPoolResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayBackendAddressPoolResponse { - return v.BackendAddressPools - }).(ApplicationGatewayBackendAddressPoolResponseArrayOutput) +// ApplicationGatewayRedirectConfigurationArrayInput is an input type that accepts ApplicationGatewayRedirectConfigurationArray and ApplicationGatewayRedirectConfigurationArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRedirectConfigurationArrayInput` via: +// +// ApplicationGatewayRedirectConfigurationArray{ ApplicationGatewayRedirectConfigurationArgs{...} } +type ApplicationGatewayRedirectConfigurationArrayInput interface { + pulumi.Input + + ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput + ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(context.Context) ApplicationGatewayRedirectConfigurationArrayOutput } -// Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) BackendHttpSettingsCollection() ApplicationGatewayBackendHttpSettingsResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayBackendHttpSettingsResponse { - return v.BackendHttpSettingsCollection - }).(ApplicationGatewayBackendHttpSettingsResponseArrayOutput) +type ApplicationGatewayRedirectConfigurationArray []ApplicationGatewayRedirectConfigurationInput + +func (ApplicationGatewayRedirectConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRedirectConfiguration)(nil)).Elem() } -// Custom error configurations of the application gateway resource. -func (o ApplicationGatewayResponseOutput) CustomErrorConfigurations() ApplicationGatewayCustomErrorResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayCustomErrorResponse { - return v.CustomErrorConfigurations - }).(ApplicationGatewayCustomErrorResponseArrayOutput) +func (i ApplicationGatewayRedirectConfigurationArray) ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput { + return i.ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(context.Background()) } -// Whether FIPS is enabled on the application gateway resource. -func (o ApplicationGatewayResponseOutput) EnableFips() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.EnableFips }).(pulumi.BoolPtrOutput) +func (i ApplicationGatewayRedirectConfigurationArray) ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRedirectConfigurationArrayOutput) } -// Whether HTTP2 is enabled on the application gateway resource. -func (o ApplicationGatewayResponseOutput) EnableHttp2() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.EnableHttp2 }).(pulumi.BoolPtrOutput) +// Redirect configuration of an application gateway. +type ApplicationGatewayRedirectConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRedirectConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRedirectConfiguration)(nil)).Elem() } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayRedirectConfigurationOutput) ToApplicationGatewayRedirectConfigurationOutput() ApplicationGatewayRedirectConfigurationOutput { + return o } -// Reference to the FirewallPolicy resource. -func (o ApplicationGatewayResponseOutput) FirewallPolicy() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *SubResourceResponse { return v.FirewallPolicy }).(SubResourceResponsePtrOutput) +func (o ApplicationGatewayRedirectConfigurationOutput) ToApplicationGatewayRedirectConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationOutput { + return o } -// If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config. -func (o ApplicationGatewayResponseOutput) ForceFirewallPolicyAssociation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.ForceFirewallPolicyAssociation }).(pulumi.BoolPtrOutput) +// Resource ID. +func (o ApplicationGatewayRedirectConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) FrontendIPConfigurations() ApplicationGatewayFrontendIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayFrontendIPConfigurationResponse { - return v.FrontendIPConfigurations - }).(ApplicationGatewayFrontendIPConfigurationResponseArrayOutput) +// Include path in the redirected url. +func (o ApplicationGatewayRedirectConfigurationOutput) IncludePath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *bool { return v.IncludePath }).(pulumi.BoolPtrOutput) } -// Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) FrontendPorts() ApplicationGatewayFrontendPortResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayFrontendPortResponse { return v.FrontendPorts }).(ApplicationGatewayFrontendPortResponseArrayOutput) +// Include query string in the redirected url. +func (o ApplicationGatewayRedirectConfigurationOutput) IncludeQueryString() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *bool { return v.IncludeQueryString }).(pulumi.BoolPtrOutput) } -// Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) GatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayIPConfigurationResponse { - return v.GatewayIPConfigurations - }).(ApplicationGatewayIPConfigurationResponseArrayOutput) +// Name of the redirect configuration that is unique within an Application Gateway. +func (o ApplicationGatewayRedirectConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) HttpListeners() ApplicationGatewayHttpListenerResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayHttpListenerResponse { return v.HttpListeners }).(ApplicationGatewayHttpListenerResponseArrayOutput) +// Path rules specifying redirect configuration. +func (o ApplicationGatewayRedirectConfigurationOutput) PathRules() SubResourceArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.PathRules }).(SubResourceArrayOutput) } -// Resource ID. -func (o ApplicationGatewayResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// HTTP redirection type. +func (o ApplicationGatewayRedirectConfigurationOutput) RedirectType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.RedirectType }).(pulumi.StringPtrOutput) } -// The identity of the application gateway, if configured. -func (o ApplicationGatewayResponseOutput) Identity() ManagedServiceIdentityResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *ManagedServiceIdentityResponse { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) +// Request routing specifying redirect configuration. +func (o ApplicationGatewayRedirectConfigurationOutput) RequestRoutingRules() SubResourceArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.RequestRoutingRules }).(SubResourceArrayOutput) } -// Resource location. -func (o ApplicationGatewayResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// Reference to a listener to redirect the request to. +func (o ApplicationGatewayRedirectConfigurationOutput) TargetListener() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *SubResource { return v.TargetListener }).(SubResourcePtrOutput) } -// Resource name. -func (o ApplicationGatewayResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Name }).(pulumi.StringOutput) +// Url to redirect the request to. +func (o ApplicationGatewayRedirectConfigurationOutput) TargetUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) *string { return v.TargetUrl }).(pulumi.StringPtrOutput) } -// Operational state of the application gateway resource. -func (o ApplicationGatewayResponseOutput) OperationalState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.OperationalState }).(pulumi.StringOutput) +// Url path maps specifying default redirect configuration. +func (o ApplicationGatewayRedirectConfigurationOutput) UrlPathMaps() SubResourceArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfiguration) []SubResource { return v.UrlPathMaps }).(SubResourceArrayOutput) } -// Private Endpoint connections on application gateway. -func (o ApplicationGatewayResponseOutput) PrivateEndpointConnections() ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayPrivateEndpointConnectionResponse { - return v.PrivateEndpointConnections - }).(ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) +type ApplicationGatewayRedirectConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRedirectConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRedirectConfiguration)(nil)).Elem() } -// PrivateLink configurations on application gateway. -func (o ApplicationGatewayResponseOutput) PrivateLinkConfigurations() ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayPrivateLinkConfigurationResponse { - return v.PrivateLinkConfigurations - }).(ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) +func (o ApplicationGatewayRedirectConfigurationArrayOutput) ToApplicationGatewayRedirectConfigurationArrayOutput() ApplicationGatewayRedirectConfigurationArrayOutput { + return o } -// Probes of the application gateway resource. -func (o ApplicationGatewayResponseOutput) Probes() ApplicationGatewayProbeResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayProbeResponse { return v.Probes }).(ApplicationGatewayProbeResponseArrayOutput) +func (o ApplicationGatewayRedirectConfigurationArrayOutput) ToApplicationGatewayRedirectConfigurationArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationArrayOutput { + return o } -// The provisioning state of the application gateway resource. -func (o ApplicationGatewayResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o ApplicationGatewayRedirectConfigurationArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRedirectConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRedirectConfiguration { + return vs[0].([]ApplicationGatewayRedirectConfiguration)[vs[1].(int)] + }).(ApplicationGatewayRedirectConfigurationOutput) } -// Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) RedirectConfigurations() ApplicationGatewayRedirectConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRedirectConfigurationResponse { - return v.RedirectConfigurations - }).(ApplicationGatewayRedirectConfigurationResponseArrayOutput) +// Redirect configuration of an application gateway. +type ApplicationGatewayRedirectConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Include path in the redirected url. + IncludePath *bool `pulumi:"includePath"` + // Include query string in the redirected url. + IncludeQueryString *bool `pulumi:"includeQueryString"` + // Name of the redirect configuration that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Path rules specifying redirect configuration. + PathRules []SubResourceResponse `pulumi:"pathRules"` + // HTTP redirection type. + RedirectType *string `pulumi:"redirectType"` + // Request routing specifying redirect configuration. + RequestRoutingRules []SubResourceResponse `pulumi:"requestRoutingRules"` + // Reference to a listener to redirect the request to. + TargetListener *SubResourceResponse `pulumi:"targetListener"` + // Url to redirect the request to. + TargetUrl *string `pulumi:"targetUrl"` + // Type of the resource. + Type string `pulumi:"type"` + // Url path maps specifying default redirect configuration. + UrlPathMaps []SubResourceResponse `pulumi:"urlPathMaps"` } -// Request routing rules of the application gateway resource. -func (o ApplicationGatewayResponseOutput) RequestRoutingRules() ApplicationGatewayRequestRoutingRuleResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRequestRoutingRuleResponse { - return v.RequestRoutingRules - }).(ApplicationGatewayRequestRoutingRuleResponseArrayOutput) +// Redirect configuration of an application gateway. +type ApplicationGatewayRedirectConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRedirectConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRedirectConfigurationResponse)(nil)).Elem() } -// The resource GUID property of the application gateway resource. -func (o ApplicationGatewayResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +func (o ApplicationGatewayRedirectConfigurationResponseOutput) ToApplicationGatewayRedirectConfigurationResponseOutput() ApplicationGatewayRedirectConfigurationResponseOutput { + return o } -// Rewrite rules for the application gateway resource. -func (o ApplicationGatewayResponseOutput) RewriteRuleSets() ApplicationGatewayRewriteRuleSetResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRewriteRuleSetResponse { - return v.RewriteRuleSets - }).(ApplicationGatewayRewriteRuleSetResponseArrayOutput) +func (o ApplicationGatewayRedirectConfigurationResponseOutput) ToApplicationGatewayRedirectConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationResponseOutput { + return o } -// SKU of the application gateway resource. -func (o ApplicationGatewayResponseOutput) Sku() ApplicationGatewaySkuResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewaySkuResponse { return v.Sku }).(ApplicationGatewaySkuResponsePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } -// SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) SslCertificates() ApplicationGatewaySslCertificateResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewaySslCertificateResponse { - return v.SslCertificates - }).(ApplicationGatewaySslCertificateResponseArrayOutput) +// Resource ID. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// SSL policy of the application gateway resource. -func (o ApplicationGatewayResponseOutput) SslPolicy() ApplicationGatewaySslPolicyResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewaySslPolicyResponse { return v.SslPolicy }).(ApplicationGatewaySslPolicyResponsePtrOutput) +// Include path in the redirected url. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) IncludePath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *bool { return v.IncludePath }).(pulumi.BoolPtrOutput) } -// SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) SslProfiles() ApplicationGatewaySslProfileResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewaySslProfileResponse { return v.SslProfiles }).(ApplicationGatewaySslProfileResponseArrayOutput) +// Include query string in the redirected url. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) IncludeQueryString() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *bool { return v.IncludeQueryString }).(pulumi.BoolPtrOutput) } -// Resource tags. -func (o ApplicationGatewayResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// Name of the redirect configuration that is unique within an Application Gateway. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) TrustedClientCertificates() ApplicationGatewayTrustedClientCertificateResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayTrustedClientCertificateResponse { - return v.TrustedClientCertificates - }).(ApplicationGatewayTrustedClientCertificateResponseArrayOutput) +// Path rules specifying redirect configuration. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) PathRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { return v.PathRules }).(SubResourceResponseArrayOutput) } -// Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) TrustedRootCertificates() ApplicationGatewayTrustedRootCertificateResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayTrustedRootCertificateResponse { - return v.TrustedRootCertificates - }).(ApplicationGatewayTrustedRootCertificateResponseArrayOutput) +// HTTP redirection type. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) RedirectType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.RedirectType }).(pulumi.StringPtrOutput) } -// Resource type. -func (o ApplicationGatewayResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Type }).(pulumi.StringOutput) +// Request routing specifying redirect configuration. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) RequestRoutingRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { + return v.RequestRoutingRules + }).(SubResourceResponseArrayOutput) } -// URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). -func (o ApplicationGatewayResponseOutput) UrlPathMaps() ApplicationGatewayUrlPathMapResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayUrlPathMapResponse { return v.UrlPathMaps }).(ApplicationGatewayUrlPathMapResponseArrayOutput) +// Reference to a listener to redirect the request to. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) TargetListener() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *SubResourceResponse { return v.TargetListener }).(SubResourceResponsePtrOutput) } -// Web application firewall configuration. -func (o ApplicationGatewayResponseOutput) WebApplicationFirewallConfiguration() ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewayWebApplicationFirewallConfigurationResponse { - return v.WebApplicationFirewallConfiguration - }).(ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) +// Url to redirect the request to. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) TargetUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) *string { return v.TargetUrl }).(pulumi.StringPtrOutput) } -// A list of availability zones denoting where the resource needs to come from. -func (o ApplicationGatewayResponseOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewayResponse) []string { return v.Zones }).(pulumi.StringArrayOutput) +// Type of the resource. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayResponseArrayOutput struct{ *pulumi.OutputState } +// Url path maps specifying default redirect configuration. +func (o ApplicationGatewayRedirectConfigurationResponseOutput) UrlPathMaps() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRedirectConfigurationResponse) []SubResourceResponse { return v.UrlPathMaps }).(SubResourceResponseArrayOutput) +} -func (ApplicationGatewayResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayResponse)(nil)).Elem() +type ApplicationGatewayRedirectConfigurationResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRedirectConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRedirectConfigurationResponse)(nil)).Elem() } -func (o ApplicationGatewayResponseArrayOutput) ToApplicationGatewayResponseArrayOutput() ApplicationGatewayResponseArrayOutput { +func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) ToApplicationGatewayRedirectConfigurationResponseArrayOutput() ApplicationGatewayRedirectConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayResponseArrayOutput) ToApplicationGatewayResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayResponseArrayOutput { +func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) ToApplicationGatewayRedirectConfigurationResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRedirectConfigurationResponseArrayOutput { return o } -func (o ApplicationGatewayResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayResponse { - return vs[0].([]ApplicationGatewayResponse)[vs[1].(int)] - }).(ApplicationGatewayResponseOutput) +func (o ApplicationGatewayRedirectConfigurationResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRedirectConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRedirectConfigurationResponse { + return vs[0].([]ApplicationGatewayRedirectConfigurationResponse)[vs[1].(int)] + }).(ApplicationGatewayRedirectConfigurationResponseOutput) } -// Rewrite rule of an application gateway. -type ApplicationGatewayRewriteRule struct { - // Set of actions to be done as part of the rewrite Rule. - ActionSet *ApplicationGatewayRewriteRuleActionSet `pulumi:"actionSet"` - // Conditions based on which the action set execution will be evaluated. - Conditions []ApplicationGatewayRewriteRuleCondition `pulumi:"conditions"` - // Name of the rewrite rule that is unique within an Application Gateway. +// Request routing rule of an application gateway. +type ApplicationGatewayRequestRoutingRule struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` + // Backend http settings resource of the application gateway. + BackendHttpSettings *SubResource `pulumi:"backendHttpSettings"` + // Http listener resource of the application gateway. + HttpListener *SubResource `pulumi:"httpListener"` + // Resource ID. + Id *string `pulumi:"id"` + // Load Distribution Policy resource of the application gateway. + LoadDistributionPolicy *SubResource `pulumi:"loadDistributionPolicy"` + // Name of the request routing rule that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. - RuleSequence *int `pulumi:"ruleSequence"` + // Priority of the request routing rule. + Priority *int `pulumi:"priority"` + // Redirect configuration resource of the application gateway. + RedirectConfiguration *SubResource `pulumi:"redirectConfiguration"` + // Rewrite Rule Set resource in Basic rule of the application gateway. + RewriteRuleSet *SubResource `pulumi:"rewriteRuleSet"` + // Rule type. + RuleType *string `pulumi:"ruleType"` + // URL path map resource of the application gateway. + UrlPathMap *SubResource `pulumi:"urlPathMap"` } -// ApplicationGatewayRewriteRuleInput is an input type that accepts ApplicationGatewayRewriteRuleArgs and ApplicationGatewayRewriteRuleOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleInput` via: +// ApplicationGatewayRequestRoutingRuleInput is an input type that accepts ApplicationGatewayRequestRoutingRuleArgs and ApplicationGatewayRequestRoutingRuleOutput values. +// You can construct a concrete instance of `ApplicationGatewayRequestRoutingRuleInput` via: // -// ApplicationGatewayRewriteRuleArgs{...} -type ApplicationGatewayRewriteRuleInput interface { +// ApplicationGatewayRequestRoutingRuleArgs{...} +type ApplicationGatewayRequestRoutingRuleInput interface { pulumi.Input - ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput - ToApplicationGatewayRewriteRuleOutputWithContext(context.Context) ApplicationGatewayRewriteRuleOutput + ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput + ToApplicationGatewayRequestRoutingRuleOutputWithContext(context.Context) ApplicationGatewayRequestRoutingRuleOutput } -// Rewrite rule of an application gateway. -type ApplicationGatewayRewriteRuleArgs struct { - // Set of actions to be done as part of the rewrite Rule. - ActionSet ApplicationGatewayRewriteRuleActionSetPtrInput `pulumi:"actionSet"` - // Conditions based on which the action set execution will be evaluated. - Conditions ApplicationGatewayRewriteRuleConditionArrayInput `pulumi:"conditions"` - // Name of the rewrite rule that is unique within an Application Gateway. +// Request routing rule of an application gateway. +type ApplicationGatewayRequestRoutingRuleArgs struct { + // Backend address pool resource of the application gateway. + BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` + // Backend http settings resource of the application gateway. + BackendHttpSettings SubResourcePtrInput `pulumi:"backendHttpSettings"` + // Http listener resource of the application gateway. + HttpListener SubResourcePtrInput `pulumi:"httpListener"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Load Distribution Policy resource of the application gateway. + LoadDistributionPolicy SubResourcePtrInput `pulumi:"loadDistributionPolicy"` + // Name of the request routing rule that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. - RuleSequence pulumi.IntPtrInput `pulumi:"ruleSequence"` + // Priority of the request routing rule. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Redirect configuration resource of the application gateway. + RedirectConfiguration SubResourcePtrInput `pulumi:"redirectConfiguration"` + // Rewrite Rule Set resource in Basic rule of the application gateway. + RewriteRuleSet SubResourcePtrInput `pulumi:"rewriteRuleSet"` + // Rule type. + RuleType pulumi.StringPtrInput `pulumi:"ruleType"` + // URL path map resource of the application gateway. + UrlPathMap SubResourcePtrInput `pulumi:"urlPathMap"` } -func (ApplicationGatewayRewriteRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRule)(nil)).Elem() +func (ApplicationGatewayRequestRoutingRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRequestRoutingRule)(nil)).Elem() } -func (i ApplicationGatewayRewriteRuleArgs) ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput { - return i.ToApplicationGatewayRewriteRuleOutputWithContext(context.Background()) +func (i ApplicationGatewayRequestRoutingRuleArgs) ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput { + return i.ToApplicationGatewayRequestRoutingRuleOutputWithContext(context.Background()) } -func (i ApplicationGatewayRewriteRuleArgs) ToApplicationGatewayRewriteRuleOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleOutput) +func (i ApplicationGatewayRequestRoutingRuleArgs) ToApplicationGatewayRequestRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRequestRoutingRuleOutput) } -// ApplicationGatewayRewriteRuleArrayInput is an input type that accepts ApplicationGatewayRewriteRuleArray and ApplicationGatewayRewriteRuleArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleArrayInput` via: +// ApplicationGatewayRequestRoutingRuleArrayInput is an input type that accepts ApplicationGatewayRequestRoutingRuleArray and ApplicationGatewayRequestRoutingRuleArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRequestRoutingRuleArrayInput` via: // -// ApplicationGatewayRewriteRuleArray{ ApplicationGatewayRewriteRuleArgs{...} } -type ApplicationGatewayRewriteRuleArrayInput interface { +// ApplicationGatewayRequestRoutingRuleArray{ ApplicationGatewayRequestRoutingRuleArgs{...} } +type ApplicationGatewayRequestRoutingRuleArrayInput interface { pulumi.Input - ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput - ToApplicationGatewayRewriteRuleArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleArrayOutput + ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput + ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput } -type ApplicationGatewayRewriteRuleArray []ApplicationGatewayRewriteRuleInput +type ApplicationGatewayRequestRoutingRuleArray []ApplicationGatewayRequestRoutingRuleInput -func (ApplicationGatewayRewriteRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRule)(nil)).Elem() +func (ApplicationGatewayRequestRoutingRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRule)(nil)).Elem() } -func (i ApplicationGatewayRewriteRuleArray) ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput { - return i.ToApplicationGatewayRewriteRuleArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayRequestRoutingRuleArray) ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput { + return i.ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayRewriteRuleArray) ToApplicationGatewayRewriteRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleArrayOutput) +func (i ApplicationGatewayRequestRoutingRuleArray) ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRequestRoutingRuleArrayOutput) } -// Rewrite rule of an application gateway. -type ApplicationGatewayRewriteRuleOutput struct{ *pulumi.OutputState } +// Request routing rule of an application gateway. +type ApplicationGatewayRequestRoutingRuleOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRewriteRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRule)(nil)).Elem() +func (ApplicationGatewayRequestRoutingRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRequestRoutingRule)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleOutput) ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput { +func (o ApplicationGatewayRequestRoutingRuleOutput) ToApplicationGatewayRequestRoutingRuleOutput() ApplicationGatewayRequestRoutingRuleOutput { return o } -func (o ApplicationGatewayRewriteRuleOutput) ToApplicationGatewayRewriteRuleOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleOutput { +func (o ApplicationGatewayRequestRoutingRuleOutput) ToApplicationGatewayRequestRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleOutput { return o } -// Set of actions to be done as part of the rewrite Rule. -func (o ApplicationGatewayRewriteRuleOutput) ActionSet() ApplicationGatewayRewriteRuleActionSetPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRule) *ApplicationGatewayRewriteRuleActionSet { return v.ActionSet }).(ApplicationGatewayRewriteRuleActionSetPtrOutput) +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) BackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) } -// Conditions based on which the action set execution will be evaluated. -func (o ApplicationGatewayRewriteRuleOutput) Conditions() ApplicationGatewayRewriteRuleConditionArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRule) []ApplicationGatewayRewriteRuleCondition { return v.Conditions }).(ApplicationGatewayRewriteRuleConditionArrayOutput) +// Backend http settings resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) BackendHttpSettings() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.BackendHttpSettings }).(SubResourcePtrOutput) } -// Name of the rewrite rule that is unique within an Application Gateway. -func (o ApplicationGatewayRewriteRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRule) *string { return v.Name }).(pulumi.StringPtrOutput) +// Http listener resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) HttpListener() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.HttpListener }).(SubResourcePtrOutput) } -// Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. -func (o ApplicationGatewayRewriteRuleOutput) RuleSequence() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRule) *int { return v.RuleSequence }).(pulumi.IntPtrOutput) +// Resource ID. +func (o ApplicationGatewayRequestRoutingRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.Id }).(pulumi.StringPtrOutput) } -type ApplicationGatewayRewriteRuleArrayOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayRewriteRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRule)(nil)).Elem() +// Load Distribution Policy resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) LoadDistributionPolicy() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.LoadDistributionPolicy }).(SubResourcePtrOutput) } -func (o ApplicationGatewayRewriteRuleArrayOutput) ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput { - return o +// Name of the request routing rule that is unique within an Application Gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayRewriteRuleArrayOutput) ToApplicationGatewayRewriteRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleArrayOutput { - return o +// Priority of the request routing rule. +func (o ApplicationGatewayRequestRoutingRuleOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *int { return v.Priority }).(pulumi.IntPtrOutput) } -func (o ApplicationGatewayRewriteRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRule { - return vs[0].([]ApplicationGatewayRewriteRule)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleOutput) +// Redirect configuration resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) RedirectConfiguration() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.RedirectConfiguration }).(SubResourcePtrOutput) } -// Set of actions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleActionSet struct { - // Request Header Actions in the Action Set. - RequestHeaderConfigurations []ApplicationGatewayHeaderConfiguration `pulumi:"requestHeaderConfigurations"` - // Response Header Actions in the Action Set. - ResponseHeaderConfigurations []ApplicationGatewayHeaderConfiguration `pulumi:"responseHeaderConfigurations"` - // Url Configuration Action in the Action Set. - UrlConfiguration *ApplicationGatewayUrlConfiguration `pulumi:"urlConfiguration"` +// Rewrite Rule Set resource in Basic rule of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) RewriteRuleSet() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.RewriteRuleSet }).(SubResourcePtrOutput) } -// ApplicationGatewayRewriteRuleActionSetInput is an input type that accepts ApplicationGatewayRewriteRuleActionSetArgs and ApplicationGatewayRewriteRuleActionSetOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleActionSetInput` via: -// -// ApplicationGatewayRewriteRuleActionSetArgs{...} -type ApplicationGatewayRewriteRuleActionSetInput interface { - pulumi.Input - - ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput - ToApplicationGatewayRewriteRuleActionSetOutputWithContext(context.Context) ApplicationGatewayRewriteRuleActionSetOutput +// Rule type. +func (o ApplicationGatewayRequestRoutingRuleOutput) RuleType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *string { return v.RuleType }).(pulumi.StringPtrOutput) } -// Set of actions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleActionSetArgs struct { - // Request Header Actions in the Action Set. - RequestHeaderConfigurations ApplicationGatewayHeaderConfigurationArrayInput `pulumi:"requestHeaderConfigurations"` - // Response Header Actions in the Action Set. - ResponseHeaderConfigurations ApplicationGatewayHeaderConfigurationArrayInput `pulumi:"responseHeaderConfigurations"` - // Url Configuration Action in the Action Set. - UrlConfiguration ApplicationGatewayUrlConfigurationPtrInput `pulumi:"urlConfiguration"` +// URL path map resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleOutput) UrlPathMap() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRule) *SubResource { return v.UrlPathMap }).(SubResourcePtrOutput) } -func (ApplicationGatewayRewriteRuleActionSetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() -} +type ApplicationGatewayRequestRoutingRuleArrayOutput struct{ *pulumi.OutputState } -func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput { - return i.ToApplicationGatewayRewriteRuleActionSetOutputWithContext(context.Background()) +func (ApplicationGatewayRequestRoutingRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRule)(nil)).Elem() } -func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetOutput) +func (o ApplicationGatewayRequestRoutingRuleArrayOutput) ToApplicationGatewayRequestRoutingRuleArrayOutput() ApplicationGatewayRequestRoutingRuleArrayOutput { + return o } -func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { - return i.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) +func (o ApplicationGatewayRequestRoutingRuleArrayOutput) ToApplicationGatewayRequestRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleArrayOutput { + return o } -func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetOutput).ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx) +func (o ApplicationGatewayRequestRoutingRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRequestRoutingRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRequestRoutingRule { + return vs[0].([]ApplicationGatewayRequestRoutingRule)[vs[1].(int)] + }).(ApplicationGatewayRequestRoutingRuleOutput) } -// ApplicationGatewayRewriteRuleActionSetPtrInput is an input type that accepts ApplicationGatewayRewriteRuleActionSetArgs, ApplicationGatewayRewriteRuleActionSetPtr and ApplicationGatewayRewriteRuleActionSetPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleActionSetPtrInput` via: -// -// ApplicationGatewayRewriteRuleActionSetArgs{...} -// -// or: -// -// nil -type ApplicationGatewayRewriteRuleActionSetPtrInput interface { - pulumi.Input - - ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput - ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput +// Request routing rule of an application gateway. +type ApplicationGatewayRequestRoutingRuleResponse struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` + // Backend http settings resource of the application gateway. + BackendHttpSettings *SubResourceResponse `pulumi:"backendHttpSettings"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Http listener resource of the application gateway. + HttpListener *SubResourceResponse `pulumi:"httpListener"` + // Resource ID. + Id *string `pulumi:"id"` + // Load Distribution Policy resource of the application gateway. + LoadDistributionPolicy *SubResourceResponse `pulumi:"loadDistributionPolicy"` + // Name of the request routing rule that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Priority of the request routing rule. + Priority *int `pulumi:"priority"` + // The provisioning state of the request routing rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // Redirect configuration resource of the application gateway. + RedirectConfiguration *SubResourceResponse `pulumi:"redirectConfiguration"` + // Rewrite Rule Set resource in Basic rule of the application gateway. + RewriteRuleSet *SubResourceResponse `pulumi:"rewriteRuleSet"` + // Rule type. + RuleType *string `pulumi:"ruleType"` + // Type of the resource. + Type string `pulumi:"type"` + // URL path map resource of the application gateway. + UrlPathMap *SubResourceResponse `pulumi:"urlPathMap"` } -type applicationGatewayRewriteRuleActionSetPtrType ApplicationGatewayRewriteRuleActionSetArgs +// Request routing rule of an application gateway. +type ApplicationGatewayRequestRoutingRuleResponseOutput struct{ *pulumi.OutputState } -func ApplicationGatewayRewriteRuleActionSetPtr(v *ApplicationGatewayRewriteRuleActionSetArgs) ApplicationGatewayRewriteRuleActionSetPtrInput { - return (*applicationGatewayRewriteRuleActionSetPtrType)(v) +func (ApplicationGatewayRequestRoutingRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRequestRoutingRuleResponse)(nil)).Elem() } -func (*applicationGatewayRewriteRuleActionSetPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ToApplicationGatewayRequestRoutingRuleResponseOutput() ApplicationGatewayRequestRoutingRuleResponseOutput { + return o } -func (i *applicationGatewayRewriteRuleActionSetPtrType) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { - return i.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ToApplicationGatewayRequestRoutingRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleResponseOutput { + return o } -func (i *applicationGatewayRewriteRuleActionSetPtrType) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetPtrOutput) +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) } -// Set of actions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleActionSetOutput struct{ *pulumi.OutputState } +// Backend http settings resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) BackendHttpSettings() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { + return v.BackendHttpSettings + }).(SubResourceResponsePtrOutput) +} -func (ApplicationGatewayRewriteRuleActionSetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } -func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput { - return o +// Http listener resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) HttpListener() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.HttpListener }).(SubResourceResponsePtrOutput) } -func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetOutput { - return o +// Resource ID. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { - return o.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) +// Load Distribution Policy resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) LoadDistributionPolicy() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { + return v.LoadDistributionPolicy + }).(SubResourceResponsePtrOutput) } -func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayRewriteRuleActionSet { - return &v - }).(ApplicationGatewayRewriteRuleActionSetPtrOutput) +// Name of the request routing rule that is unique within an Application Gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Request Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { - return v.RequestHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationArrayOutput) +// Priority of the request routing rule. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) } -// Response Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { - return v.ResponseHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationArrayOutput) +// The provisioning state of the request routing rule resource. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Url Configuration Action in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayUrlConfiguration { - return v.UrlConfiguration - }).(ApplicationGatewayUrlConfigurationPtrOutput) +// Redirect configuration resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RedirectConfiguration() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { + return v.RedirectConfiguration + }).(SubResourceResponsePtrOutput) } -type ApplicationGatewayRewriteRuleActionSetPtrOutput struct{ *pulumi.OutputState } +// Rewrite Rule Set resource in Basic rule of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RewriteRuleSet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.RewriteRuleSet }).(SubResourceResponsePtrOutput) +} -func (ApplicationGatewayRewriteRuleActionSetPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() +// Rule type. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) RuleType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *string { return v.RuleType }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { - return o +// Type of the resource. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { - return o +// URL path map resource of the application gateway. +func (o ApplicationGatewayRequestRoutingRuleResponseOutput) UrlPathMap() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRequestRoutingRuleResponse) *SubResourceResponse { return v.UrlPathMap }).(SubResourceResponsePtrOutput) } -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) Elem() ApplicationGatewayRewriteRuleActionSetOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) ApplicationGatewayRewriteRuleActionSet { - if v != nil { - return *v - } - var ret ApplicationGatewayRewriteRuleActionSet - return ret - }).(ApplicationGatewayRewriteRuleActionSetOutput) +type ApplicationGatewayRequestRoutingRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRequestRoutingRuleResponse)(nil)).Elem() } -// Request Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { - if v == nil { - return nil - } - return v.RequestHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationArrayOutput) +func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ToApplicationGatewayRequestRoutingRuleResponseArrayOutput() ApplicationGatewayRequestRoutingRuleResponseArrayOutput { + return o } -// Response Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { - if v == nil { - return nil - } - return v.ResponseHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationArrayOutput) +func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) ToApplicationGatewayRequestRoutingRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRequestRoutingRuleResponseArrayOutput { + return o } -// Url Configuration Action in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayUrlConfiguration { - if v == nil { - return nil - } - return v.UrlConfiguration - }).(ApplicationGatewayUrlConfigurationPtrOutput) +func (o ApplicationGatewayRequestRoutingRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRequestRoutingRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRequestRoutingRuleResponse { + return vs[0].([]ApplicationGatewayRequestRoutingRuleResponse)[vs[1].(int)] + }).(ApplicationGatewayRequestRoutingRuleResponseOutput) } -// Set of actions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleActionSetResponse struct { - // Request Header Actions in the Action Set. - RequestHeaderConfigurations []ApplicationGatewayHeaderConfigurationResponse `pulumi:"requestHeaderConfigurations"` - // Response Header Actions in the Action Set. - ResponseHeaderConfigurations []ApplicationGatewayHeaderConfigurationResponse `pulumi:"responseHeaderConfigurations"` - // Url Configuration Action in the Action Set. - UrlConfiguration *ApplicationGatewayUrlConfigurationResponse `pulumi:"urlConfiguration"` +// Application gateway resource. +type ApplicationGatewayResponse struct { + // Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + AuthenticationCertificates []ApplicationGatewayAuthenticationCertificateResponse `pulumi:"authenticationCertificates"` + // Autoscale Configuration. + AutoscaleConfiguration *ApplicationGatewayAutoscaleConfigurationResponse `pulumi:"autoscaleConfiguration"` + // Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendAddressPools []ApplicationGatewayBackendAddressPoolResponse `pulumi:"backendAddressPools"` + // Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendHttpSettingsCollection []ApplicationGatewayBackendHttpSettingsResponse `pulumi:"backendHttpSettingsCollection"` + // Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + BackendSettingsCollection []ApplicationGatewayBackendSettingsResponse `pulumi:"backendSettingsCollection"` + // Custom error configurations of the application gateway resource. + CustomErrorConfigurations []ApplicationGatewayCustomErrorResponse `pulumi:"customErrorConfigurations"` + // The default predefined SSL Policy applied on the application gateway resource. + DefaultPredefinedSslPolicy string `pulumi:"defaultPredefinedSslPolicy"` + // Whether FIPS is enabled on the application gateway resource. + EnableFips *bool `pulumi:"enableFips"` + // Whether HTTP2 is enabled on the application gateway resource. + EnableHttp2 *bool `pulumi:"enableHttp2"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Reference to the FirewallPolicy resource. + FirewallPolicy *SubResourceResponse `pulumi:"firewallPolicy"` + // If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config. + ForceFirewallPolicyAssociation *bool `pulumi:"forceFirewallPolicyAssociation"` + // Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + FrontendIPConfigurations []ApplicationGatewayFrontendIPConfigurationResponse `pulumi:"frontendIPConfigurations"` + // Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + FrontendPorts []ApplicationGatewayFrontendPortResponse `pulumi:"frontendPorts"` + // Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + GatewayIPConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"gatewayIPConfigurations"` + // Global Configuration. + GlobalConfiguration *ApplicationGatewayGlobalConfigurationResponse `pulumi:"globalConfiguration"` + // Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + HttpListeners []ApplicationGatewayHttpListenerResponse `pulumi:"httpListeners"` + // Resource ID. + Id *string `pulumi:"id"` + // The identity of the application gateway, if configured. + Identity *ManagedServiceIdentityResponse `pulumi:"identity"` + // Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + Listeners []ApplicationGatewayListenerResponse `pulumi:"listeners"` + // Load distribution policies of the application gateway resource. + LoadDistributionPolicies []ApplicationGatewayLoadDistributionPolicyResponse `pulumi:"loadDistributionPolicies"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // Operational state of the application gateway resource. + OperationalState string `pulumi:"operationalState"` + // Private Endpoint connections on application gateway. + PrivateEndpointConnections []ApplicationGatewayPrivateEndpointConnectionResponse `pulumi:"privateEndpointConnections"` + // PrivateLink configurations on application gateway. + PrivateLinkConfigurations []ApplicationGatewayPrivateLinkConfigurationResponse `pulumi:"privateLinkConfigurations"` + // Probes of the application gateway resource. + Probes []ApplicationGatewayProbeResponse `pulumi:"probes"` + // The provisioning state of the application gateway resource. + ProvisioningState string `pulumi:"provisioningState"` + // Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + RedirectConfigurations []ApplicationGatewayRedirectConfigurationResponse `pulumi:"redirectConfigurations"` + // Request routing rules of the application gateway resource. + RequestRoutingRules []ApplicationGatewayRequestRoutingRuleResponse `pulumi:"requestRoutingRules"` + // The resource GUID property of the application gateway resource. + ResourceGuid string `pulumi:"resourceGuid"` + // Rewrite rules for the application gateway resource. + RewriteRuleSets []ApplicationGatewayRewriteRuleSetResponse `pulumi:"rewriteRuleSets"` + // Routing rules of the application gateway resource. + RoutingRules []ApplicationGatewayRoutingRuleResponse `pulumi:"routingRules"` + // SKU of the application gateway resource. + Sku *ApplicationGatewaySkuResponse `pulumi:"sku"` + // SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + SslCertificates []ApplicationGatewaySslCertificateResponse `pulumi:"sslCertificates"` + // SSL policy of the application gateway resource. + SslPolicy *ApplicationGatewaySslPolicyResponse `pulumi:"sslPolicy"` + // SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + SslProfiles []ApplicationGatewaySslProfileResponse `pulumi:"sslProfiles"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + TrustedClientCertificates []ApplicationGatewayTrustedClientCertificateResponse `pulumi:"trustedClientCertificates"` + // Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + TrustedRootCertificates []ApplicationGatewayTrustedRootCertificateResponse `pulumi:"trustedRootCertificates"` + // Resource type. + Type string `pulumi:"type"` + // URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). + UrlPathMaps []ApplicationGatewayUrlPathMapResponse `pulumi:"urlPathMaps"` + // Web application firewall configuration. + WebApplicationFirewallConfiguration *ApplicationGatewayWebApplicationFirewallConfigurationResponse `pulumi:"webApplicationFirewallConfiguration"` + // A list of availability zones denoting where the resource needs to come from. + Zones []string `pulumi:"zones"` } -// Set of actions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleActionSetResponseOutput struct{ *pulumi.OutputState } +// Application gateway resource. +type ApplicationGatewayResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRewriteRuleActionSetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSetResponse)(nil)).Elem() +func (ApplicationGatewayResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayResponse)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ToApplicationGatewayRewriteRuleActionSetResponseOutput() ApplicationGatewayRewriteRuleActionSetResponseOutput { +func (o ApplicationGatewayResponseOutput) ToApplicationGatewayResponseOutput() ApplicationGatewayResponseOutput { return o } -func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ToApplicationGatewayRewriteRuleActionSetResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetResponseOutput { +func (o ApplicationGatewayResponseOutput) ToApplicationGatewayResponseOutputWithContext(ctx context.Context) ApplicationGatewayResponseOutput { return o } -// Request Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { - return v.RequestHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) +// Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) AuthenticationCertificates() ApplicationGatewayAuthenticationCertificateResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayAuthenticationCertificateResponse { + return v.AuthenticationCertificates + }).(ApplicationGatewayAuthenticationCertificateResponseArrayOutput) } -// Response Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { - return v.ResponseHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) +// Autoscale Configuration. +func (o ApplicationGatewayResponseOutput) AutoscaleConfiguration() ApplicationGatewayAutoscaleConfigurationResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewayAutoscaleConfigurationResponse { + return v.AutoscaleConfiguration + }).(ApplicationGatewayAutoscaleConfigurationResponsePtrOutput) } -// Url Configuration Action in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) *ApplicationGatewayUrlConfigurationResponse { - return v.UrlConfiguration - }).(ApplicationGatewayUrlConfigurationResponsePtrOutput) +// Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) BackendAddressPools() ApplicationGatewayBackendAddressPoolResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayBackendAddressPoolResponse { + return v.BackendAddressPools + }).(ApplicationGatewayBackendAddressPoolResponseArrayOutput) } -type ApplicationGatewayRewriteRuleActionSetResponsePtrOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSetResponse)(nil)).Elem() +// Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) BackendHttpSettingsCollection() ApplicationGatewayBackendHttpSettingsResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayBackendHttpSettingsResponse { + return v.BackendHttpSettingsCollection + }).(ApplicationGatewayBackendHttpSettingsResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ToApplicationGatewayRewriteRuleActionSetResponsePtrOutput() ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { - return o +// Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) BackendSettingsCollection() ApplicationGatewayBackendSettingsResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayBackendSettingsResponse { + return v.BackendSettingsCollection + }).(ApplicationGatewayBackendSettingsResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ToApplicationGatewayRewriteRuleActionSetResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { - return o +// Custom error configurations of the application gateway resource. +func (o ApplicationGatewayResponseOutput) CustomErrorConfigurations() ApplicationGatewayCustomErrorResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayCustomErrorResponse { + return v.CustomErrorConfigurations + }).(ApplicationGatewayCustomErrorResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) Elem() ApplicationGatewayRewriteRuleActionSetResponseOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) ApplicationGatewayRewriteRuleActionSetResponse { - if v != nil { - return *v - } - var ret ApplicationGatewayRewriteRuleActionSetResponse - return ret - }).(ApplicationGatewayRewriteRuleActionSetResponseOutput) +// The default predefined SSL Policy applied on the application gateway resource. +func (o ApplicationGatewayResponseOutput) DefaultPredefinedSslPolicy() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.DefaultPredefinedSslPolicy }).(pulumi.StringOutput) } -// Request Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { - if v == nil { - return nil - } - return v.RequestHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) +// Whether FIPS is enabled on the application gateway resource. +func (o ApplicationGatewayResponseOutput) EnableFips() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.EnableFips }).(pulumi.BoolPtrOutput) } -// Response Header Actions in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { - if v == nil { - return nil - } - return v.ResponseHeaderConfigurations - }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) +// Whether HTTP2 is enabled on the application gateway resource. +func (o ApplicationGatewayResponseOutput) EnableHttp2() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.EnableHttp2 }).(pulumi.BoolPtrOutput) } -// Url Configuration Action in the Action Set. -func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationResponsePtrOutput { - return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) *ApplicationGatewayUrlConfigurationResponse { - if v == nil { - return nil - } - return v.UrlConfiguration - }).(ApplicationGatewayUrlConfigurationResponsePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Set of conditions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleCondition struct { - // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. - IgnoreCase *bool `pulumi:"ignoreCase"` - // Setting this value as truth will force to check the negation of the condition given by the user. - Negate *bool `pulumi:"negate"` - // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. - Pattern *string `pulumi:"pattern"` - // The condition parameter of the RewriteRuleCondition. - Variable *string `pulumi:"variable"` +// Reference to the FirewallPolicy resource. +func (o ApplicationGatewayResponseOutput) FirewallPolicy() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *SubResourceResponse { return v.FirewallPolicy }).(SubResourceResponsePtrOutput) } -// ApplicationGatewayRewriteRuleConditionInput is an input type that accepts ApplicationGatewayRewriteRuleConditionArgs and ApplicationGatewayRewriteRuleConditionOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleConditionInput` via: -// -// ApplicationGatewayRewriteRuleConditionArgs{...} -type ApplicationGatewayRewriteRuleConditionInput interface { - pulumi.Input - - ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput - ToApplicationGatewayRewriteRuleConditionOutputWithContext(context.Context) ApplicationGatewayRewriteRuleConditionOutput +// If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config. +func (o ApplicationGatewayResponseOutput) ForceFirewallPolicyAssociation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *bool { return v.ForceFirewallPolicyAssociation }).(pulumi.BoolPtrOutput) } -// Set of conditions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleConditionArgs struct { - // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. - IgnoreCase pulumi.BoolPtrInput `pulumi:"ignoreCase"` - // Setting this value as truth will force to check the negation of the condition given by the user. - Negate pulumi.BoolPtrInput `pulumi:"negate"` - // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. - Pattern pulumi.StringPtrInput `pulumi:"pattern"` - // The condition parameter of the RewriteRuleCondition. - Variable pulumi.StringPtrInput `pulumi:"variable"` +// Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) FrontendIPConfigurations() ApplicationGatewayFrontendIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayFrontendIPConfigurationResponse { + return v.FrontendIPConfigurations + }).(ApplicationGatewayFrontendIPConfigurationResponseArrayOutput) } -func (ApplicationGatewayRewriteRuleConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleCondition)(nil)).Elem() +// Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) FrontendPorts() ApplicationGatewayFrontendPortResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayFrontendPortResponse { return v.FrontendPorts }).(ApplicationGatewayFrontendPortResponseArrayOutput) } -func (i ApplicationGatewayRewriteRuleConditionArgs) ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput { - return i.ToApplicationGatewayRewriteRuleConditionOutputWithContext(context.Background()) +// Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) GatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayIPConfigurationResponse { + return v.GatewayIPConfigurations + }).(ApplicationGatewayIPConfigurationResponseArrayOutput) } -func (i ApplicationGatewayRewriteRuleConditionArgs) ToApplicationGatewayRewriteRuleConditionOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleConditionOutput) +// Global Configuration. +func (o ApplicationGatewayResponseOutput) GlobalConfiguration() ApplicationGatewayGlobalConfigurationResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewayGlobalConfigurationResponse { + return v.GlobalConfiguration + }).(ApplicationGatewayGlobalConfigurationResponsePtrOutput) } -// ApplicationGatewayRewriteRuleConditionArrayInput is an input type that accepts ApplicationGatewayRewriteRuleConditionArray and ApplicationGatewayRewriteRuleConditionArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleConditionArrayInput` via: -// -// ApplicationGatewayRewriteRuleConditionArray{ ApplicationGatewayRewriteRuleConditionArgs{...} } -type ApplicationGatewayRewriteRuleConditionArrayInput interface { - pulumi.Input - - ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput - ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput +// Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) HttpListeners() ApplicationGatewayHttpListenerResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayHttpListenerResponse { return v.HttpListeners }).(ApplicationGatewayHttpListenerResponseArrayOutput) } -type ApplicationGatewayRewriteRuleConditionArray []ApplicationGatewayRewriteRuleConditionInput - -func (ApplicationGatewayRewriteRuleConditionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleCondition)(nil)).Elem() +// Resource ID. +func (o ApplicationGatewayResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (i ApplicationGatewayRewriteRuleConditionArray) ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput { - return i.ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(context.Background()) +// The identity of the application gateway, if configured. +func (o ApplicationGatewayResponseOutput) Identity() ManagedServiceIdentityResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ManagedServiceIdentityResponse { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) } -func (i ApplicationGatewayRewriteRuleConditionArray) ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleConditionArrayOutput) +// Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) Listeners() ApplicationGatewayListenerResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayListenerResponse { return v.Listeners }).(ApplicationGatewayListenerResponseArrayOutput) } -// Set of conditions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleConditionOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayRewriteRuleConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleCondition)(nil)).Elem() +// Load distribution policies of the application gateway resource. +func (o ApplicationGatewayResponseOutput) LoadDistributionPolicies() ApplicationGatewayLoadDistributionPolicyResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayLoadDistributionPolicyResponse { + return v.LoadDistributionPolicies + }).(ApplicationGatewayLoadDistributionPolicyResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleConditionOutput) ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput { - return o +// Resource location. +func (o ApplicationGatewayResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayRewriteRuleConditionOutput) ToApplicationGatewayRewriteRuleConditionOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionOutput { - return o +// Resource name. +func (o ApplicationGatewayResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Name }).(pulumi.StringOutput) } -// Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. -func (o ApplicationGatewayRewriteRuleConditionOutput) IgnoreCase() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) +// Operational state of the application gateway resource. +func (o ApplicationGatewayResponseOutput) OperationalState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.OperationalState }).(pulumi.StringOutput) } -// Setting this value as truth will force to check the negation of the condition given by the user. -func (o ApplicationGatewayRewriteRuleConditionOutput) Negate() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *bool { return v.Negate }).(pulumi.BoolPtrOutput) +// Private Endpoint connections on application gateway. +func (o ApplicationGatewayResponseOutput) PrivateEndpointConnections() ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayPrivateEndpointConnectionResponse { + return v.PrivateEndpointConnections + }).(ApplicationGatewayPrivateEndpointConnectionResponseArrayOutput) } -// The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. -func (o ApplicationGatewayRewriteRuleConditionOutput) Pattern() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *string { return v.Pattern }).(pulumi.StringPtrOutput) +// PrivateLink configurations on application gateway. +func (o ApplicationGatewayResponseOutput) PrivateLinkConfigurations() ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayPrivateLinkConfigurationResponse { + return v.PrivateLinkConfigurations + }).(ApplicationGatewayPrivateLinkConfigurationResponseArrayOutput) } -// The condition parameter of the RewriteRuleCondition. -func (o ApplicationGatewayRewriteRuleConditionOutput) Variable() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *string { return v.Variable }).(pulumi.StringPtrOutput) +// Probes of the application gateway resource. +func (o ApplicationGatewayResponseOutput) Probes() ApplicationGatewayProbeResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayProbeResponse { return v.Probes }).(ApplicationGatewayProbeResponseArrayOutput) } -type ApplicationGatewayRewriteRuleConditionArrayOutput struct{ *pulumi.OutputState } +// The provisioning state of the application gateway resource. +func (o ApplicationGatewayResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} -func (ApplicationGatewayRewriteRuleConditionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleCondition)(nil)).Elem() +// Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) RedirectConfigurations() ApplicationGatewayRedirectConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRedirectConfigurationResponse { + return v.RedirectConfigurations + }).(ApplicationGatewayRedirectConfigurationResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleConditionArrayOutput) ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput { - return o +// Request routing rules of the application gateway resource. +func (o ApplicationGatewayResponseOutput) RequestRoutingRules() ApplicationGatewayRequestRoutingRuleResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRequestRoutingRuleResponse { + return v.RequestRoutingRules + }).(ApplicationGatewayRequestRoutingRuleResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleConditionArrayOutput) ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput { - return o +// The resource GUID property of the application gateway resource. +func (o ApplicationGatewayResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) } -func (o ApplicationGatewayRewriteRuleConditionArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleConditionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleCondition { - return vs[0].([]ApplicationGatewayRewriteRuleCondition)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleConditionOutput) +// Rewrite rules for the application gateway resource. +func (o ApplicationGatewayResponseOutput) RewriteRuleSets() ApplicationGatewayRewriteRuleSetResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRewriteRuleSetResponse { + return v.RewriteRuleSets + }).(ApplicationGatewayRewriteRuleSetResponseArrayOutput) } -// Set of conditions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleConditionResponse struct { - // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. - IgnoreCase *bool `pulumi:"ignoreCase"` - // Setting this value as truth will force to check the negation of the condition given by the user. - Negate *bool `pulumi:"negate"` - // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. - Pattern *string `pulumi:"pattern"` - // The condition parameter of the RewriteRuleCondition. - Variable *string `pulumi:"variable"` +// Routing rules of the application gateway resource. +func (o ApplicationGatewayResponseOutput) RoutingRules() ApplicationGatewayRoutingRuleResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayRoutingRuleResponse { return v.RoutingRules }).(ApplicationGatewayRoutingRuleResponseArrayOutput) } -// Set of conditions in the Rewrite Rule in Application Gateway. -type ApplicationGatewayRewriteRuleConditionResponseOutput struct{ *pulumi.OutputState } +// SKU of the application gateway resource. +func (o ApplicationGatewayResponseOutput) Sku() ApplicationGatewaySkuResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewaySkuResponse { return v.Sku }).(ApplicationGatewaySkuResponsePtrOutput) +} -func (ApplicationGatewayRewriteRuleConditionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleConditionResponse)(nil)).Elem() +// SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) SslCertificates() ApplicationGatewaySslCertificateResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewaySslCertificateResponse { + return v.SslCertificates + }).(ApplicationGatewaySslCertificateResponseArrayOutput) } -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) ToApplicationGatewayRewriteRuleConditionResponseOutput() ApplicationGatewayRewriteRuleConditionResponseOutput { - return o +// SSL policy of the application gateway resource. +func (o ApplicationGatewayResponseOutput) SslPolicy() ApplicationGatewaySslPolicyResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewaySslPolicyResponse { return v.SslPolicy }).(ApplicationGatewaySslPolicyResponsePtrOutput) } -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) ToApplicationGatewayRewriteRuleConditionResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionResponseOutput { - return o +// SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) SslProfiles() ApplicationGatewaySslProfileResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewaySslProfileResponse { return v.SslProfiles }).(ApplicationGatewaySslProfileResponseArrayOutput) } -// Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) IgnoreCase() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) +// Resource tags. +func (o ApplicationGatewayResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// Setting this value as truth will force to check the negation of the condition given by the user. -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Negate() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *bool { return v.Negate }).(pulumi.BoolPtrOutput) +// Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) TrustedClientCertificates() ApplicationGatewayTrustedClientCertificateResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayTrustedClientCertificateResponse { + return v.TrustedClientCertificates + }).(ApplicationGatewayTrustedClientCertificateResponseArrayOutput) } -// The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Pattern() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *string { return v.Pattern }).(pulumi.StringPtrOutput) +// Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) TrustedRootCertificates() ApplicationGatewayTrustedRootCertificateResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayTrustedRootCertificateResponse { + return v.TrustedRootCertificates + }).(ApplicationGatewayTrustedRootCertificateResponseArrayOutput) } -// The condition parameter of the RewriteRuleCondition. -func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Variable() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *string { return v.Variable }).(pulumi.StringPtrOutput) +// Resource type. +func (o ApplicationGatewayResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayRewriteRuleConditionResponseArrayOutput struct{ *pulumi.OutputState } +// URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits). +func (o ApplicationGatewayResponseOutput) UrlPathMaps() ApplicationGatewayUrlPathMapResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []ApplicationGatewayUrlPathMapResponse { return v.UrlPathMaps }).(ApplicationGatewayUrlPathMapResponseArrayOutput) +} -func (ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleConditionResponse)(nil)).Elem() +// Web application firewall configuration. +func (o ApplicationGatewayResponseOutput) WebApplicationFirewallConfiguration() ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) *ApplicationGatewayWebApplicationFirewallConfigurationResponse { + return v.WebApplicationFirewallConfiguration + }).(ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) } -func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ToApplicationGatewayRewriteRuleConditionResponseArrayOutput() ApplicationGatewayRewriteRuleConditionResponseArrayOutput { +// A list of availability zones denoting where the resource needs to come from. +func (o ApplicationGatewayResponseOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewayResponse) []string { return v.Zones }).(pulumi.StringArrayOutput) +} + +type ApplicationGatewayResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayResponse)(nil)).Elem() +} + +func (o ApplicationGatewayResponseArrayOutput) ToApplicationGatewayResponseArrayOutput() ApplicationGatewayResponseArrayOutput { return o } -func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ToApplicationGatewayRewriteRuleConditionResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionResponseArrayOutput { +func (o ApplicationGatewayResponseArrayOutput) ToApplicationGatewayResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayResponseArrayOutput { return o } -func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleConditionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleConditionResponse { - return vs[0].([]ApplicationGatewayRewriteRuleConditionResponse)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleConditionResponseOutput) +func (o ApplicationGatewayResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayResponse { + return vs[0].([]ApplicationGatewayResponse)[vs[1].(int)] + }).(ApplicationGatewayResponseOutput) } // Rewrite rule of an application gateway. -type ApplicationGatewayRewriteRuleResponse struct { +type ApplicationGatewayRewriteRule struct { // Set of actions to be done as part of the rewrite Rule. - ActionSet *ApplicationGatewayRewriteRuleActionSetResponse `pulumi:"actionSet"` + ActionSet *ApplicationGatewayRewriteRuleActionSet `pulumi:"actionSet"` // Conditions based on which the action set execution will be evaluated. - Conditions []ApplicationGatewayRewriteRuleConditionResponse `pulumi:"conditions"` + Conditions []ApplicationGatewayRewriteRuleCondition `pulumi:"conditions"` // Name of the rewrite rule that is unique within an Application Gateway. Name *string `pulumi:"name"` // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. RuleSequence *int `pulumi:"ruleSequence"` } +// ApplicationGatewayRewriteRuleInput is an input type that accepts ApplicationGatewayRewriteRuleArgs and ApplicationGatewayRewriteRuleOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleInput` via: +// +// ApplicationGatewayRewriteRuleArgs{...} +type ApplicationGatewayRewriteRuleInput interface { + pulumi.Input + + ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput + ToApplicationGatewayRewriteRuleOutputWithContext(context.Context) ApplicationGatewayRewriteRuleOutput +} + // Rewrite rule of an application gateway. -type ApplicationGatewayRewriteRuleResponseOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleArgs struct { + // Set of actions to be done as part of the rewrite Rule. + ActionSet ApplicationGatewayRewriteRuleActionSetPtrInput `pulumi:"actionSet"` + // Conditions based on which the action set execution will be evaluated. + Conditions ApplicationGatewayRewriteRuleConditionArrayInput `pulumi:"conditions"` + // Name of the rewrite rule that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. + RuleSequence pulumi.IntPtrInput `pulumi:"ruleSequence"` +} -func (ApplicationGatewayRewriteRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRule)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleResponseOutput) ToApplicationGatewayRewriteRuleResponseOutput() ApplicationGatewayRewriteRuleResponseOutput { +func (i ApplicationGatewayRewriteRuleArgs) ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput { + return i.ToApplicationGatewayRewriteRuleOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayRewriteRuleArgs) ToApplicationGatewayRewriteRuleOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleOutput) +} + +// ApplicationGatewayRewriteRuleArrayInput is an input type that accepts ApplicationGatewayRewriteRuleArray and ApplicationGatewayRewriteRuleArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleArrayInput` via: +// +// ApplicationGatewayRewriteRuleArray{ ApplicationGatewayRewriteRuleArgs{...} } +type ApplicationGatewayRewriteRuleArrayInput interface { + pulumi.Input + + ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput + ToApplicationGatewayRewriteRuleArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleArrayOutput +} + +type ApplicationGatewayRewriteRuleArray []ApplicationGatewayRewriteRuleInput + +func (ApplicationGatewayRewriteRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRule)(nil)).Elem() +} + +func (i ApplicationGatewayRewriteRuleArray) ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput { + return i.ToApplicationGatewayRewriteRuleArrayOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayRewriteRuleArray) ToApplicationGatewayRewriteRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleArrayOutput) +} + +// Rewrite rule of an application gateway. +type ApplicationGatewayRewriteRuleOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRule)(nil)).Elem() +} + +func (o ApplicationGatewayRewriteRuleOutput) ToApplicationGatewayRewriteRuleOutput() ApplicationGatewayRewriteRuleOutput { return o } -func (o ApplicationGatewayRewriteRuleResponseOutput) ToApplicationGatewayRewriteRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleResponseOutput { +func (o ApplicationGatewayRewriteRuleOutput) ToApplicationGatewayRewriteRuleOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleOutput { return o } // Set of actions to be done as part of the rewrite Rule. -func (o ApplicationGatewayRewriteRuleResponseOutput) ActionSet() ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *ApplicationGatewayRewriteRuleActionSetResponse { - return v.ActionSet - }).(ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) +func (o ApplicationGatewayRewriteRuleOutput) ActionSet() ApplicationGatewayRewriteRuleActionSetPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRule) *ApplicationGatewayRewriteRuleActionSet { return v.ActionSet }).(ApplicationGatewayRewriteRuleActionSetPtrOutput) } // Conditions based on which the action set execution will be evaluated. -func (o ApplicationGatewayRewriteRuleResponseOutput) Conditions() ApplicationGatewayRewriteRuleConditionResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) []ApplicationGatewayRewriteRuleConditionResponse { - return v.Conditions - }).(ApplicationGatewayRewriteRuleConditionResponseArrayOutput) +func (o ApplicationGatewayRewriteRuleOutput) Conditions() ApplicationGatewayRewriteRuleConditionArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRule) []ApplicationGatewayRewriteRuleCondition { return v.Conditions }).(ApplicationGatewayRewriteRuleConditionArrayOutput) } // Name of the rewrite rule that is unique within an Application Gateway. -func (o ApplicationGatewayRewriteRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRule) *string { return v.Name }).(pulumi.StringPtrOutput) } // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. -func (o ApplicationGatewayRewriteRuleResponseOutput) RuleSequence() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *int { return v.RuleSequence }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayRewriteRuleOutput) RuleSequence() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRule) *int { return v.RuleSequence }).(pulumi.IntPtrOutput) } -type ApplicationGatewayRewriteRuleResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRewriteRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRule)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleResponseArrayOutput) ToApplicationGatewayRewriteRuleResponseArrayOutput() ApplicationGatewayRewriteRuleResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleArrayOutput) ToApplicationGatewayRewriteRuleArrayOutput() ApplicationGatewayRewriteRuleArrayOutput { return o } -func (o ApplicationGatewayRewriteRuleResponseArrayOutput) ToApplicationGatewayRewriteRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleArrayOutput) ToApplicationGatewayRewriteRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleArrayOutput { return o } -func (o ApplicationGatewayRewriteRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleResponse { - return vs[0].([]ApplicationGatewayRewriteRuleResponse)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleResponseOutput) +func (o ApplicationGatewayRewriteRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRule { + return vs[0].([]ApplicationGatewayRewriteRule)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleOutput) } -// Rewrite rule set of an application gateway. -type ApplicationGatewayRewriteRuleSet struct { - // Resource ID. - Id *string `pulumi:"id"` - // Name of the rewrite rule set that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // Rewrite rules in the rewrite rule set. - RewriteRules []ApplicationGatewayRewriteRule `pulumi:"rewriteRules"` +// Set of actions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleActionSet struct { + // Request Header Actions in the Action Set. + RequestHeaderConfigurations []ApplicationGatewayHeaderConfiguration `pulumi:"requestHeaderConfigurations"` + // Response Header Actions in the Action Set. + ResponseHeaderConfigurations []ApplicationGatewayHeaderConfiguration `pulumi:"responseHeaderConfigurations"` + // Url Configuration Action in the Action Set. + UrlConfiguration *ApplicationGatewayUrlConfiguration `pulumi:"urlConfiguration"` } -// ApplicationGatewayRewriteRuleSetInput is an input type that accepts ApplicationGatewayRewriteRuleSetArgs and ApplicationGatewayRewriteRuleSetOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleSetInput` via: +// ApplicationGatewayRewriteRuleActionSetInput is an input type that accepts ApplicationGatewayRewriteRuleActionSetArgs and ApplicationGatewayRewriteRuleActionSetOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleActionSetInput` via: // -// ApplicationGatewayRewriteRuleSetArgs{...} -type ApplicationGatewayRewriteRuleSetInput interface { +// ApplicationGatewayRewriteRuleActionSetArgs{...} +type ApplicationGatewayRewriteRuleActionSetInput interface { pulumi.Input - ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput - ToApplicationGatewayRewriteRuleSetOutputWithContext(context.Context) ApplicationGatewayRewriteRuleSetOutput + ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput + ToApplicationGatewayRewriteRuleActionSetOutputWithContext(context.Context) ApplicationGatewayRewriteRuleActionSetOutput } -// Rewrite rule set of an application gateway. -type ApplicationGatewayRewriteRuleSetArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the rewrite rule set that is unique within an Application Gateway. - Name pulumi.StringPtrInput `pulumi:"name"` - // Rewrite rules in the rewrite rule set. - RewriteRules ApplicationGatewayRewriteRuleArrayInput `pulumi:"rewriteRules"` +// Set of actions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleActionSetArgs struct { + // Request Header Actions in the Action Set. + RequestHeaderConfigurations ApplicationGatewayHeaderConfigurationArrayInput `pulumi:"requestHeaderConfigurations"` + // Response Header Actions in the Action Set. + ResponseHeaderConfigurations ApplicationGatewayHeaderConfigurationArrayInput `pulumi:"responseHeaderConfigurations"` + // Url Configuration Action in the Action Set. + UrlConfiguration ApplicationGatewayUrlConfigurationPtrInput `pulumi:"urlConfiguration"` } -func (ApplicationGatewayRewriteRuleSetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleSet)(nil)).Elem() +func (ApplicationGatewayRewriteRuleActionSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() } -func (i ApplicationGatewayRewriteRuleSetArgs) ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput { - return i.ToApplicationGatewayRewriteRuleSetOutputWithContext(context.Background()) +func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput { + return i.ToApplicationGatewayRewriteRuleActionSetOutputWithContext(context.Background()) } -func (i ApplicationGatewayRewriteRuleSetArgs) ToApplicationGatewayRewriteRuleSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleSetOutput) +func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetOutput) } -// ApplicationGatewayRewriteRuleSetArrayInput is an input type that accepts ApplicationGatewayRewriteRuleSetArray and ApplicationGatewayRewriteRuleSetArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayRewriteRuleSetArrayInput` via: +func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { + return i.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayRewriteRuleActionSetArgs) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetOutput).ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx) +} + +// ApplicationGatewayRewriteRuleActionSetPtrInput is an input type that accepts ApplicationGatewayRewriteRuleActionSetArgs, ApplicationGatewayRewriteRuleActionSetPtr and ApplicationGatewayRewriteRuleActionSetPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleActionSetPtrInput` via: // -// ApplicationGatewayRewriteRuleSetArray{ ApplicationGatewayRewriteRuleSetArgs{...} } -type ApplicationGatewayRewriteRuleSetArrayInput interface { +// ApplicationGatewayRewriteRuleActionSetArgs{...} +// +// or: +// +// nil +type ApplicationGatewayRewriteRuleActionSetPtrInput interface { pulumi.Input - ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput - ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleSetArrayOutput + ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput + ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput } -type ApplicationGatewayRewriteRuleSetArray []ApplicationGatewayRewriteRuleSetInput +type applicationGatewayRewriteRuleActionSetPtrType ApplicationGatewayRewriteRuleActionSetArgs -func (ApplicationGatewayRewriteRuleSetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSet)(nil)).Elem() +func ApplicationGatewayRewriteRuleActionSetPtr(v *ApplicationGatewayRewriteRuleActionSetArgs) ApplicationGatewayRewriteRuleActionSetPtrInput { + return (*applicationGatewayRewriteRuleActionSetPtrType)(v) } -func (i ApplicationGatewayRewriteRuleSetArray) ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput { - return i.ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(context.Background()) +func (*applicationGatewayRewriteRuleActionSetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() } -func (i ApplicationGatewayRewriteRuleSetArray) ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleSetArrayOutput) +func (i *applicationGatewayRewriteRuleActionSetPtrType) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { + return i.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) } -// Rewrite rule set of an application gateway. -type ApplicationGatewayRewriteRuleSetOutput struct{ *pulumi.OutputState } +func (i *applicationGatewayRewriteRuleActionSetPtrType) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleActionSetPtrOutput) +} -func (ApplicationGatewayRewriteRuleSetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleSet)(nil)).Elem() +// Set of actions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleActionSetOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleActionSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleSetOutput) ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput { +func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetOutput() ApplicationGatewayRewriteRuleActionSetOutput { return o } -func (o ApplicationGatewayRewriteRuleSetOutput) ToApplicationGatewayRewriteRuleSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetOutput { +func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetOutput { return o } -// Resource ID. -func (o ApplicationGatewayRewriteRuleSetOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { + return o.ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(context.Background()) } -// Name of the rewrite rule set that is unique within an Application Gateway. -func (o ApplicationGatewayRewriteRuleSetOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleActionSetOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayRewriteRuleActionSet { + return &v + }).(ApplicationGatewayRewriteRuleActionSetPtrOutput) } -// Rewrite rules in the rewrite rule set. -func (o ApplicationGatewayRewriteRuleSetOutput) RewriteRules() ApplicationGatewayRewriteRuleArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) []ApplicationGatewayRewriteRule { return v.RewriteRules }).(ApplicationGatewayRewriteRuleArrayOutput) +// Request Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { + return v.RequestHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationArrayOutput) } -type ApplicationGatewayRewriteRuleSetArrayOutput struct{ *pulumi.OutputState } +// Response Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { + return v.ResponseHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationArrayOutput) +} -func (ApplicationGatewayRewriteRuleSetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSet)(nil)).Elem() +// Url Configuration Action in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayUrlConfiguration { + return v.UrlConfiguration + }).(ApplicationGatewayUrlConfigurationPtrOutput) } -func (o ApplicationGatewayRewriteRuleSetArrayOutput) ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput { +type ApplicationGatewayRewriteRuleActionSetPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleActionSetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSet)(nil)).Elem() +} + +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutput() ApplicationGatewayRewriteRuleActionSetPtrOutput { return o } -func (o ApplicationGatewayRewriteRuleSetArrayOutput) ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetArrayOutput { +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ToApplicationGatewayRewriteRuleActionSetPtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetPtrOutput { return o } -func (o ApplicationGatewayRewriteRuleSetArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleSetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleSet { - return vs[0].([]ApplicationGatewayRewriteRuleSet)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleSetOutput) +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) Elem() ApplicationGatewayRewriteRuleActionSetOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) ApplicationGatewayRewriteRuleActionSet { + if v != nil { + return *v + } + var ret ApplicationGatewayRewriteRuleActionSet + return ret + }).(ApplicationGatewayRewriteRuleActionSetOutput) } -// Rewrite rule set of an application gateway. -type ApplicationGatewayRewriteRuleSetResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Name of the rewrite rule set that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // The provisioning state of the rewrite rule set resource. - ProvisioningState string `pulumi:"provisioningState"` - // Rewrite rules in the rewrite rule set. - RewriteRules []ApplicationGatewayRewriteRuleResponse `pulumi:"rewriteRules"` +// Request Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { + if v == nil { + return nil + } + return v.RequestHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationArrayOutput) } -// Rewrite rule set of an application gateway. -type ApplicationGatewayRewriteRuleSetResponseOutput struct{ *pulumi.OutputState } +// Response Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) []ApplicationGatewayHeaderConfiguration { + if v == nil { + return nil + } + return v.ResponseHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationArrayOutput) +} -func (ApplicationGatewayRewriteRuleSetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayRewriteRuleSetResponse)(nil)).Elem() +// Url Configuration Action in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetPtrOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSet) *ApplicationGatewayUrlConfiguration { + if v == nil { + return nil + } + return v.UrlConfiguration + }).(ApplicationGatewayUrlConfigurationPtrOutput) } -func (o ApplicationGatewayRewriteRuleSetResponseOutput) ToApplicationGatewayRewriteRuleSetResponseOutput() ApplicationGatewayRewriteRuleSetResponseOutput { - return o +// Set of actions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleActionSetResponse struct { + // Request Header Actions in the Action Set. + RequestHeaderConfigurations []ApplicationGatewayHeaderConfigurationResponse `pulumi:"requestHeaderConfigurations"` + // Response Header Actions in the Action Set. + ResponseHeaderConfigurations []ApplicationGatewayHeaderConfigurationResponse `pulumi:"responseHeaderConfigurations"` + // Url Configuration Action in the Action Set. + UrlConfiguration *ApplicationGatewayUrlConfigurationResponse `pulumi:"urlConfiguration"` } -func (o ApplicationGatewayRewriteRuleSetResponseOutput) ToApplicationGatewayRewriteRuleSetResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetResponseOutput { - return o +// Set of actions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleActionSetResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleActionSetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleActionSetResponse)(nil)).Elem() } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayRewriteRuleSetResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ToApplicationGatewayRewriteRuleActionSetResponseOutput() ApplicationGatewayRewriteRuleActionSetResponseOutput { + return o } -// Resource ID. -func (o ApplicationGatewayRewriteRuleSetResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ToApplicationGatewayRewriteRuleActionSetResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetResponseOutput { + return o } -// Name of the rewrite rule set that is unique within an Application Gateway. -func (o ApplicationGatewayRewriteRuleSetResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Request Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { + return v.RequestHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) } -// The provisioning state of the rewrite rule set resource. -func (o ApplicationGatewayRewriteRuleSetResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Response Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { + return v.ResponseHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) } -// Rewrite rules in the rewrite rule set. -func (o ApplicationGatewayRewriteRuleSetResponseOutput) RewriteRules() ApplicationGatewayRewriteRuleResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) []ApplicationGatewayRewriteRuleResponse { - return v.RewriteRules - }).(ApplicationGatewayRewriteRuleResponseArrayOutput) +// Url Configuration Action in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponseOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleActionSetResponse) *ApplicationGatewayUrlConfigurationResponse { + return v.UrlConfiguration + }).(ApplicationGatewayUrlConfigurationResponsePtrOutput) } -type ApplicationGatewayRewriteRuleSetResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleActionSetResponsePtrOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayRewriteRuleSetResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSetResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayRewriteRuleActionSetResponse)(nil)).Elem() } -func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) ToApplicationGatewayRewriteRuleSetResponseArrayOutput() ApplicationGatewayRewriteRuleSetResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ToApplicationGatewayRewriteRuleActionSetResponsePtrOutput() ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { return o } -func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) ToApplicationGatewayRewriteRuleSetResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ToApplicationGatewayRewriteRuleActionSetResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { return o } -func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleSetResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleSetResponse { - return vs[0].([]ApplicationGatewayRewriteRuleSetResponse)[vs[1].(int)] - }).(ApplicationGatewayRewriteRuleSetResponseOutput) -} - -// SKU of an application gateway. -type ApplicationGatewaySku struct { - // Capacity (instance count) of an application gateway. - Capacity *int `pulumi:"capacity"` - // Name of an application gateway SKU. - Name *string `pulumi:"name"` - // Tier of an application gateway. - Tier *string `pulumi:"tier"` +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) Elem() ApplicationGatewayRewriteRuleActionSetResponseOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) ApplicationGatewayRewriteRuleActionSetResponse { + if v != nil { + return *v + } + var ret ApplicationGatewayRewriteRuleActionSetResponse + return ret + }).(ApplicationGatewayRewriteRuleActionSetResponseOutput) } -// ApplicationGatewaySkuInput is an input type that accepts ApplicationGatewaySkuArgs and ApplicationGatewaySkuOutput values. -// You can construct a concrete instance of `ApplicationGatewaySkuInput` via: -// -// ApplicationGatewaySkuArgs{...} -type ApplicationGatewaySkuInput interface { - pulumi.Input +// Request Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) RequestHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { + if v == nil { + return nil + } + return v.RequestHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) +} - ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput - ToApplicationGatewaySkuOutputWithContext(context.Context) ApplicationGatewaySkuOutput +// Response Header Actions in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) ResponseHeaderConfigurations() ApplicationGatewayHeaderConfigurationResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) []ApplicationGatewayHeaderConfigurationResponse { + if v == nil { + return nil + } + return v.ResponseHeaderConfigurations + }).(ApplicationGatewayHeaderConfigurationResponseArrayOutput) } -// SKU of an application gateway. -type ApplicationGatewaySkuArgs struct { - // Capacity (instance count) of an application gateway. - Capacity pulumi.IntPtrInput `pulumi:"capacity"` - // Name of an application gateway SKU. - Name pulumi.StringPtrInput `pulumi:"name"` - // Tier of an application gateway. - Tier pulumi.StringPtrInput `pulumi:"tier"` +// Url Configuration Action in the Action Set. +func (o ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) UrlConfiguration() ApplicationGatewayUrlConfigurationResponsePtrOutput { + return o.ApplyT(func(v *ApplicationGatewayRewriteRuleActionSetResponse) *ApplicationGatewayUrlConfigurationResponse { + if v == nil { + return nil + } + return v.UrlConfiguration + }).(ApplicationGatewayUrlConfigurationResponsePtrOutput) } -func (ApplicationGatewaySkuArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySku)(nil)).Elem() +// Set of conditions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleCondition struct { + // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. + IgnoreCase *bool `pulumi:"ignoreCase"` + // Setting this value as truth will force to check the negation of the condition given by the user. + Negate *bool `pulumi:"negate"` + // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. + Pattern *string `pulumi:"pattern"` + // The condition parameter of the RewriteRuleCondition. + Variable *string `pulumi:"variable"` } -func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput { - return i.ToApplicationGatewaySkuOutputWithContext(context.Background()) +// ApplicationGatewayRewriteRuleConditionInput is an input type that accepts ApplicationGatewayRewriteRuleConditionArgs and ApplicationGatewayRewriteRuleConditionOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleConditionInput` via: +// +// ApplicationGatewayRewriteRuleConditionArgs{...} +type ApplicationGatewayRewriteRuleConditionInput interface { + pulumi.Input + + ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput + ToApplicationGatewayRewriteRuleConditionOutputWithContext(context.Context) ApplicationGatewayRewriteRuleConditionOutput } -func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuOutputWithContext(ctx context.Context) ApplicationGatewaySkuOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuOutput) +// Set of conditions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleConditionArgs struct { + // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. + IgnoreCase pulumi.BoolPtrInput `pulumi:"ignoreCase"` + // Setting this value as truth will force to check the negation of the condition given by the user. + Negate pulumi.BoolPtrInput `pulumi:"negate"` + // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. + Pattern pulumi.StringPtrInput `pulumi:"pattern"` + // The condition parameter of the RewriteRuleCondition. + Variable pulumi.StringPtrInput `pulumi:"variable"` } -func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { - return i.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) +func (ApplicationGatewayRewriteRuleConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleCondition)(nil)).Elem() } -func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuOutput).ToApplicationGatewaySkuPtrOutputWithContext(ctx) +func (i ApplicationGatewayRewriteRuleConditionArgs) ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput { + return i.ToApplicationGatewayRewriteRuleConditionOutputWithContext(context.Background()) } -// ApplicationGatewaySkuPtrInput is an input type that accepts ApplicationGatewaySkuArgs, ApplicationGatewaySkuPtr and ApplicationGatewaySkuPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewaySkuPtrInput` via: -// -// ApplicationGatewaySkuArgs{...} -// -// or: +func (i ApplicationGatewayRewriteRuleConditionArgs) ToApplicationGatewayRewriteRuleConditionOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleConditionOutput) +} + +// ApplicationGatewayRewriteRuleConditionArrayInput is an input type that accepts ApplicationGatewayRewriteRuleConditionArray and ApplicationGatewayRewriteRuleConditionArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleConditionArrayInput` via: // -// nil -type ApplicationGatewaySkuPtrInput interface { +// ApplicationGatewayRewriteRuleConditionArray{ ApplicationGatewayRewriteRuleConditionArgs{...} } +type ApplicationGatewayRewriteRuleConditionArrayInput interface { pulumi.Input - ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput - ToApplicationGatewaySkuPtrOutputWithContext(context.Context) ApplicationGatewaySkuPtrOutput + ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput + ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput } -type applicationGatewaySkuPtrType ApplicationGatewaySkuArgs - -func ApplicationGatewaySkuPtr(v *ApplicationGatewaySkuArgs) ApplicationGatewaySkuPtrInput { - return (*applicationGatewaySkuPtrType)(v) -} +type ApplicationGatewayRewriteRuleConditionArray []ApplicationGatewayRewriteRuleConditionInput -func (*applicationGatewaySkuPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySku)(nil)).Elem() +func (ApplicationGatewayRewriteRuleConditionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleCondition)(nil)).Elem() } -func (i *applicationGatewaySkuPtrType) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { - return i.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) +func (i ApplicationGatewayRewriteRuleConditionArray) ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput { + return i.ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(context.Background()) } -func (i *applicationGatewaySkuPtrType) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuPtrOutput) +func (i ApplicationGatewayRewriteRuleConditionArray) ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleConditionArrayOutput) } -// SKU of an application gateway. -type ApplicationGatewaySkuOutput struct{ *pulumi.OutputState } +// Set of conditions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleConditionOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySkuOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySku)(nil)).Elem() +func (ApplicationGatewayRewriteRuleConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleCondition)(nil)).Elem() } -func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput { +func (o ApplicationGatewayRewriteRuleConditionOutput) ToApplicationGatewayRewriteRuleConditionOutput() ApplicationGatewayRewriteRuleConditionOutput { return o } -func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuOutputWithContext(ctx context.Context) ApplicationGatewaySkuOutput { +func (o ApplicationGatewayRewriteRuleConditionOutput) ToApplicationGatewayRewriteRuleConditionOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionOutput { return o } -func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { - return o.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) -} - -func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewaySku) *ApplicationGatewaySku { - return &v - }).(ApplicationGatewaySkuPtrOutput) +// Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. +func (o ApplicationGatewayRewriteRuleConditionOutput) IgnoreCase() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) } -// Capacity (instance count) of an application gateway. -func (o ApplicationGatewaySkuOutput) Capacity() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySku) *int { return v.Capacity }).(pulumi.IntPtrOutput) +// Setting this value as truth will force to check the negation of the condition given by the user. +func (o ApplicationGatewayRewriteRuleConditionOutput) Negate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *bool { return v.Negate }).(pulumi.BoolPtrOutput) } -// Name of an application gateway SKU. -func (o ApplicationGatewaySkuOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySku) *string { return v.Name }).(pulumi.StringPtrOutput) +// The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. +func (o ApplicationGatewayRewriteRuleConditionOutput) Pattern() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *string { return v.Pattern }).(pulumi.StringPtrOutput) } -// Tier of an application gateway. -func (o ApplicationGatewaySkuOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySku) *string { return v.Tier }).(pulumi.StringPtrOutput) +// The condition parameter of the RewriteRuleCondition. +func (o ApplicationGatewayRewriteRuleConditionOutput) Variable() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleCondition) *string { return v.Variable }).(pulumi.StringPtrOutput) } -type ApplicationGatewaySkuPtrOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleConditionArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySkuPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySku)(nil)).Elem() +func (ApplicationGatewayRewriteRuleConditionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleCondition)(nil)).Elem() } -func (o ApplicationGatewaySkuPtrOutput) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { +func (o ApplicationGatewayRewriteRuleConditionArrayOutput) ToApplicationGatewayRewriteRuleConditionArrayOutput() ApplicationGatewayRewriteRuleConditionArrayOutput { return o } -func (o ApplicationGatewaySkuPtrOutput) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { +func (o ApplicationGatewayRewriteRuleConditionArrayOutput) ToApplicationGatewayRewriteRuleConditionArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionArrayOutput { return o } -func (o ApplicationGatewaySkuPtrOutput) Elem() ApplicationGatewaySkuOutput { - return o.ApplyT(func(v *ApplicationGatewaySku) ApplicationGatewaySku { - if v != nil { - return *v - } - var ret ApplicationGatewaySku - return ret - }).(ApplicationGatewaySkuOutput) +func (o ApplicationGatewayRewriteRuleConditionArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleConditionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleCondition { + return vs[0].([]ApplicationGatewayRewriteRuleCondition)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleConditionOutput) } -// Capacity (instance count) of an application gateway. -func (o ApplicationGatewaySkuPtrOutput) Capacity() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySku) *int { - if v == nil { - return nil - } - return v.Capacity - }).(pulumi.IntPtrOutput) +// Set of conditions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleConditionResponse struct { + // Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. + IgnoreCase *bool `pulumi:"ignoreCase"` + // Setting this value as truth will force to check the negation of the condition given by the user. + Negate *bool `pulumi:"negate"` + // The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. + Pattern *string `pulumi:"pattern"` + // The condition parameter of the RewriteRuleCondition. + Variable *string `pulumi:"variable"` } -// Name of an application gateway SKU. -func (o ApplicationGatewaySkuPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySku) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +// Set of conditions in the Rewrite Rule in Application Gateway. +type ApplicationGatewayRewriteRuleConditionResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleConditionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleConditionResponse)(nil)).Elem() } -// Tier of an application gateway. -func (o ApplicationGatewaySkuPtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySku) *string { - if v == nil { - return nil - } - return v.Tier - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) ToApplicationGatewayRewriteRuleConditionResponseOutput() ApplicationGatewayRewriteRuleConditionResponseOutput { + return o } -// SKU of an application gateway. -type ApplicationGatewaySkuResponse struct { - // Capacity (instance count) of an application gateway. - Capacity *int `pulumi:"capacity"` - // Name of an application gateway SKU. - Name *string `pulumi:"name"` - // Tier of an application gateway. - Tier *string `pulumi:"tier"` +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) ToApplicationGatewayRewriteRuleConditionResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionResponseOutput { + return o } -// SKU of an application gateway. -type ApplicationGatewaySkuResponseOutput struct{ *pulumi.OutputState } +// Setting this parameter to truth value with force the pattern to do a case in-sensitive comparison. +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) IgnoreCase() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *bool { return v.IgnoreCase }).(pulumi.BoolPtrOutput) +} -func (ApplicationGatewaySkuResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySkuResponse)(nil)).Elem() +// Setting this value as truth will force to check the negation of the condition given by the user. +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Negate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *bool { return v.Negate }).(pulumi.BoolPtrOutput) } -func (o ApplicationGatewaySkuResponseOutput) ToApplicationGatewaySkuResponseOutput() ApplicationGatewaySkuResponseOutput { - return o +// The pattern, either fixed string or regular expression, that evaluates the truthfulness of the condition. +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Pattern() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *string { return v.Pattern }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewaySkuResponseOutput) ToApplicationGatewaySkuResponseOutputWithContext(ctx context.Context) ApplicationGatewaySkuResponseOutput { +// The condition parameter of the RewriteRuleCondition. +func (o ApplicationGatewayRewriteRuleConditionResponseOutput) Variable() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleConditionResponse) *string { return v.Variable }).(pulumi.StringPtrOutput) +} + +type ApplicationGatewayRewriteRuleConditionResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleConditionResponse)(nil)).Elem() +} + +func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ToApplicationGatewayRewriteRuleConditionResponseArrayOutput() ApplicationGatewayRewriteRuleConditionResponseArrayOutput { return o } -// Capacity (instance count) of an application gateway. -func (o ApplicationGatewaySkuResponseOutput) Capacity() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySkuResponse) *int { return v.Capacity }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) ToApplicationGatewayRewriteRuleConditionResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleConditionResponseArrayOutput { + return o } -// Name of an application gateway SKU. -func (o ApplicationGatewaySkuResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleConditionResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleConditionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleConditionResponse { + return vs[0].([]ApplicationGatewayRewriteRuleConditionResponse)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleConditionResponseOutput) } -// Tier of an application gateway. -func (o ApplicationGatewaySkuResponseOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) +// Rewrite rule of an application gateway. +type ApplicationGatewayRewriteRuleResponse struct { + // Set of actions to be done as part of the rewrite Rule. + ActionSet *ApplicationGatewayRewriteRuleActionSetResponse `pulumi:"actionSet"` + // Conditions based on which the action set execution will be evaluated. + Conditions []ApplicationGatewayRewriteRuleConditionResponse `pulumi:"conditions"` + // Name of the rewrite rule that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. + RuleSequence *int `pulumi:"ruleSequence"` } -type ApplicationGatewaySkuResponsePtrOutput struct{ *pulumi.OutputState } +// Rewrite rule of an application gateway. +type ApplicationGatewayRewriteRuleResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySkuResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySkuResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleResponse)(nil)).Elem() } -func (o ApplicationGatewaySkuResponsePtrOutput) ToApplicationGatewaySkuResponsePtrOutput() ApplicationGatewaySkuResponsePtrOutput { +func (o ApplicationGatewayRewriteRuleResponseOutput) ToApplicationGatewayRewriteRuleResponseOutput() ApplicationGatewayRewriteRuleResponseOutput { return o } -func (o ApplicationGatewaySkuResponsePtrOutput) ToApplicationGatewaySkuResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuResponsePtrOutput { +func (o ApplicationGatewayRewriteRuleResponseOutput) ToApplicationGatewayRewriteRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleResponseOutput { return o } -func (o ApplicationGatewaySkuResponsePtrOutput) Elem() ApplicationGatewaySkuResponseOutput { - return o.ApplyT(func(v *ApplicationGatewaySkuResponse) ApplicationGatewaySkuResponse { - if v != nil { - return *v - } - var ret ApplicationGatewaySkuResponse - return ret - }).(ApplicationGatewaySkuResponseOutput) +// Set of actions to be done as part of the rewrite Rule. +func (o ApplicationGatewayRewriteRuleResponseOutput) ActionSet() ApplicationGatewayRewriteRuleActionSetResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *ApplicationGatewayRewriteRuleActionSetResponse { + return v.ActionSet + }).(ApplicationGatewayRewriteRuleActionSetResponsePtrOutput) } -// Capacity (instance count) of an application gateway. -func (o ApplicationGatewaySkuResponsePtrOutput) Capacity() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *int { - if v == nil { - return nil - } - return v.Capacity - }).(pulumi.IntPtrOutput) +// Conditions based on which the action set execution will be evaluated. +func (o ApplicationGatewayRewriteRuleResponseOutput) Conditions() ApplicationGatewayRewriteRuleConditionResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) []ApplicationGatewayRewriteRuleConditionResponse { + return v.Conditions + }).(ApplicationGatewayRewriteRuleConditionResponseArrayOutput) } -// Name of an application gateway SKU. -func (o ApplicationGatewaySkuResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +// Name of the rewrite rule that is unique within an Application Gateway. +func (o ApplicationGatewayRewriteRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Tier of an application gateway. -func (o ApplicationGatewaySkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *string { - if v == nil { - return nil - } - return v.Tier - }).(pulumi.StringPtrOutput) +// Rule Sequence of the rewrite rule that determines the order of execution of a particular rule in a RewriteRuleSet. +func (o ApplicationGatewayRewriteRuleResponseOutput) RuleSequence() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleResponse) *int { return v.RuleSequence }).(pulumi.IntPtrOutput) } -// SSL certificates of an application gateway. -type ApplicationGatewaySslCertificate struct { - // Base-64 encoded pfx certificate. Only applicable in PUT Request. - Data *string `pulumi:"data"` +type ApplicationGatewayRewriteRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRewriteRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleResponse)(nil)).Elem() +} + +func (o ApplicationGatewayRewriteRuleResponseArrayOutput) ToApplicationGatewayRewriteRuleResponseArrayOutput() ApplicationGatewayRewriteRuleResponseArrayOutput { + return o +} + +func (o ApplicationGatewayRewriteRuleResponseArrayOutput) ToApplicationGatewayRewriteRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleResponseArrayOutput { + return o +} + +func (o ApplicationGatewayRewriteRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleResponse { + return vs[0].([]ApplicationGatewayRewriteRuleResponse)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleResponseOutput) +} + +// Rewrite rule set of an application gateway. +type ApplicationGatewayRewriteRuleSet struct { // Resource ID. Id *string `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` - // Name of the SSL certificate that is unique within an Application Gateway. + // Name of the rewrite rule set that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Password for the pfx file specified in data. Only applicable in PUT request. - Password *string `pulumi:"password"` + // Rewrite rules in the rewrite rule set. + RewriteRules []ApplicationGatewayRewriteRule `pulumi:"rewriteRules"` } -// ApplicationGatewaySslCertificateInput is an input type that accepts ApplicationGatewaySslCertificateArgs and ApplicationGatewaySslCertificateOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslCertificateInput` via: +// ApplicationGatewayRewriteRuleSetInput is an input type that accepts ApplicationGatewayRewriteRuleSetArgs and ApplicationGatewayRewriteRuleSetOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleSetInput` via: // -// ApplicationGatewaySslCertificateArgs{...} -type ApplicationGatewaySslCertificateInput interface { +// ApplicationGatewayRewriteRuleSetArgs{...} +type ApplicationGatewayRewriteRuleSetInput interface { pulumi.Input - ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput - ToApplicationGatewaySslCertificateOutputWithContext(context.Context) ApplicationGatewaySslCertificateOutput + ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput + ToApplicationGatewayRewriteRuleSetOutputWithContext(context.Context) ApplicationGatewayRewriteRuleSetOutput } -// SSL certificates of an application gateway. -type ApplicationGatewaySslCertificateArgs struct { - // Base-64 encoded pfx certificate. Only applicable in PUT Request. - Data pulumi.StringPtrInput `pulumi:"data"` +// Rewrite rule set of an application gateway. +type ApplicationGatewayRewriteRuleSetArgs struct { // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` - // Name of the SSL certificate that is unique within an Application Gateway. + // Name of the rewrite rule set that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Password for the pfx file specified in data. Only applicable in PUT request. - Password pulumi.StringPtrInput `pulumi:"password"` + // Rewrite rules in the rewrite rule set. + RewriteRules ApplicationGatewayRewriteRuleArrayInput `pulumi:"rewriteRules"` } -func (ApplicationGatewaySslCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslCertificate)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleSet)(nil)).Elem() } -func (i ApplicationGatewaySslCertificateArgs) ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput { - return i.ToApplicationGatewaySslCertificateOutputWithContext(context.Background()) +func (i ApplicationGatewayRewriteRuleSetArgs) ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput { + return i.ToApplicationGatewayRewriteRuleSetOutputWithContext(context.Background()) } -func (i ApplicationGatewaySslCertificateArgs) ToApplicationGatewaySslCertificateOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslCertificateOutput) +func (i ApplicationGatewayRewriteRuleSetArgs) ToApplicationGatewayRewriteRuleSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleSetOutput) } -// ApplicationGatewaySslCertificateArrayInput is an input type that accepts ApplicationGatewaySslCertificateArray and ApplicationGatewaySslCertificateArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslCertificateArrayInput` via: +// ApplicationGatewayRewriteRuleSetArrayInput is an input type that accepts ApplicationGatewayRewriteRuleSetArray and ApplicationGatewayRewriteRuleSetArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRewriteRuleSetArrayInput` via: // -// ApplicationGatewaySslCertificateArray{ ApplicationGatewaySslCertificateArgs{...} } -type ApplicationGatewaySslCertificateArrayInput interface { +// ApplicationGatewayRewriteRuleSetArray{ ApplicationGatewayRewriteRuleSetArgs{...} } +type ApplicationGatewayRewriteRuleSetArrayInput interface { pulumi.Input - ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput - ToApplicationGatewaySslCertificateArrayOutputWithContext(context.Context) ApplicationGatewaySslCertificateArrayOutput + ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput + ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(context.Context) ApplicationGatewayRewriteRuleSetArrayOutput } -type ApplicationGatewaySslCertificateArray []ApplicationGatewaySslCertificateInput +type ApplicationGatewayRewriteRuleSetArray []ApplicationGatewayRewriteRuleSetInput -func (ApplicationGatewaySslCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslCertificate)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSet)(nil)).Elem() } -func (i ApplicationGatewaySslCertificateArray) ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput { - return i.ToApplicationGatewaySslCertificateArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayRewriteRuleSetArray) ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput { + return i.ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewaySslCertificateArray) ToApplicationGatewaySslCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslCertificateArrayOutput) +func (i ApplicationGatewayRewriteRuleSetArray) ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRewriteRuleSetArrayOutput) } -// SSL certificates of an application gateway. -type ApplicationGatewaySslCertificateOutput struct{ *pulumi.OutputState } +// Rewrite rule set of an application gateway. +type ApplicationGatewayRewriteRuleSetOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslCertificate)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleSet)(nil)).Elem() } -func (o ApplicationGatewaySslCertificateOutput) ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput { +func (o ApplicationGatewayRewriteRuleSetOutput) ToApplicationGatewayRewriteRuleSetOutput() ApplicationGatewayRewriteRuleSetOutput { return o } -func (o ApplicationGatewaySslCertificateOutput) ToApplicationGatewaySslCertificateOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateOutput { +func (o ApplicationGatewayRewriteRuleSetOutput) ToApplicationGatewayRewriteRuleSetOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetOutput { return o } -// Base-64 encoded pfx certificate. Only applicable in PUT Request. -func (o ApplicationGatewaySslCertificateOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) -} - // Resource ID. -func (o ApplicationGatewaySslCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. -func (o ApplicationGatewaySslCertificateOutput) KeyVaultSecretId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleSetOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the SSL certificate that is unique within an Application Gateway. -func (o ApplicationGatewaySslCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of the rewrite rule set that is unique within an Application Gateway. +func (o ApplicationGatewayRewriteRuleSetOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Password for the pfx file specified in data. Only applicable in PUT request. -func (o ApplicationGatewaySslCertificateOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Password }).(pulumi.StringPtrOutput) +// Rewrite rules in the rewrite rule set. +func (o ApplicationGatewayRewriteRuleSetOutput) RewriteRules() ApplicationGatewayRewriteRuleArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSet) []ApplicationGatewayRewriteRule { return v.RewriteRules }).(ApplicationGatewayRewriteRuleArrayOutput) } -type ApplicationGatewaySslCertificateArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleSetArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslCertificate)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSet)(nil)).Elem() } -func (o ApplicationGatewaySslCertificateArrayOutput) ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput { +func (o ApplicationGatewayRewriteRuleSetArrayOutput) ToApplicationGatewayRewriteRuleSetArrayOutput() ApplicationGatewayRewriteRuleSetArrayOutput { return o } -func (o ApplicationGatewaySslCertificateArrayOutput) ToApplicationGatewaySslCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateArrayOutput { +func (o ApplicationGatewayRewriteRuleSetArrayOutput) ToApplicationGatewayRewriteRuleSetArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetArrayOutput { return o } -func (o ApplicationGatewaySslCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslCertificate { - return vs[0].([]ApplicationGatewaySslCertificate)[vs[1].(int)] - }).(ApplicationGatewaySslCertificateOutput) +func (o ApplicationGatewayRewriteRuleSetArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleSet { + return vs[0].([]ApplicationGatewayRewriteRuleSet)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleSetOutput) } -// SSL certificates of an application gateway. -type ApplicationGatewaySslCertificateResponse struct { - // Base-64 encoded pfx certificate. Only applicable in PUT Request. - Data *string `pulumi:"data"` +// Rewrite rule set of an application gateway. +type ApplicationGatewayRewriteRuleSetResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` - // Name of the SSL certificate that is unique within an Application Gateway. + // Name of the rewrite rule set that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Password for the pfx file specified in data. Only applicable in PUT request. - Password *string `pulumi:"password"` - // The provisioning state of the SSL certificate resource. + // The provisioning state of the rewrite rule set resource. ProvisioningState string `pulumi:"provisioningState"` - // Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. - PublicCertData string `pulumi:"publicCertData"` - // Type of the resource. - Type string `pulumi:"type"` + // Rewrite rules in the rewrite rule set. + RewriteRules []ApplicationGatewayRewriteRuleResponse `pulumi:"rewriteRules"` } -// SSL certificates of an application gateway. -type ApplicationGatewaySslCertificateResponseOutput struct{ *pulumi.OutputState } +// Rewrite rule set of an application gateway. +type ApplicationGatewayRewriteRuleSetResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslCertificateResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRewriteRuleSetResponse)(nil)).Elem() } -func (o ApplicationGatewaySslCertificateResponseOutput) ToApplicationGatewaySslCertificateResponseOutput() ApplicationGatewaySslCertificateResponseOutput { +func (o ApplicationGatewayRewriteRuleSetResponseOutput) ToApplicationGatewayRewriteRuleSetResponseOutput() ApplicationGatewayRewriteRuleSetResponseOutput { return o } -func (o ApplicationGatewaySslCertificateResponseOutput) ToApplicationGatewaySslCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateResponseOutput { +func (o ApplicationGatewayRewriteRuleSetResponseOutput) ToApplicationGatewayRewriteRuleSetResponseOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetResponseOutput { return o } -// Base-64 encoded pfx certificate. Only applicable in PUT Request. -func (o ApplicationGatewaySslCertificateResponseOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewaySslCertificateResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayRewriteRuleSetResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o ApplicationGatewaySslCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. -func (o ApplicationGatewaySslCertificateResponseOutput) KeyVaultSecretId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) -} - -// Name of the SSL certificate that is unique within an Application Gateway. -func (o ApplicationGatewaySslCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// Password for the pfx file specified in data. Only applicable in PUT request. -func (o ApplicationGatewaySslCertificateResponseOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Password }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRewriteRuleSetResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The provisioning state of the SSL certificate resource. -func (o ApplicationGatewaySslCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Name of the rewrite rule set that is unique within an Application Gateway. +func (o ApplicationGatewayRewriteRuleSetResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. -func (o ApplicationGatewaySslCertificateResponseOutput) PublicCertData() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) +// The provisioning state of the rewrite rule set resource. +func (o ApplicationGatewayRewriteRuleSetResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Type of the resource. -func (o ApplicationGatewaySslCertificateResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.Type }).(pulumi.StringOutput) +// Rewrite rules in the rewrite rule set. +func (o ApplicationGatewayRewriteRuleSetResponseOutput) RewriteRules() ApplicationGatewayRewriteRuleResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayRewriteRuleSetResponse) []ApplicationGatewayRewriteRuleResponse { + return v.RewriteRules + }).(ApplicationGatewayRewriteRuleResponseArrayOutput) } -type ApplicationGatewaySslCertificateResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRewriteRuleSetResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslCertificateResponse)(nil)).Elem() +func (ApplicationGatewayRewriteRuleSetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRewriteRuleSetResponse)(nil)).Elem() } -func (o ApplicationGatewaySslCertificateResponseArrayOutput) ToApplicationGatewaySslCertificateResponseArrayOutput() ApplicationGatewaySslCertificateResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) ToApplicationGatewayRewriteRuleSetResponseArrayOutput() ApplicationGatewayRewriteRuleSetResponseArrayOutput { return o } -func (o ApplicationGatewaySslCertificateResponseArrayOutput) ToApplicationGatewaySslCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateResponseArrayOutput { +func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) ToApplicationGatewayRewriteRuleSetResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRewriteRuleSetResponseArrayOutput { return o } -func (o ApplicationGatewaySslCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslCertificateResponse { - return vs[0].([]ApplicationGatewaySslCertificateResponse)[vs[1].(int)] - }).(ApplicationGatewaySslCertificateResponseOutput) +func (o ApplicationGatewayRewriteRuleSetResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRewriteRuleSetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRewriteRuleSetResponse { + return vs[0].([]ApplicationGatewayRewriteRuleSetResponse)[vs[1].(int)] + }).(ApplicationGatewayRewriteRuleSetResponseOutput) } -// Application Gateway Ssl policy. -type ApplicationGatewaySslPolicy struct { - // Ssl cipher suites to be enabled in the specified order to application gateway. - CipherSuites []string `pulumi:"cipherSuites"` - // Ssl protocols to be disabled on application gateway. - DisabledSslProtocols []string `pulumi:"disabledSslProtocols"` - // Minimum version of Ssl protocol to be supported on application gateway. - MinProtocolVersion *string `pulumi:"minProtocolVersion"` - // Name of Ssl predefined policy. - PolicyName *string `pulumi:"policyName"` - // Type of Ssl Policy. - PolicyType *string `pulumi:"policyType"` +// Routing rule of an application gateway. +type ApplicationGatewayRoutingRule struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` + // Backend settings resource of the application gateway. + BackendSettings *SubResource `pulumi:"backendSettings"` + // Resource ID. + Id *string `pulumi:"id"` + // Listener resource of the application gateway. + Listener *SubResource `pulumi:"listener"` + // Name of the routing rule that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Priority of the routing rule. + Priority int `pulumi:"priority"` + // Rule type. + RuleType *string `pulumi:"ruleType"` } -// ApplicationGatewaySslPolicyInput is an input type that accepts ApplicationGatewaySslPolicyArgs and ApplicationGatewaySslPolicyOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslPolicyInput` via: +// ApplicationGatewayRoutingRuleInput is an input type that accepts ApplicationGatewayRoutingRuleArgs and ApplicationGatewayRoutingRuleOutput values. +// You can construct a concrete instance of `ApplicationGatewayRoutingRuleInput` via: // -// ApplicationGatewaySslPolicyArgs{...} -type ApplicationGatewaySslPolicyInput interface { +// ApplicationGatewayRoutingRuleArgs{...} +type ApplicationGatewayRoutingRuleInput interface { pulumi.Input - ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput - ToApplicationGatewaySslPolicyOutputWithContext(context.Context) ApplicationGatewaySslPolicyOutput -} - -// Application Gateway Ssl policy. -type ApplicationGatewaySslPolicyArgs struct { - // Ssl cipher suites to be enabled in the specified order to application gateway. - CipherSuites pulumi.StringArrayInput `pulumi:"cipherSuites"` - // Ssl protocols to be disabled on application gateway. - DisabledSslProtocols pulumi.StringArrayInput `pulumi:"disabledSslProtocols"` - // Minimum version of Ssl protocol to be supported on application gateway. - MinProtocolVersion pulumi.StringPtrInput `pulumi:"minProtocolVersion"` - // Name of Ssl predefined policy. - PolicyName pulumi.StringPtrInput `pulumi:"policyName"` - // Type of Ssl Policy. - PolicyType pulumi.StringPtrInput `pulumi:"policyType"` -} - -func (ApplicationGatewaySslPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslPolicy)(nil)).Elem() + ToApplicationGatewayRoutingRuleOutput() ApplicationGatewayRoutingRuleOutput + ToApplicationGatewayRoutingRuleOutputWithContext(context.Context) ApplicationGatewayRoutingRuleOutput } -func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput { - return i.ToApplicationGatewaySslPolicyOutputWithContext(context.Background()) +// Routing rule of an application gateway. +type ApplicationGatewayRoutingRuleArgs struct { + // Backend address pool resource of the application gateway. + BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` + // Backend settings resource of the application gateway. + BackendSettings SubResourcePtrInput `pulumi:"backendSettings"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Listener resource of the application gateway. + Listener SubResourcePtrInput `pulumi:"listener"` + // Name of the routing rule that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // Priority of the routing rule. + Priority pulumi.IntInput `pulumi:"priority"` + // Rule type. + RuleType pulumi.StringPtrInput `pulumi:"ruleType"` } -func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyOutput) +func (ApplicationGatewayRoutingRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRoutingRule)(nil)).Elem() } -func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { - return i.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) +func (i ApplicationGatewayRoutingRuleArgs) ToApplicationGatewayRoutingRuleOutput() ApplicationGatewayRoutingRuleOutput { + return i.ToApplicationGatewayRoutingRuleOutputWithContext(context.Background()) } -func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyOutput).ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx) +func (i ApplicationGatewayRoutingRuleArgs) ToApplicationGatewayRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRoutingRuleOutput) } -// ApplicationGatewaySslPolicyPtrInput is an input type that accepts ApplicationGatewaySslPolicyArgs, ApplicationGatewaySslPolicyPtr and ApplicationGatewaySslPolicyPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslPolicyPtrInput` via: -// -// ApplicationGatewaySslPolicyArgs{...} +// ApplicationGatewayRoutingRuleArrayInput is an input type that accepts ApplicationGatewayRoutingRuleArray and ApplicationGatewayRoutingRuleArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayRoutingRuleArrayInput` via: // -// or: -// -// nil -type ApplicationGatewaySslPolicyPtrInput interface { +// ApplicationGatewayRoutingRuleArray{ ApplicationGatewayRoutingRuleArgs{...} } +type ApplicationGatewayRoutingRuleArrayInput interface { pulumi.Input - ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput - ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Context) ApplicationGatewaySslPolicyPtrOutput + ToApplicationGatewayRoutingRuleArrayOutput() ApplicationGatewayRoutingRuleArrayOutput + ToApplicationGatewayRoutingRuleArrayOutputWithContext(context.Context) ApplicationGatewayRoutingRuleArrayOutput } -type applicationGatewaySslPolicyPtrType ApplicationGatewaySslPolicyArgs - -func ApplicationGatewaySslPolicyPtr(v *ApplicationGatewaySslPolicyArgs) ApplicationGatewaySslPolicyPtrInput { - return (*applicationGatewaySslPolicyPtrType)(v) -} +type ApplicationGatewayRoutingRuleArray []ApplicationGatewayRoutingRuleInput -func (*applicationGatewaySslPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySslPolicy)(nil)).Elem() +func (ApplicationGatewayRoutingRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRoutingRule)(nil)).Elem() } -func (i *applicationGatewaySslPolicyPtrType) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { - return i.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) +func (i ApplicationGatewayRoutingRuleArray) ToApplicationGatewayRoutingRuleArrayOutput() ApplicationGatewayRoutingRuleArrayOutput { + return i.ToApplicationGatewayRoutingRuleArrayOutputWithContext(context.Background()) } -func (i *applicationGatewaySslPolicyPtrType) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyPtrOutput) +func (i ApplicationGatewayRoutingRuleArray) ToApplicationGatewayRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayRoutingRuleArrayOutput) } -// Application Gateway Ssl policy. -type ApplicationGatewaySslPolicyOutput struct{ *pulumi.OutputState } +// Routing rule of an application gateway. +type ApplicationGatewayRoutingRuleOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslPolicy)(nil)).Elem() +func (ApplicationGatewayRoutingRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRoutingRule)(nil)).Elem() } -func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput { +func (o ApplicationGatewayRoutingRuleOutput) ToApplicationGatewayRoutingRuleOutput() ApplicationGatewayRoutingRuleOutput { return o } -func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyOutput { +func (o ApplicationGatewayRoutingRuleOutput) ToApplicationGatewayRoutingRuleOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleOutput { return o } -func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { - return o.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayRoutingRuleOutput) BackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) } -func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewaySslPolicy) *ApplicationGatewaySslPolicy { - return &v - }).(ApplicationGatewaySslPolicyPtrOutput) +// Backend settings resource of the application gateway. +func (o ApplicationGatewayRoutingRuleOutput) BackendSettings() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *SubResource { return v.BackendSettings }).(SubResourcePtrOutput) } -// Ssl cipher suites to be enabled in the specified order to application gateway. -func (o ApplicationGatewaySslPolicyOutput) CipherSuites() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicy) []string { return v.CipherSuites }).(pulumi.StringArrayOutput) +// Resource ID. +func (o ApplicationGatewayRoutingRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Ssl protocols to be disabled on application gateway. -func (o ApplicationGatewaySslPolicyOutput) DisabledSslProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicy) []string { return v.DisabledSslProtocols }).(pulumi.StringArrayOutput) +// Listener resource of the application gateway. +func (o ApplicationGatewayRoutingRuleOutput) Listener() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *SubResource { return v.Listener }).(SubResourcePtrOutput) } -// Minimum version of Ssl protocol to be supported on application gateway. -func (o ApplicationGatewaySslPolicyOutput) MinProtocolVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.MinProtocolVersion }).(pulumi.StringPtrOutput) +// Name of the routing rule that is unique within an Application Gateway. +func (o ApplicationGatewayRoutingRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Name of Ssl predefined policy. -func (o ApplicationGatewaySslPolicyOutput) PolicyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.PolicyName }).(pulumi.StringPtrOutput) +// Priority of the routing rule. +func (o ApplicationGatewayRoutingRuleOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) int { return v.Priority }).(pulumi.IntOutput) } -// Type of Ssl Policy. -func (o ApplicationGatewaySslPolicyOutput) PolicyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.PolicyType }).(pulumi.StringPtrOutput) +// Rule type. +func (o ApplicationGatewayRoutingRuleOutput) RuleType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRule) *string { return v.RuleType }).(pulumi.StringPtrOutput) } -type ApplicationGatewaySslPolicyPtrOutput struct{ *pulumi.OutputState } +type ApplicationGatewayRoutingRuleArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySslPolicy)(nil)).Elem() +func (ApplicationGatewayRoutingRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRoutingRule)(nil)).Elem() } -func (o ApplicationGatewaySslPolicyPtrOutput) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { +func (o ApplicationGatewayRoutingRuleArrayOutput) ToApplicationGatewayRoutingRuleArrayOutput() ApplicationGatewayRoutingRuleArrayOutput { return o } -func (o ApplicationGatewaySslPolicyPtrOutput) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { +func (o ApplicationGatewayRoutingRuleArrayOutput) ToApplicationGatewayRoutingRuleArrayOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleArrayOutput { return o } -func (o ApplicationGatewaySslPolicyPtrOutput) Elem() ApplicationGatewaySslPolicyOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) ApplicationGatewaySslPolicy { - if v != nil { - return *v - } - var ret ApplicationGatewaySslPolicy - return ret - }).(ApplicationGatewaySslPolicyOutput) -} - -// Ssl cipher suites to be enabled in the specified order to application gateway. -func (o ApplicationGatewaySslPolicyPtrOutput) CipherSuites() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) []string { - if v == nil { - return nil - } - return v.CipherSuites - }).(pulumi.StringArrayOutput) -} - -// Ssl protocols to be disabled on application gateway. -func (o ApplicationGatewaySslPolicyPtrOutput) DisabledSslProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) []string { - if v == nil { - return nil - } - return v.DisabledSslProtocols - }).(pulumi.StringArrayOutput) -} - -// Minimum version of Ssl protocol to be supported on application gateway. -func (o ApplicationGatewaySslPolicyPtrOutput) MinProtocolVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { - if v == nil { - return nil - } - return v.MinProtocolVersion - }).(pulumi.StringPtrOutput) -} - -// Name of Ssl predefined policy. -func (o ApplicationGatewaySslPolicyPtrOutput) PolicyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { - if v == nil { - return nil - } - return v.PolicyName - }).(pulumi.StringPtrOutput) -} - -// Type of Ssl Policy. -func (o ApplicationGatewaySslPolicyPtrOutput) PolicyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { - if v == nil { - return nil - } - return v.PolicyType - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRoutingRuleArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRoutingRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRoutingRule { + return vs[0].([]ApplicationGatewayRoutingRule)[vs[1].(int)] + }).(ApplicationGatewayRoutingRuleOutput) } -// Application Gateway Ssl policy. -type ApplicationGatewaySslPolicyResponse struct { - // Ssl cipher suites to be enabled in the specified order to application gateway. - CipherSuites []string `pulumi:"cipherSuites"` - // Ssl protocols to be disabled on application gateway. - DisabledSslProtocols []string `pulumi:"disabledSslProtocols"` - // Minimum version of Ssl protocol to be supported on application gateway. - MinProtocolVersion *string `pulumi:"minProtocolVersion"` - // Name of Ssl predefined policy. - PolicyName *string `pulumi:"policyName"` - // Type of Ssl Policy. - PolicyType *string `pulumi:"policyType"` +// Routing rule of an application gateway. +type ApplicationGatewayRoutingRuleResponse struct { + // Backend address pool resource of the application gateway. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` + // Backend settings resource of the application gateway. + BackendSettings *SubResourceResponse `pulumi:"backendSettings"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Listener resource of the application gateway. + Listener *SubResourceResponse `pulumi:"listener"` + // Name of the routing rule that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Priority of the routing rule. + Priority int `pulumi:"priority"` + // The provisioning state of the request routing rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // Rule type. + RuleType *string `pulumi:"ruleType"` + // Type of the resource. + Type string `pulumi:"type"` } -// Application Gateway Ssl policy. -type ApplicationGatewaySslPolicyResponseOutput struct{ *pulumi.OutputState } +// Routing rule of an application gateway. +type ApplicationGatewayRoutingRuleResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslPolicyResponse)(nil)).Elem() +func (ApplicationGatewayRoutingRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayRoutingRuleResponse)(nil)).Elem() } -func (o ApplicationGatewaySslPolicyResponseOutput) ToApplicationGatewaySslPolicyResponseOutput() ApplicationGatewaySslPolicyResponseOutput { +func (o ApplicationGatewayRoutingRuleResponseOutput) ToApplicationGatewayRoutingRuleResponseOutput() ApplicationGatewayRoutingRuleResponseOutput { return o } -func (o ApplicationGatewaySslPolicyResponseOutput) ToApplicationGatewaySslPolicyResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyResponseOutput { +func (o ApplicationGatewayRoutingRuleResponseOutput) ToApplicationGatewayRoutingRuleResponseOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleResponseOutput { return o } -// Ssl cipher suites to be enabled in the specified order to application gateway. -func (o ApplicationGatewaySslPolicyResponseOutput) CipherSuites() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) []string { return v.CipherSuites }).(pulumi.StringArrayOutput) +// Backend address pool resource of the application gateway. +func (o ApplicationGatewayRoutingRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) } -// Ssl protocols to be disabled on application gateway. -func (o ApplicationGatewaySslPolicyResponseOutput) DisabledSslProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) []string { return v.DisabledSslProtocols }).(pulumi.StringArrayOutput) +// Backend settings resource of the application gateway. +func (o ApplicationGatewayRoutingRuleResponseOutput) BackendSettings() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *SubResourceResponse { return v.BackendSettings }).(SubResourceResponsePtrOutput) } -// Minimum version of Ssl protocol to be supported on application gateway. -func (o ApplicationGatewaySslPolicyResponseOutput) MinProtocolVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.MinProtocolVersion }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayRoutingRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Name of Ssl predefined policy. -func (o ApplicationGatewaySslPolicyResponseOutput) PolicyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.PolicyName }).(pulumi.StringPtrOutput) +// Resource ID. +func (o ApplicationGatewayRoutingRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Type of Ssl Policy. -func (o ApplicationGatewaySslPolicyResponseOutput) PolicyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.PolicyType }).(pulumi.StringPtrOutput) +// Listener resource of the application gateway. +func (o ApplicationGatewayRoutingRuleResponseOutput) Listener() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *SubResourceResponse { return v.Listener }).(SubResourceResponsePtrOutput) } -type ApplicationGatewaySslPolicyResponsePtrOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewaySslPolicyResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewaySslPolicyResponse)(nil)).Elem() +// Name of the routing rule that is unique within an Application Gateway. +func (o ApplicationGatewayRoutingRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewaySslPolicyResponsePtrOutput) ToApplicationGatewaySslPolicyResponsePtrOutput() ApplicationGatewaySslPolicyResponsePtrOutput { - return o +// Priority of the routing rule. +func (o ApplicationGatewayRoutingRuleResponseOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) int { return v.Priority }).(pulumi.IntOutput) } -func (o ApplicationGatewaySslPolicyResponsePtrOutput) ToApplicationGatewaySslPolicyResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyResponsePtrOutput { - return o +// The provisioning state of the request routing rule resource. +func (o ApplicationGatewayRoutingRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (o ApplicationGatewaySslPolicyResponsePtrOutput) Elem() ApplicationGatewaySslPolicyResponseOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) ApplicationGatewaySslPolicyResponse { - if v != nil { - return *v - } - var ret ApplicationGatewaySslPolicyResponse - return ret - }).(ApplicationGatewaySslPolicyResponseOutput) +// Rule type. +func (o ApplicationGatewayRoutingRuleResponseOutput) RuleType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) *string { return v.RuleType }).(pulumi.StringPtrOutput) } -// Ssl cipher suites to be enabled in the specified order to application gateway. -func (o ApplicationGatewaySslPolicyResponsePtrOutput) CipherSuites() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) []string { - if v == nil { - return nil - } - return v.CipherSuites - }).(pulumi.StringArrayOutput) +// Type of the resource. +func (o ApplicationGatewayRoutingRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayRoutingRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -// Ssl protocols to be disabled on application gateway. -func (o ApplicationGatewaySslPolicyResponsePtrOutput) DisabledSslProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) []string { - if v == nil { - return nil - } - return v.DisabledSslProtocols - }).(pulumi.StringArrayOutput) +type ApplicationGatewayRoutingRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayRoutingRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayRoutingRuleResponse)(nil)).Elem() } -// Minimum version of Ssl protocol to be supported on application gateway. -func (o ApplicationGatewaySslPolicyResponsePtrOutput) MinProtocolVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { - if v == nil { - return nil - } - return v.MinProtocolVersion - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRoutingRuleResponseArrayOutput) ToApplicationGatewayRoutingRuleResponseArrayOutput() ApplicationGatewayRoutingRuleResponseArrayOutput { + return o } -// Name of Ssl predefined policy. -func (o ApplicationGatewaySslPolicyResponsePtrOutput) PolicyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { - if v == nil { - return nil - } - return v.PolicyName - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRoutingRuleResponseArrayOutput) ToApplicationGatewayRoutingRuleResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayRoutingRuleResponseArrayOutput { + return o } -// Type of Ssl Policy. -func (o ApplicationGatewaySslPolicyResponsePtrOutput) PolicyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { - if v == nil { - return nil - } - return v.PolicyType - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayRoutingRuleResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayRoutingRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayRoutingRuleResponse { + return vs[0].([]ApplicationGatewayRoutingRuleResponse)[vs[1].(int)] + }).(ApplicationGatewayRoutingRuleResponseOutput) } -// SSL profile of an application gateway. -type ApplicationGatewaySslProfile struct { - // Client authentication configuration of the application gateway resource. - ClientAuthConfiguration *ApplicationGatewayClientAuthConfiguration `pulumi:"clientAuthConfiguration"` - // Resource ID. - Id *string `pulumi:"id"` - // Name of the SSL profile that is unique within an Application Gateway. +// SKU of an application gateway. +type ApplicationGatewaySku struct { + // Capacity (instance count) of an application gateway. + Capacity *int `pulumi:"capacity"` + // Name of an application gateway SKU. Name *string `pulumi:"name"` - // SSL policy of the application gateway resource. - SslPolicy *ApplicationGatewaySslPolicy `pulumi:"sslPolicy"` - // Array of references to application gateway trusted client certificates. - TrustedClientCertificates []SubResource `pulumi:"trustedClientCertificates"` + // Tier of an application gateway. + Tier *string `pulumi:"tier"` } -// ApplicationGatewaySslProfileInput is an input type that accepts ApplicationGatewaySslProfileArgs and ApplicationGatewaySslProfileOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslProfileInput` via: +// ApplicationGatewaySkuInput is an input type that accepts ApplicationGatewaySkuArgs and ApplicationGatewaySkuOutput values. +// You can construct a concrete instance of `ApplicationGatewaySkuInput` via: // -// ApplicationGatewaySslProfileArgs{...} -type ApplicationGatewaySslProfileInput interface { +// ApplicationGatewaySkuArgs{...} +type ApplicationGatewaySkuInput interface { pulumi.Input - ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput - ToApplicationGatewaySslProfileOutputWithContext(context.Context) ApplicationGatewaySslProfileOutput + ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput + ToApplicationGatewaySkuOutputWithContext(context.Context) ApplicationGatewaySkuOutput } -// SSL profile of an application gateway. -type ApplicationGatewaySslProfileArgs struct { - // Client authentication configuration of the application gateway resource. - ClientAuthConfiguration ApplicationGatewayClientAuthConfigurationPtrInput `pulumi:"clientAuthConfiguration"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the SSL profile that is unique within an Application Gateway. +// SKU of an application gateway. +type ApplicationGatewaySkuArgs struct { + // Capacity (instance count) of an application gateway. + Capacity pulumi.IntPtrInput `pulumi:"capacity"` + // Name of an application gateway SKU. Name pulumi.StringPtrInput `pulumi:"name"` - // SSL policy of the application gateway resource. - SslPolicy ApplicationGatewaySslPolicyPtrInput `pulumi:"sslPolicy"` - // Array of references to application gateway trusted client certificates. - TrustedClientCertificates SubResourceArrayInput `pulumi:"trustedClientCertificates"` + // Tier of an application gateway. + Tier pulumi.StringPtrInput `pulumi:"tier"` } -func (ApplicationGatewaySslProfileArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslProfile)(nil)).Elem() +func (ApplicationGatewaySkuArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySku)(nil)).Elem() } -func (i ApplicationGatewaySslProfileArgs) ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput { - return i.ToApplicationGatewaySslProfileOutputWithContext(context.Background()) +func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput { + return i.ToApplicationGatewaySkuOutputWithContext(context.Background()) } -func (i ApplicationGatewaySslProfileArgs) ToApplicationGatewaySslProfileOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslProfileOutput) +func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuOutputWithContext(ctx context.Context) ApplicationGatewaySkuOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuOutput) } -// ApplicationGatewaySslProfileArrayInput is an input type that accepts ApplicationGatewaySslProfileArray and ApplicationGatewaySslProfileArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewaySslProfileArrayInput` via: +func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { + return i.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) +} + +func (i ApplicationGatewaySkuArgs) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuOutput).ToApplicationGatewaySkuPtrOutputWithContext(ctx) +} + +// ApplicationGatewaySkuPtrInput is an input type that accepts ApplicationGatewaySkuArgs, ApplicationGatewaySkuPtr and ApplicationGatewaySkuPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewaySkuPtrInput` via: // -// ApplicationGatewaySslProfileArray{ ApplicationGatewaySslProfileArgs{...} } -type ApplicationGatewaySslProfileArrayInput interface { +// ApplicationGatewaySkuArgs{...} +// +// or: +// +// nil +type ApplicationGatewaySkuPtrInput interface { pulumi.Input - ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput - ToApplicationGatewaySslProfileArrayOutputWithContext(context.Context) ApplicationGatewaySslProfileArrayOutput + ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput + ToApplicationGatewaySkuPtrOutputWithContext(context.Context) ApplicationGatewaySkuPtrOutput } -type ApplicationGatewaySslProfileArray []ApplicationGatewaySslProfileInput +type applicationGatewaySkuPtrType ApplicationGatewaySkuArgs -func (ApplicationGatewaySslProfileArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslProfile)(nil)).Elem() +func ApplicationGatewaySkuPtr(v *ApplicationGatewaySkuArgs) ApplicationGatewaySkuPtrInput { + return (*applicationGatewaySkuPtrType)(v) } -func (i ApplicationGatewaySslProfileArray) ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput { - return i.ToApplicationGatewaySslProfileArrayOutputWithContext(context.Background()) +func (*applicationGatewaySkuPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySku)(nil)).Elem() } -func (i ApplicationGatewaySslProfileArray) ToApplicationGatewaySslProfileArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslProfileArrayOutput) +func (i *applicationGatewaySkuPtrType) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { + return i.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) } -// SSL profile of an application gateway. -type ApplicationGatewaySslProfileOutput struct{ *pulumi.OutputState } +func (i *applicationGatewaySkuPtrType) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySkuPtrOutput) +} -func (ApplicationGatewaySslProfileOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslProfile)(nil)).Elem() +// SKU of an application gateway. +type ApplicationGatewaySkuOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySkuOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySku)(nil)).Elem() } -func (o ApplicationGatewaySslProfileOutput) ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput { +func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuOutput() ApplicationGatewaySkuOutput { return o } -func (o ApplicationGatewaySslProfileOutput) ToApplicationGatewaySslProfileOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileOutput { +func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuOutputWithContext(ctx context.Context) ApplicationGatewaySkuOutput { return o } -// Client authentication configuration of the application gateway resource. -func (o ApplicationGatewaySslProfileOutput) ClientAuthConfiguration() ApplicationGatewayClientAuthConfigurationPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfile) *ApplicationGatewayClientAuthConfiguration { - return v.ClientAuthConfiguration - }).(ApplicationGatewayClientAuthConfigurationPtrOutput) +func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { + return o.ToApplicationGatewaySkuPtrOutputWithContext(context.Background()) } -// Resource ID. -func (o ApplicationGatewaySslProfileOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfile) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySkuOutput) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewaySku) *ApplicationGatewaySku { + return &v + }).(ApplicationGatewaySkuPtrOutput) } -// Name of the SSL profile that is unique within an Application Gateway. -func (o ApplicationGatewaySslProfileOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfile) *string { return v.Name }).(pulumi.StringPtrOutput) +// Capacity (instance count) of an application gateway. +func (o ApplicationGatewaySkuOutput) Capacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySku) *int { return v.Capacity }).(pulumi.IntPtrOutput) } -// SSL policy of the application gateway resource. -func (o ApplicationGatewaySslProfileOutput) SslPolicy() ApplicationGatewaySslPolicyPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfile) *ApplicationGatewaySslPolicy { return v.SslPolicy }).(ApplicationGatewaySslPolicyPtrOutput) -} +// Name of an application gateway SKU. +func (o ApplicationGatewaySkuOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySku) *string { return v.Name }).(pulumi.StringPtrOutput) +} -// Array of references to application gateway trusted client certificates. -func (o ApplicationGatewaySslProfileOutput) TrustedClientCertificates() SubResourceArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfile) []SubResource { return v.TrustedClientCertificates }).(SubResourceArrayOutput) +// Tier of an application gateway. +func (o ApplicationGatewaySkuOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySku) *string { return v.Tier }).(pulumi.StringPtrOutput) } -type ApplicationGatewaySslProfileArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewaySkuPtrOutput struct{ *pulumi.OutputState } -func (ApplicationGatewaySslProfileArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslProfile)(nil)).Elem() +func (ApplicationGatewaySkuPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySku)(nil)).Elem() } -func (o ApplicationGatewaySslProfileArrayOutput) ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput { +func (o ApplicationGatewaySkuPtrOutput) ToApplicationGatewaySkuPtrOutput() ApplicationGatewaySkuPtrOutput { return o } -func (o ApplicationGatewaySslProfileArrayOutput) ToApplicationGatewaySslProfileArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileArrayOutput { +func (o ApplicationGatewaySkuPtrOutput) ToApplicationGatewaySkuPtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuPtrOutput { return o } -func (o ApplicationGatewaySslProfileArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslProfileOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslProfile { - return vs[0].([]ApplicationGatewaySslProfile)[vs[1].(int)] - }).(ApplicationGatewaySslProfileOutput) +func (o ApplicationGatewaySkuPtrOutput) Elem() ApplicationGatewaySkuOutput { + return o.ApplyT(func(v *ApplicationGatewaySku) ApplicationGatewaySku { + if v != nil { + return *v + } + var ret ApplicationGatewaySku + return ret + }).(ApplicationGatewaySkuOutput) } -// SSL profile of an application gateway. -type ApplicationGatewaySslProfileResponse struct { - // Client authentication configuration of the application gateway resource. - ClientAuthConfiguration *ApplicationGatewayClientAuthConfigurationResponse `pulumi:"clientAuthConfiguration"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Name of the SSL profile that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // The provisioning state of the HTTP listener resource. - ProvisioningState string `pulumi:"provisioningState"` - // SSL policy of the application gateway resource. - SslPolicy *ApplicationGatewaySslPolicyResponse `pulumi:"sslPolicy"` - // Array of references to application gateway trusted client certificates. - TrustedClientCertificates []SubResourceResponse `pulumi:"trustedClientCertificates"` - // Type of the resource. - Type string `pulumi:"type"` +// Capacity (instance count) of an application gateway. +func (o ApplicationGatewaySkuPtrOutput) Capacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySku) *int { + if v == nil { + return nil + } + return v.Capacity + }).(pulumi.IntPtrOutput) } -// SSL profile of an application gateway. -type ApplicationGatewaySslProfileResponseOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewaySslProfileResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewaySslProfileResponse)(nil)).Elem() +// Name of an application gateway SKU. +func (o ApplicationGatewaySkuPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySku) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewaySslProfileResponseOutput) ToApplicationGatewaySslProfileResponseOutput() ApplicationGatewaySslProfileResponseOutput { - return o +// Tier of an application gateway. +func (o ApplicationGatewaySkuPtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySku) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewaySslProfileResponseOutput) ToApplicationGatewaySslProfileResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileResponseOutput { - return o +// SKU of an application gateway. +type ApplicationGatewaySkuResponse struct { + // Capacity (instance count) of an application gateway. + Capacity *int `pulumi:"capacity"` + // Name of an application gateway SKU. + Name *string `pulumi:"name"` + // Tier of an application gateway. + Tier *string `pulumi:"tier"` } -// Client authentication configuration of the application gateway resource. -func (o ApplicationGatewaySslProfileResponseOutput) ClientAuthConfiguration() ApplicationGatewayClientAuthConfigurationResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *ApplicationGatewayClientAuthConfigurationResponse { - return v.ClientAuthConfiguration - }).(ApplicationGatewayClientAuthConfigurationResponsePtrOutput) +// SKU of an application gateway. +type ApplicationGatewaySkuResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySkuResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySkuResponse)(nil)).Elem() } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewaySslProfileResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewaySkuResponseOutput) ToApplicationGatewaySkuResponseOutput() ApplicationGatewaySkuResponseOutput { + return o } -// Resource ID. -func (o ApplicationGatewaySslProfileResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySkuResponseOutput) ToApplicationGatewaySkuResponseOutputWithContext(ctx context.Context) ApplicationGatewaySkuResponseOutput { + return o } -// Name of the SSL profile that is unique within an Application Gateway. -func (o ApplicationGatewaySslProfileResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Capacity (instance count) of an application gateway. +func (o ApplicationGatewaySkuResponseOutput) Capacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySkuResponse) *int { return v.Capacity }).(pulumi.IntPtrOutput) } -// The provisioning state of the HTTP listener resource. -func (o ApplicationGatewaySslProfileResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Name of an application gateway SKU. +func (o ApplicationGatewaySkuResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// SSL policy of the application gateway resource. -func (o ApplicationGatewaySslProfileResponseOutput) SslPolicy() ApplicationGatewaySslPolicyResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *ApplicationGatewaySslPolicyResponse { return v.SslPolicy }).(ApplicationGatewaySslPolicyResponsePtrOutput) +// Tier of an application gateway. +func (o ApplicationGatewaySkuResponseOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) } -// Array of references to application gateway trusted client certificates. -func (o ApplicationGatewaySslProfileResponseOutput) TrustedClientCertificates() SubResourceResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) []SubResourceResponse { return v.TrustedClientCertificates }).(SubResourceResponseArrayOutput) +type ApplicationGatewaySkuResponsePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySkuResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySkuResponse)(nil)).Elem() } -// Type of the resource. -func (o ApplicationGatewaySslProfileResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ApplicationGatewaySkuResponsePtrOutput) ToApplicationGatewaySkuResponsePtrOutput() ApplicationGatewaySkuResponsePtrOutput { + return o } -type ApplicationGatewaySslProfileResponseArrayOutput struct{ *pulumi.OutputState } +func (o ApplicationGatewaySkuResponsePtrOutput) ToApplicationGatewaySkuResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewaySkuResponsePtrOutput { + return o +} -func (ApplicationGatewaySslProfileResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewaySslProfileResponse)(nil)).Elem() +func (o ApplicationGatewaySkuResponsePtrOutput) Elem() ApplicationGatewaySkuResponseOutput { + return o.ApplyT(func(v *ApplicationGatewaySkuResponse) ApplicationGatewaySkuResponse { + if v != nil { + return *v + } + var ret ApplicationGatewaySkuResponse + return ret + }).(ApplicationGatewaySkuResponseOutput) } -func (o ApplicationGatewaySslProfileResponseArrayOutput) ToApplicationGatewaySslProfileResponseArrayOutput() ApplicationGatewaySslProfileResponseArrayOutput { - return o +// Capacity (instance count) of an application gateway. +func (o ApplicationGatewaySkuResponsePtrOutput) Capacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *int { + if v == nil { + return nil + } + return v.Capacity + }).(pulumi.IntPtrOutput) } -func (o ApplicationGatewaySslProfileResponseArrayOutput) ToApplicationGatewaySslProfileResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileResponseArrayOutput { - return o +// Name of an application gateway SKU. +func (o ApplicationGatewaySkuResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewaySslProfileResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslProfileResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslProfileResponse { - return vs[0].([]ApplicationGatewaySslProfileResponse)[vs[1].(int)] - }).(ApplicationGatewaySslProfileResponseOutput) +// Tier of an application gateway. +func (o ApplicationGatewaySkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySkuResponse) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) } -// Trusted client certificates of an application gateway. -type ApplicationGatewayTrustedClientCertificate struct { - // Certificate public data. +// SSL certificates of an application gateway. +type ApplicationGatewaySslCertificate struct { + // Base-64 encoded pfx certificate. Only applicable in PUT Request. Data *string `pulumi:"data"` // Resource ID. Id *string `pulumi:"id"` - // Name of the trusted client certificate that is unique within an Application Gateway. + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` + // Name of the SSL certificate that is unique within an Application Gateway. Name *string `pulumi:"name"` + // Password for the pfx file specified in data. Only applicable in PUT request. + Password *string `pulumi:"password"` } -// ApplicationGatewayTrustedClientCertificateInput is an input type that accepts ApplicationGatewayTrustedClientCertificateArgs and ApplicationGatewayTrustedClientCertificateOutput values. -// You can construct a concrete instance of `ApplicationGatewayTrustedClientCertificateInput` via: +// ApplicationGatewaySslCertificateInput is an input type that accepts ApplicationGatewaySslCertificateArgs and ApplicationGatewaySslCertificateOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslCertificateInput` via: // -// ApplicationGatewayTrustedClientCertificateArgs{...} -type ApplicationGatewayTrustedClientCertificateInput interface { +// ApplicationGatewaySslCertificateArgs{...} +type ApplicationGatewaySslCertificateInput interface { pulumi.Input - ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput - ToApplicationGatewayTrustedClientCertificateOutputWithContext(context.Context) ApplicationGatewayTrustedClientCertificateOutput + ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput + ToApplicationGatewaySslCertificateOutputWithContext(context.Context) ApplicationGatewaySslCertificateOutput } -// Trusted client certificates of an application gateway. -type ApplicationGatewayTrustedClientCertificateArgs struct { - // Certificate public data. +// SSL certificates of an application gateway. +type ApplicationGatewaySslCertificateArgs struct { + // Base-64 encoded pfx certificate. Only applicable in PUT Request. Data pulumi.StringPtrInput `pulumi:"data"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the trusted client certificate that is unique within an Application Gateway. + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` + // Name of the SSL certificate that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` + // Password for the pfx file specified in data. Only applicable in PUT request. + Password pulumi.StringPtrInput `pulumi:"password"` } -func (ApplicationGatewayTrustedClientCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificate)(nil)).Elem() +func (ApplicationGatewaySslCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslCertificate)(nil)).Elem() } -func (i ApplicationGatewayTrustedClientCertificateArgs) ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput { - return i.ToApplicationGatewayTrustedClientCertificateOutputWithContext(context.Background()) +func (i ApplicationGatewaySslCertificateArgs) ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput { + return i.ToApplicationGatewaySslCertificateOutputWithContext(context.Background()) } -func (i ApplicationGatewayTrustedClientCertificateArgs) ToApplicationGatewayTrustedClientCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedClientCertificateOutput) +func (i ApplicationGatewaySslCertificateArgs) ToApplicationGatewaySslCertificateOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslCertificateOutput) } -// ApplicationGatewayTrustedClientCertificateArrayInput is an input type that accepts ApplicationGatewayTrustedClientCertificateArray and ApplicationGatewayTrustedClientCertificateArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayTrustedClientCertificateArrayInput` via: +// ApplicationGatewaySslCertificateArrayInput is an input type that accepts ApplicationGatewaySslCertificateArray and ApplicationGatewaySslCertificateArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslCertificateArrayInput` via: // -// ApplicationGatewayTrustedClientCertificateArray{ ApplicationGatewayTrustedClientCertificateArgs{...} } -type ApplicationGatewayTrustedClientCertificateArrayInput interface { +// ApplicationGatewaySslCertificateArray{ ApplicationGatewaySslCertificateArgs{...} } +type ApplicationGatewaySslCertificateArrayInput interface { pulumi.Input - ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput - ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput + ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput + ToApplicationGatewaySslCertificateArrayOutputWithContext(context.Context) ApplicationGatewaySslCertificateArrayOutput } -type ApplicationGatewayTrustedClientCertificateArray []ApplicationGatewayTrustedClientCertificateInput +type ApplicationGatewaySslCertificateArray []ApplicationGatewaySslCertificateInput -func (ApplicationGatewayTrustedClientCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificate)(nil)).Elem() +func (ApplicationGatewaySslCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslCertificate)(nil)).Elem() } -func (i ApplicationGatewayTrustedClientCertificateArray) ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput { - return i.ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(context.Background()) +func (i ApplicationGatewaySslCertificateArray) ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput { + return i.ToApplicationGatewaySslCertificateArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayTrustedClientCertificateArray) ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedClientCertificateArrayOutput) +func (i ApplicationGatewaySslCertificateArray) ToApplicationGatewaySslCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslCertificateArrayOutput) } -// Trusted client certificates of an application gateway. -type ApplicationGatewayTrustedClientCertificateOutput struct{ *pulumi.OutputState } +// SSL certificates of an application gateway. +type ApplicationGatewaySslCertificateOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayTrustedClientCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificate)(nil)).Elem() +func (ApplicationGatewaySslCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslCertificate)(nil)).Elem() } -func (o ApplicationGatewayTrustedClientCertificateOutput) ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput { +func (o ApplicationGatewaySslCertificateOutput) ToApplicationGatewaySslCertificateOutput() ApplicationGatewaySslCertificateOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateOutput) ToApplicationGatewayTrustedClientCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateOutput { +func (o ApplicationGatewaySslCertificateOutput) ToApplicationGatewaySslCertificateOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateOutput { return o } -// Certificate public data. -func (o ApplicationGatewayTrustedClientCertificateOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) +// Base-64 encoded pfx certificate. Only applicable in PUT Request. +func (o ApplicationGatewaySslCertificateOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) } // Resource ID. -func (o ApplicationGatewayTrustedClientCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the trusted client certificate that is unique within an Application Gateway. -func (o ApplicationGatewayTrustedClientCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) +// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. +func (o ApplicationGatewaySslCertificateOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) } -type ApplicationGatewayTrustedClientCertificateArrayOutput struct{ *pulumi.OutputState } +// Name of the SSL certificate that is unique within an Application Gateway. +func (o ApplicationGatewaySslCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func (ApplicationGatewayTrustedClientCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificate)(nil)).Elem() +// Password for the pfx file specified in data. Only applicable in PUT request. +func (o ApplicationGatewaySslCertificateOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificate) *string { return v.Password }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayTrustedClientCertificateArrayOutput) ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput { +type ApplicationGatewaySslCertificateArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySslCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslCertificate)(nil)).Elem() +} + +func (o ApplicationGatewaySslCertificateArrayOutput) ToApplicationGatewaySslCertificateArrayOutput() ApplicationGatewaySslCertificateArrayOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateArrayOutput) ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput { +func (o ApplicationGatewaySslCertificateArrayOutput) ToApplicationGatewaySslCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateArrayOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedClientCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedClientCertificate { - return vs[0].([]ApplicationGatewayTrustedClientCertificate)[vs[1].(int)] - }).(ApplicationGatewayTrustedClientCertificateOutput) +func (o ApplicationGatewaySslCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslCertificate { + return vs[0].([]ApplicationGatewaySslCertificate)[vs[1].(int)] + }).(ApplicationGatewaySslCertificateOutput) } -// Trusted client certificates of an application gateway. -type ApplicationGatewayTrustedClientCertificateResponse struct { - // Certificate public data. +// SSL certificates of an application gateway. +type ApplicationGatewaySslCertificateResponse struct { + // Base-64 encoded pfx certificate. Only applicable in PUT Request. Data *string `pulumi:"data"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // Name of the trusted client certificate that is unique within an Application Gateway. + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` + // Name of the SSL certificate that is unique within an Application Gateway. Name *string `pulumi:"name"` - // The provisioning state of the trusted client certificate resource. + // Password for the pfx file specified in data. Only applicable in PUT request. + Password *string `pulumi:"password"` + // The provisioning state of the SSL certificate resource. ProvisioningState string `pulumi:"provisioningState"` + // Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. + PublicCertData string `pulumi:"publicCertData"` // Type of the resource. Type string `pulumi:"type"` } -// Trusted client certificates of an application gateway. -type ApplicationGatewayTrustedClientCertificateResponseOutput struct{ *pulumi.OutputState } +// SSL certificates of an application gateway. +type ApplicationGatewaySslCertificateResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayTrustedClientCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificateResponse)(nil)).Elem() +func (ApplicationGatewaySslCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslCertificateResponse)(nil)).Elem() } -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ToApplicationGatewayTrustedClientCertificateResponseOutput() ApplicationGatewayTrustedClientCertificateResponseOutput { +func (o ApplicationGatewaySslCertificateResponseOutput) ToApplicationGatewaySslCertificateResponseOutput() ApplicationGatewaySslCertificateResponseOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ToApplicationGatewayTrustedClientCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateResponseOutput { +func (o ApplicationGatewaySslCertificateResponseOutput) ToApplicationGatewaySslCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateResponseOutput { return o } -// Certificate public data. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) +// Base-64 encoded pfx certificate. Only applicable in PUT Request. +func (o ApplicationGatewaySslCertificateResponseOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) } // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewaySslCertificateResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the trusted client certificate that is unique within an Application Gateway. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. +func (o ApplicationGatewaySslCertificateResponseOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) } -// The provisioning state of the trusted client certificate resource. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Name of the SSL certificate that is unique within an Application Gateway. +func (o ApplicationGatewaySslCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Password for the pfx file specified in data. Only applicable in PUT request. +func (o ApplicationGatewaySslCertificateResponseOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the SSL certificate resource. +func (o ApplicationGatewaySslCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request. +func (o ApplicationGatewaySslCertificateResponseOutput) PublicCertData() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) } // Type of the resource. -func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ApplicationGatewaySslCertificateResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslCertificateResponse) string { return v.Type }).(pulumi.StringOutput) } -type ApplicationGatewayTrustedClientCertificateResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewaySslCertificateResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificateResponse)(nil)).Elem() +func (ApplicationGatewaySslCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslCertificateResponse)(nil)).Elem() } -func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ToApplicationGatewayTrustedClientCertificateResponseArrayOutput() ApplicationGatewayTrustedClientCertificateResponseArrayOutput { +func (o ApplicationGatewaySslCertificateResponseArrayOutput) ToApplicationGatewaySslCertificateResponseArrayOutput() ApplicationGatewaySslCertificateResponseArrayOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ToApplicationGatewayTrustedClientCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateResponseArrayOutput { +func (o ApplicationGatewaySslCertificateResponseArrayOutput) ToApplicationGatewaySslCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslCertificateResponseArrayOutput { return o } -func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedClientCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedClientCertificateResponse { - return vs[0].([]ApplicationGatewayTrustedClientCertificateResponse)[vs[1].(int)] - }).(ApplicationGatewayTrustedClientCertificateResponseOutput) +func (o ApplicationGatewaySslCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslCertificateResponse { + return vs[0].([]ApplicationGatewaySslCertificateResponse)[vs[1].(int)] + }).(ApplicationGatewaySslCertificateResponseOutput) } -// Trusted Root certificates of an application gateway. -type ApplicationGatewayTrustedRootCertificate struct { - // Certificate public data. - Data *string `pulumi:"data"` - // Resource ID. - Id *string `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` - // Name of the trusted root certificate that is unique within an Application Gateway. - Name *string `pulumi:"name"` +// Application Gateway Ssl policy. +type ApplicationGatewaySslPolicy struct { + // Ssl cipher suites to be enabled in the specified order to application gateway. + CipherSuites []string `pulumi:"cipherSuites"` + // Ssl protocols to be disabled on application gateway. + DisabledSslProtocols []string `pulumi:"disabledSslProtocols"` + // Minimum version of Ssl protocol to be supported on application gateway. + MinProtocolVersion *string `pulumi:"minProtocolVersion"` + // Name of Ssl predefined policy. + PolicyName *string `pulumi:"policyName"` + // Type of Ssl Policy. + PolicyType *string `pulumi:"policyType"` } -// ApplicationGatewayTrustedRootCertificateInput is an input type that accepts ApplicationGatewayTrustedRootCertificateArgs and ApplicationGatewayTrustedRootCertificateOutput values. -// You can construct a concrete instance of `ApplicationGatewayTrustedRootCertificateInput` via: +// ApplicationGatewaySslPolicyInput is an input type that accepts ApplicationGatewaySslPolicyArgs and ApplicationGatewaySslPolicyOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslPolicyInput` via: // -// ApplicationGatewayTrustedRootCertificateArgs{...} -type ApplicationGatewayTrustedRootCertificateInput interface { +// ApplicationGatewaySslPolicyArgs{...} +type ApplicationGatewaySslPolicyInput interface { pulumi.Input - ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput - ToApplicationGatewayTrustedRootCertificateOutputWithContext(context.Context) ApplicationGatewayTrustedRootCertificateOutput + ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput + ToApplicationGatewaySslPolicyOutputWithContext(context.Context) ApplicationGatewaySslPolicyOutput } -// Trusted Root certificates of an application gateway. -type ApplicationGatewayTrustedRootCertificateArgs struct { - // Certificate public data. - Data pulumi.StringPtrInput `pulumi:"data"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` - // Name of the trusted root certificate that is unique within an Application Gateway. - Name pulumi.StringPtrInput `pulumi:"name"` +// Application Gateway Ssl policy. +type ApplicationGatewaySslPolicyArgs struct { + // Ssl cipher suites to be enabled in the specified order to application gateway. + CipherSuites pulumi.StringArrayInput `pulumi:"cipherSuites"` + // Ssl protocols to be disabled on application gateway. + DisabledSslProtocols pulumi.StringArrayInput `pulumi:"disabledSslProtocols"` + // Minimum version of Ssl protocol to be supported on application gateway. + MinProtocolVersion pulumi.StringPtrInput `pulumi:"minProtocolVersion"` + // Name of Ssl predefined policy. + PolicyName pulumi.StringPtrInput `pulumi:"policyName"` + // Type of Ssl Policy. + PolicyType pulumi.StringPtrInput `pulumi:"policyType"` } -func (ApplicationGatewayTrustedRootCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificate)(nil)).Elem() +func (ApplicationGatewaySslPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslPolicy)(nil)).Elem() } -func (i ApplicationGatewayTrustedRootCertificateArgs) ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput { - return i.ToApplicationGatewayTrustedRootCertificateOutputWithContext(context.Background()) +func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput { + return i.ToApplicationGatewaySslPolicyOutputWithContext(context.Background()) } -func (i ApplicationGatewayTrustedRootCertificateArgs) ToApplicationGatewayTrustedRootCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedRootCertificateOutput) +func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyOutput) } -// ApplicationGatewayTrustedRootCertificateArrayInput is an input type that accepts ApplicationGatewayTrustedRootCertificateArray and ApplicationGatewayTrustedRootCertificateArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayTrustedRootCertificateArrayInput` via: +func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { + return i.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) +} + +func (i ApplicationGatewaySslPolicyArgs) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyOutput).ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx) +} + +// ApplicationGatewaySslPolicyPtrInput is an input type that accepts ApplicationGatewaySslPolicyArgs, ApplicationGatewaySslPolicyPtr and ApplicationGatewaySslPolicyPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslPolicyPtrInput` via: // -// ApplicationGatewayTrustedRootCertificateArray{ ApplicationGatewayTrustedRootCertificateArgs{...} } -type ApplicationGatewayTrustedRootCertificateArrayInput interface { +// ApplicationGatewaySslPolicyArgs{...} +// +// or: +// +// nil +type ApplicationGatewaySslPolicyPtrInput interface { pulumi.Input - ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput - ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput + ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput + ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Context) ApplicationGatewaySslPolicyPtrOutput } -type ApplicationGatewayTrustedRootCertificateArray []ApplicationGatewayTrustedRootCertificateInput +type applicationGatewaySslPolicyPtrType ApplicationGatewaySslPolicyArgs -func (ApplicationGatewayTrustedRootCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificate)(nil)).Elem() +func ApplicationGatewaySslPolicyPtr(v *ApplicationGatewaySslPolicyArgs) ApplicationGatewaySslPolicyPtrInput { + return (*applicationGatewaySslPolicyPtrType)(v) } -func (i ApplicationGatewayTrustedRootCertificateArray) ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput { - return i.ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(context.Background()) +func (*applicationGatewaySslPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySslPolicy)(nil)).Elem() } -func (i ApplicationGatewayTrustedRootCertificateArray) ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedRootCertificateArrayOutput) +func (i *applicationGatewaySslPolicyPtrType) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { + return i.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) } -// Trusted Root certificates of an application gateway. -type ApplicationGatewayTrustedRootCertificateOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayTrustedRootCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificate)(nil)).Elem() +func (i *applicationGatewaySslPolicyPtrType) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslPolicyPtrOutput) } -func (o ApplicationGatewayTrustedRootCertificateOutput) ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput { - return o -} +// Application Gateway Ssl policy. +type ApplicationGatewaySslPolicyOutput struct{ *pulumi.OutputState } -func (o ApplicationGatewayTrustedRootCertificateOutput) ToApplicationGatewayTrustedRootCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateOutput { - return o +func (ApplicationGatewaySslPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslPolicy)(nil)).Elem() } -// Certificate public data. -func (o ApplicationGatewayTrustedRootCertificateOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyOutput() ApplicationGatewaySslPolicyOutput { + return o } -// Resource ID. -func (o ApplicationGatewayTrustedRootCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyOutput { + return o } -// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. -func (o ApplicationGatewayTrustedRootCertificateOutput) KeyVaultSecretId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { + return o.ToApplicationGatewaySslPolicyPtrOutputWithContext(context.Background()) } -// Name of the trusted root certificate that is unique within an Application Gateway. -func (o ApplicationGatewayTrustedRootCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslPolicyOutput) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewaySslPolicy) *ApplicationGatewaySslPolicy { + return &v + }).(ApplicationGatewaySslPolicyPtrOutput) } -type ApplicationGatewayTrustedRootCertificateArrayOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayTrustedRootCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificate)(nil)).Elem() +// Ssl cipher suites to be enabled in the specified order to application gateway. +func (o ApplicationGatewaySslPolicyOutput) CipherSuites() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicy) []string { return v.CipherSuites }).(pulumi.StringArrayOutput) } -func (o ApplicationGatewayTrustedRootCertificateArrayOutput) ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput { - return o +// Ssl protocols to be disabled on application gateway. +func (o ApplicationGatewaySslPolicyOutput) DisabledSslProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicy) []string { return v.DisabledSslProtocols }).(pulumi.StringArrayOutput) } -func (o ApplicationGatewayTrustedRootCertificateArrayOutput) ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput { - return o +// Minimum version of Ssl protocol to be supported on application gateway. +func (o ApplicationGatewaySslPolicyOutput) MinProtocolVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.MinProtocolVersion }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayTrustedRootCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedRootCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedRootCertificate { - return vs[0].([]ApplicationGatewayTrustedRootCertificate)[vs[1].(int)] - }).(ApplicationGatewayTrustedRootCertificateOutput) +// Name of Ssl predefined policy. +func (o ApplicationGatewaySslPolicyOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.PolicyName }).(pulumi.StringPtrOutput) } -// Trusted Root certificates of an application gateway. -type ApplicationGatewayTrustedRootCertificateResponse struct { - // Certificate public data. - Data *string `pulumi:"data"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. - KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` - // Name of the trusted root certificate that is unique within an Application Gateway. - Name *string `pulumi:"name"` - // The provisioning state of the trusted root certificate resource. - ProvisioningState string `pulumi:"provisioningState"` - // Type of the resource. - Type string `pulumi:"type"` +// Type of Ssl Policy. +func (o ApplicationGatewaySslPolicyOutput) PolicyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicy) *string { return v.PolicyType }).(pulumi.StringPtrOutput) } -// Trusted Root certificates of an application gateway. -type ApplicationGatewayTrustedRootCertificateResponseOutput struct{ *pulumi.OutputState } +type ApplicationGatewaySslPolicyPtrOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayTrustedRootCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificateResponse)(nil)).Elem() +func (ApplicationGatewaySslPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySslPolicy)(nil)).Elem() } -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ToApplicationGatewayTrustedRootCertificateResponseOutput() ApplicationGatewayTrustedRootCertificateResponseOutput { +func (o ApplicationGatewaySslPolicyPtrOutput) ToApplicationGatewaySslPolicyPtrOutput() ApplicationGatewaySslPolicyPtrOutput { return o } -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ToApplicationGatewayTrustedRootCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateResponseOutput { +func (o ApplicationGatewaySslPolicyPtrOutput) ToApplicationGatewaySslPolicyPtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyPtrOutput { return o } -// Certificate public data. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Data() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) +func (o ApplicationGatewaySslPolicyPtrOutput) Elem() ApplicationGatewaySslPolicyOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) ApplicationGatewaySslPolicy { + if v != nil { + return *v + } + var ret ApplicationGatewaySslPolicy + return ret + }).(ApplicationGatewaySslPolicyOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) +// Ssl cipher suites to be enabled in the specified order to application gateway. +func (o ApplicationGatewaySslPolicyPtrOutput) CipherSuites() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) []string { + if v == nil { + return nil + } + return v.CipherSuites + }).(pulumi.StringArrayOutput) } -// Resource ID. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Ssl protocols to be disabled on application gateway. +func (o ApplicationGatewaySslPolicyPtrOutput) DisabledSslProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) []string { + if v == nil { + return nil + } + return v.DisabledSslProtocols + }).(pulumi.StringArrayOutput) } -// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) KeyVaultSecretId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) +// Minimum version of Ssl protocol to be supported on application gateway. +func (o ApplicationGatewaySslPolicyPtrOutput) MinProtocolVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { + if v == nil { + return nil + } + return v.MinProtocolVersion + }).(pulumi.StringPtrOutput) } -// Name of the trusted root certificate that is unique within an Application Gateway. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of Ssl predefined policy. +func (o ApplicationGatewaySslPolicyPtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) } -// The provisioning state of the trusted root certificate resource. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Type of Ssl Policy. +func (o ApplicationGatewaySslPolicyPtrOutput) PolicyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicy) *string { + if v == nil { + return nil + } + return v.PolicyType + }).(pulumi.StringPtrOutput) } -// Type of the resource. -func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.Type }).(pulumi.StringOutput) +// Application Gateway Ssl policy. +type ApplicationGatewaySslPolicyResponse struct { + // Ssl cipher suites to be enabled in the specified order to application gateway. + CipherSuites []string `pulumi:"cipherSuites"` + // Ssl protocols to be disabled on application gateway. + DisabledSslProtocols []string `pulumi:"disabledSslProtocols"` + // Minimum version of Ssl protocol to be supported on application gateway. + MinProtocolVersion *string `pulumi:"minProtocolVersion"` + // Name of Ssl predefined policy. + PolicyName *string `pulumi:"policyName"` + // Type of Ssl Policy. + PolicyType *string `pulumi:"policyType"` } -type ApplicationGatewayTrustedRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } +// Application Gateway Ssl policy. +type ApplicationGatewaySslPolicyResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificateResponse)(nil)).Elem() +func (ApplicationGatewaySslPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslPolicyResponse)(nil)).Elem() } -func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ToApplicationGatewayTrustedRootCertificateResponseArrayOutput() ApplicationGatewayTrustedRootCertificateResponseArrayOutput { +func (o ApplicationGatewaySslPolicyResponseOutput) ToApplicationGatewaySslPolicyResponseOutput() ApplicationGatewaySslPolicyResponseOutput { return o } -func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ToApplicationGatewayTrustedRootCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateResponseArrayOutput { +func (o ApplicationGatewaySslPolicyResponseOutput) ToApplicationGatewaySslPolicyResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyResponseOutput { return o } -func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedRootCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedRootCertificateResponse { - return vs[0].([]ApplicationGatewayTrustedRootCertificateResponse)[vs[1].(int)] - }).(ApplicationGatewayTrustedRootCertificateResponseOutput) +// Ssl cipher suites to be enabled in the specified order to application gateway. +func (o ApplicationGatewaySslPolicyResponseOutput) CipherSuites() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) []string { return v.CipherSuites }).(pulumi.StringArrayOutput) } -// Url configuration of the Actions set in Application Gateway. -type ApplicationGatewayUrlConfiguration struct { - // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. - ModifiedPath *string `pulumi:"modifiedPath"` - // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. - ModifiedQueryString *string `pulumi:"modifiedQueryString"` - // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. - Reroute *bool `pulumi:"reroute"` +// Ssl protocols to be disabled on application gateway. +func (o ApplicationGatewaySslPolicyResponseOutput) DisabledSslProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) []string { return v.DisabledSslProtocols }).(pulumi.StringArrayOutput) } -// ApplicationGatewayUrlConfigurationInput is an input type that accepts ApplicationGatewayUrlConfigurationArgs and ApplicationGatewayUrlConfigurationOutput values. -// You can construct a concrete instance of `ApplicationGatewayUrlConfigurationInput` via: -// -// ApplicationGatewayUrlConfigurationArgs{...} -type ApplicationGatewayUrlConfigurationInput interface { - pulumi.Input - - ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput - ToApplicationGatewayUrlConfigurationOutputWithContext(context.Context) ApplicationGatewayUrlConfigurationOutput +// Minimum version of Ssl protocol to be supported on application gateway. +func (o ApplicationGatewaySslPolicyResponseOutput) MinProtocolVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.MinProtocolVersion }).(pulumi.StringPtrOutput) } -// Url configuration of the Actions set in Application Gateway. -type ApplicationGatewayUrlConfigurationArgs struct { - // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. - ModifiedPath pulumi.StringPtrInput `pulumi:"modifiedPath"` - // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. - ModifiedQueryString pulumi.StringPtrInput `pulumi:"modifiedQueryString"` - // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. - Reroute pulumi.BoolPtrInput `pulumi:"reroute"` +// Name of Ssl predefined policy. +func (o ApplicationGatewaySslPolicyResponseOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.PolicyName }).(pulumi.StringPtrOutput) } -func (ApplicationGatewayUrlConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlConfiguration)(nil)).Elem() +// Type of Ssl Policy. +func (o ApplicationGatewaySslPolicyResponseOutput) PolicyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslPolicyResponse) *string { return v.PolicyType }).(pulumi.StringPtrOutput) } -func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput { - return i.ToApplicationGatewayUrlConfigurationOutputWithContext(context.Background()) -} +type ApplicationGatewaySslPolicyResponsePtrOutput struct{ *pulumi.OutputState } -func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationOutput) +func (ApplicationGatewaySslPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewaySslPolicyResponse)(nil)).Elem() } -func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { - return i.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) +func (o ApplicationGatewaySslPolicyResponsePtrOutput) ToApplicationGatewaySslPolicyResponsePtrOutput() ApplicationGatewaySslPolicyResponsePtrOutput { + return o } -func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationOutput).ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx) +func (o ApplicationGatewaySslPolicyResponsePtrOutput) ToApplicationGatewaySslPolicyResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewaySslPolicyResponsePtrOutput { + return o } -// ApplicationGatewayUrlConfigurationPtrInput is an input type that accepts ApplicationGatewayUrlConfigurationArgs, ApplicationGatewayUrlConfigurationPtr and ApplicationGatewayUrlConfigurationPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewayUrlConfigurationPtrInput` via: -// -// ApplicationGatewayUrlConfigurationArgs{...} -// -// or: -// -// nil -type ApplicationGatewayUrlConfigurationPtrInput interface { - pulumi.Input - - ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput - ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Context) ApplicationGatewayUrlConfigurationPtrOutput +func (o ApplicationGatewaySslPolicyResponsePtrOutput) Elem() ApplicationGatewaySslPolicyResponseOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) ApplicationGatewaySslPolicyResponse { + if v != nil { + return *v + } + var ret ApplicationGatewaySslPolicyResponse + return ret + }).(ApplicationGatewaySslPolicyResponseOutput) } -type applicationGatewayUrlConfigurationPtrType ApplicationGatewayUrlConfigurationArgs - -func ApplicationGatewayUrlConfigurationPtr(v *ApplicationGatewayUrlConfigurationArgs) ApplicationGatewayUrlConfigurationPtrInput { - return (*applicationGatewayUrlConfigurationPtrType)(v) +// Ssl cipher suites to be enabled in the specified order to application gateway. +func (o ApplicationGatewaySslPolicyResponsePtrOutput) CipherSuites() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) []string { + if v == nil { + return nil + } + return v.CipherSuites + }).(pulumi.StringArrayOutput) } -func (*applicationGatewayUrlConfigurationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayUrlConfiguration)(nil)).Elem() +// Ssl protocols to be disabled on application gateway. +func (o ApplicationGatewaySslPolicyResponsePtrOutput) DisabledSslProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) []string { + if v == nil { + return nil + } + return v.DisabledSslProtocols + }).(pulumi.StringArrayOutput) } -func (i *applicationGatewayUrlConfigurationPtrType) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { - return i.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) +// Minimum version of Ssl protocol to be supported on application gateway. +func (o ApplicationGatewaySslPolicyResponsePtrOutput) MinProtocolVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { + if v == nil { + return nil + } + return v.MinProtocolVersion + }).(pulumi.StringPtrOutput) } -func (i *applicationGatewayUrlConfigurationPtrType) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationPtrOutput) +// Name of Ssl predefined policy. +func (o ApplicationGatewaySslPolicyResponsePtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) } -// Url configuration of the Actions set in Application Gateway. -type ApplicationGatewayUrlConfigurationOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayUrlConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlConfiguration)(nil)).Elem() +// Type of Ssl Policy. +func (o ApplicationGatewaySslPolicyResponsePtrOutput) PolicyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewaySslPolicyResponse) *string { + if v == nil { + return nil + } + return v.PolicyType + }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput { - return o +// SSL profile of an application gateway. +type ApplicationGatewaySslProfile struct { + // Client authentication configuration of the application gateway resource. + ClientAuthConfiguration *ApplicationGatewayClientAuthConfiguration `pulumi:"clientAuthConfiguration"` + // Resource ID. + Id *string `pulumi:"id"` + // Name of the SSL profile that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // SSL policy of the application gateway resource. + SslPolicy *ApplicationGatewaySslPolicy `pulumi:"sslPolicy"` + // Array of references to application gateway trusted client certificates. + TrustedClientCertificates []SubResource `pulumi:"trustedClientCertificates"` } -func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationOutput { - return o -} +// ApplicationGatewaySslProfileInput is an input type that accepts ApplicationGatewaySslProfileArgs and ApplicationGatewaySslProfileOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslProfileInput` via: +// +// ApplicationGatewaySslProfileArgs{...} +type ApplicationGatewaySslProfileInput interface { + pulumi.Input -func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { - return o.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) + ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput + ToApplicationGatewaySslProfileOutputWithContext(context.Context) ApplicationGatewaySslProfileOutput } -func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayUrlConfiguration) *ApplicationGatewayUrlConfiguration { - return &v - }).(ApplicationGatewayUrlConfigurationPtrOutput) +// SSL profile of an application gateway. +type ApplicationGatewaySslProfileArgs struct { + // Client authentication configuration of the application gateway resource. + ClientAuthConfiguration ApplicationGatewayClientAuthConfigurationPtrInput `pulumi:"clientAuthConfiguration"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Name of the SSL profile that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // SSL policy of the application gateway resource. + SslPolicy ApplicationGatewaySslPolicyPtrInput `pulumi:"sslPolicy"` + // Array of references to application gateway trusted client certificates. + TrustedClientCertificates SubResourceArrayInput `pulumi:"trustedClientCertificates"` } -// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationOutput) ModifiedPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *string { return v.ModifiedPath }).(pulumi.StringPtrOutput) +func (ApplicationGatewaySslProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslProfile)(nil)).Elem() } -// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationOutput) ModifiedQueryString() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *string { return v.ModifiedQueryString }).(pulumi.StringPtrOutput) +func (i ApplicationGatewaySslProfileArgs) ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput { + return i.ToApplicationGatewaySslProfileOutputWithContext(context.Background()) } -// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. -func (o ApplicationGatewayUrlConfigurationOutput) Reroute() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *bool { return v.Reroute }).(pulumi.BoolPtrOutput) +func (i ApplicationGatewaySslProfileArgs) ToApplicationGatewaySslProfileOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslProfileOutput) } -type ApplicationGatewayUrlConfigurationPtrOutput struct{ *pulumi.OutputState } +// ApplicationGatewaySslProfileArrayInput is an input type that accepts ApplicationGatewaySslProfileArray and ApplicationGatewaySslProfileArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewaySslProfileArrayInput` via: +// +// ApplicationGatewaySslProfileArray{ ApplicationGatewaySslProfileArgs{...} } +type ApplicationGatewaySslProfileArrayInput interface { + pulumi.Input -func (ApplicationGatewayUrlConfigurationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayUrlConfiguration)(nil)).Elem() + ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput + ToApplicationGatewaySslProfileArrayOutputWithContext(context.Context) ApplicationGatewaySslProfileArrayOutput } -func (o ApplicationGatewayUrlConfigurationPtrOutput) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { - return o -} +type ApplicationGatewaySslProfileArray []ApplicationGatewaySslProfileInput -func (o ApplicationGatewayUrlConfigurationPtrOutput) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { - return o +func (ApplicationGatewaySslProfileArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslProfile)(nil)).Elem() } -func (o ApplicationGatewayUrlConfigurationPtrOutput) Elem() ApplicationGatewayUrlConfigurationOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) ApplicationGatewayUrlConfiguration { - if v != nil { - return *v - } - var ret ApplicationGatewayUrlConfiguration - return ret - }).(ApplicationGatewayUrlConfigurationOutput) +func (i ApplicationGatewaySslProfileArray) ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput { + return i.ToApplicationGatewaySslProfileArrayOutputWithContext(context.Background()) } -// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationPtrOutput) ModifiedPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *string { - if v == nil { - return nil - } - return v.ModifiedPath - }).(pulumi.StringPtrOutput) +func (i ApplicationGatewaySslProfileArray) ToApplicationGatewaySslProfileArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewaySslProfileArrayOutput) } -// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationPtrOutput) ModifiedQueryString() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *string { - if v == nil { - return nil - } - return v.ModifiedQueryString - }).(pulumi.StringPtrOutput) -} +// SSL profile of an application gateway. +type ApplicationGatewaySslProfileOutput struct{ *pulumi.OutputState } -// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. -func (o ApplicationGatewayUrlConfigurationPtrOutput) Reroute() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *bool { - if v == nil { - return nil - } - return v.Reroute - }).(pulumi.BoolPtrOutput) +func (ApplicationGatewaySslProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslProfile)(nil)).Elem() } -// Url configuration of the Actions set in Application Gateway. -type ApplicationGatewayUrlConfigurationResponse struct { - // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. - ModifiedPath *string `pulumi:"modifiedPath"` - // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. - ModifiedQueryString *string `pulumi:"modifiedQueryString"` - // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. - Reroute *bool `pulumi:"reroute"` +func (o ApplicationGatewaySslProfileOutput) ToApplicationGatewaySslProfileOutput() ApplicationGatewaySslProfileOutput { + return o } -// Url configuration of the Actions set in Application Gateway. -type ApplicationGatewayUrlConfigurationResponseOutput struct{ *pulumi.OutputState } - -func (ApplicationGatewayUrlConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlConfigurationResponse)(nil)).Elem() +func (o ApplicationGatewaySslProfileOutput) ToApplicationGatewaySslProfileOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileOutput { + return o } -func (o ApplicationGatewayUrlConfigurationResponseOutput) ToApplicationGatewayUrlConfigurationResponseOutput() ApplicationGatewayUrlConfigurationResponseOutput { - return o +// Client authentication configuration of the application gateway resource. +func (o ApplicationGatewaySslProfileOutput) ClientAuthConfiguration() ApplicationGatewayClientAuthConfigurationPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfile) *ApplicationGatewayClientAuthConfiguration { + return v.ClientAuthConfiguration + }).(ApplicationGatewayClientAuthConfigurationPtrOutput) } -func (o ApplicationGatewayUrlConfigurationResponseOutput) ToApplicationGatewayUrlConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationResponseOutput { - return o +// Resource ID. +func (o ApplicationGatewaySslProfileOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfile) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationResponseOutput) ModifiedPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *string { return v.ModifiedPath }).(pulumi.StringPtrOutput) +// Name of the SSL profile that is unique within an Application Gateway. +func (o ApplicationGatewaySslProfileOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfile) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationResponseOutput) ModifiedQueryString() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *string { return v.ModifiedQueryString }).(pulumi.StringPtrOutput) +// SSL policy of the application gateway resource. +func (o ApplicationGatewaySslProfileOutput) SslPolicy() ApplicationGatewaySslPolicyPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfile) *ApplicationGatewaySslPolicy { return v.SslPolicy }).(ApplicationGatewaySslPolicyPtrOutput) } -// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. -func (o ApplicationGatewayUrlConfigurationResponseOutput) Reroute() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *bool { return v.Reroute }).(pulumi.BoolPtrOutput) +// Array of references to application gateway trusted client certificates. +func (o ApplicationGatewaySslProfileOutput) TrustedClientCertificates() SubResourceArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfile) []SubResource { return v.TrustedClientCertificates }).(SubResourceArrayOutput) } -type ApplicationGatewayUrlConfigurationResponsePtrOutput struct{ *pulumi.OutputState } +type ApplicationGatewaySslProfileArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayUrlConfigurationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayUrlConfigurationResponse)(nil)).Elem() +func (ApplicationGatewaySslProfileArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslProfile)(nil)).Elem() } -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ToApplicationGatewayUrlConfigurationResponsePtrOutput() ApplicationGatewayUrlConfigurationResponsePtrOutput { +func (o ApplicationGatewaySslProfileArrayOutput) ToApplicationGatewaySslProfileArrayOutput() ApplicationGatewaySslProfileArrayOutput { return o } -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ToApplicationGatewayUrlConfigurationResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationResponsePtrOutput { +func (o ApplicationGatewaySslProfileArrayOutput) ToApplicationGatewaySslProfileArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileArrayOutput { return o } -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) Elem() ApplicationGatewayUrlConfigurationResponseOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) ApplicationGatewayUrlConfigurationResponse { - if v != nil { - return *v - } - var ret ApplicationGatewayUrlConfigurationResponse - return ret - }).(ApplicationGatewayUrlConfigurationResponseOutput) +func (o ApplicationGatewaySslProfileArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslProfileOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslProfile { + return vs[0].([]ApplicationGatewaySslProfile)[vs[1].(int)] + }).(ApplicationGatewaySslProfileOutput) } -// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ModifiedPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *string { - if v == nil { - return nil - } - return v.ModifiedPath - }).(pulumi.StringPtrOutput) +// SSL profile of an application gateway. +type ApplicationGatewaySslProfileResponse struct { + // Client authentication configuration of the application gateway resource. + ClientAuthConfiguration *ApplicationGatewayClientAuthConfigurationResponse `pulumi:"clientAuthConfiguration"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Name of the SSL profile that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // The provisioning state of the HTTP listener resource. + ProvisioningState string `pulumi:"provisioningState"` + // SSL policy of the application gateway resource. + SslPolicy *ApplicationGatewaySslPolicyResponse `pulumi:"sslPolicy"` + // Array of references to application gateway trusted client certificates. + TrustedClientCertificates []SubResourceResponse `pulumi:"trustedClientCertificates"` + // Type of the resource. + Type string `pulumi:"type"` } -// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ModifiedQueryString() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *string { - if v == nil { - return nil - } - return v.ModifiedQueryString - }).(pulumi.StringPtrOutput) +// SSL profile of an application gateway. +type ApplicationGatewaySslProfileResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySslProfileResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewaySslProfileResponse)(nil)).Elem() } -// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. -func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) Reroute() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *bool { - if v == nil { - return nil - } - return v.Reroute - }).(pulumi.BoolPtrOutput) +func (o ApplicationGatewaySslProfileResponseOutput) ToApplicationGatewaySslProfileResponseOutput() ApplicationGatewaySslProfileResponseOutput { + return o } -// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. -type ApplicationGatewayUrlPathMap struct { - // Default backend address pool resource of URL path map. - DefaultBackendAddressPool *SubResource `pulumi:"defaultBackendAddressPool"` - // Default backend http settings resource of URL path map. - DefaultBackendHttpSettings *SubResource `pulumi:"defaultBackendHttpSettings"` - // Default redirect configuration resource of URL path map. - DefaultRedirectConfiguration *SubResource `pulumi:"defaultRedirectConfiguration"` - // Default Rewrite rule set resource of URL path map. - DefaultRewriteRuleSet *SubResource `pulumi:"defaultRewriteRuleSet"` +func (o ApplicationGatewaySslProfileResponseOutput) ToApplicationGatewaySslProfileResponseOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileResponseOutput { + return o +} + +// Client authentication configuration of the application gateway resource. +func (o ApplicationGatewaySslProfileResponseOutput) ClientAuthConfiguration() ApplicationGatewayClientAuthConfigurationResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *ApplicationGatewayClientAuthConfigurationResponse { + return v.ClientAuthConfiguration + }).(ApplicationGatewayClientAuthConfigurationResponsePtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewaySslProfileResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o ApplicationGatewaySslProfileResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Name of the SSL profile that is unique within an Application Gateway. +func (o ApplicationGatewaySslProfileResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the HTTP listener resource. +func (o ApplicationGatewaySslProfileResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// SSL policy of the application gateway resource. +func (o ApplicationGatewaySslProfileResponseOutput) SslPolicy() ApplicationGatewaySslPolicyResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) *ApplicationGatewaySslPolicyResponse { return v.SslPolicy }).(ApplicationGatewaySslPolicyResponsePtrOutput) +} + +// Array of references to application gateway trusted client certificates. +func (o ApplicationGatewaySslProfileResponseOutput) TrustedClientCertificates() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) []SubResourceResponse { return v.TrustedClientCertificates }).(SubResourceResponseArrayOutput) +} + +// Type of the resource. +func (o ApplicationGatewaySslProfileResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewaySslProfileResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ApplicationGatewaySslProfileResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewaySslProfileResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewaySslProfileResponse)(nil)).Elem() +} + +func (o ApplicationGatewaySslProfileResponseArrayOutput) ToApplicationGatewaySslProfileResponseArrayOutput() ApplicationGatewaySslProfileResponseArrayOutput { + return o +} + +func (o ApplicationGatewaySslProfileResponseArrayOutput) ToApplicationGatewaySslProfileResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewaySslProfileResponseArrayOutput { + return o +} + +func (o ApplicationGatewaySslProfileResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewaySslProfileResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewaySslProfileResponse { + return vs[0].([]ApplicationGatewaySslProfileResponse)[vs[1].(int)] + }).(ApplicationGatewaySslProfileResponseOutput) +} + +// Trusted client certificates of an application gateway. +type ApplicationGatewayTrustedClientCertificate struct { + // Certificate public data. + Data *string `pulumi:"data"` // Resource ID. Id *string `pulumi:"id"` - // Name of the URL path map that is unique within an Application Gateway. + // Name of the trusted client certificate that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Path rule of URL path map resource. - PathRules []ApplicationGatewayPathRule `pulumi:"pathRules"` } -// ApplicationGatewayUrlPathMapInput is an input type that accepts ApplicationGatewayUrlPathMap and ApplicationGatewayUrlPathMapOutput values. -// You can construct a concrete instance of `ApplicationGatewayUrlPathMapInput` via: +// ApplicationGatewayTrustedClientCertificateInput is an input type that accepts ApplicationGatewayTrustedClientCertificateArgs and ApplicationGatewayTrustedClientCertificateOutput values. +// You can construct a concrete instance of `ApplicationGatewayTrustedClientCertificateInput` via: // -// ApplicationGatewayUrlPathMap{ "key": ApplicationGatewayUrlPathArgs{...} } -type ApplicationGatewayUrlPathMapInput interface { +// ApplicationGatewayTrustedClientCertificateArgs{...} +type ApplicationGatewayTrustedClientCertificateInput interface { pulumi.Input - ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput - ToApplicationGatewayUrlPathMapOutputWithContext(context.Context) ApplicationGatewayUrlPathMapOutput + ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput + ToApplicationGatewayTrustedClientCertificateOutputWithContext(context.Context) ApplicationGatewayTrustedClientCertificateOutput } -// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. -type ApplicationGatewayUrlPathMapArgs struct { - // Default backend address pool resource of URL path map. - DefaultBackendAddressPool SubResourcePtrInput `pulumi:"defaultBackendAddressPool"` - // Default backend http settings resource of URL path map. - DefaultBackendHttpSettings SubResourcePtrInput `pulumi:"defaultBackendHttpSettings"` - // Default redirect configuration resource of URL path map. - DefaultRedirectConfiguration SubResourcePtrInput `pulumi:"defaultRedirectConfiguration"` - // Default Rewrite rule set resource of URL path map. - DefaultRewriteRuleSet SubResourcePtrInput `pulumi:"defaultRewriteRuleSet"` +// Trusted client certificates of an application gateway. +type ApplicationGatewayTrustedClientCertificateArgs struct { + // Certificate public data. + Data pulumi.StringPtrInput `pulumi:"data"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Name of the URL path map that is unique within an Application Gateway. + // Name of the trusted client certificate that is unique within an Application Gateway. Name pulumi.StringPtrInput `pulumi:"name"` - // Path rule of URL path map resource. - PathRules ApplicationGatewayPathRuleArrayInput `pulumi:"pathRules"` } -func (ApplicationGatewayUrlPathMapArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlPathMap)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificate)(nil)).Elem() } -func (i ApplicationGatewayUrlPathMapArgs) ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput { - return i.ToApplicationGatewayUrlPathMapOutputWithContext(context.Background()) +func (i ApplicationGatewayTrustedClientCertificateArgs) ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput { + return i.ToApplicationGatewayTrustedClientCertificateOutputWithContext(context.Background()) } -func (i ApplicationGatewayUrlPathMapArgs) ToApplicationGatewayUrlPathMapOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlPathMapOutput) +func (i ApplicationGatewayTrustedClientCertificateArgs) ToApplicationGatewayTrustedClientCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedClientCertificateOutput) } -// ApplicationGatewayUrlPathMapArrayInput is an input type that accepts ApplicationGatewayUrlPathMapArray and ApplicationGatewayUrlPathMapArrayOutput values. -// You can construct a concrete instance of `ApplicationGatewayUrlPathMapArrayInput` via: +// ApplicationGatewayTrustedClientCertificateArrayInput is an input type that accepts ApplicationGatewayTrustedClientCertificateArray and ApplicationGatewayTrustedClientCertificateArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayTrustedClientCertificateArrayInput` via: // -// ApplicationGatewayUrlPathMapArray{ ApplicationGatewayUrlPathMapArgs{...} } -type ApplicationGatewayUrlPathMapArrayInput interface { +// ApplicationGatewayTrustedClientCertificateArray{ ApplicationGatewayTrustedClientCertificateArgs{...} } +type ApplicationGatewayTrustedClientCertificateArrayInput interface { pulumi.Input - ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput - ToApplicationGatewayUrlPathMapArrayOutputWithContext(context.Context) ApplicationGatewayUrlPathMapArrayOutput + ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput + ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput } -type ApplicationGatewayUrlPathMapArray []ApplicationGatewayUrlPathMapInput +type ApplicationGatewayTrustedClientCertificateArray []ApplicationGatewayTrustedClientCertificateInput -func (ApplicationGatewayUrlPathMapArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayUrlPathMap)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificate)(nil)).Elem() } -func (i ApplicationGatewayUrlPathMapArray) ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput { - return i.ToApplicationGatewayUrlPathMapArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayTrustedClientCertificateArray) ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput { + return i.ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(context.Background()) } -func (i ApplicationGatewayUrlPathMapArray) ToApplicationGatewayUrlPathMapArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlPathMapArrayOutput) +func (i ApplicationGatewayTrustedClientCertificateArray) ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedClientCertificateArrayOutput) } -// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. -type ApplicationGatewayUrlPathMapOutput struct{ *pulumi.OutputState } +// Trusted client certificates of an application gateway. +type ApplicationGatewayTrustedClientCertificateOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayUrlPathMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlPathMap)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificate)(nil)).Elem() } -func (o ApplicationGatewayUrlPathMapOutput) ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput { +func (o ApplicationGatewayTrustedClientCertificateOutput) ToApplicationGatewayTrustedClientCertificateOutput() ApplicationGatewayTrustedClientCertificateOutput { return o } -func (o ApplicationGatewayUrlPathMapOutput) ToApplicationGatewayUrlPathMapOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapOutput { +func (o ApplicationGatewayTrustedClientCertificateOutput) ToApplicationGatewayTrustedClientCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateOutput { return o } -// Default backend address pool resource of URL path map. -func (o ApplicationGatewayUrlPathMapOutput) DefaultBackendAddressPool() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultBackendAddressPool }).(SubResourcePtrOutput) -} - -// Default backend http settings resource of URL path map. -func (o ApplicationGatewayUrlPathMapOutput) DefaultBackendHttpSettings() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultBackendHttpSettings }).(SubResourcePtrOutput) -} - -// Default redirect configuration resource of URL path map. -func (o ApplicationGatewayUrlPathMapOutput) DefaultRedirectConfiguration() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultRedirectConfiguration }).(SubResourcePtrOutput) -} - -// Default Rewrite rule set resource of URL path map. -func (o ApplicationGatewayUrlPathMapOutput) DefaultRewriteRuleSet() SubResourcePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultRewriteRuleSet }).(SubResourcePtrOutput) +// Certificate public data. +func (o ApplicationGatewayTrustedClientCertificateOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) } // Resource ID. -func (o ApplicationGatewayUrlPathMapOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Name of the URL path map that is unique within an Application Gateway. -func (o ApplicationGatewayUrlPathMapOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayTrustedClientCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Path rule of URL path map resource. -func (o ApplicationGatewayUrlPathMapOutput) PathRules() ApplicationGatewayPathRuleArrayOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMap) []ApplicationGatewayPathRule { return v.PathRules }).(ApplicationGatewayPathRuleArrayOutput) +// Name of the trusted client certificate that is unique within an Application Gateway. +func (o ApplicationGatewayTrustedClientCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) } -type ApplicationGatewayUrlPathMapArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayTrustedClientCertificateArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayUrlPathMapArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayUrlPathMap)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificate)(nil)).Elem() } -func (o ApplicationGatewayUrlPathMapArrayOutput) ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput { +func (o ApplicationGatewayTrustedClientCertificateArrayOutput) ToApplicationGatewayTrustedClientCertificateArrayOutput() ApplicationGatewayTrustedClientCertificateArrayOutput { return o } -func (o ApplicationGatewayUrlPathMapArrayOutput) ToApplicationGatewayUrlPathMapArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapArrayOutput { +func (o ApplicationGatewayTrustedClientCertificateArrayOutput) ToApplicationGatewayTrustedClientCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateArrayOutput { return o } -func (o ApplicationGatewayUrlPathMapArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayUrlPathMapOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayUrlPathMap { - return vs[0].([]ApplicationGatewayUrlPathMap)[vs[1].(int)] - }).(ApplicationGatewayUrlPathMapOutput) +func (o ApplicationGatewayTrustedClientCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedClientCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedClientCertificate { + return vs[0].([]ApplicationGatewayTrustedClientCertificate)[vs[1].(int)] + }).(ApplicationGatewayTrustedClientCertificateOutput) } -// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. -type ApplicationGatewayUrlPathMapResponse struct { - // Default backend address pool resource of URL path map. - DefaultBackendAddressPool *SubResourceResponse `pulumi:"defaultBackendAddressPool"` - // Default backend http settings resource of URL path map. - DefaultBackendHttpSettings *SubResourceResponse `pulumi:"defaultBackendHttpSettings"` - // Default redirect configuration resource of URL path map. - DefaultRedirectConfiguration *SubResourceResponse `pulumi:"defaultRedirectConfiguration"` - // Default Rewrite rule set resource of URL path map. - DefaultRewriteRuleSet *SubResourceResponse `pulumi:"defaultRewriteRuleSet"` +// Trusted client certificates of an application gateway. +type ApplicationGatewayTrustedClientCertificateResponse struct { + // Distinguished name of client certificate issuer. + ClientCertIssuerDN string `pulumi:"clientCertIssuerDN"` + // Certificate public data. + Data *string `pulumi:"data"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // Name of the URL path map that is unique within an Application Gateway. + // Name of the trusted client certificate that is unique within an Application Gateway. Name *string `pulumi:"name"` - // Path rule of URL path map resource. - PathRules []ApplicationGatewayPathRuleResponse `pulumi:"pathRules"` - // The provisioning state of the URL path map resource. + // The provisioning state of the trusted client certificate resource. ProvisioningState string `pulumi:"provisioningState"` // Type of the resource. Type string `pulumi:"type"` + // Validated certificate data. + ValidatedCertData string `pulumi:"validatedCertData"` } -// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. -type ApplicationGatewayUrlPathMapResponseOutput struct{ *pulumi.OutputState } +// Trusted client certificates of an application gateway. +type ApplicationGatewayTrustedClientCertificateResponseOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayUrlPathMapResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayUrlPathMapResponse)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedClientCertificateResponse)(nil)).Elem() } -func (o ApplicationGatewayUrlPathMapResponseOutput) ToApplicationGatewayUrlPathMapResponseOutput() ApplicationGatewayUrlPathMapResponseOutput { +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ToApplicationGatewayTrustedClientCertificateResponseOutput() ApplicationGatewayTrustedClientCertificateResponseOutput { return o } -func (o ApplicationGatewayUrlPathMapResponseOutput) ToApplicationGatewayUrlPathMapResponseOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapResponseOutput { +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ToApplicationGatewayTrustedClientCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateResponseOutput { return o } -// Default backend address pool resource of URL path map. -func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultBackendAddressPool() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultBackendAddressPool }).(SubResourceResponsePtrOutput) -} - -// Default backend http settings resource of URL path map. -func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultBackendHttpSettings() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultBackendHttpSettings }).(SubResourceResponsePtrOutput) -} - -// Default redirect configuration resource of URL path map. -func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultRedirectConfiguration() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { - return v.DefaultRedirectConfiguration - }).(SubResourceResponsePtrOutput) +// Distinguished name of client certificate issuer. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ClientCertIssuerDN() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.ClientCertIssuerDN }).(pulumi.StringOutput) } -// Default Rewrite rule set resource of URL path map. -func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultRewriteRuleSet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultRewriteRuleSet }).(SubResourceResponsePtrOutput) +// Certificate public data. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) } // A unique read-only string that changes whenever the resource is updated. -func (o ApplicationGatewayUrlPathMapResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o ApplicationGatewayUrlPathMapResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Name of the URL path map that is unique within an Application Gateway. -func (o ApplicationGatewayUrlPathMapResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of the trusted client certificate that is unique within an Application Gateway. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Path rule of URL path map resource. -func (o ApplicationGatewayUrlPathMapResponseOutput) PathRules() ApplicationGatewayPathRuleResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) []ApplicationGatewayPathRuleResponse { return v.PathRules }).(ApplicationGatewayPathRuleResponseArrayOutput) +// The provisioning state of the trusted client certificate resource. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The provisioning state of the URL path map resource. -func (o ApplicationGatewayUrlPathMapResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Type of the resource. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.Type }).(pulumi.StringOutput) } -// Type of the resource. -func (o ApplicationGatewayUrlPathMapResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.Type }).(pulumi.StringOutput) +// Validated certificate data. +func (o ApplicationGatewayTrustedClientCertificateResponseOutput) ValidatedCertData() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedClientCertificateResponse) string { return v.ValidatedCertData }).(pulumi.StringOutput) } -type ApplicationGatewayUrlPathMapResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayTrustedClientCertificateResponseArrayOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayUrlPathMapResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationGatewayUrlPathMapResponse)(nil)).Elem() +func (ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedClientCertificateResponse)(nil)).Elem() } -func (o ApplicationGatewayUrlPathMapResponseArrayOutput) ToApplicationGatewayUrlPathMapResponseArrayOutput() ApplicationGatewayUrlPathMapResponseArrayOutput { +func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ToApplicationGatewayTrustedClientCertificateResponseArrayOutput() ApplicationGatewayTrustedClientCertificateResponseArrayOutput { return o } -func (o ApplicationGatewayUrlPathMapResponseArrayOutput) ToApplicationGatewayUrlPathMapResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapResponseArrayOutput { +func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) ToApplicationGatewayTrustedClientCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedClientCertificateResponseArrayOutput { return o } -func (o ApplicationGatewayUrlPathMapResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayUrlPathMapResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayUrlPathMapResponse { - return vs[0].([]ApplicationGatewayUrlPathMapResponse)[vs[1].(int)] - }).(ApplicationGatewayUrlPathMapResponseOutput) +func (o ApplicationGatewayTrustedClientCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedClientCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedClientCertificateResponse { + return vs[0].([]ApplicationGatewayTrustedClientCertificateResponse)[vs[1].(int)] + }).(ApplicationGatewayTrustedClientCertificateResponseOutput) } -// Application gateway web application firewall configuration. -type ApplicationGatewayWebApplicationFirewallConfiguration struct { - // The disabled rule groups. - DisabledRuleGroups []ApplicationGatewayFirewallDisabledRuleGroup `pulumi:"disabledRuleGroups"` - // Whether the web application firewall is enabled or not. - Enabled bool `pulumi:"enabled"` - // The exclusion list. - Exclusions []ApplicationGatewayFirewallExclusion `pulumi:"exclusions"` - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` - // Web application firewall mode. - FirewallMode string `pulumi:"firewallMode"` - // Maximum request body size for WAF. - MaxRequestBodySize *int `pulumi:"maxRequestBodySize"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` - // Whether allow WAF to check request Body. - RequestBodyCheck *bool `pulumi:"requestBodyCheck"` - // The type of the web application firewall rule set. Possible values are: 'OWASP'. - RuleSetType string `pulumi:"ruleSetType"` - // The version of the rule set type. - RuleSetVersion string `pulumi:"ruleSetVersion"` +// Trusted Root certificates of an application gateway. +type ApplicationGatewayTrustedRootCertificate struct { + // Certificate public data. + Data *string `pulumi:"data"` + // Resource ID. + Id *string `pulumi:"id"` + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` + // Name of the trusted root certificate that is unique within an Application Gateway. + Name *string `pulumi:"name"` } -// ApplicationGatewayWebApplicationFirewallConfigurationInput is an input type that accepts ApplicationGatewayWebApplicationFirewallConfigurationArgs and ApplicationGatewayWebApplicationFirewallConfigurationOutput values. -// You can construct a concrete instance of `ApplicationGatewayWebApplicationFirewallConfigurationInput` via: +// ApplicationGatewayTrustedRootCertificateInput is an input type that accepts ApplicationGatewayTrustedRootCertificateArgs and ApplicationGatewayTrustedRootCertificateOutput values. +// You can construct a concrete instance of `ApplicationGatewayTrustedRootCertificateInput` via: // -// ApplicationGatewayWebApplicationFirewallConfigurationArgs{...} -type ApplicationGatewayWebApplicationFirewallConfigurationInput interface { +// ApplicationGatewayTrustedRootCertificateArgs{...} +type ApplicationGatewayTrustedRootCertificateInput interface { pulumi.Input - ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput - ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput -} - -// Application gateway web application firewall configuration. -type ApplicationGatewayWebApplicationFirewallConfigurationArgs struct { - // The disabled rule groups. - DisabledRuleGroups ApplicationGatewayFirewallDisabledRuleGroupArrayInput `pulumi:"disabledRuleGroups"` - // Whether the web application firewall is enabled or not. - Enabled pulumi.BoolInput `pulumi:"enabled"` - // The exclusion list. - Exclusions ApplicationGatewayFirewallExclusionArrayInput `pulumi:"exclusions"` - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb pulumi.IntPtrInput `pulumi:"fileUploadLimitInMb"` - // Web application firewall mode. - FirewallMode pulumi.StringInput `pulumi:"firewallMode"` - // Maximum request body size for WAF. - MaxRequestBodySize pulumi.IntPtrInput `pulumi:"maxRequestBodySize"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb pulumi.IntPtrInput `pulumi:"maxRequestBodySizeInKb"` - // Whether allow WAF to check request Body. - RequestBodyCheck pulumi.BoolPtrInput `pulumi:"requestBodyCheck"` - // The type of the web application firewall rule set. Possible values are: 'OWASP'. - RuleSetType pulumi.StringInput `pulumi:"ruleSetType"` - // The version of the rule set type. - RuleSetVersion pulumi.StringInput `pulumi:"ruleSetVersion"` -} - -func (ApplicationGatewayWebApplicationFirewallConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() + ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput + ToApplicationGatewayTrustedRootCertificateOutputWithContext(context.Context) ApplicationGatewayTrustedRootCertificateOutput } -func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput { - return i.ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(context.Background()) +// Trusted Root certificates of an application gateway. +type ApplicationGatewayTrustedRootCertificateArgs struct { + // Certificate public data. + Data pulumi.StringPtrInput `pulumi:"data"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` + // Name of the trusted root certificate that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` } -func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationOutput) +func (ApplicationGatewayTrustedRootCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificate)(nil)).Elem() } -func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return i.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) +func (i ApplicationGatewayTrustedRootCertificateArgs) ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput { + return i.ToApplicationGatewayTrustedRootCertificateOutputWithContext(context.Background()) } -func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationOutput).ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx) +func (i ApplicationGatewayTrustedRootCertificateArgs) ToApplicationGatewayTrustedRootCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedRootCertificateOutput) } -// ApplicationGatewayWebApplicationFirewallConfigurationPtrInput is an input type that accepts ApplicationGatewayWebApplicationFirewallConfigurationArgs, ApplicationGatewayWebApplicationFirewallConfigurationPtr and ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput values. -// You can construct a concrete instance of `ApplicationGatewayWebApplicationFirewallConfigurationPtrInput` via: -// -// ApplicationGatewayWebApplicationFirewallConfigurationArgs{...} -// -// or: +// ApplicationGatewayTrustedRootCertificateArrayInput is an input type that accepts ApplicationGatewayTrustedRootCertificateArray and ApplicationGatewayTrustedRootCertificateArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayTrustedRootCertificateArrayInput` via: // -// nil -type ApplicationGatewayWebApplicationFirewallConfigurationPtrInput interface { +// ApplicationGatewayTrustedRootCertificateArray{ ApplicationGatewayTrustedRootCertificateArgs{...} } +type ApplicationGatewayTrustedRootCertificateArrayInput interface { pulumi.Input - ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput - ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput + ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput + ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput } -type applicationGatewayWebApplicationFirewallConfigurationPtrType ApplicationGatewayWebApplicationFirewallConfigurationArgs - -func ApplicationGatewayWebApplicationFirewallConfigurationPtr(v *ApplicationGatewayWebApplicationFirewallConfigurationArgs) ApplicationGatewayWebApplicationFirewallConfigurationPtrInput { - return (*applicationGatewayWebApplicationFirewallConfigurationPtrType)(v) -} +type ApplicationGatewayTrustedRootCertificateArray []ApplicationGatewayTrustedRootCertificateInput -func (*applicationGatewayWebApplicationFirewallConfigurationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() +func (ApplicationGatewayTrustedRootCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificate)(nil)).Elem() } -func (i *applicationGatewayWebApplicationFirewallConfigurationPtrType) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return i.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) +func (i ApplicationGatewayTrustedRootCertificateArray) ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput { + return i.ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(context.Background()) } -func (i *applicationGatewayWebApplicationFirewallConfigurationPtrType) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) +func (i ApplicationGatewayTrustedRootCertificateArray) ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayTrustedRootCertificateArrayOutput) } -// Application gateway web application firewall configuration. -type ApplicationGatewayWebApplicationFirewallConfigurationOutput struct{ *pulumi.OutputState } +// Trusted Root certificates of an application gateway. +type ApplicationGatewayTrustedRootCertificateOutput struct{ *pulumi.OutputState } -func (ApplicationGatewayWebApplicationFirewallConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() +func (ApplicationGatewayTrustedRootCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificate)(nil)).Elem() } -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput { +func (o ApplicationGatewayTrustedRootCertificateOutput) ToApplicationGatewayTrustedRootCertificateOutput() ApplicationGatewayTrustedRootCertificateOutput { return o } -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput { +func (o ApplicationGatewayTrustedRootCertificateOutput) ToApplicationGatewayTrustedRootCertificateOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateOutput { return o } -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return o.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) -} - -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayWebApplicationFirewallConfiguration) *ApplicationGatewayWebApplicationFirewallConfiguration { - return &v - }).(ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) +// Certificate public data. +func (o ApplicationGatewayTrustedRootCertificateOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Data }).(pulumi.StringPtrOutput) } -// The disabled rule groups. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupArrayOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallDisabledRuleGroup { - return v.DisabledRuleGroups - }).(ApplicationGatewayFirewallDisabledRuleGroupArrayOutput) +// Resource ID. +func (o ApplicationGatewayTrustedRootCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Whether the web application firewall is enabled or not. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) bool { return v.Enabled }).(pulumi.BoolOutput) +// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. +func (o ApplicationGatewayTrustedRootCertificateOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) } -// The exclusion list. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) Exclusions() ApplicationGatewayFirewallExclusionArrayOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallExclusion { - return v.Exclusions - }).(ApplicationGatewayFirewallExclusionArrayOutput) +// Name of the trusted root certificate that is unique within an Application Gateway. +func (o ApplicationGatewayTrustedRootCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Maximum file upload size in Mb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) +type ApplicationGatewayTrustedRootCertificateArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayTrustedRootCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificate)(nil)).Elem() } -// Web application firewall mode. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) FirewallMode() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.FirewallMode }).(pulumi.StringOutput) +func (o ApplicationGatewayTrustedRootCertificateArrayOutput) ToApplicationGatewayTrustedRootCertificateArrayOutput() ApplicationGatewayTrustedRootCertificateArrayOutput { + return o } -// Maximum request body size for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) MaxRequestBodySize() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.MaxRequestBodySize }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayTrustedRootCertificateArrayOutput) ToApplicationGatewayTrustedRootCertificateArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateArrayOutput { + return o } -// Maximum request body size in Kb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayTrustedRootCertificateArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedRootCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedRootCertificate { + return vs[0].([]ApplicationGatewayTrustedRootCertificate)[vs[1].(int)] + }).(ApplicationGatewayTrustedRootCertificateOutput) } -// Whether allow WAF to check request Body. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) +// Trusted Root certificates of an application gateway. +type ApplicationGatewayTrustedRootCertificateResponse struct { + // Certificate public data. + Data *string `pulumi:"data"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` + // Name of the trusted root certificate that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // The provisioning state of the trusted root certificate resource. + ProvisioningState string `pulumi:"provisioningState"` + // Type of the resource. + Type string `pulumi:"type"` } -// The type of the web application firewall rule set. Possible values are: 'OWASP'. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RuleSetType() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.RuleSetType }).(pulumi.StringOutput) +// Trusted Root certificates of an application gateway. +type ApplicationGatewayTrustedRootCertificateResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayTrustedRootCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayTrustedRootCertificateResponse)(nil)).Elem() } -// The version of the rule set type. -func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RuleSetVersion() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.RuleSetVersion }).(pulumi.StringOutput) +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ToApplicationGatewayTrustedRootCertificateResponseOutput() ApplicationGatewayTrustedRootCertificateResponseOutput { + return o } -type ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput struct{ *pulumi.OutputState } +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ToApplicationGatewayTrustedRootCertificateResponseOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateResponseOutput { + return o +} -func (ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() +// Certificate public data. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Data() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Data }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return o +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.Etag }).(pulumi.StringOutput) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { - return o +// Resource ID. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Elem() ApplicationGatewayWebApplicationFirewallConfigurationOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) ApplicationGatewayWebApplicationFirewallConfiguration { - if v != nil { - return *v - } - var ret ApplicationGatewayWebApplicationFirewallConfiguration - return ret - }).(ApplicationGatewayWebApplicationFirewallConfigurationOutput) +// Secret Id of (base-64 encoded unencrypted pfx) 'Secret' or 'Certificate' object stored in KeyVault. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) } -// The disabled rule groups. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallDisabledRuleGroup { - if v == nil { - return nil - } - return v.DisabledRuleGroups - }).(ApplicationGatewayFirewallDisabledRuleGroupArrayOutput) +// Name of the trusted root certificate that is unique within an Application Gateway. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Whether the web application firewall is enabled or not. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +// The provisioning state of the trusted root certificate resource. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The exclusion list. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Exclusions() ApplicationGatewayFirewallExclusionArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallExclusion { - if v == nil { - return nil - } - return v.Exclusions - }).(ApplicationGatewayFirewallExclusionArrayOutput) +// Type of the resource. +func (o ApplicationGatewayTrustedRootCertificateResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayTrustedRootCertificateResponse) string { return v.Type }).(pulumi.StringOutput) } -// Maximum file upload size in Mb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { - if v == nil { - return nil - } - return v.FileUploadLimitInMb - }).(pulumi.IntPtrOutput) +type ApplicationGatewayTrustedRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayTrustedRootCertificateResponse)(nil)).Elem() } -// Web application firewall mode. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) FirewallMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { - if v == nil { - return nil - } - return &v.FirewallMode - }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ToApplicationGatewayTrustedRootCertificateResponseArrayOutput() ApplicationGatewayTrustedRootCertificateResponseArrayOutput { + return o } -// Maximum request body size for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) MaxRequestBodySize() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySize - }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) ToApplicationGatewayTrustedRootCertificateResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayTrustedRootCertificateResponseArrayOutput { + return o } -// Maximum request body size in Kb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySizeInKb - }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayTrustedRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayTrustedRootCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayTrustedRootCertificateResponse { + return vs[0].([]ApplicationGatewayTrustedRootCertificateResponse)[vs[1].(int)] + }).(ApplicationGatewayTrustedRootCertificateResponseOutput) } -// Whether allow WAF to check request Body. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *bool { - if v == nil { - return nil - } - return v.RequestBodyCheck - }).(pulumi.BoolPtrOutput) +// Url configuration of the Actions set in Application Gateway. +type ApplicationGatewayUrlConfiguration struct { + // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. + ModifiedPath *string `pulumi:"modifiedPath"` + // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. + ModifiedQueryString *string `pulumi:"modifiedQueryString"` + // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. + Reroute *bool `pulumi:"reroute"` } -// The type of the web application firewall rule set. Possible values are: 'OWASP'. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RuleSetType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { - if v == nil { - return nil - } - return &v.RuleSetType - }).(pulumi.StringPtrOutput) +// ApplicationGatewayUrlConfigurationInput is an input type that accepts ApplicationGatewayUrlConfigurationArgs and ApplicationGatewayUrlConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayUrlConfigurationInput` via: +// +// ApplicationGatewayUrlConfigurationArgs{...} +type ApplicationGatewayUrlConfigurationInput interface { + pulumi.Input + + ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput + ToApplicationGatewayUrlConfigurationOutputWithContext(context.Context) ApplicationGatewayUrlConfigurationOutput } -// The version of the rule set type. -func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RuleSetVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { - if v == nil { - return nil - } - return &v.RuleSetVersion - }).(pulumi.StringPtrOutput) +// Url configuration of the Actions set in Application Gateway. +type ApplicationGatewayUrlConfigurationArgs struct { + // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. + ModifiedPath pulumi.StringPtrInput `pulumi:"modifiedPath"` + // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. + ModifiedQueryString pulumi.StringPtrInput `pulumi:"modifiedQueryString"` + // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. + Reroute pulumi.BoolPtrInput `pulumi:"reroute"` } -// Application gateway web application firewall configuration. -type ApplicationGatewayWebApplicationFirewallConfigurationResponse struct { - // The disabled rule groups. - DisabledRuleGroups []ApplicationGatewayFirewallDisabledRuleGroupResponse `pulumi:"disabledRuleGroups"` - // Whether the web application firewall is enabled or not. - Enabled bool `pulumi:"enabled"` - // The exclusion list. - Exclusions []ApplicationGatewayFirewallExclusionResponse `pulumi:"exclusions"` - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` - // Web application firewall mode. - FirewallMode string `pulumi:"firewallMode"` - // Maximum request body size for WAF. - MaxRequestBodySize *int `pulumi:"maxRequestBodySize"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` - // Whether allow WAF to check request Body. - RequestBodyCheck *bool `pulumi:"requestBodyCheck"` - // The type of the web application firewall rule set. Possible values are: 'OWASP'. - RuleSetType string `pulumi:"ruleSetType"` - // The version of the rule set type. - RuleSetVersion string `pulumi:"ruleSetVersion"` +func (ApplicationGatewayUrlConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlConfiguration)(nil)).Elem() } -// Application gateway web application firewall configuration. -type ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput struct{ *pulumi.OutputState } +func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput { + return i.ToApplicationGatewayUrlConfigurationOutputWithContext(context.Background()) +} -func (ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfigurationResponse)(nil)).Elem() +func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationOutput) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponseOutput() ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { - return o +func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { + return i.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { - return o +func (i ApplicationGatewayUrlConfigurationArgs) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationOutput).ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx) } -// The disabled rule groups. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallDisabledRuleGroupResponse { - return v.DisabledRuleGroups - }).(ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput) +// ApplicationGatewayUrlConfigurationPtrInput is an input type that accepts ApplicationGatewayUrlConfigurationArgs, ApplicationGatewayUrlConfigurationPtr and ApplicationGatewayUrlConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewayUrlConfigurationPtrInput` via: +// +// ApplicationGatewayUrlConfigurationArgs{...} +// +// or: +// +// nil +type ApplicationGatewayUrlConfigurationPtrInput interface { + pulumi.Input + + ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput + ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Context) ApplicationGatewayUrlConfigurationPtrOutput } -// Whether the web application firewall is enabled or not. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) bool { return v.Enabled }).(pulumi.BoolOutput) +type applicationGatewayUrlConfigurationPtrType ApplicationGatewayUrlConfigurationArgs + +func ApplicationGatewayUrlConfigurationPtr(v *ApplicationGatewayUrlConfigurationArgs) ApplicationGatewayUrlConfigurationPtrInput { + return (*applicationGatewayUrlConfigurationPtrType)(v) } -// The exclusion list. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) Exclusions() ApplicationGatewayFirewallExclusionResponseArrayOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallExclusionResponse { - return v.Exclusions - }).(ApplicationGatewayFirewallExclusionResponseArrayOutput) +func (*applicationGatewayUrlConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayUrlConfiguration)(nil)).Elem() } -// Maximum file upload size in Mb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - return v.FileUploadLimitInMb - }).(pulumi.IntPtrOutput) +func (i *applicationGatewayUrlConfigurationPtrType) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { + return i.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) } -// Web application firewall mode. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) FirewallMode() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.FirewallMode }).(pulumi.StringOutput) +func (i *applicationGatewayUrlConfigurationPtrType) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlConfigurationPtrOutput) } -// Maximum request body size for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) MaxRequestBodySize() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - return v.MaxRequestBodySize - }).(pulumi.IntPtrOutput) +// Url configuration of the Actions set in Application Gateway. +type ApplicationGatewayUrlConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayUrlConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlConfiguration)(nil)).Elem() } -// Maximum request body size in Kb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - return v.MaxRequestBodySizeInKb - }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationOutput() ApplicationGatewayUrlConfigurationOutput { + return o } -// Whether allow WAF to check request Body. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) +func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationOutput { + return o } -// The type of the web application firewall rule set. Possible values are: 'OWASP'. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RuleSetType() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.RuleSetType }).(pulumi.StringOutput) +func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { + return o.ToApplicationGatewayUrlConfigurationPtrOutputWithContext(context.Background()) } -// The version of the rule set type. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RuleSetVersion() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.RuleSetVersion }).(pulumi.StringOutput) +func (o ApplicationGatewayUrlConfigurationOutput) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayUrlConfiguration) *ApplicationGatewayUrlConfiguration { + return &v + }).(ApplicationGatewayUrlConfigurationPtrOutput) } -type ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput struct{ *pulumi.OutputState } +// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationOutput) ModifiedPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *string { return v.ModifiedPath }).(pulumi.StringPtrOutput) +} -func (ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfigurationResponse)(nil)).Elem() +// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationOutput) ModifiedQueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *string { return v.ModifiedQueryString }).(pulumi.StringPtrOutput) } -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { +// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. +func (o ApplicationGatewayUrlConfigurationOutput) Reroute() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfiguration) *bool { return v.Reroute }).(pulumi.BoolPtrOutput) +} + +type ApplicationGatewayUrlConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayUrlConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayUrlConfiguration)(nil)).Elem() +} + +func (o ApplicationGatewayUrlConfigurationPtrOutput) ToApplicationGatewayUrlConfigurationPtrOutput() ApplicationGatewayUrlConfigurationPtrOutput { return o } -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { +func (o ApplicationGatewayUrlConfigurationPtrOutput) ToApplicationGatewayUrlConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationPtrOutput { return o } -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Elem() ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) ApplicationGatewayWebApplicationFirewallConfigurationResponse { +func (o ApplicationGatewayUrlConfigurationPtrOutput) Elem() ApplicationGatewayUrlConfigurationOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) ApplicationGatewayUrlConfiguration { if v != nil { return *v } - var ret ApplicationGatewayWebApplicationFirewallConfigurationResponse + var ret ApplicationGatewayUrlConfiguration return ret - }).(ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) + }).(ApplicationGatewayUrlConfigurationOutput) } -// The disabled rule groups. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallDisabledRuleGroupResponse { +// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationPtrOutput) ModifiedPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *string { if v == nil { return nil } - return v.DisabledRuleGroups - }).(ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput) + return v.ModifiedPath + }).(pulumi.StringPtrOutput) } -// Whether the web application firewall is enabled or not. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { +// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationPtrOutput) ModifiedQueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *string { if v == nil { return nil } - return &v.Enabled - }).(pulumi.BoolPtrOutput) + return v.ModifiedQueryString + }).(pulumi.StringPtrOutput) } -// The exclusion list. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Exclusions() ApplicationGatewayFirewallExclusionResponseArrayOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallExclusionResponse { +// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. +func (o ApplicationGatewayUrlConfigurationPtrOutput) Reroute() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfiguration) *bool { if v == nil { return nil } - return v.Exclusions - }).(ApplicationGatewayFirewallExclusionResponseArrayOutput) + return v.Reroute + }).(pulumi.BoolPtrOutput) } -// Maximum file upload size in Mb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - if v == nil { - return nil - } - return v.FileUploadLimitInMb - }).(pulumi.IntPtrOutput) +// Url configuration of the Actions set in Application Gateway. +type ApplicationGatewayUrlConfigurationResponse struct { + // Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. + ModifiedPath *string `pulumi:"modifiedPath"` + // Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. + ModifiedQueryString *string `pulumi:"modifiedQueryString"` + // If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. + Reroute *bool `pulumi:"reroute"` } -// Web application firewall mode. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) FirewallMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { - if v == nil { - return nil - } - return &v.FirewallMode - }).(pulumi.StringPtrOutput) +// Url configuration of the Actions set in Application Gateway. +type ApplicationGatewayUrlConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayUrlConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlConfigurationResponse)(nil)).Elem() } -// Maximum request body size for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) MaxRequestBodySize() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySize - }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayUrlConfigurationResponseOutput) ToApplicationGatewayUrlConfigurationResponseOutput() ApplicationGatewayUrlConfigurationResponseOutput { + return o } -// Maximum request body size in Kb for WAF. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySizeInKb - }).(pulumi.IntPtrOutput) +func (o ApplicationGatewayUrlConfigurationResponseOutput) ToApplicationGatewayUrlConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationResponseOutput { + return o } -// Whether allow WAF to check request Body. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { - if v == nil { - return nil - } - return v.RequestBodyCheck - }).(pulumi.BoolPtrOutput) +// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationResponseOutput) ModifiedPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *string { return v.ModifiedPath }).(pulumi.StringPtrOutput) } -// The type of the web application firewall rule set. Possible values are: 'OWASP'. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RuleSetType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { - if v == nil { - return nil - } - return &v.RuleSetType - }).(pulumi.StringPtrOutput) +// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationResponseOutput) ModifiedQueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *string { return v.ModifiedQueryString }).(pulumi.StringPtrOutput) } -// The version of the rule set type. -func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RuleSetVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { - if v == nil { - return nil - } - return &v.RuleSetVersion - }).(pulumi.StringPtrOutput) +// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. +func (o ApplicationGatewayUrlConfigurationResponseOutput) Reroute() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlConfigurationResponse) *bool { return v.Reroute }).(pulumi.BoolPtrOutput) } -// Rule of type application. -type ApplicationRule struct { - // Description of the rule. - Description *string `pulumi:"description"` - // List of destination IP addresses or Service Tags. - DestinationAddresses []string `pulumi:"destinationAddresses"` - // List of FQDN Tags for this rule. - FqdnTags []string `pulumi:"fqdnTags"` - // Name of the rule. - Name *string `pulumi:"name"` - // Array of Application Protocols. - Protocols []FirewallPolicyRuleApplicationProtocol `pulumi:"protocols"` - // Rule Type. - // Expected value is 'ApplicationRule'. - RuleType string `pulumi:"ruleType"` - // List of source IP addresses for this rule. - SourceAddresses []string `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups []string `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule. - TargetFqdns []string `pulumi:"targetFqdns"` - // List of Urls for this rule condition. - TargetUrls []string `pulumi:"targetUrls"` - // Terminate TLS connections for this rule. - TerminateTLS *bool `pulumi:"terminateTLS"` - // List of destination azure web categories. - WebCategories []string `pulumi:"webCategories"` +type ApplicationGatewayUrlConfigurationResponsePtrOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayUrlConfigurationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayUrlConfigurationResponse)(nil)).Elem() } -// Rule condition of type application. -type ApplicationRuleCondition struct { - // Description of the rule condition. - Description *string `pulumi:"description"` - // List of destination IP addresses or Service Tags. - DestinationAddresses []string `pulumi:"destinationAddresses"` - // List of FQDN Tags for this rule condition. - FqdnTags []string `pulumi:"fqdnTags"` - // Name of the rule condition. - Name *string `pulumi:"name"` - // Array of Application Protocols. - Protocols []FirewallPolicyRuleConditionApplicationProtocol `pulumi:"protocols"` - // Rule Condition Type. - // Expected value is 'ApplicationRuleCondition'. - RuleConditionType string `pulumi:"ruleConditionType"` - // List of source IP addresses for this rule. - SourceAddresses []string `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups []string `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule condition. - TargetFqdns []string `pulumi:"targetFqdns"` +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ToApplicationGatewayUrlConfigurationResponsePtrOutput() ApplicationGatewayUrlConfigurationResponsePtrOutput { + return o } -// Rule condition of type application. -type ApplicationRuleConditionResponse struct { - // Description of the rule condition. - Description *string `pulumi:"description"` - // List of destination IP addresses or Service Tags. - DestinationAddresses []string `pulumi:"destinationAddresses"` - // List of FQDN Tags for this rule condition. - FqdnTags []string `pulumi:"fqdnTags"` - // Name of the rule condition. - Name *string `pulumi:"name"` - // Array of Application Protocols. - Protocols []FirewallPolicyRuleConditionApplicationProtocolResponse `pulumi:"protocols"` - // Rule Condition Type. - // Expected value is 'ApplicationRuleCondition'. - RuleConditionType string `pulumi:"ruleConditionType"` - // List of source IP addresses for this rule. - SourceAddresses []string `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups []string `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule condition. - TargetFqdns []string `pulumi:"targetFqdns"` +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ToApplicationGatewayUrlConfigurationResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayUrlConfigurationResponsePtrOutput { + return o } -// Rule of type application. -type ApplicationRuleResponse struct { - // Description of the rule. - Description *string `pulumi:"description"` - // List of destination IP addresses or Service Tags. - DestinationAddresses []string `pulumi:"destinationAddresses"` - // List of FQDN Tags for this rule. - FqdnTags []string `pulumi:"fqdnTags"` - // Name of the rule. - Name *string `pulumi:"name"` - // Array of Application Protocols. - Protocols []FirewallPolicyRuleApplicationProtocolResponse `pulumi:"protocols"` - // Rule Type. - // Expected value is 'ApplicationRule'. - RuleType string `pulumi:"ruleType"` - // List of source IP addresses for this rule. - SourceAddresses []string `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups []string `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule. - TargetFqdns []string `pulumi:"targetFqdns"` - // List of Urls for this rule condition. - TargetUrls []string `pulumi:"targetUrls"` - // Terminate TLS connections for this rule. - TerminateTLS *bool `pulumi:"terminateTLS"` - // List of destination azure web categories. - WebCategories []string `pulumi:"webCategories"` +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) Elem() ApplicationGatewayUrlConfigurationResponseOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) ApplicationGatewayUrlConfigurationResponse { + if v != nil { + return *v + } + var ret ApplicationGatewayUrlConfigurationResponse + return ret + }).(ApplicationGatewayUrlConfigurationResponseOutput) } -// An application security group in a resource group. -type ApplicationSecurityGroupType struct { +// Url path which user has provided for url rewrite. Null means no path will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ModifiedPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *string { + if v == nil { + return nil + } + return v.ModifiedPath + }).(pulumi.StringPtrOutput) +} + +// Query string which user has provided for url rewrite. Null means no query string will be updated. Default value is null. +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) ModifiedQueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *string { + if v == nil { + return nil + } + return v.ModifiedQueryString + }).(pulumi.StringPtrOutput) +} + +// If set as true, it will re-evaluate the url path map provided in path based request routing rules using modified path. Default value is false. +func (o ApplicationGatewayUrlConfigurationResponsePtrOutput) Reroute() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayUrlConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.Reroute + }).(pulumi.BoolPtrOutput) +} + +// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. +type ApplicationGatewayUrlPathMap struct { + // Default backend address pool resource of URL path map. + DefaultBackendAddressPool *SubResource `pulumi:"defaultBackendAddressPool"` + // Default backend http settings resource of URL path map. + DefaultBackendHttpSettings *SubResource `pulumi:"defaultBackendHttpSettings"` + // Default Load Distribution Policy resource of URL path map. + DefaultLoadDistributionPolicy *SubResource `pulumi:"defaultLoadDistributionPolicy"` + // Default redirect configuration resource of URL path map. + DefaultRedirectConfiguration *SubResource `pulumi:"defaultRedirectConfiguration"` + // Default Rewrite rule set resource of URL path map. + DefaultRewriteRuleSet *SubResource `pulumi:"defaultRewriteRuleSet"` // Resource ID. Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` + // Name of the URL path map that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Path rule of URL path map resource. + PathRules []ApplicationGatewayPathRule `pulumi:"pathRules"` } -// ApplicationSecurityGroupTypeInput is an input type that accepts ApplicationSecurityGroupTypeArgs and ApplicationSecurityGroupTypeOutput values. -// You can construct a concrete instance of `ApplicationSecurityGroupTypeInput` via: +// ApplicationGatewayUrlPathMapInput is an input type that accepts ApplicationGatewayUrlPathMap and ApplicationGatewayUrlPathMapOutput values. +// You can construct a concrete instance of `ApplicationGatewayUrlPathMapInput` via: // -// ApplicationSecurityGroupTypeArgs{...} -type ApplicationSecurityGroupTypeInput interface { +// ApplicationGatewayUrlPathMap{ "key": ApplicationGatewayUrlPathArgs{...} } +type ApplicationGatewayUrlPathMapInput interface { pulumi.Input - ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput - ToApplicationSecurityGroupTypeOutputWithContext(context.Context) ApplicationSecurityGroupTypeOutput + ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput + ToApplicationGatewayUrlPathMapOutputWithContext(context.Context) ApplicationGatewayUrlPathMapOutput } -// An application security group in a resource group. -type ApplicationSecurityGroupTypeArgs struct { +// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. +type ApplicationGatewayUrlPathMapArgs struct { + // Default backend address pool resource of URL path map. + DefaultBackendAddressPool SubResourcePtrInput `pulumi:"defaultBackendAddressPool"` + // Default backend http settings resource of URL path map. + DefaultBackendHttpSettings SubResourcePtrInput `pulumi:"defaultBackendHttpSettings"` + // Default Load Distribution Policy resource of URL path map. + DefaultLoadDistributionPolicy SubResourcePtrInput `pulumi:"defaultLoadDistributionPolicy"` + // Default redirect configuration resource of URL path map. + DefaultRedirectConfiguration SubResourcePtrInput `pulumi:"defaultRedirectConfiguration"` + // Default Rewrite rule set resource of URL path map. + DefaultRewriteRuleSet SubResourcePtrInput `pulumi:"defaultRewriteRuleSet"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` + // Name of the URL path map that is unique within an Application Gateway. + Name pulumi.StringPtrInput `pulumi:"name"` + // Path rule of URL path map resource. + PathRules ApplicationGatewayPathRuleArrayInput `pulumi:"pathRules"` } -func (ApplicationSecurityGroupTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationSecurityGroupType)(nil)).Elem() +func (ApplicationGatewayUrlPathMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlPathMap)(nil)).Elem() } -func (i ApplicationSecurityGroupTypeArgs) ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput { - return i.ToApplicationSecurityGroupTypeOutputWithContext(context.Background()) +func (i ApplicationGatewayUrlPathMapArgs) ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput { + return i.ToApplicationGatewayUrlPathMapOutputWithContext(context.Background()) } -func (i ApplicationSecurityGroupTypeArgs) ToApplicationSecurityGroupTypeOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationSecurityGroupTypeOutput) +func (i ApplicationGatewayUrlPathMapArgs) ToApplicationGatewayUrlPathMapOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlPathMapOutput) } -// ApplicationSecurityGroupTypeArrayInput is an input type that accepts ApplicationSecurityGroupTypeArray and ApplicationSecurityGroupTypeArrayOutput values. -// You can construct a concrete instance of `ApplicationSecurityGroupTypeArrayInput` via: +// ApplicationGatewayUrlPathMapArrayInput is an input type that accepts ApplicationGatewayUrlPathMapArray and ApplicationGatewayUrlPathMapArrayOutput values. +// You can construct a concrete instance of `ApplicationGatewayUrlPathMapArrayInput` via: // -// ApplicationSecurityGroupTypeArray{ ApplicationSecurityGroupTypeArgs{...} } -type ApplicationSecurityGroupTypeArrayInput interface { +// ApplicationGatewayUrlPathMapArray{ ApplicationGatewayUrlPathMapArgs{...} } +type ApplicationGatewayUrlPathMapArrayInput interface { pulumi.Input - ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput - ToApplicationSecurityGroupTypeArrayOutputWithContext(context.Context) ApplicationSecurityGroupTypeArrayOutput + ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput + ToApplicationGatewayUrlPathMapArrayOutputWithContext(context.Context) ApplicationGatewayUrlPathMapArrayOutput } -type ApplicationSecurityGroupTypeArray []ApplicationSecurityGroupTypeInput +type ApplicationGatewayUrlPathMapArray []ApplicationGatewayUrlPathMapInput -func (ApplicationSecurityGroupTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationSecurityGroupType)(nil)).Elem() +func (ApplicationGatewayUrlPathMapArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayUrlPathMap)(nil)).Elem() } -func (i ApplicationSecurityGroupTypeArray) ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput { - return i.ToApplicationSecurityGroupTypeArrayOutputWithContext(context.Background()) +func (i ApplicationGatewayUrlPathMapArray) ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput { + return i.ToApplicationGatewayUrlPathMapArrayOutputWithContext(context.Background()) } -func (i ApplicationSecurityGroupTypeArray) ToApplicationSecurityGroupTypeArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ApplicationSecurityGroupTypeArrayOutput) +func (i ApplicationGatewayUrlPathMapArray) ToApplicationGatewayUrlPathMapArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayUrlPathMapArrayOutput) } -// An application security group in a resource group. -type ApplicationSecurityGroupTypeOutput struct{ *pulumi.OutputState } +// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. +type ApplicationGatewayUrlPathMapOutput struct{ *pulumi.OutputState } -func (ApplicationSecurityGroupTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationSecurityGroupType)(nil)).Elem() +func (ApplicationGatewayUrlPathMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlPathMap)(nil)).Elem() } -func (o ApplicationSecurityGroupTypeOutput) ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput { +func (o ApplicationGatewayUrlPathMapOutput) ToApplicationGatewayUrlPathMapOutput() ApplicationGatewayUrlPathMapOutput { return o } -func (o ApplicationSecurityGroupTypeOutput) ToApplicationSecurityGroupTypeOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeOutput { +func (o ApplicationGatewayUrlPathMapOutput) ToApplicationGatewayUrlPathMapOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapOutput { return o } +// Default backend address pool resource of URL path map. +func (o ApplicationGatewayUrlPathMapOutput) DefaultBackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultBackendAddressPool }).(SubResourcePtrOutput) +} + +// Default backend http settings resource of URL path map. +func (o ApplicationGatewayUrlPathMapOutput) DefaultBackendHttpSettings() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultBackendHttpSettings }).(SubResourcePtrOutput) +} + +// Default Load Distribution Policy resource of URL path map. +func (o ApplicationGatewayUrlPathMapOutput) DefaultLoadDistributionPolicy() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultLoadDistributionPolicy }).(SubResourcePtrOutput) +} + +// Default redirect configuration resource of URL path map. +func (o ApplicationGatewayUrlPathMapOutput) DefaultRedirectConfiguration() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultRedirectConfiguration }).(SubResourcePtrOutput) +} + +// Default Rewrite rule set resource of URL path map. +func (o ApplicationGatewayUrlPathMapOutput) DefaultRewriteRuleSet() SubResourcePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *SubResource { return v.DefaultRewriteRuleSet }).(SubResourcePtrOutput) +} + // Resource ID. -func (o ApplicationSecurityGroupTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationSecurityGroupType) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayUrlPathMapOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Resource location. -func (o ApplicationSecurityGroupTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationSecurityGroupType) *string { return v.Location }).(pulumi.StringPtrOutput) +// Name of the URL path map that is unique within an Application Gateway. +func (o ApplicationGatewayUrlPathMapOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource tags. -func (o ApplicationSecurityGroupTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v ApplicationSecurityGroupType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// Path rule of URL path map resource. +func (o ApplicationGatewayUrlPathMapOutput) PathRules() ApplicationGatewayPathRuleArrayOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMap) []ApplicationGatewayPathRule { return v.PathRules }).(ApplicationGatewayPathRuleArrayOutput) } -type ApplicationSecurityGroupTypeArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayUrlPathMapArrayOutput struct{ *pulumi.OutputState } -func (ApplicationSecurityGroupTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationSecurityGroupType)(nil)).Elem() +func (ApplicationGatewayUrlPathMapArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayUrlPathMap)(nil)).Elem() } -func (o ApplicationSecurityGroupTypeArrayOutput) ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput { +func (o ApplicationGatewayUrlPathMapArrayOutput) ToApplicationGatewayUrlPathMapArrayOutput() ApplicationGatewayUrlPathMapArrayOutput { return o } -func (o ApplicationSecurityGroupTypeArrayOutput) ToApplicationSecurityGroupTypeArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeArrayOutput { +func (o ApplicationGatewayUrlPathMapArrayOutput) ToApplicationGatewayUrlPathMapArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapArrayOutput { return o } -func (o ApplicationSecurityGroupTypeArrayOutput) Index(i pulumi.IntInput) ApplicationSecurityGroupTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationSecurityGroupType { - return vs[0].([]ApplicationSecurityGroupType)[vs[1].(int)] - }).(ApplicationSecurityGroupTypeOutput) +func (o ApplicationGatewayUrlPathMapArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayUrlPathMapOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayUrlPathMap { + return vs[0].([]ApplicationGatewayUrlPathMap)[vs[1].(int)] + }).(ApplicationGatewayUrlPathMapOutput) } -// An application security group in a resource group. -type ApplicationSecurityGroupResponse struct { +// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. +type ApplicationGatewayUrlPathMapResponse struct { + // Default backend address pool resource of URL path map. + DefaultBackendAddressPool *SubResourceResponse `pulumi:"defaultBackendAddressPool"` + // Default backend http settings resource of URL path map. + DefaultBackendHttpSettings *SubResourceResponse `pulumi:"defaultBackendHttpSettings"` + // Default Load Distribution Policy resource of URL path map. + DefaultLoadDistributionPolicy *SubResourceResponse `pulumi:"defaultLoadDistributionPolicy"` + // Default redirect configuration resource of URL path map. + DefaultRedirectConfiguration *SubResourceResponse `pulumi:"defaultRedirectConfiguration"` + // Default Rewrite rule set resource of URL path map. + DefaultRewriteRuleSet *SubResourceResponse `pulumi:"defaultRewriteRuleSet"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // The provisioning state of the application security group resource. + // Name of the URL path map that is unique within an Application Gateway. + Name *string `pulumi:"name"` + // Path rule of URL path map resource. + PathRules []ApplicationGatewayPathRuleResponse `pulumi:"pathRules"` + // The provisioning state of the URL path map resource. ProvisioningState string `pulumi:"provisioningState"` - // The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. - ResourceGuid string `pulumi:"resourceGuid"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. + // Type of the resource. Type string `pulumi:"type"` } -// An application security group in a resource group. -type ApplicationSecurityGroupResponseOutput struct{ *pulumi.OutputState } +// UrlPathMaps give a url path to the backend mapping information for PathBasedRouting. +type ApplicationGatewayUrlPathMapResponseOutput struct{ *pulumi.OutputState } -func (ApplicationSecurityGroupResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ApplicationSecurityGroupResponse)(nil)).Elem() +func (ApplicationGatewayUrlPathMapResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayUrlPathMapResponse)(nil)).Elem() } -func (o ApplicationSecurityGroupResponseOutput) ToApplicationSecurityGroupResponseOutput() ApplicationSecurityGroupResponseOutput { +func (o ApplicationGatewayUrlPathMapResponseOutput) ToApplicationGatewayUrlPathMapResponseOutput() ApplicationGatewayUrlPathMapResponseOutput { return o } -func (o ApplicationSecurityGroupResponseOutput) ToApplicationSecurityGroupResponseOutputWithContext(ctx context.Context) ApplicationSecurityGroupResponseOutput { +func (o ApplicationGatewayUrlPathMapResponseOutput) ToApplicationGatewayUrlPathMapResponseOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapResponseOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ApplicationSecurityGroupResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Etag }).(pulumi.StringOutput) +// Default backend address pool resource of URL path map. +func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultBackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultBackendAddressPool }).(SubResourceResponsePtrOutput) } -// Resource ID. -func (o ApplicationSecurityGroupResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Default backend http settings resource of URL path map. +func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultBackendHttpSettings() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultBackendHttpSettings }).(SubResourceResponsePtrOutput) } -// Resource location. -func (o ApplicationSecurityGroupResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// Default Load Distribution Policy resource of URL path map. +func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultLoadDistributionPolicy() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { + return v.DefaultLoadDistributionPolicy + }).(SubResourceResponsePtrOutput) } -// Resource name. -func (o ApplicationSecurityGroupResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Name }).(pulumi.StringOutput) +// Default redirect configuration resource of URL path map. +func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultRedirectConfiguration() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { + return v.DefaultRedirectConfiguration + }).(SubResourceResponsePtrOutput) } -// The provisioning state of the application security group resource. -func (o ApplicationSecurityGroupResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Default Rewrite rule set resource of URL path map. +func (o ApplicationGatewayUrlPathMapResponseOutput) DefaultRewriteRuleSet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *SubResourceResponse { return v.DefaultRewriteRuleSet }).(SubResourceResponsePtrOutput) } -// The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. -func (o ApplicationSecurityGroupResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationGatewayUrlPathMapResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Resource tags. -func (o ApplicationSecurityGroupResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// Resource ID. +func (o ApplicationGatewayUrlPathMapResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Resource type. -func (o ApplicationSecurityGroupResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Type }).(pulumi.StringOutput) +// Name of the URL path map that is unique within an Application Gateway. +func (o ApplicationGatewayUrlPathMapResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -type ApplicationSecurityGroupResponseArrayOutput struct{ *pulumi.OutputState } +// Path rule of URL path map resource. +func (o ApplicationGatewayUrlPathMapResponseOutput) PathRules() ApplicationGatewayPathRuleResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) []ApplicationGatewayPathRuleResponse { return v.PathRules }).(ApplicationGatewayPathRuleResponseArrayOutput) +} -func (ApplicationSecurityGroupResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ApplicationSecurityGroupResponse)(nil)).Elem() +// The provisioning state of the URL path map resource. +func (o ApplicationGatewayUrlPathMapResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (o ApplicationSecurityGroupResponseArrayOutput) ToApplicationSecurityGroupResponseArrayOutput() ApplicationSecurityGroupResponseArrayOutput { +// Type of the resource. +func (o ApplicationGatewayUrlPathMapResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayUrlPathMapResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ApplicationGatewayUrlPathMapResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayUrlPathMapResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationGatewayUrlPathMapResponse)(nil)).Elem() +} + +func (o ApplicationGatewayUrlPathMapResponseArrayOutput) ToApplicationGatewayUrlPathMapResponseArrayOutput() ApplicationGatewayUrlPathMapResponseArrayOutput { return o } -func (o ApplicationSecurityGroupResponseArrayOutput) ToApplicationSecurityGroupResponseArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupResponseArrayOutput { +func (o ApplicationGatewayUrlPathMapResponseArrayOutput) ToApplicationGatewayUrlPathMapResponseArrayOutputWithContext(ctx context.Context) ApplicationGatewayUrlPathMapResponseArrayOutput { return o } -func (o ApplicationSecurityGroupResponseArrayOutput) Index(i pulumi.IntInput) ApplicationSecurityGroupResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationSecurityGroupResponse { - return vs[0].([]ApplicationSecurityGroupResponse)[vs[1].(int)] - }).(ApplicationSecurityGroupResponseOutput) +func (o ApplicationGatewayUrlPathMapResponseArrayOutput) Index(i pulumi.IntInput) ApplicationGatewayUrlPathMapResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationGatewayUrlPathMapResponse { + return vs[0].([]ApplicationGatewayUrlPathMapResponse)[vs[1].(int)] + }).(ApplicationGatewayUrlPathMapResponseOutput) } -// Properties of an application rule. -type AzureFirewallApplicationRule struct { - // Description of the rule. - Description *string `pulumi:"description"` - // List of FQDN Tags for this rule. - FqdnTags []string `pulumi:"fqdnTags"` - // Name of the application rule. - Name *string `pulumi:"name"` - // Array of ApplicationRuleProtocols. - Protocols []AzureFirewallApplicationRuleProtocol `pulumi:"protocols"` - // List of source IP addresses for this rule. - SourceAddresses []string `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups []string `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule. - TargetFqdns []string `pulumi:"targetFqdns"` +// Application gateway web application firewall configuration. +type ApplicationGatewayWebApplicationFirewallConfiguration struct { + // The disabled rule groups. + DisabledRuleGroups []ApplicationGatewayFirewallDisabledRuleGroup `pulumi:"disabledRuleGroups"` + // Whether the web application firewall is enabled or not. + Enabled bool `pulumi:"enabled"` + // The exclusion list. + Exclusions []ApplicationGatewayFirewallExclusion `pulumi:"exclusions"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` + // Web application firewall mode. + FirewallMode string `pulumi:"firewallMode"` + // Maximum request body size for WAF. + MaxRequestBodySize *int `pulumi:"maxRequestBodySize"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` + // Whether allow WAF to check request Body. + RequestBodyCheck *bool `pulumi:"requestBodyCheck"` + // The type of the web application firewall rule set. Possible values are: 'OWASP'. + RuleSetType string `pulumi:"ruleSetType"` + // The version of the rule set type. + RuleSetVersion string `pulumi:"ruleSetVersion"` } -// AzureFirewallApplicationRuleInput is an input type that accepts AzureFirewallApplicationRuleArgs and AzureFirewallApplicationRuleOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleInput` via: +// ApplicationGatewayWebApplicationFirewallConfigurationInput is an input type that accepts ApplicationGatewayWebApplicationFirewallConfigurationArgs and ApplicationGatewayWebApplicationFirewallConfigurationOutput values. +// You can construct a concrete instance of `ApplicationGatewayWebApplicationFirewallConfigurationInput` via: // -// AzureFirewallApplicationRuleArgs{...} -type AzureFirewallApplicationRuleInput interface { +// ApplicationGatewayWebApplicationFirewallConfigurationArgs{...} +type ApplicationGatewayWebApplicationFirewallConfigurationInput interface { pulumi.Input - ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput - ToAzureFirewallApplicationRuleOutputWithContext(context.Context) AzureFirewallApplicationRuleOutput + ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput + ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput } -// Properties of an application rule. -type AzureFirewallApplicationRuleArgs struct { - // Description of the rule. - Description pulumi.StringPtrInput `pulumi:"description"` - // List of FQDN Tags for this rule. - FqdnTags pulumi.StringArrayInput `pulumi:"fqdnTags"` - // Name of the application rule. - Name pulumi.StringPtrInput `pulumi:"name"` - // Array of ApplicationRuleProtocols. - Protocols AzureFirewallApplicationRuleProtocolArrayInput `pulumi:"protocols"` - // List of source IP addresses for this rule. - SourceAddresses pulumi.StringArrayInput `pulumi:"sourceAddresses"` - // List of source IpGroups for this rule. - SourceIpGroups pulumi.StringArrayInput `pulumi:"sourceIpGroups"` - // List of FQDNs for this rule. - TargetFqdns pulumi.StringArrayInput `pulumi:"targetFqdns"` +// Application gateway web application firewall configuration. +type ApplicationGatewayWebApplicationFirewallConfigurationArgs struct { + // The disabled rule groups. + DisabledRuleGroups ApplicationGatewayFirewallDisabledRuleGroupArrayInput `pulumi:"disabledRuleGroups"` + // Whether the web application firewall is enabled or not. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // The exclusion list. + Exclusions ApplicationGatewayFirewallExclusionArrayInput `pulumi:"exclusions"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb pulumi.IntPtrInput `pulumi:"fileUploadLimitInMb"` + // Web application firewall mode. + FirewallMode pulumi.StringInput `pulumi:"firewallMode"` + // Maximum request body size for WAF. + MaxRequestBodySize pulumi.IntPtrInput `pulumi:"maxRequestBodySize"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb pulumi.IntPtrInput `pulumi:"maxRequestBodySizeInKb"` + // Whether allow WAF to check request Body. + RequestBodyCheck pulumi.BoolPtrInput `pulumi:"requestBodyCheck"` + // The type of the web application firewall rule set. Possible values are: 'OWASP'. + RuleSetType pulumi.StringInput `pulumi:"ruleSetType"` + // The version of the rule set type. + RuleSetVersion pulumi.StringInput `pulumi:"ruleSetVersion"` } -func (AzureFirewallApplicationRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRule)(nil)).Elem() +func (ApplicationGatewayWebApplicationFirewallConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() } -func (i AzureFirewallApplicationRuleArgs) ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput { - return i.ToAzureFirewallApplicationRuleOutputWithContext(context.Background()) +func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput { + return i.ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(context.Background()) } -func (i AzureFirewallApplicationRuleArgs) ToAzureFirewallApplicationRuleOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleOutput) +func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationOutput) } -// AzureFirewallApplicationRuleArrayInput is an input type that accepts AzureFirewallApplicationRuleArray and AzureFirewallApplicationRuleArrayOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleArrayInput` via: +func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return i.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ApplicationGatewayWebApplicationFirewallConfigurationArgs) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationOutput).ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx) +} + +// ApplicationGatewayWebApplicationFirewallConfigurationPtrInput is an input type that accepts ApplicationGatewayWebApplicationFirewallConfigurationArgs, ApplicationGatewayWebApplicationFirewallConfigurationPtr and ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplicationGatewayWebApplicationFirewallConfigurationPtrInput` via: // -// AzureFirewallApplicationRuleArray{ AzureFirewallApplicationRuleArgs{...} } -type AzureFirewallApplicationRuleArrayInput interface { +// ApplicationGatewayWebApplicationFirewallConfigurationArgs{...} +// +// or: +// +// nil +type ApplicationGatewayWebApplicationFirewallConfigurationPtrInput interface { pulumi.Input - ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput - ToAzureFirewallApplicationRuleArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleArrayOutput + ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput + ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput } -type AzureFirewallApplicationRuleArray []AzureFirewallApplicationRuleInput +type applicationGatewayWebApplicationFirewallConfigurationPtrType ApplicationGatewayWebApplicationFirewallConfigurationArgs -func (AzureFirewallApplicationRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRule)(nil)).Elem() +func ApplicationGatewayWebApplicationFirewallConfigurationPtr(v *ApplicationGatewayWebApplicationFirewallConfigurationArgs) ApplicationGatewayWebApplicationFirewallConfigurationPtrInput { + return (*applicationGatewayWebApplicationFirewallConfigurationPtrType)(v) } -func (i AzureFirewallApplicationRuleArray) ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput { - return i.ToAzureFirewallApplicationRuleArrayOutputWithContext(context.Background()) +func (*applicationGatewayWebApplicationFirewallConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() } -func (i AzureFirewallApplicationRuleArray) ToAzureFirewallApplicationRuleArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleArrayOutput) +func (i *applicationGatewayWebApplicationFirewallConfigurationPtrType) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return i.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) } -// Properties of an application rule. -type AzureFirewallApplicationRuleOutput struct{ *pulumi.OutputState } - -func (AzureFirewallApplicationRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRule)(nil)).Elem() +func (i *applicationGatewayWebApplicationFirewallConfigurationPtrType) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) } -func (o AzureFirewallApplicationRuleOutput) ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput { - return o +// Application gateway web application firewall configuration. +type ApplicationGatewayWebApplicationFirewallConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplicationGatewayWebApplicationFirewallConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() } -func (o AzureFirewallApplicationRuleOutput) ToAzureFirewallApplicationRuleOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleOutput { +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationOutput() ApplicationGatewayWebApplicationFirewallConfigurationOutput { return o } -// Description of the rule. -func (o AzureFirewallApplicationRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationOutput { + return o } -// List of FQDN Tags for this rule. -func (o AzureFirewallApplicationRuleOutput) FqdnTags() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.FqdnTags }).(pulumi.StringArrayOutput) +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return o.ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(context.Background()) } -// Name of the application rule. -func (o AzureFirewallApplicationRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplicationGatewayWebApplicationFirewallConfiguration) *ApplicationGatewayWebApplicationFirewallConfiguration { + return &v + }).(ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) } -// Array of ApplicationRuleProtocols. -func (o AzureFirewallApplicationRuleOutput) Protocols() AzureFirewallApplicationRuleProtocolArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) []AzureFirewallApplicationRuleProtocol { return v.Protocols }).(AzureFirewallApplicationRuleProtocolArrayOutput) +// The disabled rule groups. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupArrayOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallDisabledRuleGroup { + return v.DisabledRuleGroups + }).(ApplicationGatewayFirewallDisabledRuleGroupArrayOutput) } -// List of source IP addresses for this rule. -func (o AzureFirewallApplicationRuleOutput) SourceAddresses() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.SourceAddresses }).(pulumi.StringArrayOutput) +// Whether the web application firewall is enabled or not. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) bool { return v.Enabled }).(pulumi.BoolOutput) } -// List of source IpGroups for this rule. -func (o AzureFirewallApplicationRuleOutput) SourceIpGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.SourceIpGroups }).(pulumi.StringArrayOutput) +// The exclusion list. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) Exclusions() ApplicationGatewayFirewallExclusionArrayOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallExclusion { + return v.Exclusions + }).(ApplicationGatewayFirewallExclusionArrayOutput) } -// List of FQDNs for this rule. -func (o AzureFirewallApplicationRuleOutput) TargetFqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.TargetFqdns }).(pulumi.StringArrayOutput) +// Maximum file upload size in Mb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) } -type AzureFirewallApplicationRuleArrayOutput struct{ *pulumi.OutputState } - -func (AzureFirewallApplicationRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRule)(nil)).Elem() +// Web application firewall mode. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) FirewallMode() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.FirewallMode }).(pulumi.StringOutput) } -func (o AzureFirewallApplicationRuleArrayOutput) ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput { - return o +// Maximum request body size for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) MaxRequestBodySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.MaxRequestBodySize }).(pulumi.IntPtrOutput) } -func (o AzureFirewallApplicationRuleArrayOutput) ToAzureFirewallApplicationRuleArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleArrayOutput { - return o +// Maximum request body size in Kb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) } -func (o AzureFirewallApplicationRuleArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRule { - return vs[0].([]AzureFirewallApplicationRule)[vs[1].(int)] - }).(AzureFirewallApplicationRuleOutput) +// Whether allow WAF to check request Body. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) } -// Application rule collection resource. -type AzureFirewallApplicationRuleCollection struct { - // The action type of a rule collection. - Action *AzureFirewallRCAction `pulumi:"action"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Priority of the application rule collection resource. - Priority *int `pulumi:"priority"` - // Collection of rules used by a application rule collection. - Rules []AzureFirewallApplicationRule `pulumi:"rules"` +// The type of the web application firewall rule set. Possible values are: 'OWASP'. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RuleSetType() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.RuleSetType }).(pulumi.StringOutput) } -// AzureFirewallApplicationRuleCollectionInput is an input type that accepts AzureFirewallApplicationRuleCollectionArgs and AzureFirewallApplicationRuleCollectionOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleCollectionInput` via: -// -// AzureFirewallApplicationRuleCollectionArgs{...} -type AzureFirewallApplicationRuleCollectionInput interface { - pulumi.Input - - ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput - ToAzureFirewallApplicationRuleCollectionOutputWithContext(context.Context) AzureFirewallApplicationRuleCollectionOutput +// The version of the rule set type. +func (o ApplicationGatewayWebApplicationFirewallConfigurationOutput) RuleSetVersion() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfiguration) string { return v.RuleSetVersion }).(pulumi.StringOutput) } -// Application rule collection resource. -type AzureFirewallApplicationRuleCollectionArgs struct { - // The action type of a rule collection. - Action AzureFirewallRCActionPtrInput `pulumi:"action"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // Priority of the application rule collection resource. - Priority pulumi.IntPtrInput `pulumi:"priority"` - // Collection of rules used by a application rule collection. - Rules AzureFirewallApplicationRuleArrayInput `pulumi:"rules"` -} +type ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput struct{ *pulumi.OutputState } -func (AzureFirewallApplicationRuleCollectionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleCollection)(nil)).Elem() +func (ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfiguration)(nil)).Elem() } -func (i AzureFirewallApplicationRuleCollectionArgs) ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput { - return i.ToAzureFirewallApplicationRuleCollectionOutputWithContext(context.Background()) +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return o } -func (i AzureFirewallApplicationRuleCollectionArgs) ToAzureFirewallApplicationRuleCollectionOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleCollectionOutput) +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationPtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput { + return o } -// AzureFirewallApplicationRuleCollectionArrayInput is an input type that accepts AzureFirewallApplicationRuleCollectionArray and AzureFirewallApplicationRuleCollectionArrayOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleCollectionArrayInput` via: -// -// AzureFirewallApplicationRuleCollectionArray{ AzureFirewallApplicationRuleCollectionArgs{...} } -type AzureFirewallApplicationRuleCollectionArrayInput interface { - pulumi.Input - - ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput - ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleCollectionArrayOutput +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Elem() ApplicationGatewayWebApplicationFirewallConfigurationOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) ApplicationGatewayWebApplicationFirewallConfiguration { + if v != nil { + return *v + } + var ret ApplicationGatewayWebApplicationFirewallConfiguration + return ret + }).(ApplicationGatewayWebApplicationFirewallConfigurationOutput) } -type AzureFirewallApplicationRuleCollectionArray []AzureFirewallApplicationRuleCollectionInput - -func (AzureFirewallApplicationRuleCollectionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollection)(nil)).Elem() +// The disabled rule groups. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallDisabledRuleGroup { + if v == nil { + return nil + } + return v.DisabledRuleGroups + }).(ApplicationGatewayFirewallDisabledRuleGroupArrayOutput) } -func (i AzureFirewallApplicationRuleCollectionArray) ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput { - return i.ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(context.Background()) +// Whether the web application firewall is enabled or not. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -func (i AzureFirewallApplicationRuleCollectionArray) ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleCollectionArrayOutput) +// The exclusion list. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) Exclusions() ApplicationGatewayFirewallExclusionArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) []ApplicationGatewayFirewallExclusion { + if v == nil { + return nil + } + return v.Exclusions + }).(ApplicationGatewayFirewallExclusionArrayOutput) } -// Application rule collection resource. -type AzureFirewallApplicationRuleCollectionOutput struct{ *pulumi.OutputState } - -func (AzureFirewallApplicationRuleCollectionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleCollection)(nil)).Elem() +// Maximum file upload size in Mb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { + if v == nil { + return nil + } + return v.FileUploadLimitInMb + }).(pulumi.IntPtrOutput) } -func (o AzureFirewallApplicationRuleCollectionOutput) ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput { - return o +// Web application firewall mode. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) FirewallMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { + if v == nil { + return nil + } + return &v.FirewallMode + }).(pulumi.StringPtrOutput) } -func (o AzureFirewallApplicationRuleCollectionOutput) ToAzureFirewallApplicationRuleCollectionOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionOutput { - return o +// Maximum request body size for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) MaxRequestBodySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySize + }).(pulumi.IntPtrOutput) } -// The action type of a rule collection. -func (o AzureFirewallApplicationRuleCollectionOutput) Action() AzureFirewallRCActionPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *AzureFirewallRCAction { return v.Action }).(AzureFirewallRCActionPtrOutput) +// Maximum request body size in Kb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySizeInKb + }).(pulumi.IntPtrOutput) } -// Resource ID. -func (o AzureFirewallApplicationRuleCollectionOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *string { return v.Id }).(pulumi.StringPtrOutput) +// Whether allow WAF to check request Body. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *bool { + if v == nil { + return nil + } + return v.RequestBodyCheck + }).(pulumi.BoolPtrOutput) } -// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. -func (o AzureFirewallApplicationRuleCollectionOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *string { return v.Name }).(pulumi.StringPtrOutput) +// The type of the web application firewall rule set. Possible values are: 'OWASP'. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RuleSetType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { + if v == nil { + return nil + } + return &v.RuleSetType + }).(pulumi.StringPtrOutput) } -// Priority of the application rule collection resource. -func (o AzureFirewallApplicationRuleCollectionOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *int { return v.Priority }).(pulumi.IntPtrOutput) +// The version of the rule set type. +func (o ApplicationGatewayWebApplicationFirewallConfigurationPtrOutput) RuleSetVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfiguration) *string { + if v == nil { + return nil + } + return &v.RuleSetVersion + }).(pulumi.StringPtrOutput) } -// Collection of rules used by a application rule collection. -func (o AzureFirewallApplicationRuleCollectionOutput) Rules() AzureFirewallApplicationRuleArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) []AzureFirewallApplicationRule { return v.Rules }).(AzureFirewallApplicationRuleArrayOutput) +// Application gateway web application firewall configuration. +type ApplicationGatewayWebApplicationFirewallConfigurationResponse struct { + // The disabled rule groups. + DisabledRuleGroups []ApplicationGatewayFirewallDisabledRuleGroupResponse `pulumi:"disabledRuleGroups"` + // Whether the web application firewall is enabled or not. + Enabled bool `pulumi:"enabled"` + // The exclusion list. + Exclusions []ApplicationGatewayFirewallExclusionResponse `pulumi:"exclusions"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` + // Web application firewall mode. + FirewallMode string `pulumi:"firewallMode"` + // Maximum request body size for WAF. + MaxRequestBodySize *int `pulumi:"maxRequestBodySize"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` + // Whether allow WAF to check request Body. + RequestBodyCheck *bool `pulumi:"requestBodyCheck"` + // The type of the web application firewall rule set. Possible values are: 'OWASP'. + RuleSetType string `pulumi:"ruleSetType"` + // The version of the rule set type. + RuleSetVersion string `pulumi:"ruleSetVersion"` } -type AzureFirewallApplicationRuleCollectionArrayOutput struct{ *pulumi.OutputState } +// Application gateway web application firewall configuration. +type ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput struct{ *pulumi.OutputState } -func (AzureFirewallApplicationRuleCollectionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollection)(nil)).Elem() +func (ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationGatewayWebApplicationFirewallConfigurationResponse)(nil)).Elem() } -func (o AzureFirewallApplicationRuleCollectionArrayOutput) ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput { +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponseOutput() ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { return o } -func (o AzureFirewallApplicationRuleCollectionArrayOutput) ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionArrayOutput { +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponseOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { return o } -func (o AzureFirewallApplicationRuleCollectionArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleCollectionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleCollection { - return vs[0].([]AzureFirewallApplicationRuleCollection)[vs[1].(int)] - }).(AzureFirewallApplicationRuleCollectionOutput) -} - -// Application rule collection resource. -type AzureFirewallApplicationRuleCollectionResponse struct { - // The action type of a rule collection. - Action *AzureFirewallRCActionResponse `pulumi:"action"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Priority of the application rule collection resource. - Priority *int `pulumi:"priority"` - // The provisioning state of the application rule collection resource. - ProvisioningState string `pulumi:"provisioningState"` - // Collection of rules used by a application rule collection. - Rules []AzureFirewallApplicationRuleResponse `pulumi:"rules"` -} - -// Application rule collection resource. -type AzureFirewallApplicationRuleCollectionResponseOutput struct{ *pulumi.OutputState } - -func (AzureFirewallApplicationRuleCollectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleCollectionResponse)(nil)).Elem() +// The disabled rule groups. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallDisabledRuleGroupResponse { + return v.DisabledRuleGroups + }).(ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput) } -func (o AzureFirewallApplicationRuleCollectionResponseOutput) ToAzureFirewallApplicationRuleCollectionResponseOutput() AzureFirewallApplicationRuleCollectionResponseOutput { - return o +// Whether the web application firewall is enabled or not. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) bool { return v.Enabled }).(pulumi.BoolOutput) } -func (o AzureFirewallApplicationRuleCollectionResponseOutput) ToAzureFirewallApplicationRuleCollectionResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionResponseOutput { - return o +// The exclusion list. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) Exclusions() ApplicationGatewayFirewallExclusionResponseArrayOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallExclusionResponse { + return v.Exclusions + }).(ApplicationGatewayFirewallExclusionResponseArrayOutput) } -// The action type of a rule collection. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Action() AzureFirewallRCActionResponsePtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *AzureFirewallRCActionResponse { return v.Action }).(AzureFirewallRCActionResponsePtrOutput) +// Maximum file upload size in Mb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + return v.FileUploadLimitInMb + }).(pulumi.IntPtrOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) string { return v.Etag }).(pulumi.StringOutput) +// Web application firewall mode. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) FirewallMode() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.FirewallMode }).(pulumi.StringOutput) } -// Resource ID. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Maximum request body size for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) MaxRequestBodySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + return v.MaxRequestBodySize + }).(pulumi.IntPtrOutput) } -// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Maximum request body size in Kb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + return v.MaxRequestBodySizeInKb + }).(pulumi.IntPtrOutput) } -// Priority of the application rule collection resource. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +// Whether allow WAF to check request Body. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) } -// The provisioning state of the application rule collection resource. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// The type of the web application firewall rule set. Possible values are: 'OWASP'. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RuleSetType() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.RuleSetType }).(pulumi.StringOutput) } -// Collection of rules used by a application rule collection. -func (o AzureFirewallApplicationRuleCollectionResponseOutput) Rules() AzureFirewallApplicationRuleResponseArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) []AzureFirewallApplicationRuleResponse { - return v.Rules - }).(AzureFirewallApplicationRuleResponseArrayOutput) +// The version of the rule set type. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) RuleSetVersion() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationGatewayWebApplicationFirewallConfigurationResponse) string { return v.RuleSetVersion }).(pulumi.StringOutput) } -type AzureFirewallApplicationRuleCollectionResponseArrayOutput struct{ *pulumi.OutputState } +type ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput struct{ *pulumi.OutputState } -func (AzureFirewallApplicationRuleCollectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollectionResponse)(nil)).Elem() +func (ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationGatewayWebApplicationFirewallConfigurationResponse)(nil)).Elem() } -func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) ToAzureFirewallApplicationRuleCollectionResponseArrayOutput() AzureFirewallApplicationRuleCollectionResponseArrayOutput { +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput() ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { return o } -func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) ToAzureFirewallApplicationRuleCollectionResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionResponseArrayOutput { +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) ToApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutputWithContext(ctx context.Context) ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput { return o } -func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleCollectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleCollectionResponse { - return vs[0].([]AzureFirewallApplicationRuleCollectionResponse)[vs[1].(int)] - }).(AzureFirewallApplicationRuleCollectionResponseOutput) +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Elem() ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) ApplicationGatewayWebApplicationFirewallConfigurationResponse { + if v != nil { + return *v + } + var ret ApplicationGatewayWebApplicationFirewallConfigurationResponse + return ret + }).(ApplicationGatewayWebApplicationFirewallConfigurationResponseOutput) } -// Properties of the application rule protocol. -type AzureFirewallApplicationRuleProtocol struct { - // Port number for the protocol, cannot be greater than 64000. This field is optional. - Port *int `pulumi:"port"` - // Protocol type. - ProtocolType *string `pulumi:"protocolType"` +// The disabled rule groups. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) DisabledRuleGroups() ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallDisabledRuleGroupResponse { + if v == nil { + return nil + } + return v.DisabledRuleGroups + }).(ApplicationGatewayFirewallDisabledRuleGroupResponseArrayOutput) } -// AzureFirewallApplicationRuleProtocolInput is an input type that accepts AzureFirewallApplicationRuleProtocolArgs and AzureFirewallApplicationRuleProtocolOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleProtocolInput` via: -// -// AzureFirewallApplicationRuleProtocolArgs{...} -type AzureFirewallApplicationRuleProtocolInput interface { - pulumi.Input +// Whether the web application firewall is enabled or not. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} - ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput - ToAzureFirewallApplicationRuleProtocolOutputWithContext(context.Context) AzureFirewallApplicationRuleProtocolOutput +// The exclusion list. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) Exclusions() ApplicationGatewayFirewallExclusionResponseArrayOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) []ApplicationGatewayFirewallExclusionResponse { + if v == nil { + return nil + } + return v.Exclusions + }).(ApplicationGatewayFirewallExclusionResponseArrayOutput) } -// Properties of the application rule protocol. -type AzureFirewallApplicationRuleProtocolArgs struct { - // Port number for the protocol, cannot be greater than 64000. This field is optional. - Port pulumi.IntPtrInput `pulumi:"port"` - // Protocol type. - ProtocolType pulumi.StringPtrInput `pulumi:"protocolType"` +// Maximum file upload size in Mb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + if v == nil { + return nil + } + return v.FileUploadLimitInMb + }).(pulumi.IntPtrOutput) } -func (AzureFirewallApplicationRuleProtocolArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleProtocol)(nil)).Elem() +// Web application firewall mode. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) FirewallMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { + if v == nil { + return nil + } + return &v.FirewallMode + }).(pulumi.StringPtrOutput) } -func (i AzureFirewallApplicationRuleProtocolArgs) ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput { - return i.ToAzureFirewallApplicationRuleProtocolOutputWithContext(context.Background()) +// Maximum request body size for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) MaxRequestBodySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySize + }).(pulumi.IntPtrOutput) } -func (i AzureFirewallApplicationRuleProtocolArgs) ToAzureFirewallApplicationRuleProtocolOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleProtocolOutput) +// Maximum request body size in Kb for WAF. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySizeInKb + }).(pulumi.IntPtrOutput) } -// AzureFirewallApplicationRuleProtocolArrayInput is an input type that accepts AzureFirewallApplicationRuleProtocolArray and AzureFirewallApplicationRuleProtocolArrayOutput values. -// You can construct a concrete instance of `AzureFirewallApplicationRuleProtocolArrayInput` via: +// Whether allow WAF to check request Body. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *bool { + if v == nil { + return nil + } + return v.RequestBodyCheck + }).(pulumi.BoolPtrOutput) +} + +// The type of the web application firewall rule set. Possible values are: 'OWASP'. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RuleSetType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { + if v == nil { + return nil + } + return &v.RuleSetType + }).(pulumi.StringPtrOutput) +} + +// The version of the rule set type. +func (o ApplicationGatewayWebApplicationFirewallConfigurationResponsePtrOutput) RuleSetVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationGatewayWebApplicationFirewallConfigurationResponse) *string { + if v == nil { + return nil + } + return &v.RuleSetVersion + }).(pulumi.StringPtrOutput) +} + +// Rule of type application. +type ApplicationRule struct { + // Description of the rule. + Description *string `pulumi:"description"` + // List of destination IP addresses or Service Tags. + DestinationAddresses []string `pulumi:"destinationAddresses"` + // List of FQDN Tags for this rule. + FqdnTags []string `pulumi:"fqdnTags"` + // List of HTTP/S headers to insert. + HttpHeadersToInsert []FirewallPolicyHttpHeaderToInsert `pulumi:"httpHeadersToInsert"` + // Name of the rule. + Name *string `pulumi:"name"` + // Array of Application Protocols. + Protocols []FirewallPolicyRuleApplicationProtocol `pulumi:"protocols"` + // Rule Type. + // Expected value is 'ApplicationRule'. + RuleType string `pulumi:"ruleType"` + // List of source IP addresses for this rule. + SourceAddresses []string `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups []string `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule. + TargetFqdns []string `pulumi:"targetFqdns"` + // List of Urls for this rule condition. + TargetUrls []string `pulumi:"targetUrls"` + // Terminate TLS connections for this rule. + TerminateTLS *bool `pulumi:"terminateTLS"` + // List of destination azure web categories. + WebCategories []string `pulumi:"webCategories"` +} + +// Rule condition of type application. +type ApplicationRuleCondition struct { + // Description of the rule condition. + Description *string `pulumi:"description"` + // List of destination IP addresses or Service Tags. + DestinationAddresses []string `pulumi:"destinationAddresses"` + // List of FQDN Tags for this rule condition. + FqdnTags []string `pulumi:"fqdnTags"` + // Name of the rule condition. + Name *string `pulumi:"name"` + // Array of Application Protocols. + Protocols []FirewallPolicyRuleConditionApplicationProtocol `pulumi:"protocols"` + // Rule Condition Type. + // Expected value is 'ApplicationRuleCondition'. + RuleConditionType string `pulumi:"ruleConditionType"` + // List of source IP addresses for this rule. + SourceAddresses []string `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups []string `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule condition. + TargetFqdns []string `pulumi:"targetFqdns"` +} + +// Rule condition of type application. +type ApplicationRuleConditionResponse struct { + // Description of the rule condition. + Description *string `pulumi:"description"` + // List of destination IP addresses or Service Tags. + DestinationAddresses []string `pulumi:"destinationAddresses"` + // List of FQDN Tags for this rule condition. + FqdnTags []string `pulumi:"fqdnTags"` + // Name of the rule condition. + Name *string `pulumi:"name"` + // Array of Application Protocols. + Protocols []FirewallPolicyRuleConditionApplicationProtocolResponse `pulumi:"protocols"` + // Rule Condition Type. + // Expected value is 'ApplicationRuleCondition'. + RuleConditionType string `pulumi:"ruleConditionType"` + // List of source IP addresses for this rule. + SourceAddresses []string `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups []string `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule condition. + TargetFqdns []string `pulumi:"targetFqdns"` +} + +// Rule of type application. +type ApplicationRuleResponse struct { + // Description of the rule. + Description *string `pulumi:"description"` + // List of destination IP addresses or Service Tags. + DestinationAddresses []string `pulumi:"destinationAddresses"` + // List of FQDN Tags for this rule. + FqdnTags []string `pulumi:"fqdnTags"` + // List of HTTP/S headers to insert. + HttpHeadersToInsert []FirewallPolicyHttpHeaderToInsertResponse `pulumi:"httpHeadersToInsert"` + // Name of the rule. + Name *string `pulumi:"name"` + // Array of Application Protocols. + Protocols []FirewallPolicyRuleApplicationProtocolResponse `pulumi:"protocols"` + // Rule Type. + // Expected value is 'ApplicationRule'. + RuleType string `pulumi:"ruleType"` + // List of source IP addresses for this rule. + SourceAddresses []string `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups []string `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule. + TargetFqdns []string `pulumi:"targetFqdns"` + // List of Urls for this rule condition. + TargetUrls []string `pulumi:"targetUrls"` + // Terminate TLS connections for this rule. + TerminateTLS *bool `pulumi:"terminateTLS"` + // List of destination azure web categories. + WebCategories []string `pulumi:"webCategories"` +} + +// An application security group in a resource group. +type ApplicationSecurityGroupType struct { + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` +} + +// ApplicationSecurityGroupTypeInput is an input type that accepts ApplicationSecurityGroupTypeArgs and ApplicationSecurityGroupTypeOutput values. +// You can construct a concrete instance of `ApplicationSecurityGroupTypeInput` via: // -// AzureFirewallApplicationRuleProtocolArray{ AzureFirewallApplicationRuleProtocolArgs{...} } -type AzureFirewallApplicationRuleProtocolArrayInput interface { +// ApplicationSecurityGroupTypeArgs{...} +type ApplicationSecurityGroupTypeInput interface { pulumi.Input - ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput - ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleProtocolArrayOutput + ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput + ToApplicationSecurityGroupTypeOutputWithContext(context.Context) ApplicationSecurityGroupTypeOutput } -type AzureFirewallApplicationRuleProtocolArray []AzureFirewallApplicationRuleProtocolInput +// An application security group in a resource group. +type ApplicationSecurityGroupTypeArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` +} -func (AzureFirewallApplicationRuleProtocolArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocol)(nil)).Elem() +func (ApplicationSecurityGroupTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationSecurityGroupType)(nil)).Elem() } -func (i AzureFirewallApplicationRuleProtocolArray) ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput { - return i.ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(context.Background()) +func (i ApplicationSecurityGroupTypeArgs) ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput { + return i.ToApplicationSecurityGroupTypeOutputWithContext(context.Background()) } -func (i AzureFirewallApplicationRuleProtocolArray) ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleProtocolArrayOutput) +func (i ApplicationSecurityGroupTypeArgs) ToApplicationSecurityGroupTypeOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationSecurityGroupTypeOutput) } -// Properties of the application rule protocol. -type AzureFirewallApplicationRuleProtocolOutput struct{ *pulumi.OutputState } +// ApplicationSecurityGroupTypeArrayInput is an input type that accepts ApplicationSecurityGroupTypeArray and ApplicationSecurityGroupTypeArrayOutput values. +// You can construct a concrete instance of `ApplicationSecurityGroupTypeArrayInput` via: +// +// ApplicationSecurityGroupTypeArray{ ApplicationSecurityGroupTypeArgs{...} } +type ApplicationSecurityGroupTypeArrayInput interface { + pulumi.Input -func (AzureFirewallApplicationRuleProtocolOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleProtocol)(nil)).Elem() + ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput + ToApplicationSecurityGroupTypeArrayOutputWithContext(context.Context) ApplicationSecurityGroupTypeArrayOutput } -func (o AzureFirewallApplicationRuleProtocolOutput) ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput { +type ApplicationSecurityGroupTypeArray []ApplicationSecurityGroupTypeInput + +func (ApplicationSecurityGroupTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationSecurityGroupType)(nil)).Elem() +} + +func (i ApplicationSecurityGroupTypeArray) ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput { + return i.ToApplicationSecurityGroupTypeArrayOutputWithContext(context.Background()) +} + +func (i ApplicationSecurityGroupTypeArray) ToApplicationSecurityGroupTypeArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationSecurityGroupTypeArrayOutput) +} + +// An application security group in a resource group. +type ApplicationSecurityGroupTypeOutput struct{ *pulumi.OutputState } + +func (ApplicationSecurityGroupTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationSecurityGroupType)(nil)).Elem() +} + +func (o ApplicationSecurityGroupTypeOutput) ToApplicationSecurityGroupTypeOutput() ApplicationSecurityGroupTypeOutput { return o } -func (o AzureFirewallApplicationRuleProtocolOutput) ToAzureFirewallApplicationRuleProtocolOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolOutput { +func (o ApplicationSecurityGroupTypeOutput) ToApplicationSecurityGroupTypeOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeOutput { return o } -// Port number for the protocol, cannot be greater than 64000. This field is optional. -func (o AzureFirewallApplicationRuleProtocolOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleProtocol) *int { return v.Port }).(pulumi.IntPtrOutput) +// Resource ID. +func (o ApplicationSecurityGroupTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationSecurityGroupType) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Protocol type. -func (o AzureFirewallApplicationRuleProtocolOutput) ProtocolType() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleProtocol) *string { return v.ProtocolType }).(pulumi.StringPtrOutput) +// Resource location. +func (o ApplicationSecurityGroupTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationSecurityGroupType) *string { return v.Location }).(pulumi.StringPtrOutput) } -type AzureFirewallApplicationRuleProtocolArrayOutput struct{ *pulumi.OutputState } +// Resource tags. +func (o ApplicationSecurityGroupTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ApplicationSecurityGroupType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} -func (AzureFirewallApplicationRuleProtocolArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocol)(nil)).Elem() +type ApplicationSecurityGroupTypeArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationSecurityGroupTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationSecurityGroupType)(nil)).Elem() } -func (o AzureFirewallApplicationRuleProtocolArrayOutput) ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput { +func (o ApplicationSecurityGroupTypeArrayOutput) ToApplicationSecurityGroupTypeArrayOutput() ApplicationSecurityGroupTypeArrayOutput { return o } -func (o AzureFirewallApplicationRuleProtocolArrayOutput) ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolArrayOutput { +func (o ApplicationSecurityGroupTypeArrayOutput) ToApplicationSecurityGroupTypeArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupTypeArrayOutput { return o } -func (o AzureFirewallApplicationRuleProtocolArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleProtocolOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleProtocol { - return vs[0].([]AzureFirewallApplicationRuleProtocol)[vs[1].(int)] - }).(AzureFirewallApplicationRuleProtocolOutput) +func (o ApplicationSecurityGroupTypeArrayOutput) Index(i pulumi.IntInput) ApplicationSecurityGroupTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationSecurityGroupType { + return vs[0].([]ApplicationSecurityGroupType)[vs[1].(int)] + }).(ApplicationSecurityGroupTypeOutput) } -// Properties of the application rule protocol. -type AzureFirewallApplicationRuleProtocolResponse struct { - // Port number for the protocol, cannot be greater than 64000. This field is optional. - Port *int `pulumi:"port"` - // Protocol type. - ProtocolType *string `pulumi:"protocolType"` +// An application security group in a resource group. +type ApplicationSecurityGroupResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // The provisioning state of the application security group resource. + ProvisioningState string `pulumi:"provisioningState"` + // The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. + ResourceGuid string `pulumi:"resourceGuid"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` } -// Properties of the application rule protocol. -type AzureFirewallApplicationRuleProtocolResponseOutput struct{ *pulumi.OutputState } +// An application security group in a resource group. +type ApplicationSecurityGroupResponseOutput struct{ *pulumi.OutputState } -func (AzureFirewallApplicationRuleProtocolResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleProtocolResponse)(nil)).Elem() +func (ApplicationSecurityGroupResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationSecurityGroupResponse)(nil)).Elem() } -func (o AzureFirewallApplicationRuleProtocolResponseOutput) ToAzureFirewallApplicationRuleProtocolResponseOutput() AzureFirewallApplicationRuleProtocolResponseOutput { +func (o ApplicationSecurityGroupResponseOutput) ToApplicationSecurityGroupResponseOutput() ApplicationSecurityGroupResponseOutput { return o } -func (o AzureFirewallApplicationRuleProtocolResponseOutput) ToAzureFirewallApplicationRuleProtocolResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolResponseOutput { +func (o ApplicationSecurityGroupResponseOutput) ToApplicationSecurityGroupResponseOutputWithContext(ctx context.Context) ApplicationSecurityGroupResponseOutput { return o } -// Port number for the protocol, cannot be greater than 64000. This field is optional. -func (o AzureFirewallApplicationRuleProtocolResponseOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleProtocolResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ApplicationSecurityGroupResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Protocol type. -func (o AzureFirewallApplicationRuleProtocolResponseOutput) ProtocolType() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleProtocolResponse) *string { return v.ProtocolType }).(pulumi.StringPtrOutput) +// Resource ID. +func (o ApplicationSecurityGroupResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -type AzureFirewallApplicationRuleProtocolResponseArrayOutput struct{ *pulumi.OutputState } +// Resource location. +func (o ApplicationSecurityGroupResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +} -func (AzureFirewallApplicationRuleProtocolResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocolResponse)(nil)).Elem() +// Resource name. +func (o ApplicationSecurityGroupResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Name }).(pulumi.StringOutput) } -func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) ToAzureFirewallApplicationRuleProtocolResponseArrayOutput() AzureFirewallApplicationRuleProtocolResponseArrayOutput { +// The provisioning state of the application security group resource. +func (o ApplicationSecurityGroupResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups. +func (o ApplicationSecurityGroupResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + +// Resource tags. +func (o ApplicationSecurityGroupResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o ApplicationSecurityGroupResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationSecurityGroupResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ApplicationSecurityGroupResponseArrayOutput struct{ *pulumi.OutputState } + +func (ApplicationSecurityGroupResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ApplicationSecurityGroupResponse)(nil)).Elem() +} + +func (o ApplicationSecurityGroupResponseArrayOutput) ToApplicationSecurityGroupResponseArrayOutput() ApplicationSecurityGroupResponseArrayOutput { return o } -func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) ToAzureFirewallApplicationRuleProtocolResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolResponseArrayOutput { +func (o ApplicationSecurityGroupResponseArrayOutput) ToApplicationSecurityGroupResponseArrayOutputWithContext(ctx context.Context) ApplicationSecurityGroupResponseArrayOutput { return o } -func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleProtocolResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleProtocolResponse { - return vs[0].([]AzureFirewallApplicationRuleProtocolResponse)[vs[1].(int)] - }).(AzureFirewallApplicationRuleProtocolResponseOutput) +func (o ApplicationSecurityGroupResponseArrayOutput) Index(i pulumi.IntInput) ApplicationSecurityGroupResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ApplicationSecurityGroupResponse { + return vs[0].([]ApplicationSecurityGroupResponse)[vs[1].(int)] + }).(ApplicationSecurityGroupResponseOutput) } // Properties of an application rule. -type AzureFirewallApplicationRuleResponse struct { +type AzureFirewallApplicationRule struct { // Description of the rule. Description *string `pulumi:"description"` // List of FQDN Tags for this rule. @@ -11621,7 +13014,7 @@ type AzureFirewallApplicationRuleResponse struct { // Name of the application rule. Name *string `pulumi:"name"` // Array of ApplicationRuleProtocols. - Protocols []AzureFirewallApplicationRuleProtocolResponse `pulumi:"protocols"` + Protocols []AzureFirewallApplicationRuleProtocol `pulumi:"protocols"` // List of source IP addresses for this rule. SourceAddresses []string `pulumi:"sourceAddresses"` // List of source IpGroups for this rule. @@ -11630,83 +13023,625 @@ type AzureFirewallApplicationRuleResponse struct { TargetFqdns []string `pulumi:"targetFqdns"` } +// AzureFirewallApplicationRuleInput is an input type that accepts AzureFirewallApplicationRuleArgs and AzureFirewallApplicationRuleOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleInput` via: +// +// AzureFirewallApplicationRuleArgs{...} +type AzureFirewallApplicationRuleInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput + ToAzureFirewallApplicationRuleOutputWithContext(context.Context) AzureFirewallApplicationRuleOutput +} + // Properties of an application rule. -type AzureFirewallApplicationRuleResponseOutput struct{ *pulumi.OutputState } +type AzureFirewallApplicationRuleArgs struct { + // Description of the rule. + Description pulumi.StringPtrInput `pulumi:"description"` + // List of FQDN Tags for this rule. + FqdnTags pulumi.StringArrayInput `pulumi:"fqdnTags"` + // Name of the application rule. + Name pulumi.StringPtrInput `pulumi:"name"` + // Array of ApplicationRuleProtocols. + Protocols AzureFirewallApplicationRuleProtocolArrayInput `pulumi:"protocols"` + // List of source IP addresses for this rule. + SourceAddresses pulumi.StringArrayInput `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups pulumi.StringArrayInput `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule. + TargetFqdns pulumi.StringArrayInput `pulumi:"targetFqdns"` +} -func (AzureFirewallApplicationRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFirewallApplicationRuleResponse)(nil)).Elem() +func (AzureFirewallApplicationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRule)(nil)).Elem() } -func (o AzureFirewallApplicationRuleResponseOutput) ToAzureFirewallApplicationRuleResponseOutput() AzureFirewallApplicationRuleResponseOutput { +func (i AzureFirewallApplicationRuleArgs) ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput { + return i.ToAzureFirewallApplicationRuleOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleArgs) ToAzureFirewallApplicationRuleOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleOutput) +} + +// AzureFirewallApplicationRuleArrayInput is an input type that accepts AzureFirewallApplicationRuleArray and AzureFirewallApplicationRuleArrayOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleArrayInput` via: +// +// AzureFirewallApplicationRuleArray{ AzureFirewallApplicationRuleArgs{...} } +type AzureFirewallApplicationRuleArrayInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput + ToAzureFirewallApplicationRuleArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleArrayOutput +} + +type AzureFirewallApplicationRuleArray []AzureFirewallApplicationRuleInput + +func (AzureFirewallApplicationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRule)(nil)).Elem() +} + +func (i AzureFirewallApplicationRuleArray) ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput { + return i.ToAzureFirewallApplicationRuleArrayOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleArray) ToAzureFirewallApplicationRuleArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleArrayOutput) +} + +// Properties of an application rule. +type AzureFirewallApplicationRuleOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRule)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleOutput) ToAzureFirewallApplicationRuleOutput() AzureFirewallApplicationRuleOutput { return o } -func (o AzureFirewallApplicationRuleResponseOutput) ToAzureFirewallApplicationRuleResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleResponseOutput { +func (o AzureFirewallApplicationRuleOutput) ToAzureFirewallApplicationRuleOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleOutput { return o } // Description of the rule. -func (o AzureFirewallApplicationRuleResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o AzureFirewallApplicationRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) *string { return v.Description }).(pulumi.StringPtrOutput) } // List of FQDN Tags for this rule. -func (o AzureFirewallApplicationRuleResponseOutput) FqdnTags() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.FqdnTags }).(pulumi.StringArrayOutput) +func (o AzureFirewallApplicationRuleOutput) FqdnTags() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.FqdnTags }).(pulumi.StringArrayOutput) } // Name of the application rule. -func (o AzureFirewallApplicationRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o AzureFirewallApplicationRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) *string { return v.Name }).(pulumi.StringPtrOutput) } // Array of ApplicationRuleProtocols. -func (o AzureFirewallApplicationRuleResponseOutput) Protocols() AzureFirewallApplicationRuleProtocolResponseArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []AzureFirewallApplicationRuleProtocolResponse { - return v.Protocols - }).(AzureFirewallApplicationRuleProtocolResponseArrayOutput) +func (o AzureFirewallApplicationRuleOutput) Protocols() AzureFirewallApplicationRuleProtocolArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) []AzureFirewallApplicationRuleProtocol { return v.Protocols }).(AzureFirewallApplicationRuleProtocolArrayOutput) } // List of source IP addresses for this rule. -func (o AzureFirewallApplicationRuleResponseOutput) SourceAddresses() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.SourceAddresses }).(pulumi.StringArrayOutput) +func (o AzureFirewallApplicationRuleOutput) SourceAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.SourceAddresses }).(pulumi.StringArrayOutput) } // List of source IpGroups for this rule. -func (o AzureFirewallApplicationRuleResponseOutput) SourceIpGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.SourceIpGroups }).(pulumi.StringArrayOutput) +func (o AzureFirewallApplicationRuleOutput) SourceIpGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.SourceIpGroups }).(pulumi.StringArrayOutput) } // List of FQDNs for this rule. -func (o AzureFirewallApplicationRuleResponseOutput) TargetFqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.TargetFqdns }).(pulumi.StringArrayOutput) +func (o AzureFirewallApplicationRuleOutput) TargetFqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRule) []string { return v.TargetFqdns }).(pulumi.StringArrayOutput) } -type AzureFirewallApplicationRuleResponseArrayOutput struct{ *pulumi.OutputState } +type AzureFirewallApplicationRuleArrayOutput struct{ *pulumi.OutputState } -func (AzureFirewallApplicationRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AzureFirewallApplicationRuleResponse)(nil)).Elem() +func (AzureFirewallApplicationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRule)(nil)).Elem() } -func (o AzureFirewallApplicationRuleResponseArrayOutput) ToAzureFirewallApplicationRuleResponseArrayOutput() AzureFirewallApplicationRuleResponseArrayOutput { +func (o AzureFirewallApplicationRuleArrayOutput) ToAzureFirewallApplicationRuleArrayOutput() AzureFirewallApplicationRuleArrayOutput { return o } -func (o AzureFirewallApplicationRuleResponseArrayOutput) ToAzureFirewallApplicationRuleResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleResponseArrayOutput { +func (o AzureFirewallApplicationRuleArrayOutput) ToAzureFirewallApplicationRuleArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleArrayOutput { return o } -func (o AzureFirewallApplicationRuleResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleResponse { - return vs[0].([]AzureFirewallApplicationRuleResponse)[vs[1].(int)] - }).(AzureFirewallApplicationRuleResponseOutput) +func (o AzureFirewallApplicationRuleArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRule { + return vs[0].([]AzureFirewallApplicationRule)[vs[1].(int)] + }).(AzureFirewallApplicationRuleOutput) } -// IP configuration of an Azure Firewall. -type AzureFirewallIPConfiguration struct { +// Application rule collection resource. +type AzureFirewallApplicationRuleCollection struct { + // The action type of a rule collection. + Action *AzureFirewallRCAction `pulumi:"action"` // Resource ID. Id *string `pulumi:"id"` - // Name of the resource that is unique within a resource group. This name can be used to access the resource. + // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Priority of the application rule collection resource. + Priority *int `pulumi:"priority"` + // Collection of rules used by a application rule collection. + Rules []AzureFirewallApplicationRule `pulumi:"rules"` +} + +// AzureFirewallApplicationRuleCollectionInput is an input type that accepts AzureFirewallApplicationRuleCollectionArgs and AzureFirewallApplicationRuleCollectionOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleCollectionInput` via: +// +// AzureFirewallApplicationRuleCollectionArgs{...} +type AzureFirewallApplicationRuleCollectionInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput + ToAzureFirewallApplicationRuleCollectionOutputWithContext(context.Context) AzureFirewallApplicationRuleCollectionOutput +} + +// Application rule collection resource. +type AzureFirewallApplicationRuleCollectionArgs struct { + // The action type of a rule collection. + Action AzureFirewallRCActionPtrInput `pulumi:"action"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // Priority of the application rule collection resource. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Collection of rules used by a application rule collection. + Rules AzureFirewallApplicationRuleArrayInput `pulumi:"rules"` +} + +func (AzureFirewallApplicationRuleCollectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleCollection)(nil)).Elem() +} + +func (i AzureFirewallApplicationRuleCollectionArgs) ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput { + return i.ToAzureFirewallApplicationRuleCollectionOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleCollectionArgs) ToAzureFirewallApplicationRuleCollectionOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleCollectionOutput) +} + +// AzureFirewallApplicationRuleCollectionArrayInput is an input type that accepts AzureFirewallApplicationRuleCollectionArray and AzureFirewallApplicationRuleCollectionArrayOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleCollectionArrayInput` via: +// +// AzureFirewallApplicationRuleCollectionArray{ AzureFirewallApplicationRuleCollectionArgs{...} } +type AzureFirewallApplicationRuleCollectionArrayInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput + ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleCollectionArrayOutput +} + +type AzureFirewallApplicationRuleCollectionArray []AzureFirewallApplicationRuleCollectionInput + +func (AzureFirewallApplicationRuleCollectionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollection)(nil)).Elem() +} + +func (i AzureFirewallApplicationRuleCollectionArray) ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput { + return i.ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleCollectionArray) ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleCollectionArrayOutput) +} + +// Application rule collection resource. +type AzureFirewallApplicationRuleCollectionOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleCollectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleCollection)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleCollectionOutput) ToAzureFirewallApplicationRuleCollectionOutput() AzureFirewallApplicationRuleCollectionOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionOutput) ToAzureFirewallApplicationRuleCollectionOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionOutput { + return o +} + +// The action type of a rule collection. +func (o AzureFirewallApplicationRuleCollectionOutput) Action() AzureFirewallRCActionPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *AzureFirewallRCAction { return v.Action }).(AzureFirewallRCActionPtrOutput) +} + +// Resource ID. +func (o AzureFirewallApplicationRuleCollectionOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. +func (o AzureFirewallApplicationRuleCollectionOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Priority of the application rule collection resource. +func (o AzureFirewallApplicationRuleCollectionOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// Collection of rules used by a application rule collection. +func (o AzureFirewallApplicationRuleCollectionOutput) Rules() AzureFirewallApplicationRuleArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollection) []AzureFirewallApplicationRule { return v.Rules }).(AzureFirewallApplicationRuleArrayOutput) +} + +type AzureFirewallApplicationRuleCollectionArrayOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleCollectionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollection)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleCollectionArrayOutput) ToAzureFirewallApplicationRuleCollectionArrayOutput() AzureFirewallApplicationRuleCollectionArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionArrayOutput) ToAzureFirewallApplicationRuleCollectionArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleCollectionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleCollection { + return vs[0].([]AzureFirewallApplicationRuleCollection)[vs[1].(int)] + }).(AzureFirewallApplicationRuleCollectionOutput) +} + +// Application rule collection resource. +type AzureFirewallApplicationRuleCollectionResponse struct { + // The action type of a rule collection. + Action *AzureFirewallRCActionResponse `pulumi:"action"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Priority of the application rule collection resource. + Priority *int `pulumi:"priority"` + // The provisioning state of the application rule collection resource. + ProvisioningState string `pulumi:"provisioningState"` + // Collection of rules used by a application rule collection. + Rules []AzureFirewallApplicationRuleResponse `pulumi:"rules"` +} + +// Application rule collection resource. +type AzureFirewallApplicationRuleCollectionResponseOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleCollectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleCollectionResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleCollectionResponseOutput) ToAzureFirewallApplicationRuleCollectionResponseOutput() AzureFirewallApplicationRuleCollectionResponseOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionResponseOutput) ToAzureFirewallApplicationRuleCollectionResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionResponseOutput { + return o +} + +// The action type of a rule collection. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Action() AzureFirewallRCActionResponsePtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *AzureFirewallRCActionResponse { return v.Action }).(AzureFirewallRCActionResponsePtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within the Azure firewall. This name can be used to access the resource. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Priority of the application rule collection resource. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// The provisioning state of the application rule collection resource. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Collection of rules used by a application rule collection. +func (o AzureFirewallApplicationRuleCollectionResponseOutput) Rules() AzureFirewallApplicationRuleResponseArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleCollectionResponse) []AzureFirewallApplicationRuleResponse { + return v.Rules + }).(AzureFirewallApplicationRuleResponseArrayOutput) +} + +type AzureFirewallApplicationRuleCollectionResponseArrayOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleCollectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleCollectionResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) ToAzureFirewallApplicationRuleCollectionResponseArrayOutput() AzureFirewallApplicationRuleCollectionResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) ToAzureFirewallApplicationRuleCollectionResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleCollectionResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleCollectionResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleCollectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleCollectionResponse { + return vs[0].([]AzureFirewallApplicationRuleCollectionResponse)[vs[1].(int)] + }).(AzureFirewallApplicationRuleCollectionResponseOutput) +} + +// Properties of the application rule protocol. +type AzureFirewallApplicationRuleProtocol struct { + // Port number for the protocol, cannot be greater than 64000. This field is optional. + Port *int `pulumi:"port"` + // Protocol type. + ProtocolType *string `pulumi:"protocolType"` +} + +// AzureFirewallApplicationRuleProtocolInput is an input type that accepts AzureFirewallApplicationRuleProtocolArgs and AzureFirewallApplicationRuleProtocolOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleProtocolInput` via: +// +// AzureFirewallApplicationRuleProtocolArgs{...} +type AzureFirewallApplicationRuleProtocolInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput + ToAzureFirewallApplicationRuleProtocolOutputWithContext(context.Context) AzureFirewallApplicationRuleProtocolOutput +} + +// Properties of the application rule protocol. +type AzureFirewallApplicationRuleProtocolArgs struct { + // Port number for the protocol, cannot be greater than 64000. This field is optional. + Port pulumi.IntPtrInput `pulumi:"port"` + // Protocol type. + ProtocolType pulumi.StringPtrInput `pulumi:"protocolType"` +} + +func (AzureFirewallApplicationRuleProtocolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleProtocol)(nil)).Elem() +} + +func (i AzureFirewallApplicationRuleProtocolArgs) ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput { + return i.ToAzureFirewallApplicationRuleProtocolOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleProtocolArgs) ToAzureFirewallApplicationRuleProtocolOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleProtocolOutput) +} + +// AzureFirewallApplicationRuleProtocolArrayInput is an input type that accepts AzureFirewallApplicationRuleProtocolArray and AzureFirewallApplicationRuleProtocolArrayOutput values. +// You can construct a concrete instance of `AzureFirewallApplicationRuleProtocolArrayInput` via: +// +// AzureFirewallApplicationRuleProtocolArray{ AzureFirewallApplicationRuleProtocolArgs{...} } +type AzureFirewallApplicationRuleProtocolArrayInput interface { + pulumi.Input + + ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput + ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(context.Context) AzureFirewallApplicationRuleProtocolArrayOutput +} + +type AzureFirewallApplicationRuleProtocolArray []AzureFirewallApplicationRuleProtocolInput + +func (AzureFirewallApplicationRuleProtocolArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocol)(nil)).Elem() +} + +func (i AzureFirewallApplicationRuleProtocolArray) ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput { + return i.ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(context.Background()) +} + +func (i AzureFirewallApplicationRuleProtocolArray) ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFirewallApplicationRuleProtocolArrayOutput) +} + +// Properties of the application rule protocol. +type AzureFirewallApplicationRuleProtocolOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleProtocolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleProtocol)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleProtocolOutput) ToAzureFirewallApplicationRuleProtocolOutput() AzureFirewallApplicationRuleProtocolOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolOutput) ToAzureFirewallApplicationRuleProtocolOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolOutput { + return o +} + +// Port number for the protocol, cannot be greater than 64000. This field is optional. +func (o AzureFirewallApplicationRuleProtocolOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleProtocol) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Protocol type. +func (o AzureFirewallApplicationRuleProtocolOutput) ProtocolType() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleProtocol) *string { return v.ProtocolType }).(pulumi.StringPtrOutput) +} + +type AzureFirewallApplicationRuleProtocolArrayOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleProtocolArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocol)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleProtocolArrayOutput) ToAzureFirewallApplicationRuleProtocolArrayOutput() AzureFirewallApplicationRuleProtocolArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolArrayOutput) ToAzureFirewallApplicationRuleProtocolArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleProtocolOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleProtocol { + return vs[0].([]AzureFirewallApplicationRuleProtocol)[vs[1].(int)] + }).(AzureFirewallApplicationRuleProtocolOutput) +} + +// Properties of the application rule protocol. +type AzureFirewallApplicationRuleProtocolResponse struct { + // Port number for the protocol, cannot be greater than 64000. This field is optional. + Port *int `pulumi:"port"` + // Protocol type. + ProtocolType *string `pulumi:"protocolType"` +} + +// Properties of the application rule protocol. +type AzureFirewallApplicationRuleProtocolResponseOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleProtocolResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleProtocolResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleProtocolResponseOutput) ToAzureFirewallApplicationRuleProtocolResponseOutput() AzureFirewallApplicationRuleProtocolResponseOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolResponseOutput) ToAzureFirewallApplicationRuleProtocolResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolResponseOutput { + return o +} + +// Port number for the protocol, cannot be greater than 64000. This field is optional. +func (o AzureFirewallApplicationRuleProtocolResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleProtocolResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Protocol type. +func (o AzureFirewallApplicationRuleProtocolResponseOutput) ProtocolType() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleProtocolResponse) *string { return v.ProtocolType }).(pulumi.StringPtrOutput) +} + +type AzureFirewallApplicationRuleProtocolResponseArrayOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleProtocolResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleProtocolResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) ToAzureFirewallApplicationRuleProtocolResponseArrayOutput() AzureFirewallApplicationRuleProtocolResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) ToAzureFirewallApplicationRuleProtocolResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleProtocolResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleProtocolResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleProtocolResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleProtocolResponse { + return vs[0].([]AzureFirewallApplicationRuleProtocolResponse)[vs[1].(int)] + }).(AzureFirewallApplicationRuleProtocolResponseOutput) +} + +// Properties of an application rule. +type AzureFirewallApplicationRuleResponse struct { + // Description of the rule. + Description *string `pulumi:"description"` + // List of FQDN Tags for this rule. + FqdnTags []string `pulumi:"fqdnTags"` + // Name of the application rule. + Name *string `pulumi:"name"` + // Array of ApplicationRuleProtocols. + Protocols []AzureFirewallApplicationRuleProtocolResponse `pulumi:"protocols"` + // List of source IP addresses for this rule. + SourceAddresses []string `pulumi:"sourceAddresses"` + // List of source IpGroups for this rule. + SourceIpGroups []string `pulumi:"sourceIpGroups"` + // List of FQDNs for this rule. + TargetFqdns []string `pulumi:"targetFqdns"` +} + +// Properties of an application rule. +type AzureFirewallApplicationRuleResponseOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFirewallApplicationRuleResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleResponseOutput) ToAzureFirewallApplicationRuleResponseOutput() AzureFirewallApplicationRuleResponseOutput { + return o +} + +func (o AzureFirewallApplicationRuleResponseOutput) ToAzureFirewallApplicationRuleResponseOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleResponseOutput { + return o +} + +// Description of the rule. +func (o AzureFirewallApplicationRuleResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// List of FQDN Tags for this rule. +func (o AzureFirewallApplicationRuleResponseOutput) FqdnTags() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.FqdnTags }).(pulumi.StringArrayOutput) +} + +// Name of the application rule. +func (o AzureFirewallApplicationRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Array of ApplicationRuleProtocols. +func (o AzureFirewallApplicationRuleResponseOutput) Protocols() AzureFirewallApplicationRuleProtocolResponseArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []AzureFirewallApplicationRuleProtocolResponse { + return v.Protocols + }).(AzureFirewallApplicationRuleProtocolResponseArrayOutput) +} + +// List of source IP addresses for this rule. +func (o AzureFirewallApplicationRuleResponseOutput) SourceAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.SourceAddresses }).(pulumi.StringArrayOutput) +} + +// List of source IpGroups for this rule. +func (o AzureFirewallApplicationRuleResponseOutput) SourceIpGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.SourceIpGroups }).(pulumi.StringArrayOutput) +} + +// List of FQDNs for this rule. +func (o AzureFirewallApplicationRuleResponseOutput) TargetFqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v AzureFirewallApplicationRuleResponse) []string { return v.TargetFqdns }).(pulumi.StringArrayOutput) +} + +type AzureFirewallApplicationRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (AzureFirewallApplicationRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AzureFirewallApplicationRuleResponse)(nil)).Elem() +} + +func (o AzureFirewallApplicationRuleResponseArrayOutput) ToAzureFirewallApplicationRuleResponseArrayOutput() AzureFirewallApplicationRuleResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleResponseArrayOutput) ToAzureFirewallApplicationRuleResponseArrayOutputWithContext(ctx context.Context) AzureFirewallApplicationRuleResponseArrayOutput { + return o +} + +func (o AzureFirewallApplicationRuleResponseArrayOutput) Index(i pulumi.IntInput) AzureFirewallApplicationRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AzureFirewallApplicationRuleResponse { + return vs[0].([]AzureFirewallApplicationRuleResponse)[vs[1].(int)] + }).(AzureFirewallApplicationRuleResponseOutput) +} + +// IP configuration of an Azure Firewall. +type AzureFirewallIPConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` // Reference to the PublicIP resource. This field is a mandatory input if subnet is not null. PublicIPAddress *SubResource `pulumi:"publicIPAddress"` @@ -14182,12 +16117,20 @@ func (o BackendArrayOutput) Index(i pulumi.IntInput) BackendOutput { // Pool of backend IP addresses. type BackendAddressPool struct { + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds *int `pulumi:"drainPeriodInSeconds"` // Resource ID. Id *string `pulumi:"id"` // An array of backend addresses. LoadBalancerBackendAddresses []LoadBalancerBackendAddress `pulumi:"loadBalancerBackendAddresses"` + // The location of the backend address pool. + Location *string `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name *string `pulumi:"name"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces []GatewayLoadBalancerTunnelInterface `pulumi:"tunnelInterfaces"` + // A reference to a virtual network. + VirtualNetwork *SubResource `pulumi:"virtualNetwork"` } // BackendAddressPoolInput is an input type that accepts BackendAddressPoolArgs and BackendAddressPoolOutput values. @@ -14203,12 +16146,20 @@ type BackendAddressPoolInput interface { // Pool of backend IP addresses. type BackendAddressPoolArgs struct { + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds pulumi.IntPtrInput `pulumi:"drainPeriodInSeconds"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // An array of backend addresses. LoadBalancerBackendAddresses LoadBalancerBackendAddressArrayInput `pulumi:"loadBalancerBackendAddresses"` + // The location of the backend address pool. + Location pulumi.StringPtrInput `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name pulumi.StringPtrInput `pulumi:"name"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces GatewayLoadBalancerTunnelInterfaceArrayInput `pulumi:"tunnelInterfaces"` + // A reference to a virtual network. + VirtualNetwork SubResourcePtrInput `pulumi:"virtualNetwork"` } func (BackendAddressPoolArgs) ElementType() reflect.Type { @@ -14263,6 +16214,11 @@ func (o BackendAddressPoolOutput) ToBackendAddressPoolOutputWithContext(ctx cont return o } +// Amount of seconds Load Balancer waits for before sending RESET to client and backend address. +func (o BackendAddressPoolOutput) DrainPeriodInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v BackendAddressPool) *int { return v.DrainPeriodInSeconds }).(pulumi.IntPtrOutput) +} + // Resource ID. func (o BackendAddressPoolOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendAddressPool) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -14273,11 +16229,26 @@ func (o BackendAddressPoolOutput) LoadBalancerBackendAddresses() LoadBalancerBac return o.ApplyT(func(v BackendAddressPool) []LoadBalancerBackendAddress { return v.LoadBalancerBackendAddresses }).(LoadBalancerBackendAddressArrayOutput) } +// The location of the backend address pool. +func (o BackendAddressPoolOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendAddressPool) *string { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. func (o BackendAddressPoolOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendAddressPool) *string { return v.Name }).(pulumi.StringPtrOutput) } +// An array of gateway load balancer tunnel interfaces. +func (o BackendAddressPoolOutput) TunnelInterfaces() GatewayLoadBalancerTunnelInterfaceArrayOutput { + return o.ApplyT(func(v BackendAddressPool) []GatewayLoadBalancerTunnelInterface { return v.TunnelInterfaces }).(GatewayLoadBalancerTunnelInterfaceArrayOutput) +} + +// A reference to a virtual network. +func (o BackendAddressPoolOutput) VirtualNetwork() SubResourcePtrOutput { + return o.ApplyT(func(v BackendAddressPool) *SubResource { return v.VirtualNetwork }).(SubResourcePtrOutput) +} + type BackendAddressPoolArrayOutput struct{ *pulumi.OutputState } func (BackendAddressPoolArrayOutput) ElementType() reflect.Type { @@ -14302,14 +16273,20 @@ func (o BackendAddressPoolArrayOutput) Index(i pulumi.IntInput) BackendAddressPo type BackendAddressPoolResponse struct { // An array of references to IP addresses defined in network interfaces. BackendIPConfigurations []NetworkInterfaceIPConfigurationResponse `pulumi:"backendIPConfigurations"` + // Amount of seconds Load Balancer waits for before sending RESET to client and backend address. + DrainPeriodInSeconds *int `pulumi:"drainPeriodInSeconds"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` + // An array of references to inbound NAT rules that use this backend address pool. + InboundNatRules []SubResourceResponse `pulumi:"inboundNatRules"` // An array of backend addresses. LoadBalancerBackendAddresses []LoadBalancerBackendAddressResponse `pulumi:"loadBalancerBackendAddresses"` // An array of references to load balancing rules that use this backend address pool. LoadBalancingRules []SubResourceResponse `pulumi:"loadBalancingRules"` + // The location of the backend address pool. + Location *string `pulumi:"location"` // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. Name *string `pulumi:"name"` // A reference to an outbound rule that uses this backend address pool. @@ -14318,8 +16295,12 @@ type BackendAddressPoolResponse struct { OutboundRules []SubResourceResponse `pulumi:"outboundRules"` // The provisioning state of the backend address pool resource. ProvisioningState string `pulumi:"provisioningState"` + // An array of gateway load balancer tunnel interfaces. + TunnelInterfaces []GatewayLoadBalancerTunnelInterfaceResponse `pulumi:"tunnelInterfaces"` // Type of the resource. Type string `pulumi:"type"` + // A reference to a virtual network. + VirtualNetwork *SubResourceResponse `pulumi:"virtualNetwork"` } // Pool of backend IP addresses. @@ -14344,6 +16325,11 @@ func (o BackendAddressPoolResponseOutput) BackendIPConfigurations() NetworkInter }).(NetworkInterfaceIPConfigurationResponseArrayOutput) } +// Amount of seconds Load Balancer waits for before sending RESET to client and backend address. +func (o BackendAddressPoolResponseOutput) DrainPeriodInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v BackendAddressPoolResponse) *int { return v.DrainPeriodInSeconds }).(pulumi.IntPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o BackendAddressPoolResponseOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v BackendAddressPoolResponse) string { return v.Etag }).(pulumi.StringOutput) @@ -14354,6 +16340,11 @@ func (o BackendAddressPoolResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendAddressPoolResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } +// An array of references to inbound NAT rules that use this backend address pool. +func (o BackendAddressPoolResponseOutput) InboundNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v BackendAddressPoolResponse) []SubResourceResponse { return v.InboundNatRules }).(SubResourceResponseArrayOutput) +} + // An array of backend addresses. func (o BackendAddressPoolResponseOutput) LoadBalancerBackendAddresses() LoadBalancerBackendAddressResponseArrayOutput { return o.ApplyT(func(v BackendAddressPoolResponse) []LoadBalancerBackendAddressResponse { @@ -14366,6 +16357,11 @@ func (o BackendAddressPoolResponseOutput) LoadBalancingRules() SubResourceRespon return o.ApplyT(func(v BackendAddressPoolResponse) []SubResourceResponse { return v.LoadBalancingRules }).(SubResourceResponseArrayOutput) } +// The location of the backend address pool. +func (o BackendAddressPoolResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendAddressPoolResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +} + // The name of the resource that is unique within the set of backend address pools used by the load balancer. This name can be used to access the resource. func (o BackendAddressPoolResponseOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v BackendAddressPoolResponse) *string { return v.Name }).(pulumi.StringPtrOutput) @@ -14386,11 +16382,23 @@ func (o BackendAddressPoolResponseOutput) ProvisioningState() pulumi.StringOutpu return o.ApplyT(func(v BackendAddressPoolResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// An array of gateway load balancer tunnel interfaces. +func (o BackendAddressPoolResponseOutput) TunnelInterfaces() GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return o.ApplyT(func(v BackendAddressPoolResponse) []GatewayLoadBalancerTunnelInterfaceResponse { + return v.TunnelInterfaces + }).(GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) +} + // Type of the resource. func (o BackendAddressPoolResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v BackendAddressPoolResponse) string { return v.Type }).(pulumi.StringOutput) } +// A reference to a virtual network. +func (o BackendAddressPoolResponseOutput) VirtualNetwork() SubResourceResponsePtrOutput { + return o.ApplyT(func(v BackendAddressPoolResponse) *SubResourceResponse { return v.VirtualNetwork }).(SubResourceResponsePtrOutput) +} + type BackendAddressPoolResponseArrayOutput struct{ *pulumi.OutputState } func (BackendAddressPoolResponseArrayOutput) ElementType() reflect.Type { @@ -14649,7 +16657,7 @@ func (val *BackendPoolsSettings) Defaults() *BackendPoolsSettings { return nil } tmp := *val - if isZero(tmp.EnforceCertificateNameCheck) { + if tmp.EnforceCertificateNameCheck == nil { enforceCertificateNameCheck_ := "Enabled" tmp.EnforceCertificateNameCheck = &enforceCertificateNameCheck_ } @@ -14681,7 +16689,7 @@ func (val *BackendPoolsSettingsArgs) Defaults() *BackendPoolsSettingsArgs { return nil } tmp := *val - if isZero(tmp.EnforceCertificateNameCheck) { + if tmp.EnforceCertificateNameCheck == nil { tmp.EnforceCertificateNameCheck = pulumi.StringPtr("Enabled") } return &tmp @@ -14832,7 +16840,7 @@ func (val *BackendPoolsSettingsResponse) Defaults() *BackendPoolsSettingsRespons return nil } tmp := *val - if isZero(tmp.EnforceCertificateNameCheck) { + if tmp.EnforceCertificateNameCheck == nil { enforceCertificateNameCheck_ := "Enabled" tmp.EnforceCertificateNameCheck = &enforceCertificateNameCheck_ } @@ -16632,12 +18640,14 @@ type ConfigurationGroupResponse struct { DisplayName *string `pulumi:"displayName"` // Group members of network group. GroupMembers []GroupMembersItemResponse `pulumi:"groupMembers"` - // Resource ID. + // Network group ID. Id *string `pulumi:"id"` // Group member type. MemberType *string `pulumi:"memberType"` // The provisioning state of the scope assignment resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` } // The network configuration group resource @@ -16675,7 +18685,7 @@ func (o ConfigurationGroupResponseOutput) GroupMembers() GroupMembersItemRespons return o.ApplyT(func(v ConfigurationGroupResponse) []GroupMembersItemResponse { return v.GroupMembers }).(GroupMembersItemResponseArrayOutput) } -// Resource ID. +// Network group ID. func (o ConfigurationGroupResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v ConfigurationGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -16690,6 +18700,11 @@ func (o ConfigurationGroupResponseOutput) ProvisioningState() pulumi.StringOutpu return o.ApplyT(func(v ConfigurationGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o ConfigurationGroupResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v ConfigurationGroupResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + type ConfigurationGroupResponseArrayOutput struct{ *pulumi.OutputState } func (ConfigurationGroupResponseArrayOutput) ElementType() reflect.Type { @@ -20182,13 +22197,14 @@ func (o ConnectionMonitorWorkspaceSettingsResponsePtrOutput) WorkspaceResourceId }).(pulumi.StringPtrOutput) } +// Connectivity group item. type ConnectivityGroupItem struct { // Group connectivity type. - GroupConnectivity *string `pulumi:"groupConnectivity"` + GroupConnectivity string `pulumi:"groupConnectivity"` // Flag if global is supported. IsGlobal *string `pulumi:"isGlobal"` // Network group Id. - NetworkGroupId *string `pulumi:"networkGroupId"` + NetworkGroupId string `pulumi:"networkGroupId"` // Flag if need to use hub gateway. UseHubGateway *string `pulumi:"useHubGateway"` } @@ -20204,13 +22220,14 @@ type ConnectivityGroupItemInput interface { ToConnectivityGroupItemOutputWithContext(context.Context) ConnectivityGroupItemOutput } +// Connectivity group item. type ConnectivityGroupItemArgs struct { // Group connectivity type. - GroupConnectivity pulumi.StringPtrInput `pulumi:"groupConnectivity"` + GroupConnectivity pulumi.StringInput `pulumi:"groupConnectivity"` // Flag if global is supported. IsGlobal pulumi.StringPtrInput `pulumi:"isGlobal"` // Network group Id. - NetworkGroupId pulumi.StringPtrInput `pulumi:"networkGroupId"` + NetworkGroupId pulumi.StringInput `pulumi:"networkGroupId"` // Flag if need to use hub gateway. UseHubGateway pulumi.StringPtrInput `pulumi:"useHubGateway"` } @@ -20252,6 +22269,7 @@ func (i ConnectivityGroupItemArray) ToConnectivityGroupItemArrayOutputWithContex return pulumi.ToOutputWithContext(ctx, i).(ConnectivityGroupItemArrayOutput) } +// Connectivity group item. type ConnectivityGroupItemOutput struct{ *pulumi.OutputState } func (ConnectivityGroupItemOutput) ElementType() reflect.Type { @@ -20267,8 +22285,8 @@ func (o ConnectivityGroupItemOutput) ToConnectivityGroupItemOutputWithContext(ct } // Group connectivity type. -func (o ConnectivityGroupItemOutput) GroupConnectivity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ConnectivityGroupItem) *string { return v.GroupConnectivity }).(pulumi.StringPtrOutput) +func (o ConnectivityGroupItemOutput) GroupConnectivity() pulumi.StringOutput { + return o.ApplyT(func(v ConnectivityGroupItem) string { return v.GroupConnectivity }).(pulumi.StringOutput) } // Flag if global is supported. @@ -20277,8 +22295,8 @@ func (o ConnectivityGroupItemOutput) IsGlobal() pulumi.StringPtrOutput { } // Network group Id. -func (o ConnectivityGroupItemOutput) NetworkGroupId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ConnectivityGroupItem) *string { return v.NetworkGroupId }).(pulumi.StringPtrOutput) +func (o ConnectivityGroupItemOutput) NetworkGroupId() pulumi.StringOutput { + return o.ApplyT(func(v ConnectivityGroupItem) string { return v.NetworkGroupId }).(pulumi.StringOutput) } // Flag if need to use hub gateway. @@ -20306,17 +22324,19 @@ func (o ConnectivityGroupItemArrayOutput) Index(i pulumi.IntInput) ConnectivityG }).(ConnectivityGroupItemOutput) } +// Connectivity group item. type ConnectivityGroupItemResponse struct { // Group connectivity type. - GroupConnectivity *string `pulumi:"groupConnectivity"` + GroupConnectivity string `pulumi:"groupConnectivity"` // Flag if global is supported. IsGlobal *string `pulumi:"isGlobal"` // Network group Id. - NetworkGroupId *string `pulumi:"networkGroupId"` + NetworkGroupId string `pulumi:"networkGroupId"` // Flag if need to use hub gateway. UseHubGateway *string `pulumi:"useHubGateway"` } +// Connectivity group item. type ConnectivityGroupItemResponseOutput struct{ *pulumi.OutputState } func (ConnectivityGroupItemResponseOutput) ElementType() reflect.Type { @@ -20332,8 +22352,8 @@ func (o ConnectivityGroupItemResponseOutput) ToConnectivityGroupItemResponseOutp } // Group connectivity type. -func (o ConnectivityGroupItemResponseOutput) GroupConnectivity() pulumi.StringPtrOutput { - return o.ApplyT(func(v ConnectivityGroupItemResponse) *string { return v.GroupConnectivity }).(pulumi.StringPtrOutput) +func (o ConnectivityGroupItemResponseOutput) GroupConnectivity() pulumi.StringOutput { + return o.ApplyT(func(v ConnectivityGroupItemResponse) string { return v.GroupConnectivity }).(pulumi.StringOutput) } // Flag if global is supported. @@ -20342,8 +22362,8 @@ func (o ConnectivityGroupItemResponseOutput) IsGlobal() pulumi.StringPtrOutput { } // Network group Id. -func (o ConnectivityGroupItemResponseOutput) NetworkGroupId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ConnectivityGroupItemResponse) *string { return v.NetworkGroupId }).(pulumi.StringPtrOutput) +func (o ConnectivityGroupItemResponseOutput) NetworkGroupId() pulumi.StringOutput { + return o.ApplyT(func(v ConnectivityGroupItemResponse) string { return v.NetworkGroupId }).(pulumi.StringOutput) } // Flag if need to use hub gateway. @@ -20816,6 +22836,260 @@ func (o ContainerResponsePtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// A matching criteria which matches routes based on route prefix, community, and AS path. +type Criterion struct { + // List of AS paths which this criteria matches. + AsPath []string `pulumi:"asPath"` + // List of BGP communities which this criteria matches. + Community []string `pulumi:"community"` + // Match condition to apply RouteMap rules. + MatchCondition *string `pulumi:"matchCondition"` + // List of route prefixes which this criteria matches. + RoutePrefix []string `pulumi:"routePrefix"` +} + +// CriterionInput is an input type that accepts CriterionArgs and CriterionOutput values. +// You can construct a concrete instance of `CriterionInput` via: +// +// CriterionArgs{...} +type CriterionInput interface { + pulumi.Input + + ToCriterionOutput() CriterionOutput + ToCriterionOutputWithContext(context.Context) CriterionOutput +} + +// A matching criteria which matches routes based on route prefix, community, and AS path. +type CriterionArgs struct { + // List of AS paths which this criteria matches. + AsPath pulumi.StringArrayInput `pulumi:"asPath"` + // List of BGP communities which this criteria matches. + Community pulumi.StringArrayInput `pulumi:"community"` + // Match condition to apply RouteMap rules. + MatchCondition pulumi.StringPtrInput `pulumi:"matchCondition"` + // List of route prefixes which this criteria matches. + RoutePrefix pulumi.StringArrayInput `pulumi:"routePrefix"` +} + +func (CriterionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Criterion)(nil)).Elem() +} + +func (i CriterionArgs) ToCriterionOutput() CriterionOutput { + return i.ToCriterionOutputWithContext(context.Background()) +} + +func (i CriterionArgs) ToCriterionOutputWithContext(ctx context.Context) CriterionOutput { + return pulumi.ToOutputWithContext(ctx, i).(CriterionOutput) +} + +// CriterionArrayInput is an input type that accepts CriterionArray and CriterionArrayOutput values. +// You can construct a concrete instance of `CriterionArrayInput` via: +// +// CriterionArray{ CriterionArgs{...} } +type CriterionArrayInput interface { + pulumi.Input + + ToCriterionArrayOutput() CriterionArrayOutput + ToCriterionArrayOutputWithContext(context.Context) CriterionArrayOutput +} + +type CriterionArray []CriterionInput + +func (CriterionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Criterion)(nil)).Elem() +} + +func (i CriterionArray) ToCriterionArrayOutput() CriterionArrayOutput { + return i.ToCriterionArrayOutputWithContext(context.Background()) +} + +func (i CriterionArray) ToCriterionArrayOutputWithContext(ctx context.Context) CriterionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CriterionArrayOutput) +} + +// A matching criteria which matches routes based on route prefix, community, and AS path. +type CriterionOutput struct{ *pulumi.OutputState } + +func (CriterionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Criterion)(nil)).Elem() +} + +func (o CriterionOutput) ToCriterionOutput() CriterionOutput { + return o +} + +func (o CriterionOutput) ToCriterionOutputWithContext(ctx context.Context) CriterionOutput { + return o +} + +// List of AS paths which this criteria matches. +func (o CriterionOutput) AsPath() pulumi.StringArrayOutput { + return o.ApplyT(func(v Criterion) []string { return v.AsPath }).(pulumi.StringArrayOutput) +} + +// List of BGP communities which this criteria matches. +func (o CriterionOutput) Community() pulumi.StringArrayOutput { + return o.ApplyT(func(v Criterion) []string { return v.Community }).(pulumi.StringArrayOutput) +} + +// Match condition to apply RouteMap rules. +func (o CriterionOutput) MatchCondition() pulumi.StringPtrOutput { + return o.ApplyT(func(v Criterion) *string { return v.MatchCondition }).(pulumi.StringPtrOutput) +} + +// List of route prefixes which this criteria matches. +func (o CriterionOutput) RoutePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v Criterion) []string { return v.RoutePrefix }).(pulumi.StringArrayOutput) +} + +type CriterionArrayOutput struct{ *pulumi.OutputState } + +func (CriterionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Criterion)(nil)).Elem() +} + +func (o CriterionArrayOutput) ToCriterionArrayOutput() CriterionArrayOutput { + return o +} + +func (o CriterionArrayOutput) ToCriterionArrayOutputWithContext(ctx context.Context) CriterionArrayOutput { + return o +} + +func (o CriterionArrayOutput) Index(i pulumi.IntInput) CriterionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Criterion { + return vs[0].([]Criterion)[vs[1].(int)] + }).(CriterionOutput) +} + +// A matching criteria which matches routes based on route prefix, community, and AS path. +type CriterionResponse struct { + // List of AS paths which this criteria matches. + AsPath []string `pulumi:"asPath"` + // List of BGP communities which this criteria matches. + Community []string `pulumi:"community"` + // Match condition to apply RouteMap rules. + MatchCondition *string `pulumi:"matchCondition"` + // List of route prefixes which this criteria matches. + RoutePrefix []string `pulumi:"routePrefix"` +} + +// A matching criteria which matches routes based on route prefix, community, and AS path. +type CriterionResponseOutput struct{ *pulumi.OutputState } + +func (CriterionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CriterionResponse)(nil)).Elem() +} + +func (o CriterionResponseOutput) ToCriterionResponseOutput() CriterionResponseOutput { + return o +} + +func (o CriterionResponseOutput) ToCriterionResponseOutputWithContext(ctx context.Context) CriterionResponseOutput { + return o +} + +// List of AS paths which this criteria matches. +func (o CriterionResponseOutput) AsPath() pulumi.StringArrayOutput { + return o.ApplyT(func(v CriterionResponse) []string { return v.AsPath }).(pulumi.StringArrayOutput) +} + +// List of BGP communities which this criteria matches. +func (o CriterionResponseOutput) Community() pulumi.StringArrayOutput { + return o.ApplyT(func(v CriterionResponse) []string { return v.Community }).(pulumi.StringArrayOutput) +} + +// Match condition to apply RouteMap rules. +func (o CriterionResponseOutput) MatchCondition() pulumi.StringPtrOutput { + return o.ApplyT(func(v CriterionResponse) *string { return v.MatchCondition }).(pulumi.StringPtrOutput) +} + +// List of route prefixes which this criteria matches. +func (o CriterionResponseOutput) RoutePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v CriterionResponse) []string { return v.RoutePrefix }).(pulumi.StringArrayOutput) +} + +type CriterionResponseArrayOutput struct{ *pulumi.OutputState } + +func (CriterionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CriterionResponse)(nil)).Elem() +} + +func (o CriterionResponseArrayOutput) ToCriterionResponseArrayOutput() CriterionResponseArrayOutput { + return o +} + +func (o CriterionResponseArrayOutput) ToCriterionResponseArrayOutputWithContext(ctx context.Context) CriterionResponseArrayOutput { + return o +} + +func (o CriterionResponseArrayOutput) Index(i pulumi.IntInput) CriterionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CriterionResponse { + return vs[0].([]CriterionResponse)[vs[1].(int)] + }).(CriterionResponseOutput) +} + +// Cross tenant scopes. +type CrossTenantScopesResponse struct { + // List of management groups. + ManagementGroups []string `pulumi:"managementGroups"` + // List of subscriptions. + Subscriptions []string `pulumi:"subscriptions"` + // Tenant ID. + TenantId string `pulumi:"tenantId"` +} + +// Cross tenant scopes. +type CrossTenantScopesResponseOutput struct{ *pulumi.OutputState } + +func (CrossTenantScopesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CrossTenantScopesResponse)(nil)).Elem() +} + +func (o CrossTenantScopesResponseOutput) ToCrossTenantScopesResponseOutput() CrossTenantScopesResponseOutput { + return o +} + +func (o CrossTenantScopesResponseOutput) ToCrossTenantScopesResponseOutputWithContext(ctx context.Context) CrossTenantScopesResponseOutput { + return o +} + +// List of management groups. +func (o CrossTenantScopesResponseOutput) ManagementGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v CrossTenantScopesResponse) []string { return v.ManagementGroups }).(pulumi.StringArrayOutput) +} + +// List of subscriptions. +func (o CrossTenantScopesResponseOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v CrossTenantScopesResponse) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +} + +// Tenant ID. +func (o CrossTenantScopesResponseOutput) TenantId() pulumi.StringOutput { + return o.ApplyT(func(v CrossTenantScopesResponse) string { return v.TenantId }).(pulumi.StringOutput) +} + +type CrossTenantScopesResponseArrayOutput struct{ *pulumi.OutputState } + +func (CrossTenantScopesResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CrossTenantScopesResponse)(nil)).Elem() +} + +func (o CrossTenantScopesResponseArrayOutput) ToCrossTenantScopesResponseArrayOutput() CrossTenantScopesResponseArrayOutput { + return o +} + +func (o CrossTenantScopesResponseArrayOutput) ToCrossTenantScopesResponseArrayOutputWithContext(ctx context.Context) CrossTenantScopesResponseArrayOutput { + return o +} + +func (o CrossTenantScopesResponseArrayOutput) Index(i pulumi.IntInput) CrossTenantScopesResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CrossTenantScopesResponse { + return vs[0].([]CrossTenantScopesResponse)[vs[1].(int)] + }).(CrossTenantScopesResponseOutput) +} + // Contains custom Dns resolution configuration from customer. type CustomDnsConfigPropertiesFormat struct { // Fqdn that resolves to private endpoint ip address. @@ -21508,12 +23782,10 @@ func (o CustomRuleResponseArrayOutput) Index(i pulumi.IntInput) CustomRuleRespon // Contains the DDoS protection settings of the public IP. type DdosSettings struct { - // The DDoS custom policy associated with the public IP. - DdosCustomPolicy *SubResource `pulumi:"ddosCustomPolicy"` - // Enables DDoS protection on the public IP. - ProtectedIP *bool `pulumi:"protectedIP"` - // The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. - ProtectionCoverage *string `pulumi:"protectionCoverage"` + // The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled + DdosProtectionPlan *SubResource `pulumi:"ddosProtectionPlan"` + // The DDoS protection mode of the public IP + ProtectionMode *string `pulumi:"protectionMode"` } // DdosSettingsInput is an input type that accepts DdosSettingsArgs and DdosSettingsOutput values. @@ -21529,12 +23801,10 @@ type DdosSettingsInput interface { // Contains the DDoS protection settings of the public IP. type DdosSettingsArgs struct { - // The DDoS custom policy associated with the public IP. - DdosCustomPolicy SubResourcePtrInput `pulumi:"ddosCustomPolicy"` - // Enables DDoS protection on the public IP. - ProtectedIP pulumi.BoolPtrInput `pulumi:"protectedIP"` - // The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. - ProtectionCoverage pulumi.StringPtrInput `pulumi:"protectionCoverage"` + // The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled + DdosProtectionPlan SubResourcePtrInput `pulumi:"ddosProtectionPlan"` + // The DDoS protection mode of the public IP + ProtectionMode pulumi.StringPtrInput `pulumi:"protectionMode"` } func (DdosSettingsArgs) ElementType() reflect.Type { @@ -21615,19 +23885,14 @@ func (o DdosSettingsOutput) ToDdosSettingsPtrOutputWithContext(ctx context.Conte }).(DdosSettingsPtrOutput) } -// The DDoS custom policy associated with the public IP. -func (o DdosSettingsOutput) DdosCustomPolicy() SubResourcePtrOutput { - return o.ApplyT(func(v DdosSettings) *SubResource { return v.DdosCustomPolicy }).(SubResourcePtrOutput) -} - -// Enables DDoS protection on the public IP. -func (o DdosSettingsOutput) ProtectedIP() pulumi.BoolPtrOutput { - return o.ApplyT(func(v DdosSettings) *bool { return v.ProtectedIP }).(pulumi.BoolPtrOutput) +// The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled +func (o DdosSettingsOutput) DdosProtectionPlan() SubResourcePtrOutput { + return o.ApplyT(func(v DdosSettings) *SubResource { return v.DdosProtectionPlan }).(SubResourcePtrOutput) } -// The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. -func (o DdosSettingsOutput) ProtectionCoverage() pulumi.StringPtrOutput { - return o.ApplyT(func(v DdosSettings) *string { return v.ProtectionCoverage }).(pulumi.StringPtrOutput) +// The DDoS protection mode of the public IP +func (o DdosSettingsOutput) ProtectionMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DdosSettings) *string { return v.ProtectionMode }).(pulumi.StringPtrOutput) } type DdosSettingsPtrOutput struct{ *pulumi.OutputState } @@ -21654,33 +23919,23 @@ func (o DdosSettingsPtrOutput) Elem() DdosSettingsOutput { }).(DdosSettingsOutput) } -// The DDoS custom policy associated with the public IP. -func (o DdosSettingsPtrOutput) DdosCustomPolicy() SubResourcePtrOutput { +// The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled +func (o DdosSettingsPtrOutput) DdosProtectionPlan() SubResourcePtrOutput { return o.ApplyT(func(v *DdosSettings) *SubResource { if v == nil { return nil } - return v.DdosCustomPolicy + return v.DdosProtectionPlan }).(SubResourcePtrOutput) } -// Enables DDoS protection on the public IP. -func (o DdosSettingsPtrOutput) ProtectedIP() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *DdosSettings) *bool { - if v == nil { - return nil - } - return v.ProtectedIP - }).(pulumi.BoolPtrOutput) -} - -// The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. -func (o DdosSettingsPtrOutput) ProtectionCoverage() pulumi.StringPtrOutput { +// The DDoS protection mode of the public IP +func (o DdosSettingsPtrOutput) ProtectionMode() pulumi.StringPtrOutput { return o.ApplyT(func(v *DdosSettings) *string { if v == nil { return nil } - return v.ProtectionCoverage + return v.ProtectionMode }).(pulumi.StringPtrOutput) } @@ -21688,10 +23943,12 @@ func (o DdosSettingsPtrOutput) ProtectionCoverage() pulumi.StringPtrOutput { type DdosSettingsResponse struct { // The DDoS custom policy associated with the public IP. DdosCustomPolicy *SubResourceResponse `pulumi:"ddosCustomPolicy"` - // Enables DDoS protection on the public IP. - ProtectedIP *bool `pulumi:"protectedIP"` + // The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled + DdosProtectionPlan *SubResourceResponse `pulumi:"ddosProtectionPlan"` // The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. ProtectionCoverage *string `pulumi:"protectionCoverage"` + // The DDoS protection mode of the public IP + ProtectionMode *string `pulumi:"protectionMode"` } // Contains the DDoS protection settings of the public IP. @@ -21714,9 +23971,9 @@ func (o DdosSettingsResponseOutput) DdosCustomPolicy() SubResourceResponsePtrOut return o.ApplyT(func(v DdosSettingsResponse) *SubResourceResponse { return v.DdosCustomPolicy }).(SubResourceResponsePtrOutput) } -// Enables DDoS protection on the public IP. -func (o DdosSettingsResponseOutput) ProtectedIP() pulumi.BoolPtrOutput { - return o.ApplyT(func(v DdosSettingsResponse) *bool { return v.ProtectedIP }).(pulumi.BoolPtrOutput) +// The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled +func (o DdosSettingsResponseOutput) DdosProtectionPlan() SubResourceResponsePtrOutput { + return o.ApplyT(func(v DdosSettingsResponse) *SubResourceResponse { return v.DdosProtectionPlan }).(SubResourceResponsePtrOutput) } // The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. @@ -21724,6 +23981,11 @@ func (o DdosSettingsResponseOutput) ProtectionCoverage() pulumi.StringPtrOutput return o.ApplyT(func(v DdosSettingsResponse) *string { return v.ProtectionCoverage }).(pulumi.StringPtrOutput) } +// The DDoS protection mode of the public IP +func (o DdosSettingsResponseOutput) ProtectionMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DdosSettingsResponse) *string { return v.ProtectionMode }).(pulumi.StringPtrOutput) +} + type DdosSettingsResponsePtrOutput struct{ *pulumi.OutputState } func (DdosSettingsResponsePtrOutput) ElementType() reflect.Type { @@ -21758,14 +24020,14 @@ func (o DdosSettingsResponsePtrOutput) DdosCustomPolicy() SubResourceResponsePtr }).(SubResourceResponsePtrOutput) } -// Enables DDoS protection on the public IP. -func (o DdosSettingsResponsePtrOutput) ProtectedIP() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *DdosSettingsResponse) *bool { +// The DDoS protection plan associated with the public IP. Can only be set if ProtectionMode is Enabled +func (o DdosSettingsResponsePtrOutput) DdosProtectionPlan() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *DdosSettingsResponse) *SubResourceResponse { if v == nil { return nil } - return v.ProtectedIP - }).(pulumi.BoolPtrOutput) + return v.DdosProtectionPlan + }).(SubResourceResponsePtrOutput) } // The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. @@ -21778,8 +24040,22 @@ func (o DdosSettingsResponsePtrOutput) ProtectionCoverage() pulumi.StringPtrOutp }).(pulumi.StringPtrOutput) } +// The DDoS protection mode of the public IP +func (o DdosSettingsResponsePtrOutput) ProtectionMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DdosSettingsResponse) *string { + if v == nil { + return nil + } + return v.ProtectionMode + }).(pulumi.StringPtrOutput) +} + // Details the service to which the subnet is delegated. type Delegation struct { + // Describes the actions permitted to the service upon delegation + Actions []string `pulumi:"actions"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` // The name of the resource that is unique within a subnet. This name can be used to access the resource. @@ -21803,6 +24079,10 @@ type DelegationInput interface { // Details the service to which the subnet is delegated. type DelegationArgs struct { + // Describes the actions permitted to the service upon delegation + Actions pulumi.StringArrayInput `pulumi:"actions"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // The name of the resource that is unique within a subnet. This name can be used to access the resource. @@ -21865,6 +24145,16 @@ func (o DelegationOutput) ToDelegationOutputWithContext(ctx context.Context) Del return o } +// Describes the actions permitted to the service upon delegation +func (o DelegationOutput) Actions() pulumi.StringArrayOutput { + return o.ApplyT(func(v Delegation) []string { return v.Actions }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o DelegationOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v Delegation) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + // Resource ID. func (o DelegationOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v Delegation) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -21905,6 +24195,223 @@ func (o DelegationArrayOutput) Index(i pulumi.IntInput) DelegationOutput { }).(DelegationOutput) } +// Properties of the delegation. +type DelegationProperties struct { + // The service name to which the NVA is delegated. + ServiceName *string `pulumi:"serviceName"` +} + +// DelegationPropertiesInput is an input type that accepts DelegationPropertiesArgs and DelegationPropertiesOutput values. +// You can construct a concrete instance of `DelegationPropertiesInput` via: +// +// DelegationPropertiesArgs{...} +type DelegationPropertiesInput interface { + pulumi.Input + + ToDelegationPropertiesOutput() DelegationPropertiesOutput + ToDelegationPropertiesOutputWithContext(context.Context) DelegationPropertiesOutput +} + +// Properties of the delegation. +type DelegationPropertiesArgs struct { + // The service name to which the NVA is delegated. + ServiceName pulumi.StringPtrInput `pulumi:"serviceName"` +} + +func (DelegationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DelegationProperties)(nil)).Elem() +} + +func (i DelegationPropertiesArgs) ToDelegationPropertiesOutput() DelegationPropertiesOutput { + return i.ToDelegationPropertiesOutputWithContext(context.Background()) +} + +func (i DelegationPropertiesArgs) ToDelegationPropertiesOutputWithContext(ctx context.Context) DelegationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DelegationPropertiesOutput) +} + +func (i DelegationPropertiesArgs) ToDelegationPropertiesPtrOutput() DelegationPropertiesPtrOutput { + return i.ToDelegationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i DelegationPropertiesArgs) ToDelegationPropertiesPtrOutputWithContext(ctx context.Context) DelegationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DelegationPropertiesOutput).ToDelegationPropertiesPtrOutputWithContext(ctx) +} + +// DelegationPropertiesPtrInput is an input type that accepts DelegationPropertiesArgs, DelegationPropertiesPtr and DelegationPropertiesPtrOutput values. +// You can construct a concrete instance of `DelegationPropertiesPtrInput` via: +// +// DelegationPropertiesArgs{...} +// +// or: +// +// nil +type DelegationPropertiesPtrInput interface { + pulumi.Input + + ToDelegationPropertiesPtrOutput() DelegationPropertiesPtrOutput + ToDelegationPropertiesPtrOutputWithContext(context.Context) DelegationPropertiesPtrOutput +} + +type delegationPropertiesPtrType DelegationPropertiesArgs + +func DelegationPropertiesPtr(v *DelegationPropertiesArgs) DelegationPropertiesPtrInput { + return (*delegationPropertiesPtrType)(v) +} + +func (*delegationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DelegationProperties)(nil)).Elem() +} + +func (i *delegationPropertiesPtrType) ToDelegationPropertiesPtrOutput() DelegationPropertiesPtrOutput { + return i.ToDelegationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *delegationPropertiesPtrType) ToDelegationPropertiesPtrOutputWithContext(ctx context.Context) DelegationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DelegationPropertiesPtrOutput) +} + +// Properties of the delegation. +type DelegationPropertiesOutput struct{ *pulumi.OutputState } + +func (DelegationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DelegationProperties)(nil)).Elem() +} + +func (o DelegationPropertiesOutput) ToDelegationPropertiesOutput() DelegationPropertiesOutput { + return o +} + +func (o DelegationPropertiesOutput) ToDelegationPropertiesOutputWithContext(ctx context.Context) DelegationPropertiesOutput { + return o +} + +func (o DelegationPropertiesOutput) ToDelegationPropertiesPtrOutput() DelegationPropertiesPtrOutput { + return o.ToDelegationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o DelegationPropertiesOutput) ToDelegationPropertiesPtrOutputWithContext(ctx context.Context) DelegationPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DelegationProperties) *DelegationProperties { + return &v + }).(DelegationPropertiesPtrOutput) +} + +// The service name to which the NVA is delegated. +func (o DelegationPropertiesOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DelegationProperties) *string { return v.ServiceName }).(pulumi.StringPtrOutput) +} + +type DelegationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (DelegationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DelegationProperties)(nil)).Elem() +} + +func (o DelegationPropertiesPtrOutput) ToDelegationPropertiesPtrOutput() DelegationPropertiesPtrOutput { + return o +} + +func (o DelegationPropertiesPtrOutput) ToDelegationPropertiesPtrOutputWithContext(ctx context.Context) DelegationPropertiesPtrOutput { + return o +} + +func (o DelegationPropertiesPtrOutput) Elem() DelegationPropertiesOutput { + return o.ApplyT(func(v *DelegationProperties) DelegationProperties { + if v != nil { + return *v + } + var ret DelegationProperties + return ret + }).(DelegationPropertiesOutput) +} + +// The service name to which the NVA is delegated. +func (o DelegationPropertiesPtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DelegationProperties) *string { + if v == nil { + return nil + } + return v.ServiceName + }).(pulumi.StringPtrOutput) +} + +// Properties of the delegation. +type DelegationPropertiesResponse struct { + // The current provisioning state. + ProvisioningState string `pulumi:"provisioningState"` + // The service name to which the NVA is delegated. + ServiceName *string `pulumi:"serviceName"` +} + +// Properties of the delegation. +type DelegationPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (DelegationPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DelegationPropertiesResponse)(nil)).Elem() +} + +func (o DelegationPropertiesResponseOutput) ToDelegationPropertiesResponseOutput() DelegationPropertiesResponseOutput { + return o +} + +func (o DelegationPropertiesResponseOutput) ToDelegationPropertiesResponseOutputWithContext(ctx context.Context) DelegationPropertiesResponseOutput { + return o +} + +// The current provisioning state. +func (o DelegationPropertiesResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v DelegationPropertiesResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The service name to which the NVA is delegated. +func (o DelegationPropertiesResponseOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DelegationPropertiesResponse) *string { return v.ServiceName }).(pulumi.StringPtrOutput) +} + +type DelegationPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (DelegationPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DelegationPropertiesResponse)(nil)).Elem() +} + +func (o DelegationPropertiesResponsePtrOutput) ToDelegationPropertiesResponsePtrOutput() DelegationPropertiesResponsePtrOutput { + return o +} + +func (o DelegationPropertiesResponsePtrOutput) ToDelegationPropertiesResponsePtrOutputWithContext(ctx context.Context) DelegationPropertiesResponsePtrOutput { + return o +} + +func (o DelegationPropertiesResponsePtrOutput) Elem() DelegationPropertiesResponseOutput { + return o.ApplyT(func(v *DelegationPropertiesResponse) DelegationPropertiesResponse { + if v != nil { + return *v + } + var ret DelegationPropertiesResponse + return ret + }).(DelegationPropertiesResponseOutput) +} + +// The current provisioning state. +func (o DelegationPropertiesResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DelegationPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// The service name to which the NVA is delegated. +func (o DelegationPropertiesResponsePtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DelegationPropertiesResponse) *string { + if v == nil { + return nil + } + return v.ServiceName + }).(pulumi.StringPtrOutput) +} + // Details the service to which the subnet is delegated. type DelegationResponse struct { // The actions permitted to the service upon delegation. @@ -23059,12 +25566,14 @@ type EffectiveConnectivityConfigurationResponse struct { DisplayName *string `pulumi:"displayName"` // List of hubItems Hubs []HubResponse `pulumi:"hubs"` - // Resource ID. + // Connectivity configuration ID. Id *string `pulumi:"id"` // Flag if global mesh is supported. IsGlobal *string `pulumi:"isGlobal"` // The provisioning state of the connectivity configuration resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` } // The network manager effective connectivity configuration @@ -23121,7 +25630,7 @@ func (o EffectiveConnectivityConfigurationResponseOutput) Hubs() HubResponseArra return o.ApplyT(func(v EffectiveConnectivityConfigurationResponse) []HubResponse { return v.Hubs }).(HubResponseArrayOutput) } -// Resource ID. +// Connectivity configuration ID. func (o EffectiveConnectivityConfigurationResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v EffectiveConnectivityConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -23136,6 +25645,11 @@ func (o EffectiveConnectivityConfigurationResponseOutput) ProvisioningState() pu return o.ApplyT(func(v EffectiveConnectivityConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Unique identifier for this resource. +func (o EffectiveConnectivityConfigurationResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v EffectiveConnectivityConfigurationResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + type EffectiveConnectivityConfigurationResponseArrayOutput struct{ *pulumi.OutputState } func (EffectiveConnectivityConfigurationResponseArrayOutput) ElementType() reflect.Type { @@ -23173,7 +25687,7 @@ type EffectiveDefaultSecurityAdminRuleResponse struct { // Indicates if the traffic matched against the rule in inbound or outbound. Direction string `pulumi:"direction"` // A friendly name for the rule. - DisplayName string `pulumi:"displayName"` + DisplayName *string `pulumi:"displayName"` // Default rule flag. Flag *string `pulumi:"flag"` // Resource ID. @@ -23187,6 +25701,8 @@ type EffectiveDefaultSecurityAdminRuleResponse struct { Protocol string `pulumi:"protocol"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // Groups for rule collection RuleCollectionAppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"ruleCollectionAppliesToGroups"` // A description of the rule collection. @@ -23225,11 +25741,13 @@ type EffectiveSecurityAdminRuleResponse struct { // Expected value is 'Custom'. Kind string `pulumi:"kind"` // The priority of the rule. The value can be between 1 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` + Priority int `pulumi:"priority"` // Network protocol this rule applies to. Protocol string `pulumi:"protocol"` // The provisioning state of the resource. ProvisioningState string `pulumi:"provisioningState"` + // Unique identifier for this resource. + ResourceGuid string `pulumi:"resourceGuid"` // Groups for rule collection RuleCollectionAppliesToGroups []NetworkManagerSecurityGroupItemResponse `pulumi:"ruleCollectionAppliesToGroups"` // A description of the rule collection. @@ -23306,6 +25824,8 @@ func (o EffectiveVirtualNetworkResponseArrayOutput) Index(i pulumi.IntInput) Eff // Class representing a Traffic Manager endpoint. type EndpointType struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe *string `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders []EndpointPropertiesCustomHeaders `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -23353,6 +25873,8 @@ type EndpointTypeInput interface { // Class representing a Traffic Manager endpoint. type EndpointTypeArgs struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe pulumi.StringPtrInput `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders EndpointPropertiesCustomHeadersArrayInput `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -23439,6 +25961,11 @@ func (o EndpointTypeOutput) ToEndpointTypeOutputWithContext(ctx context.Context) return o } +// If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. +func (o EndpointTypeOutput) AlwaysServe() pulumi.StringPtrOutput { + return o.ApplyT(func(v EndpointType) *string { return v.AlwaysServe }).(pulumi.StringPtrOutput) +} + // List of custom headers. func (o EndpointTypeOutput) CustomHeaders() EndpointPropertiesCustomHeadersArrayOutput { return o.ApplyT(func(v EndpointType) []EndpointPropertiesCustomHeaders { return v.CustomHeaders }).(EndpointPropertiesCustomHeadersArrayOutput) @@ -23881,6 +26408,8 @@ func (o EndpointPropertiesSubnetsArrayOutput) Index(i pulumi.IntInput) EndpointP // Class representing a Traffic Manager endpoint. type EndpointResponse struct { + // If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. + AlwaysServe *string `pulumi:"alwaysServe"` // List of custom headers. CustomHeaders []EndpointPropertiesResponseCustomHeaders `pulumi:"customHeaders"` // Specifies the location of the external or nested endpoints when using the 'Performance' traffic routing method. @@ -23930,6 +26459,11 @@ func (o EndpointResponseOutput) ToEndpointResponseOutputWithContext(ctx context. return o } +// If Always Serve is enabled, probing for endpoint health will be disabled and endpoints will be included in the traffic routing method. +func (o EndpointResponseOutput) AlwaysServe() pulumi.StringPtrOutput { + return o.ApplyT(func(v EndpointResponse) *string { return v.AlwaysServe }).(pulumi.StringPtrOutput) +} + // List of custom headers. func (o EndpointResponseOutput) CustomHeaders() EndpointPropertiesResponseCustomHeadersArrayOutput { return o.ApplyT(func(v EndpointResponse) []EndpointPropertiesResponseCustomHeaders { return v.CustomHeaders }).(EndpointPropertiesResponseCustomHeadersArrayOutput) @@ -24030,6 +26564,692 @@ func (o EndpointResponseArrayOutput) Index(i pulumi.IntInput) EndpointResponseOu }).(EndpointResponseOutput) } +// Identifies the service being brought into the virtual network. +type EndpointService struct { + // A unique identifier of the service being referenced by the interface endpoint. + Id *string `pulumi:"id"` +} + +// EndpointServiceInput is an input type that accepts EndpointServiceArgs and EndpointServiceOutput values. +// You can construct a concrete instance of `EndpointServiceInput` via: +// +// EndpointServiceArgs{...} +type EndpointServiceInput interface { + pulumi.Input + + ToEndpointServiceOutput() EndpointServiceOutput + ToEndpointServiceOutputWithContext(context.Context) EndpointServiceOutput +} + +// Identifies the service being brought into the virtual network. +type EndpointServiceArgs struct { + // A unique identifier of the service being referenced by the interface endpoint. + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (EndpointServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EndpointService)(nil)).Elem() +} + +func (i EndpointServiceArgs) ToEndpointServiceOutput() EndpointServiceOutput { + return i.ToEndpointServiceOutputWithContext(context.Background()) +} + +func (i EndpointServiceArgs) ToEndpointServiceOutputWithContext(ctx context.Context) EndpointServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(EndpointServiceOutput) +} + +func (i EndpointServiceArgs) ToEndpointServicePtrOutput() EndpointServicePtrOutput { + return i.ToEndpointServicePtrOutputWithContext(context.Background()) +} + +func (i EndpointServiceArgs) ToEndpointServicePtrOutputWithContext(ctx context.Context) EndpointServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EndpointServiceOutput).ToEndpointServicePtrOutputWithContext(ctx) +} + +// EndpointServicePtrInput is an input type that accepts EndpointServiceArgs, EndpointServicePtr and EndpointServicePtrOutput values. +// You can construct a concrete instance of `EndpointServicePtrInput` via: +// +// EndpointServiceArgs{...} +// +// or: +// +// nil +type EndpointServicePtrInput interface { + pulumi.Input + + ToEndpointServicePtrOutput() EndpointServicePtrOutput + ToEndpointServicePtrOutputWithContext(context.Context) EndpointServicePtrOutput +} + +type endpointServicePtrType EndpointServiceArgs + +func EndpointServicePtr(v *EndpointServiceArgs) EndpointServicePtrInput { + return (*endpointServicePtrType)(v) +} + +func (*endpointServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EndpointService)(nil)).Elem() +} + +func (i *endpointServicePtrType) ToEndpointServicePtrOutput() EndpointServicePtrOutput { + return i.ToEndpointServicePtrOutputWithContext(context.Background()) +} + +func (i *endpointServicePtrType) ToEndpointServicePtrOutputWithContext(ctx context.Context) EndpointServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EndpointServicePtrOutput) +} + +// Identifies the service being brought into the virtual network. +type EndpointServiceOutput struct{ *pulumi.OutputState } + +func (EndpointServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EndpointService)(nil)).Elem() +} + +func (o EndpointServiceOutput) ToEndpointServiceOutput() EndpointServiceOutput { + return o +} + +func (o EndpointServiceOutput) ToEndpointServiceOutputWithContext(ctx context.Context) EndpointServiceOutput { + return o +} + +func (o EndpointServiceOutput) ToEndpointServicePtrOutput() EndpointServicePtrOutput { + return o.ToEndpointServicePtrOutputWithContext(context.Background()) +} + +func (o EndpointServiceOutput) ToEndpointServicePtrOutputWithContext(ctx context.Context) EndpointServicePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EndpointService) *EndpointService { + return &v + }).(EndpointServicePtrOutput) +} + +// A unique identifier of the service being referenced by the interface endpoint. +func (o EndpointServiceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v EndpointService) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type EndpointServicePtrOutput struct{ *pulumi.OutputState } + +func (EndpointServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EndpointService)(nil)).Elem() +} + +func (o EndpointServicePtrOutput) ToEndpointServicePtrOutput() EndpointServicePtrOutput { + return o +} + +func (o EndpointServicePtrOutput) ToEndpointServicePtrOutputWithContext(ctx context.Context) EndpointServicePtrOutput { + return o +} + +func (o EndpointServicePtrOutput) Elem() EndpointServiceOutput { + return o.ApplyT(func(v *EndpointService) EndpointService { + if v != nil { + return *v + } + var ret EndpointService + return ret + }).(EndpointServiceOutput) +} + +// A unique identifier of the service being referenced by the interface endpoint. +func (o EndpointServicePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EndpointService) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Identifies the service being brought into the virtual network. +type EndpointServiceResponse struct { + // A unique identifier of the service being referenced by the interface endpoint. + Id *string `pulumi:"id"` +} + +// Identifies the service being brought into the virtual network. +type EndpointServiceResponseOutput struct{ *pulumi.OutputState } + +func (EndpointServiceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EndpointServiceResponse)(nil)).Elem() +} + +func (o EndpointServiceResponseOutput) ToEndpointServiceResponseOutput() EndpointServiceResponseOutput { + return o +} + +func (o EndpointServiceResponseOutput) ToEndpointServiceResponseOutputWithContext(ctx context.Context) EndpointServiceResponseOutput { + return o +} + +// A unique identifier of the service being referenced by the interface endpoint. +func (o EndpointServiceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v EndpointServiceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type EndpointServiceResponsePtrOutput struct{ *pulumi.OutputState } + +func (EndpointServiceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EndpointServiceResponse)(nil)).Elem() +} + +func (o EndpointServiceResponsePtrOutput) ToEndpointServiceResponsePtrOutput() EndpointServiceResponsePtrOutput { + return o +} + +func (o EndpointServiceResponsePtrOutput) ToEndpointServiceResponsePtrOutputWithContext(ctx context.Context) EndpointServiceResponsePtrOutput { + return o +} + +func (o EndpointServiceResponsePtrOutput) Elem() EndpointServiceResponseOutput { + return o.ApplyT(func(v *EndpointServiceResponse) EndpointServiceResponse { + if v != nil { + return *v + } + var ret EndpointServiceResponse + return ret + }).(EndpointServiceResponseOutput) +} + +// A unique identifier of the service being referenced by the interface endpoint. +func (o EndpointServiceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EndpointServiceResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Defines a managed rule to use for exclusion. +type ExclusionManagedRule struct { + // Identifier for the managed rule. + RuleId string `pulumi:"ruleId"` +} + +// ExclusionManagedRuleInput is an input type that accepts ExclusionManagedRuleArgs and ExclusionManagedRuleOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleInput` via: +// +// ExclusionManagedRuleArgs{...} +type ExclusionManagedRuleInput interface { + pulumi.Input + + ToExclusionManagedRuleOutput() ExclusionManagedRuleOutput + ToExclusionManagedRuleOutputWithContext(context.Context) ExclusionManagedRuleOutput +} + +// Defines a managed rule to use for exclusion. +type ExclusionManagedRuleArgs struct { + // Identifier for the managed rule. + RuleId pulumi.StringInput `pulumi:"ruleId"` +} + +func (ExclusionManagedRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRule)(nil)).Elem() +} + +func (i ExclusionManagedRuleArgs) ToExclusionManagedRuleOutput() ExclusionManagedRuleOutput { + return i.ToExclusionManagedRuleOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleArgs) ToExclusionManagedRuleOutputWithContext(ctx context.Context) ExclusionManagedRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleOutput) +} + +// ExclusionManagedRuleArrayInput is an input type that accepts ExclusionManagedRuleArray and ExclusionManagedRuleArrayOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleArrayInput` via: +// +// ExclusionManagedRuleArray{ ExclusionManagedRuleArgs{...} } +type ExclusionManagedRuleArrayInput interface { + pulumi.Input + + ToExclusionManagedRuleArrayOutput() ExclusionManagedRuleArrayOutput + ToExclusionManagedRuleArrayOutputWithContext(context.Context) ExclusionManagedRuleArrayOutput +} + +type ExclusionManagedRuleArray []ExclusionManagedRuleInput + +func (ExclusionManagedRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRule)(nil)).Elem() +} + +func (i ExclusionManagedRuleArray) ToExclusionManagedRuleArrayOutput() ExclusionManagedRuleArrayOutput { + return i.ToExclusionManagedRuleArrayOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleArray) ToExclusionManagedRuleArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleArrayOutput) +} + +// Defines a managed rule to use for exclusion. +type ExclusionManagedRuleOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRule)(nil)).Elem() +} + +func (o ExclusionManagedRuleOutput) ToExclusionManagedRuleOutput() ExclusionManagedRuleOutput { + return o +} + +func (o ExclusionManagedRuleOutput) ToExclusionManagedRuleOutputWithContext(ctx context.Context) ExclusionManagedRuleOutput { + return o +} + +// Identifier for the managed rule. +func (o ExclusionManagedRuleOutput) RuleId() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRule) string { return v.RuleId }).(pulumi.StringOutput) +} + +type ExclusionManagedRuleArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRule)(nil)).Elem() +} + +func (o ExclusionManagedRuleArrayOutput) ToExclusionManagedRuleArrayOutput() ExclusionManagedRuleArrayOutput { + return o +} + +func (o ExclusionManagedRuleArrayOutput) ToExclusionManagedRuleArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleArrayOutput { + return o +} + +func (o ExclusionManagedRuleArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRule { + return vs[0].([]ExclusionManagedRule)[vs[1].(int)] + }).(ExclusionManagedRuleOutput) +} + +// Defines a managed rule group to use for exclusion. +type ExclusionManagedRuleGroup struct { + // The managed rule group for exclusion. + RuleGroupName string `pulumi:"ruleGroupName"` + // List of rules that will be excluded. If none specified, all rules in the group will be excluded. + Rules []ExclusionManagedRule `pulumi:"rules"` +} + +// ExclusionManagedRuleGroupInput is an input type that accepts ExclusionManagedRuleGroupArgs and ExclusionManagedRuleGroupOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleGroupInput` via: +// +// ExclusionManagedRuleGroupArgs{...} +type ExclusionManagedRuleGroupInput interface { + pulumi.Input + + ToExclusionManagedRuleGroupOutput() ExclusionManagedRuleGroupOutput + ToExclusionManagedRuleGroupOutputWithContext(context.Context) ExclusionManagedRuleGroupOutput +} + +// Defines a managed rule group to use for exclusion. +type ExclusionManagedRuleGroupArgs struct { + // The managed rule group for exclusion. + RuleGroupName pulumi.StringInput `pulumi:"ruleGroupName"` + // List of rules that will be excluded. If none specified, all rules in the group will be excluded. + Rules ExclusionManagedRuleArrayInput `pulumi:"rules"` +} + +func (ExclusionManagedRuleGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleGroup)(nil)).Elem() +} + +func (i ExclusionManagedRuleGroupArgs) ToExclusionManagedRuleGroupOutput() ExclusionManagedRuleGroupOutput { + return i.ToExclusionManagedRuleGroupOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleGroupArgs) ToExclusionManagedRuleGroupOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleGroupOutput) +} + +// ExclusionManagedRuleGroupArrayInput is an input type that accepts ExclusionManagedRuleGroupArray and ExclusionManagedRuleGroupArrayOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleGroupArrayInput` via: +// +// ExclusionManagedRuleGroupArray{ ExclusionManagedRuleGroupArgs{...} } +type ExclusionManagedRuleGroupArrayInput interface { + pulumi.Input + + ToExclusionManagedRuleGroupArrayOutput() ExclusionManagedRuleGroupArrayOutput + ToExclusionManagedRuleGroupArrayOutputWithContext(context.Context) ExclusionManagedRuleGroupArrayOutput +} + +type ExclusionManagedRuleGroupArray []ExclusionManagedRuleGroupInput + +func (ExclusionManagedRuleGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleGroup)(nil)).Elem() +} + +func (i ExclusionManagedRuleGroupArray) ToExclusionManagedRuleGroupArrayOutput() ExclusionManagedRuleGroupArrayOutput { + return i.ToExclusionManagedRuleGroupArrayOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleGroupArray) ToExclusionManagedRuleGroupArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleGroupArrayOutput) +} + +// Defines a managed rule group to use for exclusion. +type ExclusionManagedRuleGroupOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleGroup)(nil)).Elem() +} + +func (o ExclusionManagedRuleGroupOutput) ToExclusionManagedRuleGroupOutput() ExclusionManagedRuleGroupOutput { + return o +} + +func (o ExclusionManagedRuleGroupOutput) ToExclusionManagedRuleGroupOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupOutput { + return o +} + +// The managed rule group for exclusion. +func (o ExclusionManagedRuleGroupOutput) RuleGroupName() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleGroup) string { return v.RuleGroupName }).(pulumi.StringOutput) +} + +// List of rules that will be excluded. If none specified, all rules in the group will be excluded. +func (o ExclusionManagedRuleGroupOutput) Rules() ExclusionManagedRuleArrayOutput { + return o.ApplyT(func(v ExclusionManagedRuleGroup) []ExclusionManagedRule { return v.Rules }).(ExclusionManagedRuleArrayOutput) +} + +type ExclusionManagedRuleGroupArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleGroup)(nil)).Elem() +} + +func (o ExclusionManagedRuleGroupArrayOutput) ToExclusionManagedRuleGroupArrayOutput() ExclusionManagedRuleGroupArrayOutput { + return o +} + +func (o ExclusionManagedRuleGroupArrayOutput) ToExclusionManagedRuleGroupArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupArrayOutput { + return o +} + +func (o ExclusionManagedRuleGroupArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRuleGroup { + return vs[0].([]ExclusionManagedRuleGroup)[vs[1].(int)] + }).(ExclusionManagedRuleGroupOutput) +} + +// Defines a managed rule group to use for exclusion. +type ExclusionManagedRuleGroupResponse struct { + // The managed rule group for exclusion. + RuleGroupName string `pulumi:"ruleGroupName"` + // List of rules that will be excluded. If none specified, all rules in the group will be excluded. + Rules []ExclusionManagedRuleResponse `pulumi:"rules"` +} + +// Defines a managed rule group to use for exclusion. +type ExclusionManagedRuleGroupResponseOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleGroupResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleGroupResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleGroupResponseOutput) ToExclusionManagedRuleGroupResponseOutput() ExclusionManagedRuleGroupResponseOutput { + return o +} + +func (o ExclusionManagedRuleGroupResponseOutput) ToExclusionManagedRuleGroupResponseOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupResponseOutput { + return o +} + +// The managed rule group for exclusion. +func (o ExclusionManagedRuleGroupResponseOutput) RuleGroupName() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleGroupResponse) string { return v.RuleGroupName }).(pulumi.StringOutput) +} + +// List of rules that will be excluded. If none specified, all rules in the group will be excluded. +func (o ExclusionManagedRuleGroupResponseOutput) Rules() ExclusionManagedRuleResponseArrayOutput { + return o.ApplyT(func(v ExclusionManagedRuleGroupResponse) []ExclusionManagedRuleResponse { return v.Rules }).(ExclusionManagedRuleResponseArrayOutput) +} + +type ExclusionManagedRuleGroupResponseArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleGroupResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleGroupResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleGroupResponseArrayOutput) ToExclusionManagedRuleGroupResponseArrayOutput() ExclusionManagedRuleGroupResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleGroupResponseArrayOutput) ToExclusionManagedRuleGroupResponseArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleGroupResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleGroupResponseArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleGroupResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRuleGroupResponse { + return vs[0].([]ExclusionManagedRuleGroupResponse)[vs[1].(int)] + }).(ExclusionManagedRuleGroupResponseOutput) +} + +// Defines a managed rule to use for exclusion. +type ExclusionManagedRuleResponse struct { + // Identifier for the managed rule. + RuleId string `pulumi:"ruleId"` +} + +// Defines a managed rule to use for exclusion. +type ExclusionManagedRuleResponseOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleResponseOutput) ToExclusionManagedRuleResponseOutput() ExclusionManagedRuleResponseOutput { + return o +} + +func (o ExclusionManagedRuleResponseOutput) ToExclusionManagedRuleResponseOutputWithContext(ctx context.Context) ExclusionManagedRuleResponseOutput { + return o +} + +// Identifier for the managed rule. +func (o ExclusionManagedRuleResponseOutput) RuleId() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleResponse) string { return v.RuleId }).(pulumi.StringOutput) +} + +type ExclusionManagedRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleResponseArrayOutput) ToExclusionManagedRuleResponseArrayOutput() ExclusionManagedRuleResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleResponseArrayOutput) ToExclusionManagedRuleResponseArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleResponseArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRuleResponse { + return vs[0].([]ExclusionManagedRuleResponse)[vs[1].(int)] + }).(ExclusionManagedRuleResponseOutput) +} + +// Defines a managed rule set for Exclusions. +type ExclusionManagedRuleSet struct { + // Defines the rule groups to apply to the rule set. + RuleGroups []ExclusionManagedRuleGroup `pulumi:"ruleGroups"` + // Defines the rule set type to use. + RuleSetType string `pulumi:"ruleSetType"` + // Defines the version of the rule set to use. + RuleSetVersion string `pulumi:"ruleSetVersion"` +} + +// ExclusionManagedRuleSetInput is an input type that accepts ExclusionManagedRuleSetArgs and ExclusionManagedRuleSetOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleSetInput` via: +// +// ExclusionManagedRuleSetArgs{...} +type ExclusionManagedRuleSetInput interface { + pulumi.Input + + ToExclusionManagedRuleSetOutput() ExclusionManagedRuleSetOutput + ToExclusionManagedRuleSetOutputWithContext(context.Context) ExclusionManagedRuleSetOutput +} + +// Defines a managed rule set for Exclusions. +type ExclusionManagedRuleSetArgs struct { + // Defines the rule groups to apply to the rule set. + RuleGroups ExclusionManagedRuleGroupArrayInput `pulumi:"ruleGroups"` + // Defines the rule set type to use. + RuleSetType pulumi.StringInput `pulumi:"ruleSetType"` + // Defines the version of the rule set to use. + RuleSetVersion pulumi.StringInput `pulumi:"ruleSetVersion"` +} + +func (ExclusionManagedRuleSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleSet)(nil)).Elem() +} + +func (i ExclusionManagedRuleSetArgs) ToExclusionManagedRuleSetOutput() ExclusionManagedRuleSetOutput { + return i.ToExclusionManagedRuleSetOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleSetArgs) ToExclusionManagedRuleSetOutputWithContext(ctx context.Context) ExclusionManagedRuleSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleSetOutput) +} + +// ExclusionManagedRuleSetArrayInput is an input type that accepts ExclusionManagedRuleSetArray and ExclusionManagedRuleSetArrayOutput values. +// You can construct a concrete instance of `ExclusionManagedRuleSetArrayInput` via: +// +// ExclusionManagedRuleSetArray{ ExclusionManagedRuleSetArgs{...} } +type ExclusionManagedRuleSetArrayInput interface { + pulumi.Input + + ToExclusionManagedRuleSetArrayOutput() ExclusionManagedRuleSetArrayOutput + ToExclusionManagedRuleSetArrayOutputWithContext(context.Context) ExclusionManagedRuleSetArrayOutput +} + +type ExclusionManagedRuleSetArray []ExclusionManagedRuleSetInput + +func (ExclusionManagedRuleSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleSet)(nil)).Elem() +} + +func (i ExclusionManagedRuleSetArray) ToExclusionManagedRuleSetArrayOutput() ExclusionManagedRuleSetArrayOutput { + return i.ToExclusionManagedRuleSetArrayOutputWithContext(context.Background()) +} + +func (i ExclusionManagedRuleSetArray) ToExclusionManagedRuleSetArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExclusionManagedRuleSetArrayOutput) +} + +// Defines a managed rule set for Exclusions. +type ExclusionManagedRuleSetOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleSet)(nil)).Elem() +} + +func (o ExclusionManagedRuleSetOutput) ToExclusionManagedRuleSetOutput() ExclusionManagedRuleSetOutput { + return o +} + +func (o ExclusionManagedRuleSetOutput) ToExclusionManagedRuleSetOutputWithContext(ctx context.Context) ExclusionManagedRuleSetOutput { + return o +} + +// Defines the rule groups to apply to the rule set. +func (o ExclusionManagedRuleSetOutput) RuleGroups() ExclusionManagedRuleGroupArrayOutput { + return o.ApplyT(func(v ExclusionManagedRuleSet) []ExclusionManagedRuleGroup { return v.RuleGroups }).(ExclusionManagedRuleGroupArrayOutput) +} + +// Defines the rule set type to use. +func (o ExclusionManagedRuleSetOutput) RuleSetType() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleSet) string { return v.RuleSetType }).(pulumi.StringOutput) +} + +// Defines the version of the rule set to use. +func (o ExclusionManagedRuleSetOutput) RuleSetVersion() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleSet) string { return v.RuleSetVersion }).(pulumi.StringOutput) +} + +type ExclusionManagedRuleSetArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleSet)(nil)).Elem() +} + +func (o ExclusionManagedRuleSetArrayOutput) ToExclusionManagedRuleSetArrayOutput() ExclusionManagedRuleSetArrayOutput { + return o +} + +func (o ExclusionManagedRuleSetArrayOutput) ToExclusionManagedRuleSetArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleSetArrayOutput { + return o +} + +func (o ExclusionManagedRuleSetArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRuleSet { + return vs[0].([]ExclusionManagedRuleSet)[vs[1].(int)] + }).(ExclusionManagedRuleSetOutput) +} + +// Defines a managed rule set for Exclusions. +type ExclusionManagedRuleSetResponse struct { + // Defines the rule groups to apply to the rule set. + RuleGroups []ExclusionManagedRuleGroupResponse `pulumi:"ruleGroups"` + // Defines the rule set type to use. + RuleSetType string `pulumi:"ruleSetType"` + // Defines the version of the rule set to use. + RuleSetVersion string `pulumi:"ruleSetVersion"` +} + +// Defines a managed rule set for Exclusions. +type ExclusionManagedRuleSetResponseOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleSetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExclusionManagedRuleSetResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleSetResponseOutput) ToExclusionManagedRuleSetResponseOutput() ExclusionManagedRuleSetResponseOutput { + return o +} + +func (o ExclusionManagedRuleSetResponseOutput) ToExclusionManagedRuleSetResponseOutputWithContext(ctx context.Context) ExclusionManagedRuleSetResponseOutput { + return o +} + +// Defines the rule groups to apply to the rule set. +func (o ExclusionManagedRuleSetResponseOutput) RuleGroups() ExclusionManagedRuleGroupResponseArrayOutput { + return o.ApplyT(func(v ExclusionManagedRuleSetResponse) []ExclusionManagedRuleGroupResponse { return v.RuleGroups }).(ExclusionManagedRuleGroupResponseArrayOutput) +} + +// Defines the rule set type to use. +func (o ExclusionManagedRuleSetResponseOutput) RuleSetType() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleSetResponse) string { return v.RuleSetType }).(pulumi.StringOutput) +} + +// Defines the version of the rule set to use. +func (o ExclusionManagedRuleSetResponseOutput) RuleSetVersion() pulumi.StringOutput { + return o.ApplyT(func(v ExclusionManagedRuleSetResponse) string { return v.RuleSetVersion }).(pulumi.StringOutput) +} + +type ExclusionManagedRuleSetResponseArrayOutput struct{ *pulumi.OutputState } + +func (ExclusionManagedRuleSetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExclusionManagedRuleSetResponse)(nil)).Elem() +} + +func (o ExclusionManagedRuleSetResponseArrayOutput) ToExclusionManagedRuleSetResponseArrayOutput() ExclusionManagedRuleSetResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleSetResponseArrayOutput) ToExclusionManagedRuleSetResponseArrayOutputWithContext(ctx context.Context) ExclusionManagedRuleSetResponseArrayOutput { + return o +} + +func (o ExclusionManagedRuleSetResponseArrayOutput) Index(i pulumi.IntInput) ExclusionManagedRuleSetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExclusionManagedRuleSetResponse { + return vs[0].([]ExclusionManagedRuleSetResponse)[vs[1].(int)] + }).(ExclusionManagedRuleSetResponseOutput) +} + // Defines the endpoint properties type ExperimentEndpoint struct { // The endpoint URL @@ -24266,6 +27486,386 @@ func (o ExperimentEndpointResponsePtrOutput) Name() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Explicit Proxy Settings in Firewall Policy. +type ExplicitProxy struct { + // When set to true, explicit proxy mode is enabled. + EnableExplicitProxy *bool `pulumi:"enableExplicitProxy"` + // When set to true, pac file port and url needs to be provided. + EnablePacFile *bool `pulumi:"enablePacFile"` + // Port number for explicit proxy http protocol, cannot be greater than 64000. + HttpPort *int `pulumi:"httpPort"` + // Port number for explicit proxy https protocol, cannot be greater than 64000. + HttpsPort *int `pulumi:"httpsPort"` + // SAS URL for PAC file. + PacFile *string `pulumi:"pacFile"` + // Port number for firewall to serve PAC file. + PacFilePort *int `pulumi:"pacFilePort"` +} + +// ExplicitProxyInput is an input type that accepts ExplicitProxyArgs and ExplicitProxyOutput values. +// You can construct a concrete instance of `ExplicitProxyInput` via: +// +// ExplicitProxyArgs{...} +type ExplicitProxyInput interface { + pulumi.Input + + ToExplicitProxyOutput() ExplicitProxyOutput + ToExplicitProxyOutputWithContext(context.Context) ExplicitProxyOutput +} + +// Explicit Proxy Settings in Firewall Policy. +type ExplicitProxyArgs struct { + // When set to true, explicit proxy mode is enabled. + EnableExplicitProxy pulumi.BoolPtrInput `pulumi:"enableExplicitProxy"` + // When set to true, pac file port and url needs to be provided. + EnablePacFile pulumi.BoolPtrInput `pulumi:"enablePacFile"` + // Port number for explicit proxy http protocol, cannot be greater than 64000. + HttpPort pulumi.IntPtrInput `pulumi:"httpPort"` + // Port number for explicit proxy https protocol, cannot be greater than 64000. + HttpsPort pulumi.IntPtrInput `pulumi:"httpsPort"` + // SAS URL for PAC file. + PacFile pulumi.StringPtrInput `pulumi:"pacFile"` + // Port number for firewall to serve PAC file. + PacFilePort pulumi.IntPtrInput `pulumi:"pacFilePort"` +} + +func (ExplicitProxyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExplicitProxy)(nil)).Elem() +} + +func (i ExplicitProxyArgs) ToExplicitProxyOutput() ExplicitProxyOutput { + return i.ToExplicitProxyOutputWithContext(context.Background()) +} + +func (i ExplicitProxyArgs) ToExplicitProxyOutputWithContext(ctx context.Context) ExplicitProxyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExplicitProxyOutput) +} + +func (i ExplicitProxyArgs) ToExplicitProxyPtrOutput() ExplicitProxyPtrOutput { + return i.ToExplicitProxyPtrOutputWithContext(context.Background()) +} + +func (i ExplicitProxyArgs) ToExplicitProxyPtrOutputWithContext(ctx context.Context) ExplicitProxyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExplicitProxyOutput).ToExplicitProxyPtrOutputWithContext(ctx) +} + +// ExplicitProxyPtrInput is an input type that accepts ExplicitProxyArgs, ExplicitProxyPtr and ExplicitProxyPtrOutput values. +// You can construct a concrete instance of `ExplicitProxyPtrInput` via: +// +// ExplicitProxyArgs{...} +// +// or: +// +// nil +type ExplicitProxyPtrInput interface { + pulumi.Input + + ToExplicitProxyPtrOutput() ExplicitProxyPtrOutput + ToExplicitProxyPtrOutputWithContext(context.Context) ExplicitProxyPtrOutput +} + +type explicitProxyPtrType ExplicitProxyArgs + +func ExplicitProxyPtr(v *ExplicitProxyArgs) ExplicitProxyPtrInput { + return (*explicitProxyPtrType)(v) +} + +func (*explicitProxyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExplicitProxy)(nil)).Elem() +} + +func (i *explicitProxyPtrType) ToExplicitProxyPtrOutput() ExplicitProxyPtrOutput { + return i.ToExplicitProxyPtrOutputWithContext(context.Background()) +} + +func (i *explicitProxyPtrType) ToExplicitProxyPtrOutputWithContext(ctx context.Context) ExplicitProxyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExplicitProxyPtrOutput) +} + +// Explicit Proxy Settings in Firewall Policy. +type ExplicitProxyOutput struct{ *pulumi.OutputState } + +func (ExplicitProxyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExplicitProxy)(nil)).Elem() +} + +func (o ExplicitProxyOutput) ToExplicitProxyOutput() ExplicitProxyOutput { + return o +} + +func (o ExplicitProxyOutput) ToExplicitProxyOutputWithContext(ctx context.Context) ExplicitProxyOutput { + return o +} + +func (o ExplicitProxyOutput) ToExplicitProxyPtrOutput() ExplicitProxyPtrOutput { + return o.ToExplicitProxyPtrOutputWithContext(context.Background()) +} + +func (o ExplicitProxyOutput) ToExplicitProxyPtrOutputWithContext(ctx context.Context) ExplicitProxyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExplicitProxy) *ExplicitProxy { + return &v + }).(ExplicitProxyPtrOutput) +} + +// When set to true, explicit proxy mode is enabled. +func (o ExplicitProxyOutput) EnableExplicitProxy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *bool { return v.EnableExplicitProxy }).(pulumi.BoolPtrOutput) +} + +// When set to true, pac file port and url needs to be provided. +func (o ExplicitProxyOutput) EnablePacFile() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *bool { return v.EnablePacFile }).(pulumi.BoolPtrOutput) +} + +// Port number for explicit proxy http protocol, cannot be greater than 64000. +func (o ExplicitProxyOutput) HttpPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *int { return v.HttpPort }).(pulumi.IntPtrOutput) +} + +// Port number for explicit proxy https protocol, cannot be greater than 64000. +func (o ExplicitProxyOutput) HttpsPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *int { return v.HttpsPort }).(pulumi.IntPtrOutput) +} + +// SAS URL for PAC file. +func (o ExplicitProxyOutput) PacFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *string { return v.PacFile }).(pulumi.StringPtrOutput) +} + +// Port number for firewall to serve PAC file. +func (o ExplicitProxyOutput) PacFilePort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxy) *int { return v.PacFilePort }).(pulumi.IntPtrOutput) +} + +type ExplicitProxyPtrOutput struct{ *pulumi.OutputState } + +func (ExplicitProxyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExplicitProxy)(nil)).Elem() +} + +func (o ExplicitProxyPtrOutput) ToExplicitProxyPtrOutput() ExplicitProxyPtrOutput { + return o +} + +func (o ExplicitProxyPtrOutput) ToExplicitProxyPtrOutputWithContext(ctx context.Context) ExplicitProxyPtrOutput { + return o +} + +func (o ExplicitProxyPtrOutput) Elem() ExplicitProxyOutput { + return o.ApplyT(func(v *ExplicitProxy) ExplicitProxy { + if v != nil { + return *v + } + var ret ExplicitProxy + return ret + }).(ExplicitProxyOutput) +} + +// When set to true, explicit proxy mode is enabled. +func (o ExplicitProxyPtrOutput) EnableExplicitProxy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *bool { + if v == nil { + return nil + } + return v.EnableExplicitProxy + }).(pulumi.BoolPtrOutput) +} + +// When set to true, pac file port and url needs to be provided. +func (o ExplicitProxyPtrOutput) EnablePacFile() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *bool { + if v == nil { + return nil + } + return v.EnablePacFile + }).(pulumi.BoolPtrOutput) +} + +// Port number for explicit proxy http protocol, cannot be greater than 64000. +func (o ExplicitProxyPtrOutput) HttpPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *int { + if v == nil { + return nil + } + return v.HttpPort + }).(pulumi.IntPtrOutput) +} + +// Port number for explicit proxy https protocol, cannot be greater than 64000. +func (o ExplicitProxyPtrOutput) HttpsPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *int { + if v == nil { + return nil + } + return v.HttpsPort + }).(pulumi.IntPtrOutput) +} + +// SAS URL for PAC file. +func (o ExplicitProxyPtrOutput) PacFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *string { + if v == nil { + return nil + } + return v.PacFile + }).(pulumi.StringPtrOutput) +} + +// Port number for firewall to serve PAC file. +func (o ExplicitProxyPtrOutput) PacFilePort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxy) *int { + if v == nil { + return nil + } + return v.PacFilePort + }).(pulumi.IntPtrOutput) +} + +// Explicit Proxy Settings in Firewall Policy. +type ExplicitProxyResponse struct { + // When set to true, explicit proxy mode is enabled. + EnableExplicitProxy *bool `pulumi:"enableExplicitProxy"` + // When set to true, pac file port and url needs to be provided. + EnablePacFile *bool `pulumi:"enablePacFile"` + // Port number for explicit proxy http protocol, cannot be greater than 64000. + HttpPort *int `pulumi:"httpPort"` + // Port number for explicit proxy https protocol, cannot be greater than 64000. + HttpsPort *int `pulumi:"httpsPort"` + // SAS URL for PAC file. + PacFile *string `pulumi:"pacFile"` + // Port number for firewall to serve PAC file. + PacFilePort *int `pulumi:"pacFilePort"` +} + +// Explicit Proxy Settings in Firewall Policy. +type ExplicitProxyResponseOutput struct{ *pulumi.OutputState } + +func (ExplicitProxyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExplicitProxyResponse)(nil)).Elem() +} + +func (o ExplicitProxyResponseOutput) ToExplicitProxyResponseOutput() ExplicitProxyResponseOutput { + return o +} + +func (o ExplicitProxyResponseOutput) ToExplicitProxyResponseOutputWithContext(ctx context.Context) ExplicitProxyResponseOutput { + return o +} + +// When set to true, explicit proxy mode is enabled. +func (o ExplicitProxyResponseOutput) EnableExplicitProxy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *bool { return v.EnableExplicitProxy }).(pulumi.BoolPtrOutput) +} + +// When set to true, pac file port and url needs to be provided. +func (o ExplicitProxyResponseOutput) EnablePacFile() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *bool { return v.EnablePacFile }).(pulumi.BoolPtrOutput) +} + +// Port number for explicit proxy http protocol, cannot be greater than 64000. +func (o ExplicitProxyResponseOutput) HttpPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *int { return v.HttpPort }).(pulumi.IntPtrOutput) +} + +// Port number for explicit proxy https protocol, cannot be greater than 64000. +func (o ExplicitProxyResponseOutput) HttpsPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *int { return v.HttpsPort }).(pulumi.IntPtrOutput) +} + +// SAS URL for PAC file. +func (o ExplicitProxyResponseOutput) PacFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *string { return v.PacFile }).(pulumi.StringPtrOutput) +} + +// Port number for firewall to serve PAC file. +func (o ExplicitProxyResponseOutput) PacFilePort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExplicitProxyResponse) *int { return v.PacFilePort }).(pulumi.IntPtrOutput) +} + +type ExplicitProxyResponsePtrOutput struct{ *pulumi.OutputState } + +func (ExplicitProxyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExplicitProxyResponse)(nil)).Elem() +} + +func (o ExplicitProxyResponsePtrOutput) ToExplicitProxyResponsePtrOutput() ExplicitProxyResponsePtrOutput { + return o +} + +func (o ExplicitProxyResponsePtrOutput) ToExplicitProxyResponsePtrOutputWithContext(ctx context.Context) ExplicitProxyResponsePtrOutput { + return o +} + +func (o ExplicitProxyResponsePtrOutput) Elem() ExplicitProxyResponseOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) ExplicitProxyResponse { + if v != nil { + return *v + } + var ret ExplicitProxyResponse + return ret + }).(ExplicitProxyResponseOutput) +} + +// When set to true, explicit proxy mode is enabled. +func (o ExplicitProxyResponsePtrOutput) EnableExplicitProxy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *bool { + if v == nil { + return nil + } + return v.EnableExplicitProxy + }).(pulumi.BoolPtrOutput) +} + +// When set to true, pac file port and url needs to be provided. +func (o ExplicitProxyResponsePtrOutput) EnablePacFile() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *bool { + if v == nil { + return nil + } + return v.EnablePacFile + }).(pulumi.BoolPtrOutput) +} + +// Port number for explicit proxy http protocol, cannot be greater than 64000. +func (o ExplicitProxyResponsePtrOutput) HttpPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *int { + if v == nil { + return nil + } + return v.HttpPort + }).(pulumi.IntPtrOutput) +} + +// Port number for explicit proxy https protocol, cannot be greater than 64000. +func (o ExplicitProxyResponsePtrOutput) HttpsPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *int { + if v == nil { + return nil + } + return v.HttpsPort + }).(pulumi.IntPtrOutput) +} + +// SAS URL for PAC file. +func (o ExplicitProxyResponsePtrOutput) PacFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *string { + if v == nil { + return nil + } + return v.PacFile + }).(pulumi.StringPtrOutput) +} + +// Port number for firewall to serve PAC file. +func (o ExplicitProxyResponsePtrOutput) PacFilePort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ExplicitProxyResponse) *int { + if v == nil { + return nil + } + return v.PacFilePort + }).(pulumi.IntPtrOutput) +} + // Authorization in an ExpressRouteCircuit resource. type ExpressRouteCircuitAuthorizationType struct { // The authorization key. @@ -26527,6 +30127,178 @@ func (o ExpressRouteCircuitStatsResponsePtrOutput) SecondarybytesOut() pulumi.Fl }).(pulumi.Float64PtrOutput) } +// ExpressRouteConnection resource. +type ExpressRouteConnectionType struct { + // Authorization key to establish the connection. + AuthorizationKey *string `pulumi:"authorizationKey"` + // Enable internet security. + EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` + // The ExpressRoute circuit peering. + ExpressRouteCircuitPeering ExpressRouteCircuitPeeringId `pulumi:"expressRouteCircuitPeering"` + // Enable FastPath to vWan Firewall hub. + ExpressRouteGatewayBypass *bool `pulumi:"expressRouteGatewayBypass"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource. + Name string `pulumi:"name"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration *RoutingConfiguration `pulumi:"routingConfiguration"` + // The routing weight associated to the connection. + RoutingWeight *int `pulumi:"routingWeight"` +} + +// ExpressRouteConnectionTypeInput is an input type that accepts ExpressRouteConnectionTypeArgs and ExpressRouteConnectionTypeOutput values. +// You can construct a concrete instance of `ExpressRouteConnectionTypeInput` via: +// +// ExpressRouteConnectionTypeArgs{...} +type ExpressRouteConnectionTypeInput interface { + pulumi.Input + + ToExpressRouteConnectionTypeOutput() ExpressRouteConnectionTypeOutput + ToExpressRouteConnectionTypeOutputWithContext(context.Context) ExpressRouteConnectionTypeOutput +} + +// ExpressRouteConnection resource. +type ExpressRouteConnectionTypeArgs struct { + // Authorization key to establish the connection. + AuthorizationKey pulumi.StringPtrInput `pulumi:"authorizationKey"` + // Enable internet security. + EnableInternetSecurity pulumi.BoolPtrInput `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath pulumi.BoolPtrInput `pulumi:"enablePrivateLinkFastPath"` + // The ExpressRoute circuit peering. + ExpressRouteCircuitPeering ExpressRouteCircuitPeeringIdInput `pulumi:"expressRouteCircuitPeering"` + // Enable FastPath to vWan Firewall hub. + ExpressRouteGatewayBypass pulumi.BoolPtrInput `pulumi:"expressRouteGatewayBypass"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource. + Name pulumi.StringInput `pulumi:"name"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration RoutingConfigurationPtrInput `pulumi:"routingConfiguration"` + // The routing weight associated to the connection. + RoutingWeight pulumi.IntPtrInput `pulumi:"routingWeight"` +} + +func (ExpressRouteConnectionTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressRouteConnectionType)(nil)).Elem() +} + +func (i ExpressRouteConnectionTypeArgs) ToExpressRouteConnectionTypeOutput() ExpressRouteConnectionTypeOutput { + return i.ToExpressRouteConnectionTypeOutputWithContext(context.Background()) +} + +func (i ExpressRouteConnectionTypeArgs) ToExpressRouteConnectionTypeOutputWithContext(ctx context.Context) ExpressRouteConnectionTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressRouteConnectionTypeOutput) +} + +// ExpressRouteConnectionTypeArrayInput is an input type that accepts ExpressRouteConnectionTypeArray and ExpressRouteConnectionTypeArrayOutput values. +// You can construct a concrete instance of `ExpressRouteConnectionTypeArrayInput` via: +// +// ExpressRouteConnectionTypeArray{ ExpressRouteConnectionTypeArgs{...} } +type ExpressRouteConnectionTypeArrayInput interface { + pulumi.Input + + ToExpressRouteConnectionTypeArrayOutput() ExpressRouteConnectionTypeArrayOutput + ToExpressRouteConnectionTypeArrayOutputWithContext(context.Context) ExpressRouteConnectionTypeArrayOutput +} + +type ExpressRouteConnectionTypeArray []ExpressRouteConnectionTypeInput + +func (ExpressRouteConnectionTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressRouteConnectionType)(nil)).Elem() +} + +func (i ExpressRouteConnectionTypeArray) ToExpressRouteConnectionTypeArrayOutput() ExpressRouteConnectionTypeArrayOutput { + return i.ToExpressRouteConnectionTypeArrayOutputWithContext(context.Background()) +} + +func (i ExpressRouteConnectionTypeArray) ToExpressRouteConnectionTypeArrayOutputWithContext(ctx context.Context) ExpressRouteConnectionTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressRouteConnectionTypeArrayOutput) +} + +// ExpressRouteConnection resource. +type ExpressRouteConnectionTypeOutput struct{ *pulumi.OutputState } + +func (ExpressRouteConnectionTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressRouteConnectionType)(nil)).Elem() +} + +func (o ExpressRouteConnectionTypeOutput) ToExpressRouteConnectionTypeOutput() ExpressRouteConnectionTypeOutput { + return o +} + +func (o ExpressRouteConnectionTypeOutput) ToExpressRouteConnectionTypeOutputWithContext(ctx context.Context) ExpressRouteConnectionTypeOutput { + return o +} + +// Authorization key to establish the connection. +func (o ExpressRouteConnectionTypeOutput) AuthorizationKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *string { return v.AuthorizationKey }).(pulumi.StringPtrOutput) +} + +// Enable internet security. +func (o ExpressRouteConnectionTypeOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) +} + +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o ExpressRouteConnectionTypeOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *bool { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + +// The ExpressRoute circuit peering. +func (o ExpressRouteConnectionTypeOutput) ExpressRouteCircuitPeering() ExpressRouteCircuitPeeringIdOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) ExpressRouteCircuitPeeringId { return v.ExpressRouteCircuitPeering }).(ExpressRouteCircuitPeeringIdOutput) +} + +// Enable FastPath to vWan Firewall hub. +func (o ExpressRouteConnectionTypeOutput) ExpressRouteGatewayBypass() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *bool { return v.ExpressRouteGatewayBypass }).(pulumi.BoolPtrOutput) +} + +// Resource ID. +func (o ExpressRouteConnectionTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource. +func (o ExpressRouteConnectionTypeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) string { return v.Name }).(pulumi.StringOutput) +} + +// The Routing Configuration indicating the associated and propagated route tables on this connection. +func (o ExpressRouteConnectionTypeOutput) RoutingConfiguration() RoutingConfigurationPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *RoutingConfiguration { return v.RoutingConfiguration }).(RoutingConfigurationPtrOutput) +} + +// The routing weight associated to the connection. +func (o ExpressRouteConnectionTypeOutput) RoutingWeight() pulumi.IntPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionType) *int { return v.RoutingWeight }).(pulumi.IntPtrOutput) +} + +type ExpressRouteConnectionTypeArrayOutput struct{ *pulumi.OutputState } + +func (ExpressRouteConnectionTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressRouteConnectionType)(nil)).Elem() +} + +func (o ExpressRouteConnectionTypeArrayOutput) ToExpressRouteConnectionTypeArrayOutput() ExpressRouteConnectionTypeArrayOutput { + return o +} + +func (o ExpressRouteConnectionTypeArrayOutput) ToExpressRouteConnectionTypeArrayOutputWithContext(ctx context.Context) ExpressRouteConnectionTypeArrayOutput { + return o +} + +func (o ExpressRouteConnectionTypeArrayOutput) Index(i pulumi.IntInput) ExpressRouteConnectionTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressRouteConnectionType { + return vs[0].([]ExpressRouteConnectionType)[vs[1].(int)] + }).(ExpressRouteConnectionTypeOutput) +} + // The ID of the ExpressRouteConnection. type ExpressRouteConnectionIdResponse struct { // The ID of the ExpressRouteConnection. @@ -26593,6 +30365,8 @@ type ExpressRouteConnectionResponse struct { AuthorizationKey *string `pulumi:"authorizationKey"` // Enable internet security. EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` // The ExpressRoute circuit peering. ExpressRouteCircuitPeering ExpressRouteCircuitPeeringIdResponse `pulumi:"expressRouteCircuitPeering"` // Enable FastPath to vWan Firewall hub. @@ -26634,6 +30408,11 @@ func (o ExpressRouteConnectionResponseOutput) EnableInternetSecurity() pulumi.Bo return o.ApplyT(func(v ExpressRouteConnectionResponse) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) } +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o ExpressRouteConnectionResponseOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ExpressRouteConnectionResponse) *bool { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + // The ExpressRoute circuit peering. func (o ExpressRouteConnectionResponseOutput) ExpressRouteCircuitPeering() ExpressRouteCircuitPeeringIdResponseOutput { return o.ApplyT(func(v ExpressRouteConnectionResponse) ExpressRouteCircuitPeeringIdResponse { @@ -27570,6 +31349,8 @@ func (o ExpressRouteLinkMacSecConfigResponsePtrOutput) SciState() pulumi.StringP type ExpressRouteLinkResponse struct { // Administrative state of the physical port. AdminState *string `pulumi:"adminState"` + // Cololocation for ExpressRoute Hybrid Direct. + ColoLocation string `pulumi:"coloLocation"` // Physical fiber port type. ConnectorType string `pulumi:"connectorType"` // A unique read-only string that changes whenever the resource is updated. @@ -27612,6 +31393,11 @@ func (o ExpressRouteLinkResponseOutput) AdminState() pulumi.StringPtrOutput { return o.ApplyT(func(v ExpressRouteLinkResponse) *string { return v.AdminState }).(pulumi.StringPtrOutput) } +// Cololocation for ExpressRoute Hybrid Direct. +func (o ExpressRouteLinkResponseOutput) ColoLocation() pulumi.StringOutput { + return o.ApplyT(func(v ExpressRouteLinkResponse) string { return v.ColoLocation }).(pulumi.StringOutput) +} + // Physical fiber port type. func (o ExpressRouteLinkResponseOutput) ConnectorType() pulumi.StringOutput { return o.ApplyT(func(v ExpressRouteLinkResponse) string { return v.ConnectorType }).(pulumi.StringOutput) @@ -27685,9 +31471,9 @@ func (o ExpressRouteLinkResponseArrayOutput) Index(i pulumi.IntInput) ExpressRou // ExtendedLocation complex type. type ExtendedLocation struct { // The name of the extended location. - Name string `pulumi:"name"` + Name *string `pulumi:"name"` // The type of the extended location. - Type string `pulumi:"type"` + Type *string `pulumi:"type"` } // ExtendedLocationInput is an input type that accepts ExtendedLocationArgs and ExtendedLocationOutput values. @@ -27704,9 +31490,9 @@ type ExtendedLocationInput interface { // ExtendedLocation complex type. type ExtendedLocationArgs struct { // The name of the extended location. - Name pulumi.StringInput `pulumi:"name"` + Name pulumi.StringPtrInput `pulumi:"name"` // The type of the extended location. - Type pulumi.StringInput `pulumi:"type"` + Type pulumi.StringPtrInput `pulumi:"type"` } func (ExtendedLocationArgs) ElementType() reflect.Type { @@ -27788,13 +31574,13 @@ func (o ExtendedLocationOutput) ToExtendedLocationPtrOutputWithContext(ctx conte } // The name of the extended location. -func (o ExtendedLocationOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ExtendedLocation) string { return v.Name }).(pulumi.StringOutput) +func (o ExtendedLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) } // The type of the extended location. -func (o ExtendedLocationOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ExtendedLocation) string { return v.Type }).(pulumi.StringOutput) +func (o ExtendedLocationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Type }).(pulumi.StringPtrOutput) } type ExtendedLocationPtrOutput struct{ *pulumi.OutputState } @@ -27827,7 +31613,7 @@ func (o ExtendedLocationPtrOutput) Name() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Name + return v.Name }).(pulumi.StringPtrOutput) } @@ -27837,16 +31623,16 @@ func (o ExtendedLocationPtrOutput) Type() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Type + return v.Type }).(pulumi.StringPtrOutput) } // ExtendedLocation complex type. type ExtendedLocationResponse struct { // The name of the extended location. - Name string `pulumi:"name"` + Name *string `pulumi:"name"` // The type of the extended location. - Type string `pulumi:"type"` + Type *string `pulumi:"type"` } // ExtendedLocation complex type. @@ -27865,13 +31651,13 @@ func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutputWithCont } // The name of the extended location. -func (o ExtendedLocationResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ExtendedLocationResponse) string { return v.Name }).(pulumi.StringOutput) +func (o ExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } // The type of the extended location. -func (o ExtendedLocationResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ExtendedLocationResponse) string { return v.Type }).(pulumi.StringOutput) +func (o ExtendedLocationResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Type }).(pulumi.StringPtrOutput) } type ExtendedLocationResponsePtrOutput struct{ *pulumi.OutputState } @@ -27904,7 +31690,7 @@ func (o ExtendedLocationResponsePtrOutput) Name() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Name + return v.Name }).(pulumi.StringPtrOutput) } @@ -27914,7 +31700,7 @@ func (o ExtendedLocationResponsePtrOutput) Type() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Type + return v.Type }).(pulumi.StringPtrOutput) } @@ -28347,6 +32133,22 @@ type FirewallPolicyFilterRuleResponse struct { RuleType string `pulumi:"ruleType"` } +// name and value of HTTP/S header to insert +type FirewallPolicyHttpHeaderToInsert struct { + // Contains the name of the header + HeaderName *string `pulumi:"headerName"` + // Contains the value of the header + HeaderValue *string `pulumi:"headerValue"` +} + +// name and value of HTTP/S header to insert +type FirewallPolicyHttpHeaderToInsertResponse struct { + // Contains the name of the header + HeaderName *string `pulumi:"headerName"` + // Contains the value of the header + HeaderValue *string `pulumi:"headerValue"` +} + // Firewall Policy Insights. type FirewallPolicyInsights struct { // A flag to indicate if the insights are enabled on the policy. @@ -29062,6 +32864,8 @@ func (o FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsResponseArray type FirewallPolicyIntrusionDetectionConfiguration struct { // List of rules for traffic to bypass. BypassTrafficSettings []FirewallPolicyIntrusionDetectionBypassTrafficSpecifications `pulumi:"bypassTrafficSettings"` + // IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property + PrivateRanges []string `pulumi:"privateRanges"` // List of specific signatures states. SignatureOverrides []FirewallPolicyIntrusionDetectionSignatureSpecification `pulumi:"signatureOverrides"` } @@ -29081,6 +32885,8 @@ type FirewallPolicyIntrusionDetectionConfigurationInput interface { type FirewallPolicyIntrusionDetectionConfigurationArgs struct { // List of rules for traffic to bypass. BypassTrafficSettings FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsArrayInput `pulumi:"bypassTrafficSettings"` + // IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property + PrivateRanges pulumi.StringArrayInput `pulumi:"privateRanges"` // List of specific signatures states. SignatureOverrides FirewallPolicyIntrusionDetectionSignatureSpecificationArrayInput `pulumi:"signatureOverrides"` } @@ -29170,6 +32976,11 @@ func (o FirewallPolicyIntrusionDetectionConfigurationOutput) BypassTrafficSettin }).(FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsArrayOutput) } +// IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property +func (o FirewallPolicyIntrusionDetectionConfigurationOutput) PrivateRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v FirewallPolicyIntrusionDetectionConfiguration) []string { return v.PrivateRanges }).(pulumi.StringArrayOutput) +} + // List of specific signatures states. func (o FirewallPolicyIntrusionDetectionConfigurationOutput) SignatureOverrides() FirewallPolicyIntrusionDetectionSignatureSpecificationArrayOutput { return o.ApplyT(func(v FirewallPolicyIntrusionDetectionConfiguration) []FirewallPolicyIntrusionDetectionSignatureSpecification { @@ -29211,6 +33022,16 @@ func (o FirewallPolicyIntrusionDetectionConfigurationPtrOutput) BypassTrafficSet }).(FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsArrayOutput) } +// IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property +func (o FirewallPolicyIntrusionDetectionConfigurationPtrOutput) PrivateRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FirewallPolicyIntrusionDetectionConfiguration) []string { + if v == nil { + return nil + } + return v.PrivateRanges + }).(pulumi.StringArrayOutput) +} + // List of specific signatures states. func (o FirewallPolicyIntrusionDetectionConfigurationPtrOutput) SignatureOverrides() FirewallPolicyIntrusionDetectionSignatureSpecificationArrayOutput { return o.ApplyT(func(v *FirewallPolicyIntrusionDetectionConfiguration) []FirewallPolicyIntrusionDetectionSignatureSpecification { @@ -29225,6 +33046,8 @@ func (o FirewallPolicyIntrusionDetectionConfigurationPtrOutput) SignatureOverrid type FirewallPolicyIntrusionDetectionConfigurationResponse struct { // List of rules for traffic to bypass. BypassTrafficSettings []FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsResponse `pulumi:"bypassTrafficSettings"` + // IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property + PrivateRanges []string `pulumi:"privateRanges"` // List of specific signatures states. SignatureOverrides []FirewallPolicyIntrusionDetectionSignatureSpecificationResponse `pulumi:"signatureOverrides"` } @@ -29251,6 +33074,11 @@ func (o FirewallPolicyIntrusionDetectionConfigurationResponseOutput) BypassTraff }).(FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsResponseArrayOutput) } +// IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property +func (o FirewallPolicyIntrusionDetectionConfigurationResponseOutput) PrivateRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v FirewallPolicyIntrusionDetectionConfigurationResponse) []string { return v.PrivateRanges }).(pulumi.StringArrayOutput) +} + // List of specific signatures states. func (o FirewallPolicyIntrusionDetectionConfigurationResponseOutput) SignatureOverrides() FirewallPolicyIntrusionDetectionSignatureSpecificationResponseArrayOutput { return o.ApplyT(func(v FirewallPolicyIntrusionDetectionConfigurationResponse) []FirewallPolicyIntrusionDetectionSignatureSpecificationResponse { @@ -29292,6 +33120,16 @@ func (o FirewallPolicyIntrusionDetectionConfigurationResponsePtrOutput) BypassTr }).(FirewallPolicyIntrusionDetectionBypassTrafficSpecificationsResponseArrayOutput) } +// IDPS Private IP address ranges are used to identify traffic direction (i.e. inbound, outbound, etc.). By default, only ranges defined by IANA RFC 1918 are considered private IP addresses. To modify default ranges, specify your Private IP address ranges with this property +func (o FirewallPolicyIntrusionDetectionConfigurationResponsePtrOutput) PrivateRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *FirewallPolicyIntrusionDetectionConfigurationResponse) []string { + if v == nil { + return nil + } + return v.PrivateRanges + }).(pulumi.StringArrayOutput) +} + // List of specific signatures states. func (o FirewallPolicyIntrusionDetectionConfigurationResponsePtrOutput) SignatureOverrides() FirewallPolicyIntrusionDetectionSignatureSpecificationResponseArrayOutput { return o.ApplyT(func(v *FirewallPolicyIntrusionDetectionConfigurationResponse) []FirewallPolicyIntrusionDetectionSignatureSpecificationResponse { @@ -30069,6 +33907,8 @@ type FirewallPolicyRuleConditionApplicationProtocolResponse struct { // The private IP addresses/IP ranges to which traffic will not be SNAT. type FirewallPolicySNAT struct { + // The operation mode for automatically learning private ranges to not be SNAT + AutoLearnPrivateRanges *string `pulumi:"autoLearnPrivateRanges"` // List of private IP addresses/IP address ranges to not be SNAT. PrivateRanges []string `pulumi:"privateRanges"` } @@ -30086,6 +33926,8 @@ type FirewallPolicySNATInput interface { // The private IP addresses/IP ranges to which traffic will not be SNAT. type FirewallPolicySNATArgs struct { + // The operation mode for automatically learning private ranges to not be SNAT + AutoLearnPrivateRanges pulumi.StringPtrInput `pulumi:"autoLearnPrivateRanges"` // List of private IP addresses/IP address ranges to not be SNAT. PrivateRanges pulumi.StringArrayInput `pulumi:"privateRanges"` } @@ -30168,6 +34010,11 @@ func (o FirewallPolicySNATOutput) ToFirewallPolicySNATPtrOutputWithContext(ctx c }).(FirewallPolicySNATPtrOutput) } +// The operation mode for automatically learning private ranges to not be SNAT +func (o FirewallPolicySNATOutput) AutoLearnPrivateRanges() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirewallPolicySNAT) *string { return v.AutoLearnPrivateRanges }).(pulumi.StringPtrOutput) +} + // List of private IP addresses/IP address ranges to not be SNAT. func (o FirewallPolicySNATOutput) PrivateRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicySNAT) []string { return v.PrivateRanges }).(pulumi.StringArrayOutput) @@ -30197,6 +34044,16 @@ func (o FirewallPolicySNATPtrOutput) Elem() FirewallPolicySNATOutput { }).(FirewallPolicySNATOutput) } +// The operation mode for automatically learning private ranges to not be SNAT +func (o FirewallPolicySNATPtrOutput) AutoLearnPrivateRanges() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirewallPolicySNAT) *string { + if v == nil { + return nil + } + return v.AutoLearnPrivateRanges + }).(pulumi.StringPtrOutput) +} + // List of private IP addresses/IP address ranges to not be SNAT. func (o FirewallPolicySNATPtrOutput) PrivateRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicySNAT) []string { @@ -30209,6 +34066,8 @@ func (o FirewallPolicySNATPtrOutput) PrivateRanges() pulumi.StringArrayOutput { // The private IP addresses/IP ranges to which traffic will not be SNAT. type FirewallPolicySNATResponse struct { + // The operation mode for automatically learning private ranges to not be SNAT + AutoLearnPrivateRanges *string `pulumi:"autoLearnPrivateRanges"` // List of private IP addresses/IP address ranges to not be SNAT. PrivateRanges []string `pulumi:"privateRanges"` } @@ -30228,6 +34087,11 @@ func (o FirewallPolicySNATResponseOutput) ToFirewallPolicySNATResponseOutputWith return o } +// The operation mode for automatically learning private ranges to not be SNAT +func (o FirewallPolicySNATResponseOutput) AutoLearnPrivateRanges() pulumi.StringPtrOutput { + return o.ApplyT(func(v FirewallPolicySNATResponse) *string { return v.AutoLearnPrivateRanges }).(pulumi.StringPtrOutput) +} + // List of private IP addresses/IP address ranges to not be SNAT. func (o FirewallPolicySNATResponseOutput) PrivateRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v FirewallPolicySNATResponse) []string { return v.PrivateRanges }).(pulumi.StringArrayOutput) @@ -30257,6 +34121,16 @@ func (o FirewallPolicySNATResponsePtrOutput) Elem() FirewallPolicySNATResponseOu }).(FirewallPolicySNATResponseOutput) } +// The operation mode for automatically learning private ranges to not be SNAT +func (o FirewallPolicySNATResponsePtrOutput) AutoLearnPrivateRanges() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FirewallPolicySNATResponse) *string { + if v == nil { + return nil + } + return v.AutoLearnPrivateRanges + }).(pulumi.StringPtrOutput) +} + // List of private IP addresses/IP address ranges to not be SNAT. func (o FirewallPolicySNATResponsePtrOutput) PrivateRanges() pulumi.StringArrayOutput { return o.ApplyT(func(v *FirewallPolicySNATResponse) []string { @@ -30267,6 +34141,206 @@ func (o FirewallPolicySNATResponsePtrOutput) PrivateRanges() pulumi.StringArrayO }).(pulumi.StringArrayOutput) } +// SQL Settings in Firewall Policy. +type FirewallPolicySQL struct { + // A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. + AllowSqlRedirect *bool `pulumi:"allowSqlRedirect"` +} + +// FirewallPolicySQLInput is an input type that accepts FirewallPolicySQLArgs and FirewallPolicySQLOutput values. +// You can construct a concrete instance of `FirewallPolicySQLInput` via: +// +// FirewallPolicySQLArgs{...} +type FirewallPolicySQLInput interface { + pulumi.Input + + ToFirewallPolicySQLOutput() FirewallPolicySQLOutput + ToFirewallPolicySQLOutputWithContext(context.Context) FirewallPolicySQLOutput +} + +// SQL Settings in Firewall Policy. +type FirewallPolicySQLArgs struct { + // A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. + AllowSqlRedirect pulumi.BoolPtrInput `pulumi:"allowSqlRedirect"` +} + +func (FirewallPolicySQLArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FirewallPolicySQL)(nil)).Elem() +} + +func (i FirewallPolicySQLArgs) ToFirewallPolicySQLOutput() FirewallPolicySQLOutput { + return i.ToFirewallPolicySQLOutputWithContext(context.Background()) +} + +func (i FirewallPolicySQLArgs) ToFirewallPolicySQLOutputWithContext(ctx context.Context) FirewallPolicySQLOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicySQLOutput) +} + +func (i FirewallPolicySQLArgs) ToFirewallPolicySQLPtrOutput() FirewallPolicySQLPtrOutput { + return i.ToFirewallPolicySQLPtrOutputWithContext(context.Background()) +} + +func (i FirewallPolicySQLArgs) ToFirewallPolicySQLPtrOutputWithContext(ctx context.Context) FirewallPolicySQLPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicySQLOutput).ToFirewallPolicySQLPtrOutputWithContext(ctx) +} + +// FirewallPolicySQLPtrInput is an input type that accepts FirewallPolicySQLArgs, FirewallPolicySQLPtr and FirewallPolicySQLPtrOutput values. +// You can construct a concrete instance of `FirewallPolicySQLPtrInput` via: +// +// FirewallPolicySQLArgs{...} +// +// or: +// +// nil +type FirewallPolicySQLPtrInput interface { + pulumi.Input + + ToFirewallPolicySQLPtrOutput() FirewallPolicySQLPtrOutput + ToFirewallPolicySQLPtrOutputWithContext(context.Context) FirewallPolicySQLPtrOutput +} + +type firewallPolicySQLPtrType FirewallPolicySQLArgs + +func FirewallPolicySQLPtr(v *FirewallPolicySQLArgs) FirewallPolicySQLPtrInput { + return (*firewallPolicySQLPtrType)(v) +} + +func (*firewallPolicySQLPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FirewallPolicySQL)(nil)).Elem() +} + +func (i *firewallPolicySQLPtrType) ToFirewallPolicySQLPtrOutput() FirewallPolicySQLPtrOutput { + return i.ToFirewallPolicySQLPtrOutputWithContext(context.Background()) +} + +func (i *firewallPolicySQLPtrType) ToFirewallPolicySQLPtrOutputWithContext(ctx context.Context) FirewallPolicySQLPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FirewallPolicySQLPtrOutput) +} + +// SQL Settings in Firewall Policy. +type FirewallPolicySQLOutput struct{ *pulumi.OutputState } + +func (FirewallPolicySQLOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirewallPolicySQL)(nil)).Elem() +} + +func (o FirewallPolicySQLOutput) ToFirewallPolicySQLOutput() FirewallPolicySQLOutput { + return o +} + +func (o FirewallPolicySQLOutput) ToFirewallPolicySQLOutputWithContext(ctx context.Context) FirewallPolicySQLOutput { + return o +} + +func (o FirewallPolicySQLOutput) ToFirewallPolicySQLPtrOutput() FirewallPolicySQLPtrOutput { + return o.ToFirewallPolicySQLPtrOutputWithContext(context.Background()) +} + +func (o FirewallPolicySQLOutput) ToFirewallPolicySQLPtrOutputWithContext(ctx context.Context) FirewallPolicySQLPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FirewallPolicySQL) *FirewallPolicySQL { + return &v + }).(FirewallPolicySQLPtrOutput) +} + +// A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. +func (o FirewallPolicySQLOutput) AllowSqlRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirewallPolicySQL) *bool { return v.AllowSqlRedirect }).(pulumi.BoolPtrOutput) +} + +type FirewallPolicySQLPtrOutput struct{ *pulumi.OutputState } + +func (FirewallPolicySQLPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirewallPolicySQL)(nil)).Elem() +} + +func (o FirewallPolicySQLPtrOutput) ToFirewallPolicySQLPtrOutput() FirewallPolicySQLPtrOutput { + return o +} + +func (o FirewallPolicySQLPtrOutput) ToFirewallPolicySQLPtrOutputWithContext(ctx context.Context) FirewallPolicySQLPtrOutput { + return o +} + +func (o FirewallPolicySQLPtrOutput) Elem() FirewallPolicySQLOutput { + return o.ApplyT(func(v *FirewallPolicySQL) FirewallPolicySQL { + if v != nil { + return *v + } + var ret FirewallPolicySQL + return ret + }).(FirewallPolicySQLOutput) +} + +// A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. +func (o FirewallPolicySQLPtrOutput) AllowSqlRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirewallPolicySQL) *bool { + if v == nil { + return nil + } + return v.AllowSqlRedirect + }).(pulumi.BoolPtrOutput) +} + +// SQL Settings in Firewall Policy. +type FirewallPolicySQLResponse struct { + // A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. + AllowSqlRedirect *bool `pulumi:"allowSqlRedirect"` +} + +// SQL Settings in Firewall Policy. +type FirewallPolicySQLResponseOutput struct{ *pulumi.OutputState } + +func (FirewallPolicySQLResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FirewallPolicySQLResponse)(nil)).Elem() +} + +func (o FirewallPolicySQLResponseOutput) ToFirewallPolicySQLResponseOutput() FirewallPolicySQLResponseOutput { + return o +} + +func (o FirewallPolicySQLResponseOutput) ToFirewallPolicySQLResponseOutputWithContext(ctx context.Context) FirewallPolicySQLResponseOutput { + return o +} + +// A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. +func (o FirewallPolicySQLResponseOutput) AllowSqlRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FirewallPolicySQLResponse) *bool { return v.AllowSqlRedirect }).(pulumi.BoolPtrOutput) +} + +type FirewallPolicySQLResponsePtrOutput struct{ *pulumi.OutputState } + +func (FirewallPolicySQLResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FirewallPolicySQLResponse)(nil)).Elem() +} + +func (o FirewallPolicySQLResponsePtrOutput) ToFirewallPolicySQLResponsePtrOutput() FirewallPolicySQLResponsePtrOutput { + return o +} + +func (o FirewallPolicySQLResponsePtrOutput) ToFirewallPolicySQLResponsePtrOutputWithContext(ctx context.Context) FirewallPolicySQLResponsePtrOutput { + return o +} + +func (o FirewallPolicySQLResponsePtrOutput) Elem() FirewallPolicySQLResponseOutput { + return o.ApplyT(func(v *FirewallPolicySQLResponse) FirewallPolicySQLResponse { + if v != nil { + return *v + } + var ret FirewallPolicySQLResponse + return ret + }).(FirewallPolicySQLResponseOutput) +} + +// A flag to indicate if SQL Redirect traffic filtering is enabled. Turning on the flag requires no rule using port 11000-11999. +func (o FirewallPolicySQLResponsePtrOutput) AllowSqlRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FirewallPolicySQLResponse) *bool { + if v == nil { + return nil + } + return v.AllowSqlRedirect + }).(pulumi.BoolPtrOutput) +} + // SKU of Firewall policy. type FirewallPolicySku struct { // Tier of Firewall Policy. @@ -30921,7 +34995,7 @@ func (val *FlowLogFormatParameters) Defaults() *FlowLogFormatParameters { return nil } tmp := *val - if isZero(tmp.Version) { + if tmp.Version == nil { version_ := 0 tmp.Version = &version_ } @@ -30953,7 +35027,7 @@ func (val *FlowLogFormatParametersArgs) Defaults() *FlowLogFormatParametersArgs return nil } tmp := *val - if isZero(tmp.Version) { + if tmp.Version == nil { tmp.Version = pulumi.IntPtr(0) } return &tmp @@ -31104,7 +35178,7 @@ func (val *FlowLogFormatParametersResponse) Defaults() *FlowLogFormatParametersR return nil } tmp := *val - if isZero(tmp.Version) { + if tmp.Version == nil { version_ := 0 tmp.Version = &version_ } @@ -31738,7 +35812,7 @@ type FrontDoorManagedRuleSet struct { Exclusions []ManagedRuleExclusion `pulumi:"exclusions"` // Defines the rule group overrides to apply to the rule set. RuleGroupOverrides []FrontDoorManagedRuleGroupOverride `pulumi:"ruleGroupOverrides"` - // Defines the action to take when a managed rule set score threshold is met. + // Defines the rule set action. RuleSetAction *string `pulumi:"ruleSetAction"` // Defines the rule set type to use. RuleSetType string `pulumi:"ruleSetType"` @@ -31763,7 +35837,7 @@ type FrontDoorManagedRuleSetArgs struct { Exclusions ManagedRuleExclusionArrayInput `pulumi:"exclusions"` // Defines the rule group overrides to apply to the rule set. RuleGroupOverrides FrontDoorManagedRuleGroupOverrideArrayInput `pulumi:"ruleGroupOverrides"` - // Defines the action to take when a managed rule set score threshold is met. + // Defines the rule set action. RuleSetAction pulumi.StringPtrInput `pulumi:"ruleSetAction"` // Defines the rule set type to use. RuleSetType pulumi.StringInput `pulumi:"ruleSetType"` @@ -31833,7 +35907,7 @@ func (o FrontDoorManagedRuleSetOutput) RuleGroupOverrides() FrontDoorManagedRule return o.ApplyT(func(v FrontDoorManagedRuleSet) []FrontDoorManagedRuleGroupOverride { return v.RuleGroupOverrides }).(FrontDoorManagedRuleGroupOverrideArrayOutput) } -// Defines the action to take when a managed rule set score threshold is met. +// Defines the rule set action. func (o FrontDoorManagedRuleSetOutput) RuleSetAction() pulumi.StringPtrOutput { return o.ApplyT(func(v FrontDoorManagedRuleSet) *string { return v.RuleSetAction }).(pulumi.StringPtrOutput) } @@ -31874,7 +35948,7 @@ type FrontDoorManagedRuleSetResponse struct { Exclusions []ManagedRuleExclusionResponse `pulumi:"exclusions"` // Defines the rule group overrides to apply to the rule set. RuleGroupOverrides []FrontDoorManagedRuleGroupOverrideResponse `pulumi:"ruleGroupOverrides"` - // Defines the action to take when a managed rule set score threshold is met. + // Defines the rule set action. RuleSetAction *string `pulumi:"ruleSetAction"` // Defines the rule set type to use. RuleSetType string `pulumi:"ruleSetType"` @@ -31909,7 +35983,7 @@ func (o FrontDoorManagedRuleSetResponseOutput) RuleGroupOverrides() FrontDoorMan }).(FrontDoorManagedRuleGroupOverrideResponseArrayOutput) } -// Defines the action to take when a managed rule set score threshold is met. +// Defines the rule set action. func (o FrontDoorManagedRuleSetResponseOutput) RuleSetAction() pulumi.StringPtrOutput { return o.ApplyT(func(v FrontDoorManagedRuleSetResponse) *string { return v.RuleSetAction }).(pulumi.StringPtrOutput) } @@ -33063,6 +37137,8 @@ func (o FrontendEndpointUpdateParametersWebApplicationFirewallPolicyLinkPtrOutpu // Frontend IP address of the load balancer. type FrontendIPConfiguration struct { + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer *SubResource `pulumi:"gatewayLoadBalancer"` // Resource ID. Id *string `pulumi:"id"` // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. @@ -33107,6 +37183,8 @@ type FrontendIPConfigurationInput interface { // Frontend IP address of the load balancer. type FrontendIPConfigurationArgs struct { + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer SubResourcePtrInput `pulumi:"gatewayLoadBalancer"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource. @@ -33239,6 +37317,11 @@ func (o FrontendIPConfigurationOutput) ToFrontendIPConfigurationPtrOutputWithCon }).(FrontendIPConfigurationPtrOutput) } +// The reference to gateway load balancer frontend IP. +func (o FrontendIPConfigurationOutput) GatewayLoadBalancer() SubResourcePtrOutput { + return o.ApplyT(func(v FrontendIPConfiguration) *SubResource { return v.GatewayLoadBalancer }).(SubResourcePtrOutput) +} + // Resource ID. func (o FrontendIPConfigurationOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v FrontendIPConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -33308,6 +37391,16 @@ func (o FrontendIPConfigurationPtrOutput) Elem() FrontendIPConfigurationOutput { }).(FrontendIPConfigurationOutput) } +// The reference to gateway load balancer frontend IP. +func (o FrontendIPConfigurationPtrOutput) GatewayLoadBalancer() SubResourcePtrOutput { + return o.ApplyT(func(v *FrontendIPConfiguration) *SubResource { + if v == nil { + return nil + } + return v.GatewayLoadBalancer + }).(SubResourcePtrOutput) +} + // Resource ID. func (o FrontendIPConfigurationPtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *FrontendIPConfiguration) *string { @@ -33422,6 +37515,8 @@ func (o FrontendIPConfigurationArrayOutput) Index(i pulumi.IntInput) FrontendIPC type FrontendIPConfigurationResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer *SubResourceResponse `pulumi:"gatewayLoadBalancer"` // Resource ID. Id *string `pulumi:"id"` // An array of references to inbound pools that use this frontend IP. @@ -33487,6 +37582,11 @@ func (o FrontendIPConfigurationResponseOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v FrontendIPConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } +// The reference to gateway load balancer frontend IP. +func (o FrontendIPConfigurationResponseOutput) GatewayLoadBalancer() SubResourceResponsePtrOutput { + return o.ApplyT(func(v FrontendIPConfigurationResponse) *SubResourceResponse { return v.GatewayLoadBalancer }).(SubResourceResponsePtrOutput) +} + // Resource ID. func (o FrontendIPConfigurationResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v FrontendIPConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -33596,6 +37696,16 @@ func (o FrontendIPConfigurationResponsePtrOutput) Etag() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// The reference to gateway load balancer frontend IP. +func (o FrontendIPConfigurationResponsePtrOutput) GatewayLoadBalancer() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *FrontendIPConfigurationResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.GatewayLoadBalancer + }).(SubResourceResponsePtrOutput) +} + // Resource ID. func (o FrontendIPConfigurationResponsePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *FrontendIPConfigurationResponse) *string { @@ -33766,6 +37876,362 @@ func (o FrontendIPConfigurationResponseArrayOutput) Index(i pulumi.IntInput) Fro }).(FrontendIPConfigurationResponseOutput) } +// GatewayCustomBgpIpAddressIpConfiguration for a virtual network gateway connection. +type GatewayCustomBgpIpAddressIpConfiguration struct { + // The custom BgpPeeringAddress which belongs to IpconfigurationId. + CustomBgpIpAddress string `pulumi:"customBgpIpAddress"` + // The IpconfigurationId of ipconfiguration which belongs to gateway. + IpConfigurationId string `pulumi:"ipConfigurationId"` +} + +// GatewayCustomBgpIpAddressIpConfigurationInput is an input type that accepts GatewayCustomBgpIpAddressIpConfigurationArgs and GatewayCustomBgpIpAddressIpConfigurationOutput values. +// You can construct a concrete instance of `GatewayCustomBgpIpAddressIpConfigurationInput` via: +// +// GatewayCustomBgpIpAddressIpConfigurationArgs{...} +type GatewayCustomBgpIpAddressIpConfigurationInput interface { + pulumi.Input + + ToGatewayCustomBgpIpAddressIpConfigurationOutput() GatewayCustomBgpIpAddressIpConfigurationOutput + ToGatewayCustomBgpIpAddressIpConfigurationOutputWithContext(context.Context) GatewayCustomBgpIpAddressIpConfigurationOutput +} + +// GatewayCustomBgpIpAddressIpConfiguration for a virtual network gateway connection. +type GatewayCustomBgpIpAddressIpConfigurationArgs struct { + // The custom BgpPeeringAddress which belongs to IpconfigurationId. + CustomBgpIpAddress pulumi.StringInput `pulumi:"customBgpIpAddress"` + // The IpconfigurationId of ipconfiguration which belongs to gateway. + IpConfigurationId pulumi.StringInput `pulumi:"ipConfigurationId"` +} + +func (GatewayCustomBgpIpAddressIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayCustomBgpIpAddressIpConfiguration)(nil)).Elem() +} + +func (i GatewayCustomBgpIpAddressIpConfigurationArgs) ToGatewayCustomBgpIpAddressIpConfigurationOutput() GatewayCustomBgpIpAddressIpConfigurationOutput { + return i.ToGatewayCustomBgpIpAddressIpConfigurationOutputWithContext(context.Background()) +} + +func (i GatewayCustomBgpIpAddressIpConfigurationArgs) ToGatewayCustomBgpIpAddressIpConfigurationOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayCustomBgpIpAddressIpConfigurationOutput) +} + +// GatewayCustomBgpIpAddressIpConfigurationArrayInput is an input type that accepts GatewayCustomBgpIpAddressIpConfigurationArray and GatewayCustomBgpIpAddressIpConfigurationArrayOutput values. +// You can construct a concrete instance of `GatewayCustomBgpIpAddressIpConfigurationArrayInput` via: +// +// GatewayCustomBgpIpAddressIpConfigurationArray{ GatewayCustomBgpIpAddressIpConfigurationArgs{...} } +type GatewayCustomBgpIpAddressIpConfigurationArrayInput interface { + pulumi.Input + + ToGatewayCustomBgpIpAddressIpConfigurationArrayOutput() GatewayCustomBgpIpAddressIpConfigurationArrayOutput + ToGatewayCustomBgpIpAddressIpConfigurationArrayOutputWithContext(context.Context) GatewayCustomBgpIpAddressIpConfigurationArrayOutput +} + +type GatewayCustomBgpIpAddressIpConfigurationArray []GatewayCustomBgpIpAddressIpConfigurationInput + +func (GatewayCustomBgpIpAddressIpConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayCustomBgpIpAddressIpConfiguration)(nil)).Elem() +} + +func (i GatewayCustomBgpIpAddressIpConfigurationArray) ToGatewayCustomBgpIpAddressIpConfigurationArrayOutput() GatewayCustomBgpIpAddressIpConfigurationArrayOutput { + return i.ToGatewayCustomBgpIpAddressIpConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GatewayCustomBgpIpAddressIpConfigurationArray) ToGatewayCustomBgpIpAddressIpConfigurationArrayOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayCustomBgpIpAddressIpConfigurationArrayOutput) +} + +// GatewayCustomBgpIpAddressIpConfiguration for a virtual network gateway connection. +type GatewayCustomBgpIpAddressIpConfigurationOutput struct{ *pulumi.OutputState } + +func (GatewayCustomBgpIpAddressIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayCustomBgpIpAddressIpConfiguration)(nil)).Elem() +} + +func (o GatewayCustomBgpIpAddressIpConfigurationOutput) ToGatewayCustomBgpIpAddressIpConfigurationOutput() GatewayCustomBgpIpAddressIpConfigurationOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationOutput) ToGatewayCustomBgpIpAddressIpConfigurationOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationOutput { + return o +} + +// The custom BgpPeeringAddress which belongs to IpconfigurationId. +func (o GatewayCustomBgpIpAddressIpConfigurationOutput) CustomBgpIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v GatewayCustomBgpIpAddressIpConfiguration) string { return v.CustomBgpIpAddress }).(pulumi.StringOutput) +} + +// The IpconfigurationId of ipconfiguration which belongs to gateway. +func (o GatewayCustomBgpIpAddressIpConfigurationOutput) IpConfigurationId() pulumi.StringOutput { + return o.ApplyT(func(v GatewayCustomBgpIpAddressIpConfiguration) string { return v.IpConfigurationId }).(pulumi.StringOutput) +} + +type GatewayCustomBgpIpAddressIpConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GatewayCustomBgpIpAddressIpConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayCustomBgpIpAddressIpConfiguration)(nil)).Elem() +} + +func (o GatewayCustomBgpIpAddressIpConfigurationArrayOutput) ToGatewayCustomBgpIpAddressIpConfigurationArrayOutput() GatewayCustomBgpIpAddressIpConfigurationArrayOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationArrayOutput) ToGatewayCustomBgpIpAddressIpConfigurationArrayOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationArrayOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationArrayOutput) Index(i pulumi.IntInput) GatewayCustomBgpIpAddressIpConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GatewayCustomBgpIpAddressIpConfiguration { + return vs[0].([]GatewayCustomBgpIpAddressIpConfiguration)[vs[1].(int)] + }).(GatewayCustomBgpIpAddressIpConfigurationOutput) +} + +// GatewayCustomBgpIpAddressIpConfiguration for a virtual network gateway connection. +type GatewayCustomBgpIpAddressIpConfigurationResponse struct { + // The custom BgpPeeringAddress which belongs to IpconfigurationId. + CustomBgpIpAddress string `pulumi:"customBgpIpAddress"` + // The IpconfigurationId of ipconfiguration which belongs to gateway. + IpConfigurationId string `pulumi:"ipConfigurationId"` +} + +// GatewayCustomBgpIpAddressIpConfiguration for a virtual network gateway connection. +type GatewayCustomBgpIpAddressIpConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (GatewayCustomBgpIpAddressIpConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayCustomBgpIpAddressIpConfigurationResponse)(nil)).Elem() +} + +func (o GatewayCustomBgpIpAddressIpConfigurationResponseOutput) ToGatewayCustomBgpIpAddressIpConfigurationResponseOutput() GatewayCustomBgpIpAddressIpConfigurationResponseOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationResponseOutput) ToGatewayCustomBgpIpAddressIpConfigurationResponseOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationResponseOutput { + return o +} + +// The custom BgpPeeringAddress which belongs to IpconfigurationId. +func (o GatewayCustomBgpIpAddressIpConfigurationResponseOutput) CustomBgpIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v GatewayCustomBgpIpAddressIpConfigurationResponse) string { return v.CustomBgpIpAddress }).(pulumi.StringOutput) +} + +// The IpconfigurationId of ipconfiguration which belongs to gateway. +func (o GatewayCustomBgpIpAddressIpConfigurationResponseOutput) IpConfigurationId() pulumi.StringOutput { + return o.ApplyT(func(v GatewayCustomBgpIpAddressIpConfigurationResponse) string { return v.IpConfigurationId }).(pulumi.StringOutput) +} + +type GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } + +func (GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayCustomBgpIpAddressIpConfigurationResponse)(nil)).Elem() +} + +func (o GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) ToGatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput() GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) ToGatewayCustomBgpIpAddressIpConfigurationResponseArrayOutputWithContext(ctx context.Context) GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return o +} + +func (o GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) GatewayCustomBgpIpAddressIpConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GatewayCustomBgpIpAddressIpConfigurationResponse { + return vs[0].([]GatewayCustomBgpIpAddressIpConfigurationResponse)[vs[1].(int)] + }).(GatewayCustomBgpIpAddressIpConfigurationResponseOutput) +} + +// Gateway load balancer tunnel interface of a load balancer backend address pool. +type GatewayLoadBalancerTunnelInterface struct { + // Identifier of gateway load balancer tunnel interface. + Identifier *int `pulumi:"identifier"` + // Port of gateway load balancer tunnel interface. + Port *int `pulumi:"port"` + // Protocol of gateway load balancer tunnel interface. + Protocol *string `pulumi:"protocol"` + // Traffic type of gateway load balancer tunnel interface. + Type *string `pulumi:"type"` +} + +// GatewayLoadBalancerTunnelInterfaceInput is an input type that accepts GatewayLoadBalancerTunnelInterfaceArgs and GatewayLoadBalancerTunnelInterfaceOutput values. +// You can construct a concrete instance of `GatewayLoadBalancerTunnelInterfaceInput` via: +// +// GatewayLoadBalancerTunnelInterfaceArgs{...} +type GatewayLoadBalancerTunnelInterfaceInput interface { + pulumi.Input + + ToGatewayLoadBalancerTunnelInterfaceOutput() GatewayLoadBalancerTunnelInterfaceOutput + ToGatewayLoadBalancerTunnelInterfaceOutputWithContext(context.Context) GatewayLoadBalancerTunnelInterfaceOutput +} + +// Gateway load balancer tunnel interface of a load balancer backend address pool. +type GatewayLoadBalancerTunnelInterfaceArgs struct { + // Identifier of gateway load balancer tunnel interface. + Identifier pulumi.IntPtrInput `pulumi:"identifier"` + // Port of gateway load balancer tunnel interface. + Port pulumi.IntPtrInput `pulumi:"port"` + // Protocol of gateway load balancer tunnel interface. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Traffic type of gateway load balancer tunnel interface. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (GatewayLoadBalancerTunnelInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayLoadBalancerTunnelInterface)(nil)).Elem() +} + +func (i GatewayLoadBalancerTunnelInterfaceArgs) ToGatewayLoadBalancerTunnelInterfaceOutput() GatewayLoadBalancerTunnelInterfaceOutput { + return i.ToGatewayLoadBalancerTunnelInterfaceOutputWithContext(context.Background()) +} + +func (i GatewayLoadBalancerTunnelInterfaceArgs) ToGatewayLoadBalancerTunnelInterfaceOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayLoadBalancerTunnelInterfaceOutput) +} + +// GatewayLoadBalancerTunnelInterfaceArrayInput is an input type that accepts GatewayLoadBalancerTunnelInterfaceArray and GatewayLoadBalancerTunnelInterfaceArrayOutput values. +// You can construct a concrete instance of `GatewayLoadBalancerTunnelInterfaceArrayInput` via: +// +// GatewayLoadBalancerTunnelInterfaceArray{ GatewayLoadBalancerTunnelInterfaceArgs{...} } +type GatewayLoadBalancerTunnelInterfaceArrayInput interface { + pulumi.Input + + ToGatewayLoadBalancerTunnelInterfaceArrayOutput() GatewayLoadBalancerTunnelInterfaceArrayOutput + ToGatewayLoadBalancerTunnelInterfaceArrayOutputWithContext(context.Context) GatewayLoadBalancerTunnelInterfaceArrayOutput +} + +type GatewayLoadBalancerTunnelInterfaceArray []GatewayLoadBalancerTunnelInterfaceInput + +func (GatewayLoadBalancerTunnelInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayLoadBalancerTunnelInterface)(nil)).Elem() +} + +func (i GatewayLoadBalancerTunnelInterfaceArray) ToGatewayLoadBalancerTunnelInterfaceArrayOutput() GatewayLoadBalancerTunnelInterfaceArrayOutput { + return i.ToGatewayLoadBalancerTunnelInterfaceArrayOutputWithContext(context.Background()) +} + +func (i GatewayLoadBalancerTunnelInterfaceArray) ToGatewayLoadBalancerTunnelInterfaceArrayOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayLoadBalancerTunnelInterfaceArrayOutput) +} + +// Gateway load balancer tunnel interface of a load balancer backend address pool. +type GatewayLoadBalancerTunnelInterfaceOutput struct{ *pulumi.OutputState } + +func (GatewayLoadBalancerTunnelInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayLoadBalancerTunnelInterface)(nil)).Elem() +} + +func (o GatewayLoadBalancerTunnelInterfaceOutput) ToGatewayLoadBalancerTunnelInterfaceOutput() GatewayLoadBalancerTunnelInterfaceOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceOutput) ToGatewayLoadBalancerTunnelInterfaceOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceOutput { + return o +} + +// Identifier of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceOutput) Identifier() pulumi.IntPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterface) *int { return v.Identifier }).(pulumi.IntPtrOutput) +} + +// Port of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterface) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Protocol of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterface) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// Traffic type of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterface) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type GatewayLoadBalancerTunnelInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (GatewayLoadBalancerTunnelInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayLoadBalancerTunnelInterface)(nil)).Elem() +} + +func (o GatewayLoadBalancerTunnelInterfaceArrayOutput) ToGatewayLoadBalancerTunnelInterfaceArrayOutput() GatewayLoadBalancerTunnelInterfaceArrayOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceArrayOutput) ToGatewayLoadBalancerTunnelInterfaceArrayOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceArrayOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceArrayOutput) Index(i pulumi.IntInput) GatewayLoadBalancerTunnelInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GatewayLoadBalancerTunnelInterface { + return vs[0].([]GatewayLoadBalancerTunnelInterface)[vs[1].(int)] + }).(GatewayLoadBalancerTunnelInterfaceOutput) +} + +// Gateway load balancer tunnel interface of a load balancer backend address pool. +type GatewayLoadBalancerTunnelInterfaceResponse struct { + // Identifier of gateway load balancer tunnel interface. + Identifier *int `pulumi:"identifier"` + // Port of gateway load balancer tunnel interface. + Port *int `pulumi:"port"` + // Protocol of gateway load balancer tunnel interface. + Protocol *string `pulumi:"protocol"` + // Traffic type of gateway load balancer tunnel interface. + Type *string `pulumi:"type"` +} + +// Gateway load balancer tunnel interface of a load balancer backend address pool. +type GatewayLoadBalancerTunnelInterfaceResponseOutput struct{ *pulumi.OutputState } + +func (GatewayLoadBalancerTunnelInterfaceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayLoadBalancerTunnelInterfaceResponse)(nil)).Elem() +} + +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) ToGatewayLoadBalancerTunnelInterfaceResponseOutput() GatewayLoadBalancerTunnelInterfaceResponseOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) ToGatewayLoadBalancerTunnelInterfaceResponseOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceResponseOutput { + return o +} + +// Identifier of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) Identifier() pulumi.IntPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterfaceResponse) *int { return v.Identifier }).(pulumi.IntPtrOutput) +} + +// Port of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterfaceResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// Protocol of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterfaceResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// Traffic type of gateway load balancer tunnel interface. +func (o GatewayLoadBalancerTunnelInterfaceResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v GatewayLoadBalancerTunnelInterfaceResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type GatewayLoadBalancerTunnelInterfaceResponseArrayOutput struct{ *pulumi.OutputState } + +func (GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GatewayLoadBalancerTunnelInterfaceResponse)(nil)).Elem() +} + +func (o GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) ToGatewayLoadBalancerTunnelInterfaceResponseArrayOutput() GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) ToGatewayLoadBalancerTunnelInterfaceResponseArrayOutputWithContext(ctx context.Context) GatewayLoadBalancerTunnelInterfaceResponseArrayOutput { + return o +} + +func (o GatewayLoadBalancerTunnelInterfaceResponseArrayOutput) Index(i pulumi.IntInput) GatewayLoadBalancerTunnelInterfaceResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GatewayLoadBalancerTunnelInterfaceResponse { + return vs[0].([]GatewayLoadBalancerTunnelInterfaceResponse)[vs[1].(int)] + }).(GatewayLoadBalancerTunnelInterfaceResponseOutput) +} + // Gateway routing details. type GatewayRouteResponse struct { // The route's AS path sequence. @@ -33854,104 +38320,296 @@ func (o GatewayRouteResponseArrayOutput) Index(i pulumi.IntInput) GatewayRouteRe }).(GatewayRouteResponseOutput) } -// GroupMembers Item. -type GroupMembersItem struct { - // Resource Id. - ResourceId *string `pulumi:"resourceId"` +// Define user session identifier group by clauses. +type GroupByUserSession struct { + // List of group by clause variables. + GroupByVariables []GroupByVariable `pulumi:"groupByVariables"` } -// GroupMembersItemInput is an input type that accepts GroupMembersItemArgs and GroupMembersItemOutput values. -// You can construct a concrete instance of `GroupMembersItemInput` via: +// GroupByUserSessionInput is an input type that accepts GroupByUserSessionArgs and GroupByUserSessionOutput values. +// You can construct a concrete instance of `GroupByUserSessionInput` via: // -// GroupMembersItemArgs{...} -type GroupMembersItemInput interface { +// GroupByUserSessionArgs{...} +type GroupByUserSessionInput interface { pulumi.Input - ToGroupMembersItemOutput() GroupMembersItemOutput - ToGroupMembersItemOutputWithContext(context.Context) GroupMembersItemOutput + ToGroupByUserSessionOutput() GroupByUserSessionOutput + ToGroupByUserSessionOutputWithContext(context.Context) GroupByUserSessionOutput } -// GroupMembers Item. -type GroupMembersItemArgs struct { - // Resource Id. - ResourceId pulumi.StringPtrInput `pulumi:"resourceId"` +// Define user session identifier group by clauses. +type GroupByUserSessionArgs struct { + // List of group by clause variables. + GroupByVariables GroupByVariableArrayInput `pulumi:"groupByVariables"` } -func (GroupMembersItemArgs) ElementType() reflect.Type { - return reflect.TypeOf((*GroupMembersItem)(nil)).Elem() +func (GroupByUserSessionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByUserSession)(nil)).Elem() } -func (i GroupMembersItemArgs) ToGroupMembersItemOutput() GroupMembersItemOutput { - return i.ToGroupMembersItemOutputWithContext(context.Background()) +func (i GroupByUserSessionArgs) ToGroupByUserSessionOutput() GroupByUserSessionOutput { + return i.ToGroupByUserSessionOutputWithContext(context.Background()) } -func (i GroupMembersItemArgs) ToGroupMembersItemOutputWithContext(ctx context.Context) GroupMembersItemOutput { - return pulumi.ToOutputWithContext(ctx, i).(GroupMembersItemOutput) +func (i GroupByUserSessionArgs) ToGroupByUserSessionOutputWithContext(ctx context.Context) GroupByUserSessionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupByUserSessionOutput) } -// GroupMembersItemArrayInput is an input type that accepts GroupMembersItemArray and GroupMembersItemArrayOutput values. -// You can construct a concrete instance of `GroupMembersItemArrayInput` via: +// GroupByUserSessionArrayInput is an input type that accepts GroupByUserSessionArray and GroupByUserSessionArrayOutput values. +// You can construct a concrete instance of `GroupByUserSessionArrayInput` via: // -// GroupMembersItemArray{ GroupMembersItemArgs{...} } -type GroupMembersItemArrayInput interface { +// GroupByUserSessionArray{ GroupByUserSessionArgs{...} } +type GroupByUserSessionArrayInput interface { pulumi.Input - ToGroupMembersItemArrayOutput() GroupMembersItemArrayOutput - ToGroupMembersItemArrayOutputWithContext(context.Context) GroupMembersItemArrayOutput + ToGroupByUserSessionArrayOutput() GroupByUserSessionArrayOutput + ToGroupByUserSessionArrayOutputWithContext(context.Context) GroupByUserSessionArrayOutput } -type GroupMembersItemArray []GroupMembersItemInput +type GroupByUserSessionArray []GroupByUserSessionInput -func (GroupMembersItemArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]GroupMembersItem)(nil)).Elem() +func (GroupByUserSessionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByUserSession)(nil)).Elem() } -func (i GroupMembersItemArray) ToGroupMembersItemArrayOutput() GroupMembersItemArrayOutput { - return i.ToGroupMembersItemArrayOutputWithContext(context.Background()) +func (i GroupByUserSessionArray) ToGroupByUserSessionArrayOutput() GroupByUserSessionArrayOutput { + return i.ToGroupByUserSessionArrayOutputWithContext(context.Background()) } -func (i GroupMembersItemArray) ToGroupMembersItemArrayOutputWithContext(ctx context.Context) GroupMembersItemArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(GroupMembersItemArrayOutput) +func (i GroupByUserSessionArray) ToGroupByUserSessionArrayOutputWithContext(ctx context.Context) GroupByUserSessionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupByUserSessionArrayOutput) } -// GroupMembers Item. -type GroupMembersItemOutput struct{ *pulumi.OutputState } +// Define user session identifier group by clauses. +type GroupByUserSessionOutput struct{ *pulumi.OutputState } -func (GroupMembersItemOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GroupMembersItem)(nil)).Elem() +func (GroupByUserSessionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByUserSession)(nil)).Elem() } -func (o GroupMembersItemOutput) ToGroupMembersItemOutput() GroupMembersItemOutput { +func (o GroupByUserSessionOutput) ToGroupByUserSessionOutput() GroupByUserSessionOutput { return o } -func (o GroupMembersItemOutput) ToGroupMembersItemOutputWithContext(ctx context.Context) GroupMembersItemOutput { +func (o GroupByUserSessionOutput) ToGroupByUserSessionOutputWithContext(ctx context.Context) GroupByUserSessionOutput { return o } -// Resource Id. -func (o GroupMembersItemOutput) ResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v GroupMembersItem) *string { return v.ResourceId }).(pulumi.StringPtrOutput) +// List of group by clause variables. +func (o GroupByUserSessionOutput) GroupByVariables() GroupByVariableArrayOutput { + return o.ApplyT(func(v GroupByUserSession) []GroupByVariable { return v.GroupByVariables }).(GroupByVariableArrayOutput) +} + +type GroupByUserSessionArrayOutput struct{ *pulumi.OutputState } + +func (GroupByUserSessionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByUserSession)(nil)).Elem() +} + +func (o GroupByUserSessionArrayOutput) ToGroupByUserSessionArrayOutput() GroupByUserSessionArrayOutput { + return o +} + +func (o GroupByUserSessionArrayOutput) ToGroupByUserSessionArrayOutputWithContext(ctx context.Context) GroupByUserSessionArrayOutput { + return o +} + +func (o GroupByUserSessionArrayOutput) Index(i pulumi.IntInput) GroupByUserSessionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GroupByUserSession { + return vs[0].([]GroupByUserSession)[vs[1].(int)] + }).(GroupByUserSessionOutput) +} + +// Define user session identifier group by clauses. +type GroupByUserSessionResponse struct { + // List of group by clause variables. + GroupByVariables []GroupByVariableResponse `pulumi:"groupByVariables"` +} + +// Define user session identifier group by clauses. +type GroupByUserSessionResponseOutput struct{ *pulumi.OutputState } + +func (GroupByUserSessionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByUserSessionResponse)(nil)).Elem() +} + +func (o GroupByUserSessionResponseOutput) ToGroupByUserSessionResponseOutput() GroupByUserSessionResponseOutput { + return o +} + +func (o GroupByUserSessionResponseOutput) ToGroupByUserSessionResponseOutputWithContext(ctx context.Context) GroupByUserSessionResponseOutput { + return o +} + +// List of group by clause variables. +func (o GroupByUserSessionResponseOutput) GroupByVariables() GroupByVariableResponseArrayOutput { + return o.ApplyT(func(v GroupByUserSessionResponse) []GroupByVariableResponse { return v.GroupByVariables }).(GroupByVariableResponseArrayOutput) +} + +type GroupByUserSessionResponseArrayOutput struct{ *pulumi.OutputState } + +func (GroupByUserSessionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByUserSessionResponse)(nil)).Elem() +} + +func (o GroupByUserSessionResponseArrayOutput) ToGroupByUserSessionResponseArrayOutput() GroupByUserSessionResponseArrayOutput { + return o +} + +func (o GroupByUserSessionResponseArrayOutput) ToGroupByUserSessionResponseArrayOutputWithContext(ctx context.Context) GroupByUserSessionResponseArrayOutput { + return o +} + +func (o GroupByUserSessionResponseArrayOutput) Index(i pulumi.IntInput) GroupByUserSessionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GroupByUserSessionResponse { + return vs[0].([]GroupByUserSessionResponse)[vs[1].(int)] + }).(GroupByUserSessionResponseOutput) +} + +// Define user session group by clause variables. +type GroupByVariable struct { + // User Session clause variable. + VariableName string `pulumi:"variableName"` +} + +// GroupByVariableInput is an input type that accepts GroupByVariableArgs and GroupByVariableOutput values. +// You can construct a concrete instance of `GroupByVariableInput` via: +// +// GroupByVariableArgs{...} +type GroupByVariableInput interface { + pulumi.Input + + ToGroupByVariableOutput() GroupByVariableOutput + ToGroupByVariableOutputWithContext(context.Context) GroupByVariableOutput +} + +// Define user session group by clause variables. +type GroupByVariableArgs struct { + // User Session clause variable. + VariableName pulumi.StringInput `pulumi:"variableName"` +} + +func (GroupByVariableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByVariable)(nil)).Elem() +} + +func (i GroupByVariableArgs) ToGroupByVariableOutput() GroupByVariableOutput { + return i.ToGroupByVariableOutputWithContext(context.Background()) +} + +func (i GroupByVariableArgs) ToGroupByVariableOutputWithContext(ctx context.Context) GroupByVariableOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupByVariableOutput) +} + +// GroupByVariableArrayInput is an input type that accepts GroupByVariableArray and GroupByVariableArrayOutput values. +// You can construct a concrete instance of `GroupByVariableArrayInput` via: +// +// GroupByVariableArray{ GroupByVariableArgs{...} } +type GroupByVariableArrayInput interface { + pulumi.Input + + ToGroupByVariableArrayOutput() GroupByVariableArrayOutput + ToGroupByVariableArrayOutputWithContext(context.Context) GroupByVariableArrayOutput +} + +type GroupByVariableArray []GroupByVariableInput + +func (GroupByVariableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByVariable)(nil)).Elem() +} + +func (i GroupByVariableArray) ToGroupByVariableArrayOutput() GroupByVariableArrayOutput { + return i.ToGroupByVariableArrayOutputWithContext(context.Background()) +} + +func (i GroupByVariableArray) ToGroupByVariableArrayOutputWithContext(ctx context.Context) GroupByVariableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupByVariableArrayOutput) +} + +// Define user session group by clause variables. +type GroupByVariableOutput struct{ *pulumi.OutputState } + +func (GroupByVariableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByVariable)(nil)).Elem() +} + +func (o GroupByVariableOutput) ToGroupByVariableOutput() GroupByVariableOutput { + return o +} + +func (o GroupByVariableOutput) ToGroupByVariableOutputWithContext(ctx context.Context) GroupByVariableOutput { + return o +} + +// User Session clause variable. +func (o GroupByVariableOutput) VariableName() pulumi.StringOutput { + return o.ApplyT(func(v GroupByVariable) string { return v.VariableName }).(pulumi.StringOutput) +} + +type GroupByVariableArrayOutput struct{ *pulumi.OutputState } + +func (GroupByVariableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByVariable)(nil)).Elem() +} + +func (o GroupByVariableArrayOutput) ToGroupByVariableArrayOutput() GroupByVariableArrayOutput { + return o +} + +func (o GroupByVariableArrayOutput) ToGroupByVariableArrayOutputWithContext(ctx context.Context) GroupByVariableArrayOutput { + return o +} + +func (o GroupByVariableArrayOutput) Index(i pulumi.IntInput) GroupByVariableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GroupByVariable { + return vs[0].([]GroupByVariable)[vs[1].(int)] + }).(GroupByVariableOutput) +} + +// Define user session group by clause variables. +type GroupByVariableResponse struct { + // User Session clause variable. + VariableName string `pulumi:"variableName"` } -type GroupMembersItemArrayOutput struct{ *pulumi.OutputState } +// Define user session group by clause variables. +type GroupByVariableResponseOutput struct{ *pulumi.OutputState } -func (GroupMembersItemArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]GroupMembersItem)(nil)).Elem() +func (GroupByVariableResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupByVariableResponse)(nil)).Elem() } -func (o GroupMembersItemArrayOutput) ToGroupMembersItemArrayOutput() GroupMembersItemArrayOutput { +func (o GroupByVariableResponseOutput) ToGroupByVariableResponseOutput() GroupByVariableResponseOutput { return o } -func (o GroupMembersItemArrayOutput) ToGroupMembersItemArrayOutputWithContext(ctx context.Context) GroupMembersItemArrayOutput { +func (o GroupByVariableResponseOutput) ToGroupByVariableResponseOutputWithContext(ctx context.Context) GroupByVariableResponseOutput { return o } -func (o GroupMembersItemArrayOutput) Index(i pulumi.IntInput) GroupMembersItemOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) GroupMembersItem { - return vs[0].([]GroupMembersItem)[vs[1].(int)] - }).(GroupMembersItemOutput) +// User Session clause variable. +func (o GroupByVariableResponseOutput) VariableName() pulumi.StringOutput { + return o.ApplyT(func(v GroupByVariableResponse) string { return v.VariableName }).(pulumi.StringOutput) +} + +type GroupByVariableResponseArrayOutput struct{ *pulumi.OutputState } + +func (GroupByVariableResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GroupByVariableResponse)(nil)).Elem() +} + +func (o GroupByVariableResponseArrayOutput) ToGroupByVariableResponseArrayOutput() GroupByVariableResponseArrayOutput { + return o +} + +func (o GroupByVariableResponseArrayOutput) ToGroupByVariableResponseArrayOutputWithContext(ctx context.Context) GroupByVariableResponseArrayOutput { + return o +} + +func (o GroupByVariableResponseArrayOutput) Index(i pulumi.IntInput) GroupByVariableResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GroupByVariableResponse { + return vs[0].([]GroupByVariableResponse)[vs[1].(int)] + }).(GroupByVariableResponseOutput) } // GroupMembers Item. @@ -34364,7 +39022,7 @@ func (val *HealthProbeSettingsModel) Defaults() *HealthProbeSettingsModel { return nil } tmp := *val - if isZero(tmp.HealthProbeMethod) { + if tmp.HealthProbeMethod == nil { healthProbeMethod_ := "HEAD" tmp.HealthProbeMethod = &healthProbeMethod_ } @@ -34406,7 +39064,7 @@ func (val *HealthProbeSettingsModelArgs) Defaults() *HealthProbeSettingsModelArg return nil } tmp := *val - if isZero(tmp.HealthProbeMethod) { + if tmp.HealthProbeMethod == nil { tmp.HealthProbeMethod = pulumi.StringPtr("HEAD") } return &tmp @@ -34546,7 +39204,7 @@ func (val *HealthProbeSettingsModelResponse) Defaults() *HealthProbeSettingsMode return nil } tmp := *val - if isZero(tmp.HealthProbeMethod) { + if tmp.HealthProbeMethod == nil { healthProbeMethod_ := "HEAD" tmp.HealthProbeMethod = &healthProbeMethod_ } @@ -35909,7 +40567,7 @@ func (val *IPConfigurationResponse) Defaults() *IPConfigurationResponse { return nil } tmp := *val - if isZero(tmp.PrivateIPAllocationMethod) { + if tmp.PrivateIPAllocationMethod == nil { privateIPAllocationMethod_ := "Dynamic" tmp.PrivateIPAllocationMethod = &privateIPAllocationMethod_ } @@ -36106,7 +40764,7 @@ type InboundEndpointIPConfiguration struct { // Private IP address allocation method. PrivateIpAllocationMethod *string `pulumi:"privateIpAllocationMethod"` // The reference to the subnet bound to the IP configuration. - Subnet *SubResource `pulumi:"subnet"` + Subnet SubResource `pulumi:"subnet"` } // Defaults sets the appropriate defaults for InboundEndpointIPConfiguration @@ -36115,7 +40773,7 @@ func (val *InboundEndpointIPConfiguration) Defaults() *InboundEndpointIPConfigur return nil } tmp := *val - if isZero(tmp.PrivateIpAllocationMethod) { + if tmp.PrivateIpAllocationMethod == nil { privateIpAllocationMethod_ := "Dynamic" tmp.PrivateIpAllocationMethod = &privateIpAllocationMethod_ } @@ -36140,7 +40798,7 @@ type InboundEndpointIPConfigurationArgs struct { // Private IP address allocation method. PrivateIpAllocationMethod pulumi.StringPtrInput `pulumi:"privateIpAllocationMethod"` // The reference to the subnet bound to the IP configuration. - Subnet SubResourcePtrInput `pulumi:"subnet"` + Subnet SubResourceInput `pulumi:"subnet"` } // Defaults sets the appropriate defaults for InboundEndpointIPConfigurationArgs @@ -36149,7 +40807,7 @@ func (val *InboundEndpointIPConfigurationArgs) Defaults() *InboundEndpointIPConf return nil } tmp := *val - if isZero(tmp.PrivateIpAllocationMethod) { + if tmp.PrivateIpAllocationMethod == nil { tmp.PrivateIpAllocationMethod = pulumi.StringPtr("Dynamic") } return &tmp @@ -36217,8 +40875,8 @@ func (o InboundEndpointIPConfigurationOutput) PrivateIpAllocationMethod() pulumi } // The reference to the subnet bound to the IP configuration. -func (o InboundEndpointIPConfigurationOutput) Subnet() SubResourcePtrOutput { - return o.ApplyT(func(v InboundEndpointIPConfiguration) *SubResource { return v.Subnet }).(SubResourcePtrOutput) +func (o InboundEndpointIPConfigurationOutput) Subnet() SubResourceOutput { + return o.ApplyT(func(v InboundEndpointIPConfiguration) SubResource { return v.Subnet }).(SubResourceOutput) } type InboundEndpointIPConfigurationArrayOutput struct{ *pulumi.OutputState } @@ -36248,7 +40906,7 @@ type InboundEndpointIPConfigurationResponse struct { // Private IP address allocation method. PrivateIpAllocationMethod *string `pulumi:"privateIpAllocationMethod"` // The reference to the subnet bound to the IP configuration. - Subnet *SubResourceResponse `pulumi:"subnet"` + Subnet SubResourceResponse `pulumi:"subnet"` } // Defaults sets the appropriate defaults for InboundEndpointIPConfigurationResponse @@ -36257,7 +40915,7 @@ func (val *InboundEndpointIPConfigurationResponse) Defaults() *InboundEndpointIP return nil } tmp := *val - if isZero(tmp.PrivateIpAllocationMethod) { + if tmp.PrivateIpAllocationMethod == nil { privateIpAllocationMethod_ := "Dynamic" tmp.PrivateIpAllocationMethod = &privateIpAllocationMethod_ } @@ -36290,8 +40948,8 @@ func (o InboundEndpointIPConfigurationResponseOutput) PrivateIpAllocationMethod( } // The reference to the subnet bound to the IP configuration. -func (o InboundEndpointIPConfigurationResponseOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v InboundEndpointIPConfigurationResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) +func (o InboundEndpointIPConfigurationResponseOutput) Subnet() SubResourceResponseOutput { + return o.ApplyT(func(v InboundEndpointIPConfigurationResponse) SubResourceResponse { return v.Subnet }).(SubResourceResponseOutput) } type InboundEndpointIPConfigurationResponseArrayOutput struct{ *pulumi.OutputState } @@ -36627,6 +41285,8 @@ func (o InboundNatPoolResponseArrayOutput) Index(i pulumi.IntInput) InboundNatPo // Inbound NAT rule of the load balancer. type InboundNatRuleType struct { + // A reference to backendAddressPool resource. + BackendAddressPool *SubResource `pulumi:"backendAddressPool"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. BackendPort *int `pulumi:"backendPort"` // Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. @@ -36637,6 +41297,10 @@ type InboundNatRuleType struct { FrontendIPConfiguration *SubResource `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort *int `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd *int `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart *int `pulumi:"frontendPortRangeStart"` // Resource ID. Id *string `pulumi:"id"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. @@ -36660,6 +41324,8 @@ type InboundNatRuleTypeInput interface { // Inbound NAT rule of the load balancer. type InboundNatRuleTypeArgs struct { + // A reference to backendAddressPool resource. + BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. BackendPort pulumi.IntPtrInput `pulumi:"backendPort"` // Configures a virtual machine's endpoint for the floating IP capability required to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn Availability Groups in SQL server. This setting can't be changed after you create the endpoint. @@ -36670,6 +41336,10 @@ type InboundNatRuleTypeArgs struct { FrontendIPConfiguration SubResourcePtrInput `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort pulumi.IntPtrInput `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd pulumi.IntPtrInput `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart pulumi.IntPtrInput `pulumi:"frontendPortRangeStart"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. @@ -36732,6 +41402,11 @@ func (o InboundNatRuleTypeOutput) ToInboundNatRuleTypeOutputWithContext(ctx cont return o } +// A reference to backendAddressPool resource. +func (o InboundNatRuleTypeOutput) BackendAddressPool() SubResourcePtrOutput { + return o.ApplyT(func(v InboundNatRuleType) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) +} + // The port used for the internal endpoint. Acceptable values range from 1 to 65535. func (o InboundNatRuleTypeOutput) BackendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v InboundNatRuleType) *int { return v.BackendPort }).(pulumi.IntPtrOutput) @@ -36757,6 +41432,16 @@ func (o InboundNatRuleTypeOutput) FrontendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v InboundNatRuleType) *int { return v.FrontendPort }).(pulumi.IntPtrOutput) } +// The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleTypeOutput) FrontendPortRangeEnd() pulumi.IntPtrOutput { + return o.ApplyT(func(v InboundNatRuleType) *int { return v.FrontendPortRangeEnd }).(pulumi.IntPtrOutput) +} + +// The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleTypeOutput) FrontendPortRangeStart() pulumi.IntPtrOutput { + return o.ApplyT(func(v InboundNatRuleType) *int { return v.FrontendPortRangeStart }).(pulumi.IntPtrOutput) +} + // Resource ID. func (o InboundNatRuleTypeOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v InboundNatRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -36799,6 +41484,8 @@ func (o InboundNatRuleTypeArrayOutput) Index(i pulumi.IntInput) InboundNatRuleTy // Inbound NAT rule of the load balancer. type InboundNatRuleResponse struct { + // A reference to backendAddressPool resource. + BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. BackendIPConfiguration NetworkInterfaceIPConfigurationResponse `pulumi:"backendIPConfiguration"` // The port used for the internal endpoint. Acceptable values range from 1 to 65535. @@ -36813,6 +41500,10 @@ type InboundNatRuleResponse struct { FrontendIPConfiguration *SubResourceResponse `pulumi:"frontendIPConfiguration"` // The port for the external endpoint. Port numbers for each rule must be unique within the Load Balancer. Acceptable values range from 1 to 65534. FrontendPort *int `pulumi:"frontendPort"` + // The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeEnd *int `pulumi:"frontendPortRangeEnd"` + // The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. + FrontendPortRangeStart *int `pulumi:"frontendPortRangeStart"` // Resource ID. Id *string `pulumi:"id"` // The timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP. @@ -36853,6 +41544,11 @@ func (o InboundNatRuleResponseOutput) ToInboundNatRuleResponseOutputWithContext( return o } +// A reference to backendAddressPool resource. +func (o InboundNatRuleResponseOutput) BackendAddressPool() SubResourceResponsePtrOutput { + return o.ApplyT(func(v InboundNatRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) +} + // A reference to a private IP address defined on a network interface of a VM. Traffic sent to the frontend port of each of the frontend IP configurations is forwarded to the backend IP. func (o InboundNatRuleResponseOutput) BackendIPConfiguration() NetworkInterfaceIPConfigurationResponseOutput { return o.ApplyT(func(v InboundNatRuleResponse) NetworkInterfaceIPConfigurationResponse { @@ -36890,6 +41586,16 @@ func (o InboundNatRuleResponseOutput) FrontendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v InboundNatRuleResponse) *int { return v.FrontendPort }).(pulumi.IntPtrOutput) } +// The port range end for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeStart. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleResponseOutput) FrontendPortRangeEnd() pulumi.IntPtrOutput { + return o.ApplyT(func(v InboundNatRuleResponse) *int { return v.FrontendPortRangeEnd }).(pulumi.IntPtrOutput) +} + +// The port range start for the external endpoint. This property is used together with BackendAddressPool and FrontendPortRangeEnd. Individual inbound NAT rule port mappings will be created for each backend address from BackendAddressPool. Acceptable values range from 1 to 65534. +func (o InboundNatRuleResponseOutput) FrontendPortRangeStart() pulumi.IntPtrOutput { + return o.ApplyT(func(v InboundNatRuleResponse) *int { return v.FrontendPortRangeStart }).(pulumi.IntPtrOutput) +} + // Resource ID. func (o InboundNatRuleResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v InboundNatRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -36940,6 +41646,284 @@ func (o InboundNatRuleResponseArrayOutput) Index(i pulumi.IntInput) InboundNatRu }).(InboundNatRuleResponseOutput) } +// Interface endpoint resource. +type InterfaceEndpointResponse struct { + // A reference to the service being brought into the virtual network. + EndpointService *EndpointServiceResponse `pulumi:"endpointService"` + // Gets a unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. + Fqdn *string `pulumi:"fqdn"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // Gets an array of references to the network interfaces created for this interface endpoint. + NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` + // A read-only property that identifies who created this interface endpoint. + Owner string `pulumi:"owner"` + // The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState string `pulumi:"provisioningState"` + // The ID of the subnet from which the private IP will be allocated. + Subnet *SubnetResponse `pulumi:"subnet"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` +} + +// Defaults sets the appropriate defaults for InterfaceEndpointResponse +func (val *InterfaceEndpointResponse) Defaults() *InterfaceEndpointResponse { + if val == nil { + return nil + } + tmp := *val + tmp.Subnet = tmp.Subnet.Defaults() + + return &tmp +} + +// Interface endpoint resource. +type InterfaceEndpointResponseOutput struct{ *pulumi.OutputState } + +func (InterfaceEndpointResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InterfaceEndpointResponse)(nil)).Elem() +} + +func (o InterfaceEndpointResponseOutput) ToInterfaceEndpointResponseOutput() InterfaceEndpointResponseOutput { + return o +} + +func (o InterfaceEndpointResponseOutput) ToInterfaceEndpointResponseOutputWithContext(ctx context.Context) InterfaceEndpointResponseOutput { + return o +} + +// A reference to the service being brought into the virtual network. +func (o InterfaceEndpointResponseOutput) EndpointService() EndpointServiceResponsePtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *EndpointServiceResponse { return v.EndpointService }).(EndpointServiceResponsePtrOutput) +} + +// Gets a unique read-only string that changes whenever the resource is updated. +func (o InterfaceEndpointResponseOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. +func (o InterfaceEndpointResponseOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *string { return v.Fqdn }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o InterfaceEndpointResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o InterfaceEndpointResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o InterfaceEndpointResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Gets an array of references to the network interfaces created for this interface endpoint. +func (o InterfaceEndpointResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) +} + +// A read-only property that identifies who created this interface endpoint. +func (o InterfaceEndpointResponseOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) string { return v.Owner }).(pulumi.StringOutput) +} + +// The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o InterfaceEndpointResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The ID of the subnet from which the private IP will be allocated. +func (o InterfaceEndpointResponseOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) +} + +// Resource tags. +func (o InterfaceEndpointResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o InterfaceEndpointResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v InterfaceEndpointResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type InterfaceEndpointResponsePtrOutput struct{ *pulumi.OutputState } + +func (InterfaceEndpointResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InterfaceEndpointResponse)(nil)).Elem() +} + +func (o InterfaceEndpointResponsePtrOutput) ToInterfaceEndpointResponsePtrOutput() InterfaceEndpointResponsePtrOutput { + return o +} + +func (o InterfaceEndpointResponsePtrOutput) ToInterfaceEndpointResponsePtrOutputWithContext(ctx context.Context) InterfaceEndpointResponsePtrOutput { + return o +} + +func (o InterfaceEndpointResponsePtrOutput) Elem() InterfaceEndpointResponseOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) InterfaceEndpointResponse { + if v != nil { + return *v + } + var ret InterfaceEndpointResponse + return ret + }).(InterfaceEndpointResponseOutput) +} + +// A reference to the service being brought into the virtual network. +func (o InterfaceEndpointResponsePtrOutput) EndpointService() EndpointServiceResponsePtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *EndpointServiceResponse { + if v == nil { + return nil + } + return v.EndpointService + }).(EndpointServiceResponsePtrOutput) +} + +// Gets a unique read-only string that changes whenever the resource is updated. +func (o InterfaceEndpointResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return v.Etag + }).(pulumi.StringPtrOutput) +} + +// A first-party service's FQDN that is mapped to the private IP allocated via this interface endpoint. +func (o InterfaceEndpointResponsePtrOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return v.Fqdn + }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o InterfaceEndpointResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o InterfaceEndpointResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o InterfaceEndpointResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// Gets an array of references to the network interfaces created for this interface endpoint. +func (o InterfaceEndpointResponsePtrOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) []NetworkInterfaceResponse { + if v == nil { + return nil + } + return v.NetworkInterfaces + }).(NetworkInterfaceResponseArrayOutput) +} + +// A read-only property that identifies who created this interface endpoint. +func (o InterfaceEndpointResponsePtrOutput) Owner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return &v.Owner + }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the interface endpoint. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o InterfaceEndpointResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// The ID of the subnet from which the private IP will be allocated. +func (o InterfaceEndpointResponsePtrOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *SubnetResponse { + if v == nil { + return nil + } + return v.Subnet + }).(SubnetResponsePtrOutput) +} + +// Resource tags. +func (o InterfaceEndpointResponsePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o InterfaceEndpointResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InterfaceEndpointResponse) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type InterfaceEndpointResponseArrayOutput struct{ *pulumi.OutputState } + +func (InterfaceEndpointResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InterfaceEndpointResponse)(nil)).Elem() +} + +func (o InterfaceEndpointResponseArrayOutput) ToInterfaceEndpointResponseArrayOutput() InterfaceEndpointResponseArrayOutput { + return o +} + +func (o InterfaceEndpointResponseArrayOutput) ToInterfaceEndpointResponseArrayOutputWithContext(ctx context.Context) InterfaceEndpointResponseArrayOutput { + return o +} + +func (o InterfaceEndpointResponseArrayOutput) Index(i pulumi.IntInput) InterfaceEndpointResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InterfaceEndpointResponse { + return vs[0].([]InterfaceEndpointResponse)[vs[1].(int)] + }).(InterfaceEndpointResponseOutput) +} + // Contains the IpTag associated with the object. type IpTag struct { // The IP tag type. Example: FirstPartyUsage. @@ -37987,6 +42971,8 @@ func (o KeyVaultCertificateSourceParametersResponseVaultPtrOutput) Id() pulumi.S // Load balancer backend addresses. type LoadBalancerBackendAddress struct { + // A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. + AdminState *string `pulumi:"adminState"` // IP Address belonging to the referenced virtual network. IpAddress *string `pulumi:"ipAddress"` // Reference to the frontend ip address configuration defined in regional loadbalancer. @@ -38012,6 +42998,8 @@ type LoadBalancerBackendAddressInput interface { // Load balancer backend addresses. type LoadBalancerBackendAddressArgs struct { + // A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. + AdminState pulumi.StringPtrInput `pulumi:"adminState"` // IP Address belonging to the referenced virtual network. IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` // Reference to the frontend ip address configuration defined in regional loadbalancer. @@ -38076,6 +43064,11 @@ func (o LoadBalancerBackendAddressOutput) ToLoadBalancerBackendAddressOutputWith return o } +// A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. +func (o LoadBalancerBackendAddressOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadBalancerBackendAddress) *string { return v.AdminState }).(pulumi.StringPtrOutput) +} + // IP Address belonging to the referenced virtual network. func (o LoadBalancerBackendAddressOutput) IpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v LoadBalancerBackendAddress) *string { return v.IpAddress }).(pulumi.StringPtrOutput) @@ -38123,6 +43116,10 @@ func (o LoadBalancerBackendAddressArrayOutput) Index(i pulumi.IntInput) LoadBala // Load balancer backend addresses. type LoadBalancerBackendAddressResponse struct { + // A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. + AdminState *string `pulumi:"adminState"` + // Collection of inbound NAT rule port mappings. + InboundNatRulesPortMapping []NatRulePortMappingResponse `pulumi:"inboundNatRulesPortMapping"` // IP Address belonging to the referenced virtual network. IpAddress *string `pulumi:"ipAddress"` // Reference to the frontend ip address configuration defined in regional loadbalancer. @@ -38152,6 +43149,18 @@ func (o LoadBalancerBackendAddressResponseOutput) ToLoadBalancerBackendAddressRe return o } +// A list of administrative states which once set can override health probe so that Load Balancer will always forward new connections to backend, or deny new connections and reset existing connections. +func (o LoadBalancerBackendAddressResponseOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadBalancerBackendAddressResponse) *string { return v.AdminState }).(pulumi.StringPtrOutput) +} + +// Collection of inbound NAT rule port mappings. +func (o LoadBalancerBackendAddressResponseOutput) InboundNatRulesPortMapping() NatRulePortMappingResponseArrayOutput { + return o.ApplyT(func(v LoadBalancerBackendAddressResponse) []NatRulePortMappingResponse { + return v.InboundNatRulesPortMapping + }).(NatRulePortMappingResponseArrayOutput) +} + // IP Address belonging to the referenced virtual network. func (o LoadBalancerBackendAddressResponseOutput) IpAddress() pulumi.StringPtrOutput { return o.ApplyT(func(v LoadBalancerBackendAddressResponse) *string { return v.IpAddress }).(pulumi.StringPtrOutput) @@ -38446,6 +43455,8 @@ func (o LoadBalancerSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { type LoadBalancingRule struct { // A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs. BackendAddressPool *SubResource `pulumi:"backendAddressPool"` + // An array of references to pool of DIPs. + BackendAddressPools []SubResource `pulumi:"backendAddressPools"` // The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port". BackendPort *int `pulumi:"backendPort"` // Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule. @@ -38487,6 +43498,8 @@ type LoadBalancingRuleInput interface { type LoadBalancingRuleArgs struct { // A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs. BackendAddressPool SubResourcePtrInput `pulumi:"backendAddressPool"` + // An array of references to pool of DIPs. + BackendAddressPools SubResourceArrayInput `pulumi:"backendAddressPools"` // The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port". BackendPort pulumi.IntPtrInput `pulumi:"backendPort"` // Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule. @@ -38570,6 +43583,11 @@ func (o LoadBalancingRuleOutput) BackendAddressPool() SubResourcePtrOutput { return o.ApplyT(func(v LoadBalancingRule) *SubResource { return v.BackendAddressPool }).(SubResourcePtrOutput) } +// An array of references to pool of DIPs. +func (o LoadBalancingRuleOutput) BackendAddressPools() SubResourceArrayOutput { + return o.ApplyT(func(v LoadBalancingRule) []SubResource { return v.BackendAddressPools }).(SubResourceArrayOutput) +} + // The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port". func (o LoadBalancingRuleOutput) BackendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v LoadBalancingRule) *int { return v.BackendPort }).(pulumi.IntPtrOutput) @@ -38654,6 +43672,8 @@ func (o LoadBalancingRuleArrayOutput) Index(i pulumi.IntInput) LoadBalancingRule type LoadBalancingRuleResponse struct { // A reference to a pool of DIPs. Inbound traffic is randomly load balanced across IPs in the backend IPs. BackendAddressPool *SubResourceResponse `pulumi:"backendAddressPool"` + // An array of references to pool of DIPs. + BackendAddressPools []SubResourceResponse `pulumi:"backendAddressPools"` // The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port". BackendPort *int `pulumi:"backendPort"` // Configures SNAT for the VMs in the backend pool to use the publicIP address specified in the frontend of the load balancing rule. @@ -38706,6 +43726,11 @@ func (o LoadBalancingRuleResponseOutput) BackendAddressPool() SubResourceRespons return o.ApplyT(func(v LoadBalancingRuleResponse) *SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponsePtrOutput) } +// An array of references to pool of DIPs. +func (o LoadBalancingRuleResponseOutput) BackendAddressPools() SubResourceResponseArrayOutput { + return o.ApplyT(func(v LoadBalancingRuleResponse) []SubResourceResponse { return v.BackendAddressPools }).(SubResourceResponseArrayOutput) +} + // The port used for internal connections on the endpoint. Acceptable values are between 0 and 65535. Note that value 0 enables "Any Port". func (o LoadBalancingRuleResponseOutput) BackendPort() pulumi.IntPtrOutput { return o.ApplyT(func(v LoadBalancingRuleResponse) *int { return v.BackendPort }).(pulumi.IntPtrOutput) @@ -39868,6 +44893,8 @@ func (o ManagedRuleGroupOverrideResponseArrayOutput) Index(i pulumi.IntInput) Ma // Defines a managed rule group override setting. type ManagedRuleOverride struct { + // Describes the override action to be applied when rule matches. + Action *string `pulumi:"action"` // Identifier for the managed rule. RuleId string `pulumi:"ruleId"` // The state of the managed rule. Defaults to Disabled if not specified. @@ -39887,6 +44914,8 @@ type ManagedRuleOverrideInput interface { // Defines a managed rule group override setting. type ManagedRuleOverrideArgs struct { + // Describes the override action to be applied when rule matches. + Action pulumi.StringPtrInput `pulumi:"action"` // Identifier for the managed rule. RuleId pulumi.StringInput `pulumi:"ruleId"` // The state of the managed rule. Defaults to Disabled if not specified. @@ -39945,6 +44974,11 @@ func (o ManagedRuleOverrideOutput) ToManagedRuleOverrideOutputWithContext(ctx co return o } +// Describes the override action to be applied when rule matches. +func (o ManagedRuleOverrideOutput) Action() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagedRuleOverride) *string { return v.Action }).(pulumi.StringPtrOutput) +} + // Identifier for the managed rule. func (o ManagedRuleOverrideOutput) RuleId() pulumi.StringOutput { return o.ApplyT(func(v ManagedRuleOverride) string { return v.RuleId }).(pulumi.StringOutput) @@ -39977,6 +45011,8 @@ func (o ManagedRuleOverrideArrayOutput) Index(i pulumi.IntInput) ManagedRuleOver // Defines a managed rule group override setting. type ManagedRuleOverrideResponse struct { + // Describes the override action to be applied when rule matches. + Action *string `pulumi:"action"` // Identifier for the managed rule. RuleId string `pulumi:"ruleId"` // The state of the managed rule. Defaults to Disabled if not specified. @@ -39998,6 +45034,11 @@ func (o ManagedRuleOverrideResponseOutput) ToManagedRuleOverrideResponseOutputWi return o } +// Describes the override action to be applied when rule matches. +func (o ManagedRuleOverrideResponseOutput) Action() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagedRuleOverrideResponse) *string { return v.Action }).(pulumi.StringPtrOutput) +} + // Identifier for the managed rule. func (o ManagedRuleOverrideResponseOutput) RuleId() pulumi.StringOutput { return o.ApplyT(func(v ManagedRuleOverrideResponse) string { return v.RuleId }).(pulumi.StringOutput) @@ -40508,7 +45549,7 @@ type ManagedServiceIdentity struct { // The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Type *ResourceIdentityType `pulumi:"type"` // The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // ManagedServiceIdentityInput is an input type that accepts ManagedServiceIdentityArgs and ManagedServiceIdentityOutput values. @@ -40527,7 +45568,7 @@ type ManagedServiceIdentityArgs struct { // The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine. Type ResourceIdentityTypePtrInput `pulumi:"type"` // The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (ManagedServiceIdentityArgs) ElementType() reflect.Type { @@ -40614,8 +45655,8 @@ func (o ManagedServiceIdentityOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o ManagedServiceIdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v ManagedServiceIdentity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +func (o ManagedServiceIdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagedServiceIdentity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) } type ManagedServiceIdentityPtrOutput struct{ *pulumi.OutputState } @@ -40653,13 +45694,13 @@ func (o ManagedServiceIdentityPtrOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o ManagedServiceIdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *ManagedServiceIdentity) map[string]interface{} { +func (o ManagedServiceIdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagedServiceIdentity) []string { if v == nil { return nil } return v.UserAssignedIdentities - }).(pulumi.MapOutput) + }).(pulumi.StringArrayOutput) } // Identity for the resource. @@ -42997,6 +48038,66 @@ type NatRuleConditionResponse struct { SourceIpGroups []string `pulumi:"sourceIpGroups"` } +// Individual port mappings for inbound NAT rule created for backend pool. +type NatRulePortMappingResponse struct { + // Backend port. + BackendPort *int `pulumi:"backendPort"` + // Frontend port. + FrontendPort *int `pulumi:"frontendPort"` + // Name of inbound NAT rule. + InboundNatRuleName *string `pulumi:"inboundNatRuleName"` +} + +// Individual port mappings for inbound NAT rule created for backend pool. +type NatRulePortMappingResponseOutput struct{ *pulumi.OutputState } + +func (NatRulePortMappingResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NatRulePortMappingResponse)(nil)).Elem() +} + +func (o NatRulePortMappingResponseOutput) ToNatRulePortMappingResponseOutput() NatRulePortMappingResponseOutput { + return o +} + +func (o NatRulePortMappingResponseOutput) ToNatRulePortMappingResponseOutputWithContext(ctx context.Context) NatRulePortMappingResponseOutput { + return o +} + +// Backend port. +func (o NatRulePortMappingResponseOutput) BackendPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v NatRulePortMappingResponse) *int { return v.BackendPort }).(pulumi.IntPtrOutput) +} + +// Frontend port. +func (o NatRulePortMappingResponseOutput) FrontendPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v NatRulePortMappingResponse) *int { return v.FrontendPort }).(pulumi.IntPtrOutput) +} + +// Name of inbound NAT rule. +func (o NatRulePortMappingResponseOutput) InboundNatRuleName() pulumi.StringPtrOutput { + return o.ApplyT(func(v NatRulePortMappingResponse) *string { return v.InboundNatRuleName }).(pulumi.StringPtrOutput) +} + +type NatRulePortMappingResponseArrayOutput struct{ *pulumi.OutputState } + +func (NatRulePortMappingResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NatRulePortMappingResponse)(nil)).Elem() +} + +func (o NatRulePortMappingResponseArrayOutput) ToNatRulePortMappingResponseArrayOutput() NatRulePortMappingResponseArrayOutput { + return o +} + +func (o NatRulePortMappingResponseArrayOutput) ToNatRulePortMappingResponseArrayOutputWithContext(ctx context.Context) NatRulePortMappingResponseArrayOutput { + return o +} + +func (o NatRulePortMappingResponseArrayOutput) Index(i pulumi.IntInput) NatRulePortMappingResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NatRulePortMappingResponse { + return vs[0].([]NatRulePortMappingResponse)[vs[1].(int)] + }).(NatRulePortMappingResponseOutput) +} + // Rule of type nat. type NatRuleResponse struct { // Description of the rule. @@ -43317,6 +48418,8 @@ type NetworkInterfaceIPConfiguration struct { ApplicationGatewayBackendAddressPools []ApplicationGatewayBackendAddressPool `pulumi:"applicationGatewayBackendAddressPools"` // Application security groups in which the IP configuration is included. ApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"applicationSecurityGroups"` + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer *SubResource `pulumi:"gatewayLoadBalancer"` // Resource ID. Id *string `pulumi:"id"` // The reference to LoadBalancerBackendAddressPool resource. @@ -43371,6 +48474,8 @@ type NetworkInterfaceIPConfigurationArgs struct { ApplicationGatewayBackendAddressPools ApplicationGatewayBackendAddressPoolArrayInput `pulumi:"applicationGatewayBackendAddressPools"` // Application security groups in which the IP configuration is included. ApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput `pulumi:"applicationSecurityGroups"` + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer SubResourcePtrInput `pulumi:"gatewayLoadBalancer"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // The reference to LoadBalancerBackendAddressPool resource. @@ -43523,6 +48628,11 @@ func (o NetworkInterfaceIPConfigurationOutput) ApplicationSecurityGroups() Appli }).(ApplicationSecurityGroupTypeArrayOutput) } +// The reference to gateway load balancer frontend IP. +func (o NetworkInterfaceIPConfigurationOutput) GatewayLoadBalancer() SubResourcePtrOutput { + return o.ApplyT(func(v NetworkInterfaceIPConfiguration) *SubResource { return v.GatewayLoadBalancer }).(SubResourcePtrOutput) +} + // Resource ID. func (o NetworkInterfaceIPConfigurationOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterfaceIPConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -43627,6 +48737,16 @@ func (o NetworkInterfaceIPConfigurationPtrOutput) ApplicationSecurityGroups() Ap }).(ApplicationSecurityGroupTypeArrayOutput) } +// The reference to gateway load balancer frontend IP. +func (o NetworkInterfaceIPConfigurationPtrOutput) GatewayLoadBalancer() SubResourcePtrOutput { + return o.ApplyT(func(v *NetworkInterfaceIPConfiguration) *SubResource { + if v == nil { + return nil + } + return v.GatewayLoadBalancer + }).(SubResourcePtrOutput) +} + // Resource ID. func (o NetworkInterfaceIPConfigurationPtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkInterfaceIPConfiguration) *string { @@ -43875,6 +48995,8 @@ type NetworkInterfaceIPConfigurationResponse struct { ApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"applicationSecurityGroups"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // The reference to gateway load balancer frontend IP. + GatewayLoadBalancer *SubResourceResponse `pulumi:"gatewayLoadBalancer"` // Resource ID. Id *string `pulumi:"id"` // The reference to LoadBalancerBackendAddressPool resource. @@ -43952,6 +49074,11 @@ func (o NetworkInterfaceIPConfigurationResponseOutput) Etag() pulumi.StringOutpu return o.ApplyT(func(v NetworkInterfaceIPConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } +// The reference to gateway load balancer frontend IP. +func (o NetworkInterfaceIPConfigurationResponseOutput) GatewayLoadBalancer() SubResourceResponsePtrOutput { + return o.ApplyT(func(v NetworkInterfaceIPConfigurationResponse) *SubResourceResponse { return v.GatewayLoadBalancer }).(SubResourceResponsePtrOutput) +} + // Resource ID. func (o NetworkInterfaceIPConfigurationResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterfaceIPConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -44084,6 +49211,16 @@ func (o NetworkInterfaceIPConfigurationResponsePtrOutput) Etag() pulumi.StringPt }).(pulumi.StringPtrOutput) } +// The reference to gateway load balancer frontend IP. +func (o NetworkInterfaceIPConfigurationResponsePtrOutput) GatewayLoadBalancer() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *NetworkInterfaceIPConfigurationResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.GatewayLoadBalancer + }).(SubResourceResponsePtrOutput) +} + // Resource ID. func (o NetworkInterfaceIPConfigurationResponsePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkInterfaceIPConfigurationResponse) *string { @@ -44246,11 +49383,17 @@ func (o NetworkInterfaceIPConfigurationResponseArrayOutput) Index(i pulumi.IntIn // A network interface in a resource group. type NetworkInterfaceResponse struct { + // Auxiliary mode of Network Interface resource. + AuxiliaryMode *string `pulumi:"auxiliaryMode"` + // Auxiliary sku of Network Interface resource. + AuxiliarySku *string `pulumi:"auxiliarySku"` + // Indicates whether to disable tcp state tracking. + DisableTcpStateTracking *bool `pulumi:"disableTcpStateTracking"` // The DNS settings in network interface. DnsSettings *NetworkInterfaceDnsSettingsResponse `pulumi:"dnsSettings"` // A reference to the dscp configuration to which the network interface is linked. DscpConfiguration SubResourceResponse `pulumi:"dscpConfiguration"` - // If the network interface is accelerated networking enabled. + // If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. EnableAcceleratedNetworking *bool `pulumi:"enableAcceleratedNetworking"` // Indicates whether IP forwarding is enabled on this network interface. EnableIPForwarding *bool `pulumi:"enableIPForwarding"` @@ -44262,6 +49405,8 @@ type NetworkInterfaceResponse struct { HostedWorkloads []string `pulumi:"hostedWorkloads"` // Resource ID. Id *string `pulumi:"id"` + // A reference to the interface endpoint to which the network interface is linked. + InterfaceEndpoint *InterfaceEndpointResponse `pulumi:"interfaceEndpoint"` // A list of IPConfigurations of the network interface. IpConfigurations []NetworkInterfaceIPConfigurationResponse `pulumi:"ipConfigurations"` // Resource location. @@ -44294,6 +49439,10 @@ type NetworkInterfaceResponse struct { Type string `pulumi:"type"` // The reference to a virtual machine. VirtualMachine SubResourceResponse `pulumi:"virtualMachine"` + // Whether the virtual machine this nic is attached to supports encryption. + VnetEncryptionSupported bool `pulumi:"vnetEncryptionSupported"` + // WorkloadType of the NetworkInterface for BareMetal resources + WorkloadType *string `pulumi:"workloadType"` } // Defaults sets the appropriate defaults for NetworkInterfaceResponse @@ -44302,6 +49451,8 @@ func (val *NetworkInterfaceResponse) Defaults() *NetworkInterfaceResponse { return nil } tmp := *val + tmp.InterfaceEndpoint = tmp.InterfaceEndpoint.Defaults() + tmp.PrivateEndpoint = *tmp.PrivateEndpoint.Defaults() return &tmp @@ -44322,6 +49473,21 @@ func (o NetworkInterfaceResponseOutput) ToNetworkInterfaceResponseOutputWithCont return o } +// Auxiliary mode of Network Interface resource. +func (o NetworkInterfaceResponseOutput) AuxiliaryMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) *string { return v.AuxiliaryMode }).(pulumi.StringPtrOutput) +} + +// Auxiliary sku of Network Interface resource. +func (o NetworkInterfaceResponseOutput) AuxiliarySku() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) *string { return v.AuxiliarySku }).(pulumi.StringPtrOutput) +} + +// Indicates whether to disable tcp state tracking. +func (o NetworkInterfaceResponseOutput) DisableTcpStateTracking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) *bool { return v.DisableTcpStateTracking }).(pulumi.BoolPtrOutput) +} + // The DNS settings in network interface. func (o NetworkInterfaceResponseOutput) DnsSettings() NetworkInterfaceDnsSettingsResponsePtrOutput { return o.ApplyT(func(v NetworkInterfaceResponse) *NetworkInterfaceDnsSettingsResponse { return v.DnsSettings }).(NetworkInterfaceDnsSettingsResponsePtrOutput) @@ -44332,7 +49498,7 @@ func (o NetworkInterfaceResponseOutput) DscpConfiguration() SubResourceResponseO return o.ApplyT(func(v NetworkInterfaceResponse) SubResourceResponse { return v.DscpConfiguration }).(SubResourceResponseOutput) } -// If the network interface is accelerated networking enabled. +// If the network interface is configured for accelerated networking. Not applicable to VM sizes which require accelerated networking. func (o NetworkInterfaceResponseOutput) EnableAcceleratedNetworking() pulumi.BoolPtrOutput { return o.ApplyT(func(v NetworkInterfaceResponse) *bool { return v.EnableAcceleratedNetworking }).(pulumi.BoolPtrOutput) } @@ -44362,6 +49528,11 @@ func (o NetworkInterfaceResponseOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkInterfaceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } +// A reference to the interface endpoint to which the network interface is linked. +func (o NetworkInterfaceResponseOutput) InterfaceEndpoint() InterfaceEndpointResponsePtrOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) *InterfaceEndpointResponse { return v.InterfaceEndpoint }).(InterfaceEndpointResponsePtrOutput) +} + // A list of IPConfigurations of the network interface. func (o NetworkInterfaceResponseOutput) IpConfigurations() NetworkInterfaceIPConfigurationResponseArrayOutput { return o.ApplyT(func(v NetworkInterfaceResponse) []NetworkInterfaceIPConfigurationResponse { return v.IpConfigurations }).(NetworkInterfaceIPConfigurationResponseArrayOutput) @@ -44444,6 +49615,16 @@ func (o NetworkInterfaceResponseOutput) VirtualMachine() SubResourceResponseOutp return o.ApplyT(func(v NetworkInterfaceResponse) SubResourceResponse { return v.VirtualMachine }).(SubResourceResponseOutput) } +// Whether the virtual machine this nic is attached to supports encryption. +func (o NetworkInterfaceResponseOutput) VnetEncryptionSupported() pulumi.BoolOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) bool { return v.VnetEncryptionSupported }).(pulumi.BoolOutput) +} + +// WorkloadType of the NetworkInterface for BareMetal resources +func (o NetworkInterfaceResponseOutput) WorkloadType() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkInterfaceResponse) *string { return v.WorkloadType }).(pulumi.StringPtrOutput) +} + type NetworkInterfaceResponseArrayOutput struct{ *pulumi.OutputState } func (NetworkInterfaceResponseArrayOutput) ElementType() reflect.Type { @@ -44678,47 +49859,6 @@ func (i NetworkManagerPropertiesNetworkManagerScopesArgs) ToNetworkManagerProper return pulumi.ToOutputWithContext(ctx, i).(NetworkManagerPropertiesNetworkManagerScopesOutput) } -func (i NetworkManagerPropertiesNetworkManagerScopesArgs) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutput() NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return i.ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(context.Background()) -} - -func (i NetworkManagerPropertiesNetworkManagerScopesArgs) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(ctx context.Context) NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkManagerPropertiesNetworkManagerScopesOutput).ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(ctx) -} - -// NetworkManagerPropertiesNetworkManagerScopesPtrInput is an input type that accepts NetworkManagerPropertiesNetworkManagerScopesArgs, NetworkManagerPropertiesNetworkManagerScopesPtr and NetworkManagerPropertiesNetworkManagerScopesPtrOutput values. -// You can construct a concrete instance of `NetworkManagerPropertiesNetworkManagerScopesPtrInput` via: -// -// NetworkManagerPropertiesNetworkManagerScopesArgs{...} -// -// or: -// -// nil -type NetworkManagerPropertiesNetworkManagerScopesPtrInput interface { - pulumi.Input - - ToNetworkManagerPropertiesNetworkManagerScopesPtrOutput() NetworkManagerPropertiesNetworkManagerScopesPtrOutput - ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(context.Context) NetworkManagerPropertiesNetworkManagerScopesPtrOutput -} - -type networkManagerPropertiesNetworkManagerScopesPtrType NetworkManagerPropertiesNetworkManagerScopesArgs - -func NetworkManagerPropertiesNetworkManagerScopesPtr(v *NetworkManagerPropertiesNetworkManagerScopesArgs) NetworkManagerPropertiesNetworkManagerScopesPtrInput { - return (*networkManagerPropertiesNetworkManagerScopesPtrType)(v) -} - -func (*networkManagerPropertiesNetworkManagerScopesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkManagerPropertiesNetworkManagerScopes)(nil)).Elem() -} - -func (i *networkManagerPropertiesNetworkManagerScopesPtrType) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutput() NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return i.ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(context.Background()) -} - -func (i *networkManagerPropertiesNetworkManagerScopesPtrType) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(ctx context.Context) NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkManagerPropertiesNetworkManagerScopesPtrOutput) -} - // Scope of Network Manager. type NetworkManagerPropertiesNetworkManagerScopesOutput struct{ *pulumi.OutputState } @@ -44734,16 +49874,6 @@ func (o NetworkManagerPropertiesNetworkManagerScopesOutput) ToNetworkManagerProp return o } -func (o NetworkManagerPropertiesNetworkManagerScopesOutput) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutput() NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return o.ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(context.Background()) -} - -func (o NetworkManagerPropertiesNetworkManagerScopesOutput) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(ctx context.Context) NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkManagerPropertiesNetworkManagerScopes) *NetworkManagerPropertiesNetworkManagerScopes { - return &v - }).(NetworkManagerPropertiesNetworkManagerScopesPtrOutput) -} - // List of management groups. func (o NetworkManagerPropertiesNetworkManagerScopesOutput) ManagementGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v NetworkManagerPropertiesNetworkManagerScopes) []string { return v.ManagementGroups }).(pulumi.StringArrayOutput) @@ -44754,52 +49884,10 @@ func (o NetworkManagerPropertiesNetworkManagerScopesOutput) Subscriptions() pulu return o.ApplyT(func(v NetworkManagerPropertiesNetworkManagerScopes) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) } -type NetworkManagerPropertiesNetworkManagerScopesPtrOutput struct{ *pulumi.OutputState } - -func (NetworkManagerPropertiesNetworkManagerScopesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkManagerPropertiesNetworkManagerScopes)(nil)).Elem() -} - -func (o NetworkManagerPropertiesNetworkManagerScopesPtrOutput) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutput() NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return o -} - -func (o NetworkManagerPropertiesNetworkManagerScopesPtrOutput) ToNetworkManagerPropertiesNetworkManagerScopesPtrOutputWithContext(ctx context.Context) NetworkManagerPropertiesNetworkManagerScopesPtrOutput { - return o -} - -func (o NetworkManagerPropertiesNetworkManagerScopesPtrOutput) Elem() NetworkManagerPropertiesNetworkManagerScopesOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesNetworkManagerScopes) NetworkManagerPropertiesNetworkManagerScopes { - if v != nil { - return *v - } - var ret NetworkManagerPropertiesNetworkManagerScopes - return ret - }).(NetworkManagerPropertiesNetworkManagerScopesOutput) -} - -// List of management groups. -func (o NetworkManagerPropertiesNetworkManagerScopesPtrOutput) ManagementGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesNetworkManagerScopes) []string { - if v == nil { - return nil - } - return v.ManagementGroups - }).(pulumi.StringArrayOutput) -} - -// List of subscriptions. -func (o NetworkManagerPropertiesNetworkManagerScopesPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesNetworkManagerScopes) []string { - if v == nil { - return nil - } - return v.Subscriptions - }).(pulumi.StringArrayOutput) -} - // Scope of Network Manager. type NetworkManagerPropertiesResponseNetworkManagerScopes struct { + // List of cross tenant scopes. + CrossTenantScopes []CrossTenantScopesResponse `pulumi:"crossTenantScopes"` // List of management groups. ManagementGroups []string `pulumi:"managementGroups"` // List of subscriptions. @@ -44821,6 +49909,13 @@ func (o NetworkManagerPropertiesResponseNetworkManagerScopesOutput) ToNetworkMan return o } +// List of cross tenant scopes. +func (o NetworkManagerPropertiesResponseNetworkManagerScopesOutput) CrossTenantScopes() CrossTenantScopesResponseArrayOutput { + return o.ApplyT(func(v NetworkManagerPropertiesResponseNetworkManagerScopes) []CrossTenantScopesResponse { + return v.CrossTenantScopes + }).(CrossTenantScopesResponseArrayOutput) +} + // List of management groups. func (o NetworkManagerPropertiesResponseNetworkManagerScopesOutput) ManagementGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v NetworkManagerPropertiesResponseNetworkManagerScopes) []string { return v.ManagementGroups }).(pulumi.StringArrayOutput) @@ -44831,54 +49926,10 @@ func (o NetworkManagerPropertiesResponseNetworkManagerScopesOutput) Subscription return o.ApplyT(func(v NetworkManagerPropertiesResponseNetworkManagerScopes) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) } -type NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput struct{ *pulumi.OutputState } - -func (NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkManagerPropertiesResponseNetworkManagerScopes)(nil)).Elem() -} - -func (o NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) ToNetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput() NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput { - return o -} - -func (o NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) ToNetworkManagerPropertiesResponseNetworkManagerScopesPtrOutputWithContext(ctx context.Context) NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput { - return o -} - -func (o NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) Elem() NetworkManagerPropertiesResponseNetworkManagerScopesOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesResponseNetworkManagerScopes) NetworkManagerPropertiesResponseNetworkManagerScopes { - if v != nil { - return *v - } - var ret NetworkManagerPropertiesResponseNetworkManagerScopes - return ret - }).(NetworkManagerPropertiesResponseNetworkManagerScopesOutput) -} - -// List of management groups. -func (o NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) ManagementGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesResponseNetworkManagerScopes) []string { - if v == nil { - return nil - } - return v.ManagementGroups - }).(pulumi.StringArrayOutput) -} - -// List of subscriptions. -func (o NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *NetworkManagerPropertiesResponseNetworkManagerScopes) []string { - if v == nil { - return nil - } - return v.Subscriptions - }).(pulumi.StringArrayOutput) -} - // Network manager security group item. type NetworkManagerSecurityGroupItem struct { // Network manager group Id. - NetworkGroupId *string `pulumi:"networkGroupId"` + NetworkGroupId string `pulumi:"networkGroupId"` } // NetworkManagerSecurityGroupItemInput is an input type that accepts NetworkManagerSecurityGroupItemArgs and NetworkManagerSecurityGroupItemOutput values. @@ -44895,7 +49946,7 @@ type NetworkManagerSecurityGroupItemInput interface { // Network manager security group item. type NetworkManagerSecurityGroupItemArgs struct { // Network manager group Id. - NetworkGroupId pulumi.StringPtrInput `pulumi:"networkGroupId"` + NetworkGroupId pulumi.StringInput `pulumi:"networkGroupId"` } func (NetworkManagerSecurityGroupItemArgs) ElementType() reflect.Type { @@ -44951,8 +50002,8 @@ func (o NetworkManagerSecurityGroupItemOutput) ToNetworkManagerSecurityGroupItem } // Network manager group Id. -func (o NetworkManagerSecurityGroupItemOutput) NetworkGroupId() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkManagerSecurityGroupItem) *string { return v.NetworkGroupId }).(pulumi.StringPtrOutput) +func (o NetworkManagerSecurityGroupItemOutput) NetworkGroupId() pulumi.StringOutput { + return o.ApplyT(func(v NetworkManagerSecurityGroupItem) string { return v.NetworkGroupId }).(pulumi.StringOutput) } type NetworkManagerSecurityGroupItemArrayOutput struct{ *pulumi.OutputState } @@ -44978,7 +50029,7 @@ func (o NetworkManagerSecurityGroupItemArrayOutput) Index(i pulumi.IntInput) Net // Network manager security group item. type NetworkManagerSecurityGroupItemResponse struct { // Network manager group Id. - NetworkGroupId *string `pulumi:"networkGroupId"` + NetworkGroupId string `pulumi:"networkGroupId"` } // Network manager security group item. @@ -44997,8 +50048,8 @@ func (o NetworkManagerSecurityGroupItemResponseOutput) ToNetworkManagerSecurityG } // Network manager group Id. -func (o NetworkManagerSecurityGroupItemResponseOutput) NetworkGroupId() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkManagerSecurityGroupItemResponse) *string { return v.NetworkGroupId }).(pulumi.StringPtrOutput) +func (o NetworkManagerSecurityGroupItemResponseOutput) NetworkGroupId() pulumi.StringOutput { + return o.ApplyT(func(v NetworkManagerSecurityGroupItemResponse) string { return v.NetworkGroupId }).(pulumi.StringOutput) } type NetworkManagerSecurityGroupItemResponseArrayOutput struct{ *pulumi.OutputState } @@ -45119,10 +50170,20 @@ type NetworkRuleResponse struct { // NetworkSecurityGroup resource. type NetworkSecurityGroupType struct { + // The default security rules of network security group. + DefaultSecurityRules []SecurityRuleType `pulumi:"defaultSecurityRules"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection *bool `pulumi:"flushConnection"` // Resource ID. Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` + // The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState *string `pulumi:"provisioningState"` + // The resource GUID property of the network security group resource. + ResourceGuid *string `pulumi:"resourceGuid"` // A collection of security rules of the network security group. SecurityRules []SecurityRuleType `pulumi:"securityRules"` // Resource tags. @@ -45142,10 +50203,20 @@ type NetworkSecurityGroupTypeInput interface { // NetworkSecurityGroup resource. type NetworkSecurityGroupTypeArgs struct { + // The default security rules of network security group. + DefaultSecurityRules SecurityRuleTypeArrayInput `pulumi:"defaultSecurityRules"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection pulumi.BoolPtrInput `pulumi:"flushConnection"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` // Resource location. Location pulumi.StringPtrInput `pulumi:"location"` + // The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // The resource GUID property of the network security group resource. + ResourceGuid pulumi.StringPtrInput `pulumi:"resourceGuid"` // A collection of security rules of the network security group. SecurityRules SecurityRuleTypeArrayInput `pulumi:"securityRules"` // Resource tags. @@ -45230,6 +50301,21 @@ func (o NetworkSecurityGroupTypeOutput) ToNetworkSecurityGroupTypePtrOutputWithC }).(NetworkSecurityGroupTypePtrOutput) } +// The default security rules of network security group. +func (o NetworkSecurityGroupTypeOutput) DefaultSecurityRules() SecurityRuleTypeArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupType) []SecurityRuleType { return v.DefaultSecurityRules }).(SecurityRuleTypeArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o NetworkSecurityGroupTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupType) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o NetworkSecurityGroupTypeOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupType) *bool { return v.FlushConnection }).(pulumi.BoolPtrOutput) +} + // Resource ID. func (o NetworkSecurityGroupTypeOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkSecurityGroupType) *string { return v.Id }).(pulumi.StringPtrOutput) @@ -45240,6 +50326,16 @@ func (o NetworkSecurityGroupTypeOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v NetworkSecurityGroupType) *string { return v.Location }).(pulumi.StringPtrOutput) } +// The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o NetworkSecurityGroupTypeOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupType) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) +} + +// The resource GUID property of the network security group resource. +func (o NetworkSecurityGroupTypeOutput) ResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupType) *string { return v.ResourceGuid }).(pulumi.StringPtrOutput) +} + // A collection of security rules of the network security group. func (o NetworkSecurityGroupTypeOutput) SecurityRules() SecurityRuleTypeArrayOutput { return o.ApplyT(func(v NetworkSecurityGroupType) []SecurityRuleType { return v.SecurityRules }).(SecurityRuleTypeArrayOutput) @@ -45274,6 +50370,36 @@ func (o NetworkSecurityGroupTypePtrOutput) Elem() NetworkSecurityGroupTypeOutput }).(NetworkSecurityGroupTypeOutput) } +// The default security rules of network security group. +func (o NetworkSecurityGroupTypePtrOutput) DefaultSecurityRules() SecurityRuleTypeArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupType) []SecurityRuleType { + if v == nil { + return nil + } + return v.DefaultSecurityRules + }).(SecurityRuleTypeArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o NetworkSecurityGroupTypePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupType) *string { + if v == nil { + return nil + } + return v.Etag + }).(pulumi.StringPtrOutput) +} + +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o NetworkSecurityGroupTypePtrOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupType) *bool { + if v == nil { + return nil + } + return v.FlushConnection + }).(pulumi.BoolPtrOutput) +} + // Resource ID. func (o NetworkSecurityGroupTypePtrOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v *NetworkSecurityGroupType) *string { @@ -45294,6 +50420,26 @@ func (o NetworkSecurityGroupTypePtrOutput) Location() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o NetworkSecurityGroupTypePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupType) *string { + if v == nil { + return nil + } + return v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// The resource GUID property of the network security group resource. +func (o NetworkSecurityGroupTypePtrOutput) ResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupType) *string { + if v == nil { + return nil + } + return v.ResourceGuid + }).(pulumi.StringPtrOutput) +} + // A collection of security rules of the network security group. func (o NetworkSecurityGroupTypePtrOutput) SecurityRules() SecurityRuleTypeArrayOutput { return o.ApplyT(func(v *NetworkSecurityGroupType) []SecurityRuleType { @@ -45322,6 +50468,8 @@ type NetworkSecurityGroupResponse struct { Etag string `pulumi:"etag"` // A collection of references to flow log resources. FlowLogs []FlowLogResponse `pulumi:"flowLogs"` + // When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. + FlushConnection *bool `pulumi:"flushConnection"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -45346,4502 +50494,156 @@ type NetworkSecurityGroupResponse struct { // NetworkSecurityGroup resource. type NetworkSecurityGroupResponseOutput struct{ *pulumi.OutputState } - -func (NetworkSecurityGroupResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkSecurityGroupResponse)(nil)).Elem() -} - -func (o NetworkSecurityGroupResponseOutput) ToNetworkSecurityGroupResponseOutput() NetworkSecurityGroupResponseOutput { - return o -} - -func (o NetworkSecurityGroupResponseOutput) ToNetworkSecurityGroupResponseOutputWithContext(ctx context.Context) NetworkSecurityGroupResponseOutput { - return o -} - -// The default security rules of network security group. -func (o NetworkSecurityGroupResponseOutput) DefaultSecurityRules() SecurityRuleResponseArrayOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) []SecurityRuleResponse { return v.DefaultSecurityRules }).(SecurityRuleResponseArrayOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o NetworkSecurityGroupResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// A collection of references to flow log resources. -func (o NetworkSecurityGroupResponseOutput) FlowLogs() FlowLogResponseArrayOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) []FlowLogResponse { return v.FlowLogs }).(FlowLogResponseArrayOutput) -} - -// Resource ID. -func (o NetworkSecurityGroupResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Resource location. -func (o NetworkSecurityGroupResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) *string { return v.Location }).(pulumi.StringPtrOutput) -} - -// Resource name. -func (o NetworkSecurityGroupResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Name }).(pulumi.StringOutput) -} - -// A collection of references to network interfaces. -func (o NetworkSecurityGroupResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) -} - -// The provisioning state of the network security group resource. -func (o NetworkSecurityGroupResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The resource GUID property of the network security group resource. -func (o NetworkSecurityGroupResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) -} - -// A collection of security rules of the network security group. -func (o NetworkSecurityGroupResponseOutput) SecurityRules() SecurityRuleResponseArrayOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) []SecurityRuleResponse { return v.SecurityRules }).(SecurityRuleResponseArrayOutput) -} - -// A collection of references to subnets. -func (o NetworkSecurityGroupResponseOutput) Subnets() SubnetResponseArrayOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) -} - -// Resource tags. -func (o NetworkSecurityGroupResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) -} - -// Resource type. -func (o NetworkSecurityGroupResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Type }).(pulumi.StringOutput) -} - -type NetworkSecurityGroupResponsePtrOutput struct{ *pulumi.OutputState } - -func (NetworkSecurityGroupResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkSecurityGroupResponse)(nil)).Elem() -} - -func (o NetworkSecurityGroupResponsePtrOutput) ToNetworkSecurityGroupResponsePtrOutput() NetworkSecurityGroupResponsePtrOutput { - return o -} - -func (o NetworkSecurityGroupResponsePtrOutput) ToNetworkSecurityGroupResponsePtrOutputWithContext(ctx context.Context) NetworkSecurityGroupResponsePtrOutput { - return o -} - -func (o NetworkSecurityGroupResponsePtrOutput) Elem() NetworkSecurityGroupResponseOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) NetworkSecurityGroupResponse { - if v != nil { - return *v - } - var ret NetworkSecurityGroupResponse - return ret - }).(NetworkSecurityGroupResponseOutput) -} - -// The default security rules of network security group. -func (o NetworkSecurityGroupResponsePtrOutput) DefaultSecurityRules() SecurityRuleResponseArrayOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SecurityRuleResponse { - if v == nil { - return nil - } - return v.DefaultSecurityRules - }).(SecurityRuleResponseArrayOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o NetworkSecurityGroupResponsePtrOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return &v.Etag - }).(pulumi.StringPtrOutput) -} - -// A collection of references to flow log resources. -func (o NetworkSecurityGroupResponsePtrOutput) FlowLogs() FlowLogResponseArrayOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) []FlowLogResponse { - if v == nil { - return nil - } - return v.FlowLogs - }).(FlowLogResponseArrayOutput) -} - -// Resource ID. -func (o NetworkSecurityGroupResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) -} - -// Resource location. -func (o NetworkSecurityGroupResponsePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) -} - -// Resource name. -func (o NetworkSecurityGroupResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return &v.Name - }).(pulumi.StringPtrOutput) -} - -// A collection of references to network interfaces. -func (o NetworkSecurityGroupResponsePtrOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) []NetworkInterfaceResponse { - if v == nil { - return nil - } - return v.NetworkInterfaces - }).(NetworkInterfaceResponseArrayOutput) -} - -// The provisioning state of the network security group resource. -func (o NetworkSecurityGroupResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return &v.ProvisioningState - }).(pulumi.StringPtrOutput) -} - -// The resource GUID property of the network security group resource. -func (o NetworkSecurityGroupResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return &v.ResourceGuid - }).(pulumi.StringPtrOutput) -} - -// A collection of security rules of the network security group. -func (o NetworkSecurityGroupResponsePtrOutput) SecurityRules() SecurityRuleResponseArrayOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SecurityRuleResponse { - if v == nil { - return nil - } - return v.SecurityRules - }).(SecurityRuleResponseArrayOutput) -} - -// A collection of references to subnets. -func (o NetworkSecurityGroupResponsePtrOutput) Subnets() SubnetResponseArrayOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SubnetResponse { - if v == nil { - return nil - } - return v.Subnets - }).(SubnetResponseArrayOutput) -} - -// Resource tags. -func (o NetworkSecurityGroupResponsePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) -} - -// Resource type. -func (o NetworkSecurityGroupResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) -} - -// An NS record. -type NsRecord struct { - // The name server name for this NS record. - Nsdname *string `pulumi:"nsdname"` -} - -// NsRecordInput is an input type that accepts NsRecordArgs and NsRecordOutput values. -// You can construct a concrete instance of `NsRecordInput` via: -// -// NsRecordArgs{...} -type NsRecordInput interface { - pulumi.Input - - ToNsRecordOutput() NsRecordOutput - ToNsRecordOutputWithContext(context.Context) NsRecordOutput -} - -// An NS record. -type NsRecordArgs struct { - // The name server name for this NS record. - Nsdname pulumi.StringPtrInput `pulumi:"nsdname"` -} - -func (NsRecordArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NsRecord)(nil)).Elem() -} - -func (i NsRecordArgs) ToNsRecordOutput() NsRecordOutput { - return i.ToNsRecordOutputWithContext(context.Background()) -} - -func (i NsRecordArgs) ToNsRecordOutputWithContext(ctx context.Context) NsRecordOutput { - return pulumi.ToOutputWithContext(ctx, i).(NsRecordOutput) -} - -// NsRecordArrayInput is an input type that accepts NsRecordArray and NsRecordArrayOutput values. -// You can construct a concrete instance of `NsRecordArrayInput` via: -// -// NsRecordArray{ NsRecordArgs{...} } -type NsRecordArrayInput interface { - pulumi.Input - - ToNsRecordArrayOutput() NsRecordArrayOutput - ToNsRecordArrayOutputWithContext(context.Context) NsRecordArrayOutput -} - -type NsRecordArray []NsRecordInput - -func (NsRecordArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]NsRecord)(nil)).Elem() -} - -func (i NsRecordArray) ToNsRecordArrayOutput() NsRecordArrayOutput { - return i.ToNsRecordArrayOutputWithContext(context.Background()) -} - -func (i NsRecordArray) ToNsRecordArrayOutputWithContext(ctx context.Context) NsRecordArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(NsRecordArrayOutput) -} - -// An NS record. -type NsRecordOutput struct{ *pulumi.OutputState } - -func (NsRecordOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NsRecord)(nil)).Elem() -} - -func (o NsRecordOutput) ToNsRecordOutput() NsRecordOutput { - return o -} - -func (o NsRecordOutput) ToNsRecordOutputWithContext(ctx context.Context) NsRecordOutput { - return o -} - -// The name server name for this NS record. -func (o NsRecordOutput) Nsdname() pulumi.StringPtrOutput { - return o.ApplyT(func(v NsRecord) *string { return v.Nsdname }).(pulumi.StringPtrOutput) -} - -type NsRecordArrayOutput struct{ *pulumi.OutputState } - -func (NsRecordArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]NsRecord)(nil)).Elem() -} - -func (o NsRecordArrayOutput) ToNsRecordArrayOutput() NsRecordArrayOutput { - return o -} - -func (o NsRecordArrayOutput) ToNsRecordArrayOutputWithContext(ctx context.Context) NsRecordArrayOutput { - return o -} - -func (o NsRecordArrayOutput) Index(i pulumi.IntInput) NsRecordOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) NsRecord { - return vs[0].([]NsRecord)[vs[1].(int)] - }).(NsRecordOutput) -} - -// An NS record. -type NsRecordResponse struct { - // The name server name for this NS record. - Nsdname *string `pulumi:"nsdname"` -} - -// An NS record. -type NsRecordResponseOutput struct{ *pulumi.OutputState } - -func (NsRecordResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NsRecordResponse)(nil)).Elem() -} - -func (o NsRecordResponseOutput) ToNsRecordResponseOutput() NsRecordResponseOutput { - return o -} - -func (o NsRecordResponseOutput) ToNsRecordResponseOutputWithContext(ctx context.Context) NsRecordResponseOutput { - return o -} - -// The name server name for this NS record. -func (o NsRecordResponseOutput) Nsdname() pulumi.StringPtrOutput { - return o.ApplyT(func(v NsRecordResponse) *string { return v.Nsdname }).(pulumi.StringPtrOutput) -} - -type NsRecordResponseArrayOutput struct{ *pulumi.OutputState } - -func (NsRecordResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]NsRecordResponse)(nil)).Elem() -} - -func (o NsRecordResponseArrayOutput) ToNsRecordResponseArrayOutput() NsRecordResponseArrayOutput { - return o -} - -func (o NsRecordResponseArrayOutput) ToNsRecordResponseArrayOutputWithContext(ctx context.Context) NsRecordResponseArrayOutput { - return o -} - -func (o NsRecordResponseArrayOutput) Index(i pulumi.IntInput) NsRecordResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) NsRecordResponse { - return vs[0].([]NsRecordResponse)[vs[1].(int)] - }).(NsRecordResponseOutput) -} - -// Office365 breakout categories. -type O365BreakOutCategoryPolicies struct { - // Flag to control allow category. - Allow *bool `pulumi:"allow"` - // Flag to control default category. - Default *bool `pulumi:"default"` - // Flag to control optimize category. - Optimize *bool `pulumi:"optimize"` -} - -// O365BreakOutCategoryPoliciesInput is an input type that accepts O365BreakOutCategoryPoliciesArgs and O365BreakOutCategoryPoliciesOutput values. -// You can construct a concrete instance of `O365BreakOutCategoryPoliciesInput` via: -// -// O365BreakOutCategoryPoliciesArgs{...} -type O365BreakOutCategoryPoliciesInput interface { - pulumi.Input - - ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput - ToO365BreakOutCategoryPoliciesOutputWithContext(context.Context) O365BreakOutCategoryPoliciesOutput -} - -// Office365 breakout categories. -type O365BreakOutCategoryPoliciesArgs struct { - // Flag to control allow category. - Allow pulumi.BoolPtrInput `pulumi:"allow"` - // Flag to control default category. - Default pulumi.BoolPtrInput `pulumi:"default"` - // Flag to control optimize category. - Optimize pulumi.BoolPtrInput `pulumi:"optimize"` -} - -func (O365BreakOutCategoryPoliciesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*O365BreakOutCategoryPolicies)(nil)).Elem() -} - -func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput { - return i.ToO365BreakOutCategoryPoliciesOutputWithContext(context.Background()) -} - -func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesOutput) -} - -func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { - return i.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) -} - -func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesOutput).ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx) -} - -// O365BreakOutCategoryPoliciesPtrInput is an input type that accepts O365BreakOutCategoryPoliciesArgs, O365BreakOutCategoryPoliciesPtr and O365BreakOutCategoryPoliciesPtrOutput values. -// You can construct a concrete instance of `O365BreakOutCategoryPoliciesPtrInput` via: -// -// O365BreakOutCategoryPoliciesArgs{...} -// -// or: -// -// nil -type O365BreakOutCategoryPoliciesPtrInput interface { - pulumi.Input - - ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput - ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Context) O365BreakOutCategoryPoliciesPtrOutput -} - -type o365breakOutCategoryPoliciesPtrType O365BreakOutCategoryPoliciesArgs - -func O365BreakOutCategoryPoliciesPtr(v *O365BreakOutCategoryPoliciesArgs) O365BreakOutCategoryPoliciesPtrInput { - return (*o365breakOutCategoryPoliciesPtrType)(v) -} - -func (*o365breakOutCategoryPoliciesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**O365BreakOutCategoryPolicies)(nil)).Elem() -} - -func (i *o365breakOutCategoryPoliciesPtrType) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { - return i.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) -} - -func (i *o365breakOutCategoryPoliciesPtrType) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesPtrOutput) -} - -// Office365 breakout categories. -type O365BreakOutCategoryPoliciesOutput struct{ *pulumi.OutputState } - -func (O365BreakOutCategoryPoliciesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*O365BreakOutCategoryPolicies)(nil)).Elem() -} - -func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { - return o.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) -} - -func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v O365BreakOutCategoryPolicies) *O365BreakOutCategoryPolicies { - return &v - }).(O365BreakOutCategoryPoliciesPtrOutput) -} - -// Flag to control allow category. -func (o O365BreakOutCategoryPoliciesOutput) Allow() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Allow }).(pulumi.BoolPtrOutput) -} - -// Flag to control default category. -func (o O365BreakOutCategoryPoliciesOutput) Default() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Default }).(pulumi.BoolPtrOutput) -} - -// Flag to control optimize category. -func (o O365BreakOutCategoryPoliciesOutput) Optimize() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Optimize }).(pulumi.BoolPtrOutput) -} - -type O365BreakOutCategoryPoliciesPtrOutput struct{ *pulumi.OutputState } - -func (O365BreakOutCategoryPoliciesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**O365BreakOutCategoryPolicies)(nil)).Elem() -} - -func (o O365BreakOutCategoryPoliciesPtrOutput) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesPtrOutput) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesPtrOutput) Elem() O365BreakOutCategoryPoliciesOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPolicies) O365BreakOutCategoryPolicies { - if v != nil { - return *v - } - var ret O365BreakOutCategoryPolicies - return ret - }).(O365BreakOutCategoryPoliciesOutput) -} - -// Flag to control allow category. -func (o O365BreakOutCategoryPoliciesPtrOutput) Allow() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { - if v == nil { - return nil - } - return v.Allow - }).(pulumi.BoolPtrOutput) -} - -// Flag to control default category. -func (o O365BreakOutCategoryPoliciesPtrOutput) Default() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { - if v == nil { - return nil - } - return v.Default - }).(pulumi.BoolPtrOutput) -} - -// Flag to control optimize category. -func (o O365BreakOutCategoryPoliciesPtrOutput) Optimize() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { - if v == nil { - return nil - } - return v.Optimize - }).(pulumi.BoolPtrOutput) -} - -// Office365 breakout categories. -type O365BreakOutCategoryPoliciesResponse struct { - // Flag to control allow category. - Allow *bool `pulumi:"allow"` - // Flag to control default category. - Default *bool `pulumi:"default"` - // Flag to control optimize category. - Optimize *bool `pulumi:"optimize"` -} - -// Office365 breakout categories. -type O365BreakOutCategoryPoliciesResponseOutput struct{ *pulumi.OutputState } - -func (O365BreakOutCategoryPoliciesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*O365BreakOutCategoryPoliciesResponse)(nil)).Elem() -} - -func (o O365BreakOutCategoryPoliciesResponseOutput) ToO365BreakOutCategoryPoliciesResponseOutput() O365BreakOutCategoryPoliciesResponseOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesResponseOutput) ToO365BreakOutCategoryPoliciesResponseOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesResponseOutput { - return o -} - -// Flag to control allow category. -func (o O365BreakOutCategoryPoliciesResponseOutput) Allow() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Allow }).(pulumi.BoolPtrOutput) -} - -// Flag to control default category. -func (o O365BreakOutCategoryPoliciesResponseOutput) Default() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Default }).(pulumi.BoolPtrOutput) -} - -// Flag to control optimize category. -func (o O365BreakOutCategoryPoliciesResponseOutput) Optimize() pulumi.BoolPtrOutput { - return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Optimize }).(pulumi.BoolPtrOutput) -} - -type O365BreakOutCategoryPoliciesResponsePtrOutput struct{ *pulumi.OutputState } - -func (O365BreakOutCategoryPoliciesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**O365BreakOutCategoryPoliciesResponse)(nil)).Elem() -} - -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) ToO365BreakOutCategoryPoliciesResponsePtrOutput() O365BreakOutCategoryPoliciesResponsePtrOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) ToO365BreakOutCategoryPoliciesResponsePtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesResponsePtrOutput { - return o -} - -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Elem() O365BreakOutCategoryPoliciesResponseOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) O365BreakOutCategoryPoliciesResponse { - if v != nil { - return *v - } - var ret O365BreakOutCategoryPoliciesResponse - return ret - }).(O365BreakOutCategoryPoliciesResponseOutput) -} - -// Flag to control allow category. -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Allow() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { - if v == nil { - return nil - } - return v.Allow - }).(pulumi.BoolPtrOutput) -} - -// Flag to control default category. -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Default() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { - if v == nil { - return nil - } - return v.Default - }).(pulumi.BoolPtrOutput) -} - -// Flag to control optimize category. -func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Optimize() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { - if v == nil { - return nil - } - return v.Optimize - }).(pulumi.BoolPtrOutput) -} - -// The Office365 breakout policy. -type O365PolicyProperties struct { - // Office365 breakout categories. - BreakOutCategories *O365BreakOutCategoryPolicies `pulumi:"breakOutCategories"` -} - -// O365PolicyPropertiesInput is an input type that accepts O365PolicyPropertiesArgs and O365PolicyPropertiesOutput values. -// You can construct a concrete instance of `O365PolicyPropertiesInput` via: -// -// O365PolicyPropertiesArgs{...} -type O365PolicyPropertiesInput interface { - pulumi.Input - - ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput - ToO365PolicyPropertiesOutputWithContext(context.Context) O365PolicyPropertiesOutput -} - -// The Office365 breakout policy. -type O365PolicyPropertiesArgs struct { - // Office365 breakout categories. - BreakOutCategories O365BreakOutCategoryPoliciesPtrInput `pulumi:"breakOutCategories"` -} - -func (O365PolicyPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*O365PolicyProperties)(nil)).Elem() -} - -func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput { - return i.ToO365PolicyPropertiesOutputWithContext(context.Background()) -} - -func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesOutputWithContext(ctx context.Context) O365PolicyPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesOutput) -} - -func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { - return i.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesOutput).ToO365PolicyPropertiesPtrOutputWithContext(ctx) -} - -// O365PolicyPropertiesPtrInput is an input type that accepts O365PolicyPropertiesArgs, O365PolicyPropertiesPtr and O365PolicyPropertiesPtrOutput values. -// You can construct a concrete instance of `O365PolicyPropertiesPtrInput` via: -// -// O365PolicyPropertiesArgs{...} -// -// or: -// -// nil -type O365PolicyPropertiesPtrInput interface { - pulumi.Input - - ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput - ToO365PolicyPropertiesPtrOutputWithContext(context.Context) O365PolicyPropertiesPtrOutput -} - -type o365policyPropertiesPtrType O365PolicyPropertiesArgs - -func O365PolicyPropertiesPtr(v *O365PolicyPropertiesArgs) O365PolicyPropertiesPtrInput { - return (*o365policyPropertiesPtrType)(v) -} - -func (*o365policyPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**O365PolicyProperties)(nil)).Elem() -} - -func (i *o365policyPropertiesPtrType) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { - return i.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (i *o365policyPropertiesPtrType) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesPtrOutput) -} - -// The Office365 breakout policy. -type O365PolicyPropertiesOutput struct{ *pulumi.OutputState } - -func (O365PolicyPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*O365PolicyProperties)(nil)).Elem() -} - -func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput { - return o -} - -func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesOutputWithContext(ctx context.Context) O365PolicyPropertiesOutput { - return o -} - -func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { - return o.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v O365PolicyProperties) *O365PolicyProperties { - return &v - }).(O365PolicyPropertiesPtrOutput) -} - -// Office365 breakout categories. -func (o O365PolicyPropertiesOutput) BreakOutCategories() O365BreakOutCategoryPoliciesPtrOutput { - return o.ApplyT(func(v O365PolicyProperties) *O365BreakOutCategoryPolicies { return v.BreakOutCategories }).(O365BreakOutCategoryPoliciesPtrOutput) -} - -type O365PolicyPropertiesPtrOutput struct{ *pulumi.OutputState } - -func (O365PolicyPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**O365PolicyProperties)(nil)).Elem() -} - -func (o O365PolicyPropertiesPtrOutput) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { - return o -} - -func (o O365PolicyPropertiesPtrOutput) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { - return o -} - -func (o O365PolicyPropertiesPtrOutput) Elem() O365PolicyPropertiesOutput { - return o.ApplyT(func(v *O365PolicyProperties) O365PolicyProperties { - if v != nil { - return *v - } - var ret O365PolicyProperties - return ret - }).(O365PolicyPropertiesOutput) -} - -// Office365 breakout categories. -func (o O365PolicyPropertiesPtrOutput) BreakOutCategories() O365BreakOutCategoryPoliciesPtrOutput { - return o.ApplyT(func(v *O365PolicyProperties) *O365BreakOutCategoryPolicies { - if v == nil { - return nil - } - return v.BreakOutCategories - }).(O365BreakOutCategoryPoliciesPtrOutput) -} - -// The Office365 breakout policy. -type O365PolicyPropertiesResponse struct { - // Office365 breakout categories. - BreakOutCategories *O365BreakOutCategoryPoliciesResponse `pulumi:"breakOutCategories"` -} - -// The Office365 breakout policy. -type O365PolicyPropertiesResponseOutput struct{ *pulumi.OutputState } - -func (O365PolicyPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*O365PolicyPropertiesResponse)(nil)).Elem() -} - -func (o O365PolicyPropertiesResponseOutput) ToO365PolicyPropertiesResponseOutput() O365PolicyPropertiesResponseOutput { - return o -} - -func (o O365PolicyPropertiesResponseOutput) ToO365PolicyPropertiesResponseOutputWithContext(ctx context.Context) O365PolicyPropertiesResponseOutput { - return o -} - -// Office365 breakout categories. -func (o O365PolicyPropertiesResponseOutput) BreakOutCategories() O365BreakOutCategoryPoliciesResponsePtrOutput { - return o.ApplyT(func(v O365PolicyPropertiesResponse) *O365BreakOutCategoryPoliciesResponse { - return v.BreakOutCategories - }).(O365BreakOutCategoryPoliciesResponsePtrOutput) -} - -type O365PolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } - -func (O365PolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**O365PolicyPropertiesResponse)(nil)).Elem() -} - -func (o O365PolicyPropertiesResponsePtrOutput) ToO365PolicyPropertiesResponsePtrOutput() O365PolicyPropertiesResponsePtrOutput { - return o -} - -func (o O365PolicyPropertiesResponsePtrOutput) ToO365PolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) O365PolicyPropertiesResponsePtrOutput { - return o -} - -func (o O365PolicyPropertiesResponsePtrOutput) Elem() O365PolicyPropertiesResponseOutput { - return o.ApplyT(func(v *O365PolicyPropertiesResponse) O365PolicyPropertiesResponse { - if v != nil { - return *v - } - var ret O365PolicyPropertiesResponse - return ret - }).(O365PolicyPropertiesResponseOutput) -} - -// Office365 breakout categories. -func (o O365PolicyPropertiesResponsePtrOutput) BreakOutCategories() O365BreakOutCategoryPoliciesResponsePtrOutput { - return o.ApplyT(func(v *O365PolicyPropertiesResponse) *O365BreakOutCategoryPoliciesResponse { - if v == nil { - return nil - } - return v.BreakOutCategories - }).(O365BreakOutCategoryPoliciesResponsePtrOutput) -} - -// Network Virtual Appliance Sku Properties. -type Office365PolicyProperties struct { - // Office 365 breakout categories. - BreakOutCategories *BreakOutCategoryPolicies `pulumi:"breakOutCategories"` -} - -// Office365PolicyPropertiesInput is an input type that accepts Office365PolicyPropertiesArgs and Office365PolicyPropertiesOutput values. -// You can construct a concrete instance of `Office365PolicyPropertiesInput` via: -// -// Office365PolicyPropertiesArgs{...} -type Office365PolicyPropertiesInput interface { - pulumi.Input - - ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput - ToOffice365PolicyPropertiesOutputWithContext(context.Context) Office365PolicyPropertiesOutput -} - -// Network Virtual Appliance Sku Properties. -type Office365PolicyPropertiesArgs struct { - // Office 365 breakout categories. - BreakOutCategories BreakOutCategoryPoliciesPtrInput `pulumi:"breakOutCategories"` -} - -func (Office365PolicyPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Office365PolicyProperties)(nil)).Elem() -} - -func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput { - return i.ToOffice365PolicyPropertiesOutputWithContext(context.Background()) -} - -func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesOutputWithContext(ctx context.Context) Office365PolicyPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesOutput) -} - -func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { - return i.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesOutput).ToOffice365PolicyPropertiesPtrOutputWithContext(ctx) -} - -// Office365PolicyPropertiesPtrInput is an input type that accepts Office365PolicyPropertiesArgs, Office365PolicyPropertiesPtr and Office365PolicyPropertiesPtrOutput values. -// You can construct a concrete instance of `Office365PolicyPropertiesPtrInput` via: -// -// Office365PolicyPropertiesArgs{...} -// -// or: -// -// nil -type Office365PolicyPropertiesPtrInput interface { - pulumi.Input - - ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput - ToOffice365PolicyPropertiesPtrOutputWithContext(context.Context) Office365PolicyPropertiesPtrOutput -} - -type office365PolicyPropertiesPtrType Office365PolicyPropertiesArgs - -func Office365PolicyPropertiesPtr(v *Office365PolicyPropertiesArgs) Office365PolicyPropertiesPtrInput { - return (*office365PolicyPropertiesPtrType)(v) -} - -func (*office365PolicyPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**Office365PolicyProperties)(nil)).Elem() -} - -func (i *office365PolicyPropertiesPtrType) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { - return i.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (i *office365PolicyPropertiesPtrType) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesPtrOutput) -} - -// Network Virtual Appliance Sku Properties. -type Office365PolicyPropertiesOutput struct{ *pulumi.OutputState } - -func (Office365PolicyPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Office365PolicyProperties)(nil)).Elem() -} - -func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput { - return o -} - -func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesOutputWithContext(ctx context.Context) Office365PolicyPropertiesOutput { - return o -} - -func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { - return o.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) -} - -func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v Office365PolicyProperties) *Office365PolicyProperties { - return &v - }).(Office365PolicyPropertiesPtrOutput) -} - -// Office 365 breakout categories. -func (o Office365PolicyPropertiesOutput) BreakOutCategories() BreakOutCategoryPoliciesPtrOutput { - return o.ApplyT(func(v Office365PolicyProperties) *BreakOutCategoryPolicies { return v.BreakOutCategories }).(BreakOutCategoryPoliciesPtrOutput) -} - -type Office365PolicyPropertiesPtrOutput struct{ *pulumi.OutputState } - -func (Office365PolicyPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Office365PolicyProperties)(nil)).Elem() -} - -func (o Office365PolicyPropertiesPtrOutput) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { - return o -} - -func (o Office365PolicyPropertiesPtrOutput) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { - return o -} - -func (o Office365PolicyPropertiesPtrOutput) Elem() Office365PolicyPropertiesOutput { - return o.ApplyT(func(v *Office365PolicyProperties) Office365PolicyProperties { - if v != nil { - return *v - } - var ret Office365PolicyProperties - return ret - }).(Office365PolicyPropertiesOutput) -} - -// Office 365 breakout categories. -func (o Office365PolicyPropertiesPtrOutput) BreakOutCategories() BreakOutCategoryPoliciesPtrOutput { - return o.ApplyT(func(v *Office365PolicyProperties) *BreakOutCategoryPolicies { - if v == nil { - return nil - } - return v.BreakOutCategories - }).(BreakOutCategoryPoliciesPtrOutput) -} - -// Network Virtual Appliance Sku Properties. -type Office365PolicyPropertiesResponse struct { - // Office 365 breakout categories. - BreakOutCategories *BreakOutCategoryPoliciesResponse `pulumi:"breakOutCategories"` -} - -// Network Virtual Appliance Sku Properties. -type Office365PolicyPropertiesResponseOutput struct{ *pulumi.OutputState } - -func (Office365PolicyPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Office365PolicyPropertiesResponse)(nil)).Elem() -} - -func (o Office365PolicyPropertiesResponseOutput) ToOffice365PolicyPropertiesResponseOutput() Office365PolicyPropertiesResponseOutput { - return o -} - -func (o Office365PolicyPropertiesResponseOutput) ToOffice365PolicyPropertiesResponseOutputWithContext(ctx context.Context) Office365PolicyPropertiesResponseOutput { - return o -} - -// Office 365 breakout categories. -func (o Office365PolicyPropertiesResponseOutput) BreakOutCategories() BreakOutCategoryPoliciesResponsePtrOutput { - return o.ApplyT(func(v Office365PolicyPropertiesResponse) *BreakOutCategoryPoliciesResponse { - return v.BreakOutCategories - }).(BreakOutCategoryPoliciesResponsePtrOutput) -} - -type Office365PolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } - -func (Office365PolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Office365PolicyPropertiesResponse)(nil)).Elem() -} - -func (o Office365PolicyPropertiesResponsePtrOutput) ToOffice365PolicyPropertiesResponsePtrOutput() Office365PolicyPropertiesResponsePtrOutput { - return o -} - -func (o Office365PolicyPropertiesResponsePtrOutput) ToOffice365PolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesResponsePtrOutput { - return o -} - -func (o Office365PolicyPropertiesResponsePtrOutput) Elem() Office365PolicyPropertiesResponseOutput { - return o.ApplyT(func(v *Office365PolicyPropertiesResponse) Office365PolicyPropertiesResponse { - if v != nil { - return *v - } - var ret Office365PolicyPropertiesResponse - return ret - }).(Office365PolicyPropertiesResponseOutput) -} - -// Office 365 breakout categories. -func (o Office365PolicyPropertiesResponsePtrOutput) BreakOutCategories() BreakOutCategoryPoliciesResponsePtrOutput { - return o.ApplyT(func(v *Office365PolicyPropertiesResponse) *BreakOutCategoryPoliciesResponse { - if v == nil { - return nil - } - return v.BreakOutCategories - }).(BreakOutCategoryPoliciesResponsePtrOutput) -} - -// Describes a column to sort -type OrderBy struct { - // Describes the actual column name to sort by - Field *string `pulumi:"field"` - // Describes if results should be in ascending/descending order - Order *string `pulumi:"order"` -} - -// OrderByInput is an input type that accepts OrderByArgs and OrderByOutput values. -// You can construct a concrete instance of `OrderByInput` via: -// -// OrderByArgs{...} -type OrderByInput interface { - pulumi.Input - - ToOrderByOutput() OrderByOutput - ToOrderByOutputWithContext(context.Context) OrderByOutput -} - -// Describes a column to sort -type OrderByArgs struct { - // Describes the actual column name to sort by - Field pulumi.StringPtrInput `pulumi:"field"` - // Describes if results should be in ascending/descending order - Order pulumi.StringPtrInput `pulumi:"order"` -} - -func (OrderByArgs) ElementType() reflect.Type { - return reflect.TypeOf((*OrderBy)(nil)).Elem() -} - -func (i OrderByArgs) ToOrderByOutput() OrderByOutput { - return i.ToOrderByOutputWithContext(context.Background()) -} - -func (i OrderByArgs) ToOrderByOutputWithContext(ctx context.Context) OrderByOutput { - return pulumi.ToOutputWithContext(ctx, i).(OrderByOutput) -} - -func (i OrderByArgs) ToOrderByPtrOutput() OrderByPtrOutput { - return i.ToOrderByPtrOutputWithContext(context.Background()) -} - -func (i OrderByArgs) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(OrderByOutput).ToOrderByPtrOutputWithContext(ctx) -} - -// OrderByPtrInput is an input type that accepts OrderByArgs, OrderByPtr and OrderByPtrOutput values. -// You can construct a concrete instance of `OrderByPtrInput` via: -// -// OrderByArgs{...} -// -// or: -// -// nil -type OrderByPtrInput interface { - pulumi.Input - - ToOrderByPtrOutput() OrderByPtrOutput - ToOrderByPtrOutputWithContext(context.Context) OrderByPtrOutput -} - -type orderByPtrType OrderByArgs - -func OrderByPtr(v *OrderByArgs) OrderByPtrInput { - return (*orderByPtrType)(v) -} - -func (*orderByPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**OrderBy)(nil)).Elem() -} - -func (i *orderByPtrType) ToOrderByPtrOutput() OrderByPtrOutput { - return i.ToOrderByPtrOutputWithContext(context.Background()) -} - -func (i *orderByPtrType) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(OrderByPtrOutput) -} - -// Describes a column to sort -type OrderByOutput struct{ *pulumi.OutputState } - -func (OrderByOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OrderBy)(nil)).Elem() -} - -func (o OrderByOutput) ToOrderByOutput() OrderByOutput { - return o -} - -func (o OrderByOutput) ToOrderByOutputWithContext(ctx context.Context) OrderByOutput { - return o -} - -func (o OrderByOutput) ToOrderByPtrOutput() OrderByPtrOutput { - return o.ToOrderByPtrOutputWithContext(context.Background()) -} - -func (o OrderByOutput) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v OrderBy) *OrderBy { - return &v - }).(OrderByPtrOutput) -} - -// Describes the actual column name to sort by -func (o OrderByOutput) Field() pulumi.StringPtrOutput { - return o.ApplyT(func(v OrderBy) *string { return v.Field }).(pulumi.StringPtrOutput) -} - -// Describes if results should be in ascending/descending order -func (o OrderByOutput) Order() pulumi.StringPtrOutput { - return o.ApplyT(func(v OrderBy) *string { return v.Order }).(pulumi.StringPtrOutput) -} - -type OrderByPtrOutput struct{ *pulumi.OutputState } - -func (OrderByPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**OrderBy)(nil)).Elem() -} - -func (o OrderByPtrOutput) ToOrderByPtrOutput() OrderByPtrOutput { - return o -} - -func (o OrderByPtrOutput) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { - return o -} - -func (o OrderByPtrOutput) Elem() OrderByOutput { - return o.ApplyT(func(v *OrderBy) OrderBy { - if v != nil { - return *v - } - var ret OrderBy - return ret - }).(OrderByOutput) -} - -// Describes the actual column name to sort by -func (o OrderByPtrOutput) Field() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OrderBy) *string { - if v == nil { - return nil - } - return v.Field - }).(pulumi.StringPtrOutput) -} - -// Describes if results should be in ascending/descending order -func (o OrderByPtrOutput) Order() pulumi.StringPtrOutput { - return o.ApplyT(func(v *OrderBy) *string { - if v == nil { - return nil - } - return v.Order - }).(pulumi.StringPtrOutput) -} - -// Outbound rule of the load balancer. -type OutboundRule struct { - // The number of outbound ports to be used for NAT. - AllocatedOutboundPorts *int `pulumi:"allocatedOutboundPorts"` - // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. - BackendAddressPool SubResource `pulumi:"backendAddressPool"` - // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. - EnableTcpReset *bool `pulumi:"enableTcpReset"` - // The Frontend IP addresses of the load balancer. - FrontendIPConfigurations []SubResource `pulumi:"frontendIPConfigurations"` - // Resource ID. - Id *string `pulumi:"id"` - // The timeout for the TCP idle connection. - IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` - // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The protocol for the outbound rule in load balancer. - Protocol string `pulumi:"protocol"` -} - -// OutboundRuleInput is an input type that accepts OutboundRuleArgs and OutboundRuleOutput values. -// You can construct a concrete instance of `OutboundRuleInput` via: -// -// OutboundRuleArgs{...} -type OutboundRuleInput interface { - pulumi.Input - - ToOutboundRuleOutput() OutboundRuleOutput - ToOutboundRuleOutputWithContext(context.Context) OutboundRuleOutput -} - -// Outbound rule of the load balancer. -type OutboundRuleArgs struct { - // The number of outbound ports to be used for NAT. - AllocatedOutboundPorts pulumi.IntPtrInput `pulumi:"allocatedOutboundPorts"` - // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. - BackendAddressPool SubResourceInput `pulumi:"backendAddressPool"` - // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. - EnableTcpReset pulumi.BoolPtrInput `pulumi:"enableTcpReset"` - // The Frontend IP addresses of the load balancer. - FrontendIPConfigurations SubResourceArrayInput `pulumi:"frontendIPConfigurations"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The timeout for the TCP idle connection. - IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` - // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The protocol for the outbound rule in load balancer. - Protocol pulumi.StringInput `pulumi:"protocol"` -} - -func (OutboundRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*OutboundRule)(nil)).Elem() -} - -func (i OutboundRuleArgs) ToOutboundRuleOutput() OutboundRuleOutput { - return i.ToOutboundRuleOutputWithContext(context.Background()) -} - -func (i OutboundRuleArgs) ToOutboundRuleOutputWithContext(ctx context.Context) OutboundRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(OutboundRuleOutput) -} - -// OutboundRuleArrayInput is an input type that accepts OutboundRuleArray and OutboundRuleArrayOutput values. -// You can construct a concrete instance of `OutboundRuleArrayInput` via: -// -// OutboundRuleArray{ OutboundRuleArgs{...} } -type OutboundRuleArrayInput interface { - pulumi.Input - - ToOutboundRuleArrayOutput() OutboundRuleArrayOutput - ToOutboundRuleArrayOutputWithContext(context.Context) OutboundRuleArrayOutput -} - -type OutboundRuleArray []OutboundRuleInput - -func (OutboundRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]OutboundRule)(nil)).Elem() -} - -func (i OutboundRuleArray) ToOutboundRuleArrayOutput() OutboundRuleArrayOutput { - return i.ToOutboundRuleArrayOutputWithContext(context.Background()) -} - -func (i OutboundRuleArray) ToOutboundRuleArrayOutputWithContext(ctx context.Context) OutboundRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(OutboundRuleArrayOutput) -} - -// Outbound rule of the load balancer. -type OutboundRuleOutput struct{ *pulumi.OutputState } - -func (OutboundRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OutboundRule)(nil)).Elem() -} - -func (o OutboundRuleOutput) ToOutboundRuleOutput() OutboundRuleOutput { - return o -} - -func (o OutboundRuleOutput) ToOutboundRuleOutputWithContext(ctx context.Context) OutboundRuleOutput { - return o -} - -// The number of outbound ports to be used for NAT. -func (o OutboundRuleOutput) AllocatedOutboundPorts() pulumi.IntPtrOutput { - return o.ApplyT(func(v OutboundRule) *int { return v.AllocatedOutboundPorts }).(pulumi.IntPtrOutput) -} - -// A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. -func (o OutboundRuleOutput) BackendAddressPool() SubResourceOutput { - return o.ApplyT(func(v OutboundRule) SubResource { return v.BackendAddressPool }).(SubResourceOutput) -} - -// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. -func (o OutboundRuleOutput) EnableTcpReset() pulumi.BoolPtrOutput { - return o.ApplyT(func(v OutboundRule) *bool { return v.EnableTcpReset }).(pulumi.BoolPtrOutput) -} - -// The Frontend IP addresses of the load balancer. -func (o OutboundRuleOutput) FrontendIPConfigurations() SubResourceArrayOutput { - return o.ApplyT(func(v OutboundRule) []SubResource { return v.FrontendIPConfigurations }).(SubResourceArrayOutput) -} - -// Resource ID. -func (o OutboundRuleOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v OutboundRule) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The timeout for the TCP idle connection. -func (o OutboundRuleOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v OutboundRule) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) -} - -// The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. -func (o OutboundRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v OutboundRule) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The protocol for the outbound rule in load balancer. -func (o OutboundRuleOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v OutboundRule) string { return v.Protocol }).(pulumi.StringOutput) -} - -type OutboundRuleArrayOutput struct{ *pulumi.OutputState } - -func (OutboundRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]OutboundRule)(nil)).Elem() -} - -func (o OutboundRuleArrayOutput) ToOutboundRuleArrayOutput() OutboundRuleArrayOutput { - return o -} - -func (o OutboundRuleArrayOutput) ToOutboundRuleArrayOutputWithContext(ctx context.Context) OutboundRuleArrayOutput { - return o -} - -func (o OutboundRuleArrayOutput) Index(i pulumi.IntInput) OutboundRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) OutboundRule { - return vs[0].([]OutboundRule)[vs[1].(int)] - }).(OutboundRuleOutput) -} - -// Outbound rule of the load balancer. -type OutboundRuleResponse struct { - // The number of outbound ports to be used for NAT. - AllocatedOutboundPorts *int `pulumi:"allocatedOutboundPorts"` - // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. - BackendAddressPool SubResourceResponse `pulumi:"backendAddressPool"` - // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. - EnableTcpReset *bool `pulumi:"enableTcpReset"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // The Frontend IP addresses of the load balancer. - FrontendIPConfigurations []SubResourceResponse `pulumi:"frontendIPConfigurations"` - // Resource ID. - Id *string `pulumi:"id"` - // The timeout for the TCP idle connection. - IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` - // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The protocol for the outbound rule in load balancer. - Protocol string `pulumi:"protocol"` - // The provisioning state of the outbound rule resource. - ProvisioningState string `pulumi:"provisioningState"` - // Type of the resource. - Type string `pulumi:"type"` -} - -// Outbound rule of the load balancer. -type OutboundRuleResponseOutput struct{ *pulumi.OutputState } - -func (OutboundRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OutboundRuleResponse)(nil)).Elem() -} - -func (o OutboundRuleResponseOutput) ToOutboundRuleResponseOutput() OutboundRuleResponseOutput { - return o -} - -func (o OutboundRuleResponseOutput) ToOutboundRuleResponseOutputWithContext(ctx context.Context) OutboundRuleResponseOutput { - return o -} - -// The number of outbound ports to be used for NAT. -func (o OutboundRuleResponseOutput) AllocatedOutboundPorts() pulumi.IntPtrOutput { - return o.ApplyT(func(v OutboundRuleResponse) *int { return v.AllocatedOutboundPorts }).(pulumi.IntPtrOutput) -} - -// A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. -func (o OutboundRuleResponseOutput) BackendAddressPool() SubResourceResponseOutput { - return o.ApplyT(func(v OutboundRuleResponse) SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponseOutput) -} - -// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. -func (o OutboundRuleResponseOutput) EnableTcpReset() pulumi.BoolPtrOutput { - return o.ApplyT(func(v OutboundRuleResponse) *bool { return v.EnableTcpReset }).(pulumi.BoolPtrOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o OutboundRuleResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v OutboundRuleResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// The Frontend IP addresses of the load balancer. -func (o OutboundRuleResponseOutput) FrontendIPConfigurations() SubResourceResponseArrayOutput { - return o.ApplyT(func(v OutboundRuleResponse) []SubResourceResponse { return v.FrontendIPConfigurations }).(SubResourceResponseArrayOutput) -} - -// Resource ID. -func (o OutboundRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v OutboundRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The timeout for the TCP idle connection. -func (o OutboundRuleResponseOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v OutboundRuleResponse) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) -} - -// The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. -func (o OutboundRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v OutboundRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The protocol for the outbound rule in load balancer. -func (o OutboundRuleResponseOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v OutboundRuleResponse) string { return v.Protocol }).(pulumi.StringOutput) -} - -// The provisioning state of the outbound rule resource. -func (o OutboundRuleResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v OutboundRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// Type of the resource. -func (o OutboundRuleResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v OutboundRuleResponse) string { return v.Type }).(pulumi.StringOutput) -} - -type OutboundRuleResponseArrayOutput struct{ *pulumi.OutputState } - -func (OutboundRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]OutboundRuleResponse)(nil)).Elem() -} - -func (o OutboundRuleResponseArrayOutput) ToOutboundRuleResponseArrayOutput() OutboundRuleResponseArrayOutput { - return o -} - -func (o OutboundRuleResponseArrayOutput) ToOutboundRuleResponseArrayOutputWithContext(ctx context.Context) OutboundRuleResponseArrayOutput { - return o -} - -func (o OutboundRuleResponseArrayOutput) Index(i pulumi.IntInput) OutboundRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) OutboundRuleResponse { - return vs[0].([]OutboundRuleResponse)[vs[1].(int)] - }).(OutboundRuleResponseOutput) -} - -// Allow to exclude some variable satisfy the condition for the WAF check. -type OwaspCrsExclusionEntry struct { - // The variable to be excluded. - MatchVariable string `pulumi:"matchVariable"` - // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. - Selector string `pulumi:"selector"` - // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. - SelectorMatchOperator string `pulumi:"selectorMatchOperator"` -} - -// OwaspCrsExclusionEntryInput is an input type that accepts OwaspCrsExclusionEntryArgs and OwaspCrsExclusionEntryOutput values. -// You can construct a concrete instance of `OwaspCrsExclusionEntryInput` via: -// -// OwaspCrsExclusionEntryArgs{...} -type OwaspCrsExclusionEntryInput interface { - pulumi.Input - - ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput - ToOwaspCrsExclusionEntryOutputWithContext(context.Context) OwaspCrsExclusionEntryOutput -} - -// Allow to exclude some variable satisfy the condition for the WAF check. -type OwaspCrsExclusionEntryArgs struct { - // The variable to be excluded. - MatchVariable pulumi.StringInput `pulumi:"matchVariable"` - // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. - Selector pulumi.StringInput `pulumi:"selector"` - // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. - SelectorMatchOperator pulumi.StringInput `pulumi:"selectorMatchOperator"` -} - -func (OwaspCrsExclusionEntryArgs) ElementType() reflect.Type { - return reflect.TypeOf((*OwaspCrsExclusionEntry)(nil)).Elem() -} - -func (i OwaspCrsExclusionEntryArgs) ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput { - return i.ToOwaspCrsExclusionEntryOutputWithContext(context.Background()) -} - -func (i OwaspCrsExclusionEntryArgs) ToOwaspCrsExclusionEntryOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryOutput { - return pulumi.ToOutputWithContext(ctx, i).(OwaspCrsExclusionEntryOutput) -} - -// OwaspCrsExclusionEntryArrayInput is an input type that accepts OwaspCrsExclusionEntryArray and OwaspCrsExclusionEntryArrayOutput values. -// You can construct a concrete instance of `OwaspCrsExclusionEntryArrayInput` via: -// -// OwaspCrsExclusionEntryArray{ OwaspCrsExclusionEntryArgs{...} } -type OwaspCrsExclusionEntryArrayInput interface { - pulumi.Input - - ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput - ToOwaspCrsExclusionEntryArrayOutputWithContext(context.Context) OwaspCrsExclusionEntryArrayOutput -} - -type OwaspCrsExclusionEntryArray []OwaspCrsExclusionEntryInput - -func (OwaspCrsExclusionEntryArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]OwaspCrsExclusionEntry)(nil)).Elem() -} - -func (i OwaspCrsExclusionEntryArray) ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput { - return i.ToOwaspCrsExclusionEntryArrayOutputWithContext(context.Background()) -} - -func (i OwaspCrsExclusionEntryArray) ToOwaspCrsExclusionEntryArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(OwaspCrsExclusionEntryArrayOutput) -} - -// Allow to exclude some variable satisfy the condition for the WAF check. -type OwaspCrsExclusionEntryOutput struct{ *pulumi.OutputState } - -func (OwaspCrsExclusionEntryOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OwaspCrsExclusionEntry)(nil)).Elem() -} - -func (o OwaspCrsExclusionEntryOutput) ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput { - return o -} - -func (o OwaspCrsExclusionEntryOutput) ToOwaspCrsExclusionEntryOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryOutput { - return o -} - -// The variable to be excluded. -func (o OwaspCrsExclusionEntryOutput) MatchVariable() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.MatchVariable }).(pulumi.StringOutput) -} - -// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. -func (o OwaspCrsExclusionEntryOutput) Selector() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.Selector }).(pulumi.StringOutput) -} - -// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. -func (o OwaspCrsExclusionEntryOutput) SelectorMatchOperator() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) -} - -type OwaspCrsExclusionEntryArrayOutput struct{ *pulumi.OutputState } - -func (OwaspCrsExclusionEntryArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]OwaspCrsExclusionEntry)(nil)).Elem() -} - -func (o OwaspCrsExclusionEntryArrayOutput) ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput { - return o -} - -func (o OwaspCrsExclusionEntryArrayOutput) ToOwaspCrsExclusionEntryArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryArrayOutput { - return o -} - -func (o OwaspCrsExclusionEntryArrayOutput) Index(i pulumi.IntInput) OwaspCrsExclusionEntryOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) OwaspCrsExclusionEntry { - return vs[0].([]OwaspCrsExclusionEntry)[vs[1].(int)] - }).(OwaspCrsExclusionEntryOutput) -} - -// Allow to exclude some variable satisfy the condition for the WAF check. -type OwaspCrsExclusionEntryResponse struct { - // The variable to be excluded. - MatchVariable string `pulumi:"matchVariable"` - // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. - Selector string `pulumi:"selector"` - // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. - SelectorMatchOperator string `pulumi:"selectorMatchOperator"` -} - -// Allow to exclude some variable satisfy the condition for the WAF check. -type OwaspCrsExclusionEntryResponseOutput struct{ *pulumi.OutputState } - -func (OwaspCrsExclusionEntryResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*OwaspCrsExclusionEntryResponse)(nil)).Elem() -} - -func (o OwaspCrsExclusionEntryResponseOutput) ToOwaspCrsExclusionEntryResponseOutput() OwaspCrsExclusionEntryResponseOutput { - return o -} - -func (o OwaspCrsExclusionEntryResponseOutput) ToOwaspCrsExclusionEntryResponseOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryResponseOutput { - return o -} - -// The variable to be excluded. -func (o OwaspCrsExclusionEntryResponseOutput) MatchVariable() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.MatchVariable }).(pulumi.StringOutput) -} - -// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. -func (o OwaspCrsExclusionEntryResponseOutput) Selector() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.Selector }).(pulumi.StringOutput) -} - -// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. -func (o OwaspCrsExclusionEntryResponseOutput) SelectorMatchOperator() pulumi.StringOutput { - return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) -} - -type OwaspCrsExclusionEntryResponseArrayOutput struct{ *pulumi.OutputState } - -func (OwaspCrsExclusionEntryResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]OwaspCrsExclusionEntryResponse)(nil)).Elem() -} - -func (o OwaspCrsExclusionEntryResponseArrayOutput) ToOwaspCrsExclusionEntryResponseArrayOutput() OwaspCrsExclusionEntryResponseArrayOutput { - return o -} - -func (o OwaspCrsExclusionEntryResponseArrayOutput) ToOwaspCrsExclusionEntryResponseArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryResponseArrayOutput { - return o -} - -func (o OwaspCrsExclusionEntryResponseArrayOutput) Index(i pulumi.IntInput) OwaspCrsExclusionEntryResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) OwaspCrsExclusionEntryResponse { - return vs[0].([]OwaspCrsExclusionEntryResponse)[vs[1].(int)] - }).(OwaspCrsExclusionEntryResponseOutput) -} - -// P2SConnectionConfiguration Resource. -type P2SConnectionConfiguration struct { - // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. - EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The Routing Configuration indicating the associated and propagated route tables on this connection. - RoutingConfiguration *RoutingConfiguration `pulumi:"routingConfiguration"` - // The reference to the address space resource which represents Address space for P2S VpnClient. - VpnClientAddressPool *AddressSpace `pulumi:"vpnClientAddressPool"` -} - -// P2SConnectionConfigurationInput is an input type that accepts P2SConnectionConfigurationArgs and P2SConnectionConfigurationOutput values. -// You can construct a concrete instance of `P2SConnectionConfigurationInput` via: -// -// P2SConnectionConfigurationArgs{...} -type P2SConnectionConfigurationInput interface { - pulumi.Input - - ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput - ToP2SConnectionConfigurationOutputWithContext(context.Context) P2SConnectionConfigurationOutput -} - -// P2SConnectionConfiguration Resource. -type P2SConnectionConfigurationArgs struct { - // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. - EnableInternetSecurity pulumi.BoolPtrInput `pulumi:"enableInternetSecurity"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The Routing Configuration indicating the associated and propagated route tables on this connection. - RoutingConfiguration RoutingConfigurationPtrInput `pulumi:"routingConfiguration"` - // The reference to the address space resource which represents Address space for P2S VpnClient. - VpnClientAddressPool AddressSpacePtrInput `pulumi:"vpnClientAddressPool"` -} - -func (P2SConnectionConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*P2SConnectionConfiguration)(nil)).Elem() -} - -func (i P2SConnectionConfigurationArgs) ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput { - return i.ToP2SConnectionConfigurationOutputWithContext(context.Background()) -} - -func (i P2SConnectionConfigurationArgs) ToP2SConnectionConfigurationOutputWithContext(ctx context.Context) P2SConnectionConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SConnectionConfigurationOutput) -} - -// P2SConnectionConfigurationArrayInput is an input type that accepts P2SConnectionConfigurationArray and P2SConnectionConfigurationArrayOutput values. -// You can construct a concrete instance of `P2SConnectionConfigurationArrayInput` via: -// -// P2SConnectionConfigurationArray{ P2SConnectionConfigurationArgs{...} } -type P2SConnectionConfigurationArrayInput interface { - pulumi.Input - - ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput - ToP2SConnectionConfigurationArrayOutputWithContext(context.Context) P2SConnectionConfigurationArrayOutput -} - -type P2SConnectionConfigurationArray []P2SConnectionConfigurationInput - -func (P2SConnectionConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SConnectionConfiguration)(nil)).Elem() -} - -func (i P2SConnectionConfigurationArray) ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput { - return i.ToP2SConnectionConfigurationArrayOutputWithContext(context.Background()) -} - -func (i P2SConnectionConfigurationArray) ToP2SConnectionConfigurationArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SConnectionConfigurationArrayOutput) -} - -// P2SConnectionConfiguration Resource. -type P2SConnectionConfigurationOutput struct{ *pulumi.OutputState } - -func (P2SConnectionConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SConnectionConfiguration)(nil)).Elem() -} - -func (o P2SConnectionConfigurationOutput) ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput { - return o -} - -func (o P2SConnectionConfigurationOutput) ToP2SConnectionConfigurationOutputWithContext(ctx context.Context) P2SConnectionConfigurationOutput { - return o -} - -// Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. -func (o P2SConnectionConfigurationOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { - return o.ApplyT(func(v P2SConnectionConfiguration) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) -} - -// Resource ID. -func (o P2SConnectionConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SConnectionConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SConnectionConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SConnectionConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The Routing Configuration indicating the associated and propagated route tables on this connection. -func (o P2SConnectionConfigurationOutput) RoutingConfiguration() RoutingConfigurationPtrOutput { - return o.ApplyT(func(v P2SConnectionConfiguration) *RoutingConfiguration { return v.RoutingConfiguration }).(RoutingConfigurationPtrOutput) -} - -// The reference to the address space resource which represents Address space for P2S VpnClient. -func (o P2SConnectionConfigurationOutput) VpnClientAddressPool() AddressSpacePtrOutput { - return o.ApplyT(func(v P2SConnectionConfiguration) *AddressSpace { return v.VpnClientAddressPool }).(AddressSpacePtrOutput) -} - -type P2SConnectionConfigurationArrayOutput struct{ *pulumi.OutputState } - -func (P2SConnectionConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SConnectionConfiguration)(nil)).Elem() -} - -func (o P2SConnectionConfigurationArrayOutput) ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput { - return o -} - -func (o P2SConnectionConfigurationArrayOutput) ToP2SConnectionConfigurationArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationArrayOutput { - return o -} - -func (o P2SConnectionConfigurationArrayOutput) Index(i pulumi.IntInput) P2SConnectionConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SConnectionConfiguration { - return vs[0].([]P2SConnectionConfiguration)[vs[1].(int)] - }).(P2SConnectionConfigurationOutput) -} - -// P2SConnectionConfiguration Resource. -type P2SConnectionConfigurationResponse struct { - // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. - EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the P2SConnectionConfiguration resource. - ProvisioningState string `pulumi:"provisioningState"` - // The Routing Configuration indicating the associated and propagated route tables on this connection. - RoutingConfiguration *RoutingConfigurationResponse `pulumi:"routingConfiguration"` - // The reference to the address space resource which represents Address space for P2S VpnClient. - VpnClientAddressPool *AddressSpaceResponse `pulumi:"vpnClientAddressPool"` -} - -// P2SConnectionConfiguration Resource. -type P2SConnectionConfigurationResponseOutput struct{ *pulumi.OutputState } - -func (P2SConnectionConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SConnectionConfigurationResponse)(nil)).Elem() -} - -func (o P2SConnectionConfigurationResponseOutput) ToP2SConnectionConfigurationResponseOutput() P2SConnectionConfigurationResponseOutput { - return o -} - -func (o P2SConnectionConfigurationResponseOutput) ToP2SConnectionConfigurationResponseOutputWithContext(ctx context.Context) P2SConnectionConfigurationResponseOutput { - return o -} - -// Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. -func (o P2SConnectionConfigurationResponseOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SConnectionConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Resource ID. -func (o P2SConnectionConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SConnectionConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the P2SConnectionConfiguration resource. -func (o P2SConnectionConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The Routing Configuration indicating the associated and propagated route tables on this connection. -func (o P2SConnectionConfigurationResponseOutput) RoutingConfiguration() RoutingConfigurationResponsePtrOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) *RoutingConfigurationResponse { - return v.RoutingConfiguration - }).(RoutingConfigurationResponsePtrOutput) -} - -// The reference to the address space resource which represents Address space for P2S VpnClient. -func (o P2SConnectionConfigurationResponseOutput) VpnClientAddressPool() AddressSpaceResponsePtrOutput { - return o.ApplyT(func(v P2SConnectionConfigurationResponse) *AddressSpaceResponse { return v.VpnClientAddressPool }).(AddressSpaceResponsePtrOutput) -} - -type P2SConnectionConfigurationResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SConnectionConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SConnectionConfigurationResponse)(nil)).Elem() -} - -func (o P2SConnectionConfigurationResponseArrayOutput) ToP2SConnectionConfigurationResponseArrayOutput() P2SConnectionConfigurationResponseArrayOutput { - return o -} - -func (o P2SConnectionConfigurationResponseArrayOutput) ToP2SConnectionConfigurationResponseArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationResponseArrayOutput { - return o -} - -func (o P2SConnectionConfigurationResponseArrayOutput) Index(i pulumi.IntInput) P2SConnectionConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SConnectionConfigurationResponse { - return vs[0].([]P2SConnectionConfigurationResponse)[vs[1].(int)] - }).(P2SConnectionConfigurationResponseOutput) -} - -// P2SVpnGateway Resource. -type P2SVpnGatewayResponse struct { - // List of all customer specified DNS servers IP addresses. - CustomDnsServers []string `pulumi:"customDnsServers"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway. - IsRoutingPreferenceInternet *bool `pulumi:"isRoutingPreferenceInternet"` - // Resource location. - Location string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // List of all p2s connection configurations of the gateway. - P2SConnectionConfigurations []P2SConnectionConfigurationResponse `pulumi:"p2SConnectionConfigurations"` - // The provisioning state of the P2S VPN gateway resource. - ProvisioningState string `pulumi:"provisioningState"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` - // The VirtualHub to which the gateway belongs. - VirtualHub *SubResourceResponse `pulumi:"virtualHub"` - // All P2S VPN clients' connection health status. - VpnClientConnectionHealth VpnClientConnectionHealthResponse `pulumi:"vpnClientConnectionHealth"` - // The scale unit for this p2s vpn gateway. - VpnGatewayScaleUnit *int `pulumi:"vpnGatewayScaleUnit"` - // The VpnServerConfiguration to which the p2sVpnGateway is attached to. - VpnServerConfiguration *SubResourceResponse `pulumi:"vpnServerConfiguration"` -} - -// P2SVpnGateway Resource. -type P2SVpnGatewayResponseOutput struct{ *pulumi.OutputState } - -func (P2SVpnGatewayResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnGatewayResponse)(nil)).Elem() -} - -func (o P2SVpnGatewayResponseOutput) ToP2SVpnGatewayResponseOutput() P2SVpnGatewayResponseOutput { - return o -} - -func (o P2SVpnGatewayResponseOutput) ToP2SVpnGatewayResponseOutputWithContext(ctx context.Context) P2SVpnGatewayResponseOutput { - return o -} - -// List of all customer specified DNS servers IP addresses. -func (o P2SVpnGatewayResponseOutput) CustomDnsServers() pulumi.StringArrayOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) []string { return v.CustomDnsServers }).(pulumi.StringArrayOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnGatewayResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Resource ID. -func (o P2SVpnGatewayResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway. -func (o P2SVpnGatewayResponseOutput) IsRoutingPreferenceInternet() pulumi.BoolPtrOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) *bool { return v.IsRoutingPreferenceInternet }).(pulumi.BoolPtrOutput) -} - -// Resource location. -func (o P2SVpnGatewayResponseOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Location }).(pulumi.StringOutput) -} - -// Resource name. -func (o P2SVpnGatewayResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Name }).(pulumi.StringOutput) -} - -// List of all p2s connection configurations of the gateway. -func (o P2SVpnGatewayResponseOutput) P2SConnectionConfigurations() P2SConnectionConfigurationResponseArrayOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) []P2SConnectionConfigurationResponse { - return v.P2SConnectionConfigurations - }).(P2SConnectionConfigurationResponseArrayOutput) -} - -// The provisioning state of the P2S VPN gateway resource. -func (o P2SVpnGatewayResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// Resource tags. -func (o P2SVpnGatewayResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) -} - -// Resource type. -func (o P2SVpnGatewayResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Type }).(pulumi.StringOutput) -} - -// The VirtualHub to which the gateway belongs. -func (o P2SVpnGatewayResponseOutput) VirtualHub() SubResourceResponsePtrOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) *SubResourceResponse { return v.VirtualHub }).(SubResourceResponsePtrOutput) -} - -// All P2S VPN clients' connection health status. -func (o P2SVpnGatewayResponseOutput) VpnClientConnectionHealth() VpnClientConnectionHealthResponseOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) VpnClientConnectionHealthResponse { return v.VpnClientConnectionHealth }).(VpnClientConnectionHealthResponseOutput) -} - -// The scale unit for this p2s vpn gateway. -func (o P2SVpnGatewayResponseOutput) VpnGatewayScaleUnit() pulumi.IntPtrOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) *int { return v.VpnGatewayScaleUnit }).(pulumi.IntPtrOutput) -} - -// The VpnServerConfiguration to which the p2sVpnGateway is attached to. -func (o P2SVpnGatewayResponseOutput) VpnServerConfiguration() SubResourceResponsePtrOutput { - return o.ApplyT(func(v P2SVpnGatewayResponse) *SubResourceResponse { return v.VpnServerConfiguration }).(SubResourceResponsePtrOutput) -} - -type P2SVpnGatewayResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnGatewayResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnGatewayResponse)(nil)).Elem() -} - -func (o P2SVpnGatewayResponseArrayOutput) ToP2SVpnGatewayResponseArrayOutput() P2SVpnGatewayResponseArrayOutput { - return o -} - -func (o P2SVpnGatewayResponseArrayOutput) ToP2SVpnGatewayResponseArrayOutputWithContext(ctx context.Context) P2SVpnGatewayResponseArrayOutput { - return o -} - -func (o P2SVpnGatewayResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnGatewayResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnGatewayResponse { - return vs[0].([]P2SVpnGatewayResponse)[vs[1].(int)] - }).(P2SVpnGatewayResponseOutput) -} - -// Radius client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusClientRootCertificate struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The Radius client root certificate thumbprint. - Thumbprint *string `pulumi:"thumbprint"` -} - -// P2SVpnServerConfigRadiusClientRootCertificateInput is an input type that accepts P2SVpnServerConfigRadiusClientRootCertificateArgs and P2SVpnServerConfigRadiusClientRootCertificateOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigRadiusClientRootCertificateInput` via: -// -// P2SVpnServerConfigRadiusClientRootCertificateArgs{...} -type P2SVpnServerConfigRadiusClientRootCertificateInput interface { - pulumi.Input - - ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput - ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput -} - -// Radius client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusClientRootCertificateArgs struct { - // A unique read-only string that changes whenever the resource is updated. - Etag pulumi.StringPtrInput `pulumi:"etag"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The Radius client root certificate thumbprint. - Thumbprint pulumi.StringPtrInput `pulumi:"thumbprint"` -} - -func (P2SVpnServerConfigRadiusClientRootCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigRadiusClientRootCertificateArgs) ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput { - return i.ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigRadiusClientRootCertificateArgs) ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusClientRootCertificateOutput) -} - -// P2SVpnServerConfigRadiusClientRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigRadiusClientRootCertificateArray and P2SVpnServerConfigRadiusClientRootCertificateArrayOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigRadiusClientRootCertificateArrayInput` via: -// -// P2SVpnServerConfigRadiusClientRootCertificateArray{ P2SVpnServerConfigRadiusClientRootCertificateArgs{...} } -type P2SVpnServerConfigRadiusClientRootCertificateArrayInput interface { - pulumi.Input - - ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput - ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput -} - -type P2SVpnServerConfigRadiusClientRootCertificateArray []P2SVpnServerConfigRadiusClientRootCertificateInput - -func (P2SVpnServerConfigRadiusClientRootCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigRadiusClientRootCertificateArray) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { - return i.ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigRadiusClientRootCertificateArray) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) -} - -// Radius client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusClientRootCertificateOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusClientRootCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The Radius client root certificate thumbprint. -func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Thumbprint() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) -} - -type P2SVpnServerConfigRadiusClientRootCertificateArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusClientRootCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusClientRootCertificate { - return vs[0].([]P2SVpnServerConfigRadiusClientRootCertificate)[vs[1].(int)] - }).(P2SVpnServerConfigRadiusClientRootCertificateOutput) -} - -// Radius client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusClientRootCertificateResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the radius client root certificate resource. - ProvisioningState string `pulumi:"provisioningState"` - // The Radius client root certificate thumbprint. - Thumbprint *string `pulumi:"thumbprint"` -} - -// Radius client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusClientRootCertificateResponseOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseOutput() P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the radius client root certificate resource. -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The Radius client root certificate thumbprint. -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Thumbprint() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) -} - -type P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusClientRootCertificateResponse { - return vs[0].([]P2SVpnServerConfigRadiusClientRootCertificateResponse)[vs[1].(int)] - }).(P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) -} - -// Radius Server root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusServerRootCertificate struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The certificate public data. - PublicCertData string `pulumi:"publicCertData"` -} - -// P2SVpnServerConfigRadiusServerRootCertificateInput is an input type that accepts P2SVpnServerConfigRadiusServerRootCertificateArgs and P2SVpnServerConfigRadiusServerRootCertificateOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigRadiusServerRootCertificateInput` via: -// -// P2SVpnServerConfigRadiusServerRootCertificateArgs{...} -type P2SVpnServerConfigRadiusServerRootCertificateInput interface { - pulumi.Input - - ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput - ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput -} - -// Radius Server root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusServerRootCertificateArgs struct { - // A unique read-only string that changes whenever the resource is updated. - Etag pulumi.StringPtrInput `pulumi:"etag"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The certificate public data. - PublicCertData pulumi.StringInput `pulumi:"publicCertData"` -} - -func (P2SVpnServerConfigRadiusServerRootCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigRadiusServerRootCertificateArgs) ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput { - return i.ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigRadiusServerRootCertificateArgs) ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusServerRootCertificateOutput) -} - -// P2SVpnServerConfigRadiusServerRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigRadiusServerRootCertificateArray and P2SVpnServerConfigRadiusServerRootCertificateArrayOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigRadiusServerRootCertificateArrayInput` via: -// -// P2SVpnServerConfigRadiusServerRootCertificateArray{ P2SVpnServerConfigRadiusServerRootCertificateArgs{...} } -type P2SVpnServerConfigRadiusServerRootCertificateArrayInput interface { - pulumi.Input - - ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput - ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput -} - -type P2SVpnServerConfigRadiusServerRootCertificateArray []P2SVpnServerConfigRadiusServerRootCertificateInput - -func (P2SVpnServerConfigRadiusServerRootCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigRadiusServerRootCertificateArray) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { - return i.ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigRadiusServerRootCertificateArray) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) -} - -// Radius Server root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusServerRootCertificateOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusServerRootCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The certificate public data. -func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) PublicCertData() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) string { return v.PublicCertData }).(pulumi.StringOutput) -} - -type P2SVpnServerConfigRadiusServerRootCertificateArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusServerRootCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusServerRootCertificate { - return vs[0].([]P2SVpnServerConfigRadiusServerRootCertificate)[vs[1].(int)] - }).(P2SVpnServerConfigRadiusServerRootCertificateOutput) -} - -// Radius Server root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusServerRootCertificateResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the radius server root certificate resource. - ProvisioningState string `pulumi:"provisioningState"` - // The certificate public data. - PublicCertData string `pulumi:"publicCertData"` -} - -// Radius Server root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigRadiusServerRootCertificateResponseOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseOutput() P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the radius server root certificate resource. -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The certificate public data. -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) PublicCertData() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) -} - -type P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusServerRootCertificateResponse { - return vs[0].([]P2SVpnServerConfigRadiusServerRootCertificateResponse)[vs[1].(int)] - }).(P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) -} - -// VPN client revoked certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRevokedCertificate struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The revoked VPN client certificate thumbprint. - Thumbprint *string `pulumi:"thumbprint"` -} - -// P2SVpnServerConfigVpnClientRevokedCertificateInput is an input type that accepts P2SVpnServerConfigVpnClientRevokedCertificateArgs and P2SVpnServerConfigVpnClientRevokedCertificateOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRevokedCertificateInput` via: -// -// P2SVpnServerConfigVpnClientRevokedCertificateArgs{...} -type P2SVpnServerConfigVpnClientRevokedCertificateInput interface { - pulumi.Input - - ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput - ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput -} - -// VPN client revoked certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRevokedCertificateArgs struct { - // A unique read-only string that changes whenever the resource is updated. - Etag pulumi.StringPtrInput `pulumi:"etag"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The revoked VPN client certificate thumbprint. - Thumbprint pulumi.StringPtrInput `pulumi:"thumbprint"` -} - -func (P2SVpnServerConfigVpnClientRevokedCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigVpnClientRevokedCertificateArgs) ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput { - return i.ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigVpnClientRevokedCertificateArgs) ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRevokedCertificateOutput) -} - -// P2SVpnServerConfigVpnClientRevokedCertificateArrayInput is an input type that accepts P2SVpnServerConfigVpnClientRevokedCertificateArray and P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRevokedCertificateArrayInput` via: -// -// P2SVpnServerConfigVpnClientRevokedCertificateArray{ P2SVpnServerConfigVpnClientRevokedCertificateArgs{...} } -type P2SVpnServerConfigVpnClientRevokedCertificateArrayInput interface { - pulumi.Input - - ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput - ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput -} - -type P2SVpnServerConfigVpnClientRevokedCertificateArray []P2SVpnServerConfigVpnClientRevokedCertificateInput - -func (P2SVpnServerConfigVpnClientRevokedCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigVpnClientRevokedCertificateArray) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { - return i.ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigVpnClientRevokedCertificateArray) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) -} - -// VPN client revoked certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRevokedCertificateOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRevokedCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The revoked VPN client certificate thumbprint. -func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Thumbprint() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) -} - -type P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRevokedCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRevokedCertificate { - return vs[0].([]P2SVpnServerConfigVpnClientRevokedCertificate)[vs[1].(int)] - }).(P2SVpnServerConfigVpnClientRevokedCertificateOutput) -} - -// VPN client revoked certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRevokedCertificateResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the VPN client revoked certificate resource. - ProvisioningState string `pulumi:"provisioningState"` - // The revoked VPN client certificate thumbprint. - Thumbprint *string `pulumi:"thumbprint"` -} - -// VPN client revoked certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseOutput() P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the VPN client revoked certificate resource. -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The revoked VPN client certificate thumbprint. -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Thumbprint() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) -} - -type P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRevokedCertificateResponse { - return vs[0].([]P2SVpnServerConfigVpnClientRevokedCertificateResponse)[vs[1].(int)] - }).(P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) -} - -// VPN client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRootCertificate struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The certificate public data. - PublicCertData string `pulumi:"publicCertData"` -} - -// P2SVpnServerConfigVpnClientRootCertificateInput is an input type that accepts P2SVpnServerConfigVpnClientRootCertificateArgs and P2SVpnServerConfigVpnClientRootCertificateOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRootCertificateInput` via: -// -// P2SVpnServerConfigVpnClientRootCertificateArgs{...} -type P2SVpnServerConfigVpnClientRootCertificateInput interface { - pulumi.Input - - ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput - ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput -} - -// VPN client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRootCertificateArgs struct { - // A unique read-only string that changes whenever the resource is updated. - Etag pulumi.StringPtrInput `pulumi:"etag"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The certificate public data. - PublicCertData pulumi.StringInput `pulumi:"publicCertData"` -} - -func (P2SVpnServerConfigVpnClientRootCertificateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigVpnClientRootCertificateArgs) ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput { - return i.ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigVpnClientRootCertificateArgs) ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRootCertificateOutput) -} - -// P2SVpnServerConfigVpnClientRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigVpnClientRootCertificateArray and P2SVpnServerConfigVpnClientRootCertificateArrayOutput values. -// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRootCertificateArrayInput` via: -// -// P2SVpnServerConfigVpnClientRootCertificateArray{ P2SVpnServerConfigVpnClientRootCertificateArgs{...} } -type P2SVpnServerConfigVpnClientRootCertificateArrayInput interface { - pulumi.Input - - ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput - ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput -} - -type P2SVpnServerConfigVpnClientRootCertificateArray []P2SVpnServerConfigVpnClientRootCertificateInput - -func (P2SVpnServerConfigVpnClientRootCertificateArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() -} - -func (i P2SVpnServerConfigVpnClientRootCertificateArray) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput { - return i.ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(context.Background()) -} - -func (i P2SVpnServerConfigVpnClientRootCertificateArray) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRootCertificateArrayOutput) -} - -// VPN client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRootCertificateOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRootCertificateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The certificate public data. -func (o P2SVpnServerConfigVpnClientRootCertificateOutput) PublicCertData() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) string { return v.PublicCertData }).(pulumi.StringOutput) -} - -type P2SVpnServerConfigVpnClientRootCertificateArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRootCertificateOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRootCertificate { - return vs[0].([]P2SVpnServerConfigVpnClientRootCertificate)[vs[1].(int)] - }).(P2SVpnServerConfigVpnClientRootCertificateOutput) -} - -// VPN client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRootCertificateResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag *string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the VPN client root certificate resource. - ProvisioningState string `pulumi:"provisioningState"` - // The certificate public data. - PublicCertData string `pulumi:"publicCertData"` -} - -// VPN client root certificate of P2SVpnServerConfiguration. -type P2SVpnServerConfigVpnClientRootCertificateResponseOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseOutput() P2SVpnServerConfigVpnClientRootCertificateResponseOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateResponseOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) -} - -// Resource ID. -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the VPN client root certificate resource. -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The certificate public data. -func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) PublicCertData() pulumi.StringOutput { - return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) -} - -type P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } - -func (P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificateResponse)(nil)).Elem() -} - -func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput() P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput { - return o -} - -func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRootCertificateResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRootCertificateResponse { - return vs[0].([]P2SVpnServerConfigVpnClientRootCertificateResponse)[vs[1].(int)] - }).(P2SVpnServerConfigVpnClientRootCertificateResponseOutput) -} - -// Filter that is applied to packet capture request. Multiple filters can be applied. -type PacketCaptureFilter struct { - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalIPAddress *string `pulumi:"localIPAddress"` - // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalPort *string `pulumi:"localPort"` - // Protocol to be filtered on. - Protocol *string `pulumi:"protocol"` - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemoteIPAddress *string `pulumi:"remoteIPAddress"` - // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemotePort *string `pulumi:"remotePort"` -} - -// Defaults sets the appropriate defaults for PacketCaptureFilter -func (val *PacketCaptureFilter) Defaults() *PacketCaptureFilter { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Protocol) { - protocol_ := "Any" - tmp.Protocol = &protocol_ - } - return &tmp -} - -// PacketCaptureFilterInput is an input type that accepts PacketCaptureFilterArgs and PacketCaptureFilterOutput values. -// You can construct a concrete instance of `PacketCaptureFilterInput` via: -// -// PacketCaptureFilterArgs{...} -type PacketCaptureFilterInput interface { - pulumi.Input - - ToPacketCaptureFilterOutput() PacketCaptureFilterOutput - ToPacketCaptureFilterOutputWithContext(context.Context) PacketCaptureFilterOutput -} - -// Filter that is applied to packet capture request. Multiple filters can be applied. -type PacketCaptureFilterArgs struct { - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalIPAddress pulumi.StringPtrInput `pulumi:"localIPAddress"` - // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalPort pulumi.StringPtrInput `pulumi:"localPort"` - // Protocol to be filtered on. - Protocol pulumi.StringPtrInput `pulumi:"protocol"` - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemoteIPAddress pulumi.StringPtrInput `pulumi:"remoteIPAddress"` - // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemotePort pulumi.StringPtrInput `pulumi:"remotePort"` -} - -// Defaults sets the appropriate defaults for PacketCaptureFilterArgs -func (val *PacketCaptureFilterArgs) Defaults() *PacketCaptureFilterArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Protocol) { - tmp.Protocol = pulumi.StringPtr("Any") - } - return &tmp -} -func (PacketCaptureFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureFilter)(nil)).Elem() -} - -func (i PacketCaptureFilterArgs) ToPacketCaptureFilterOutput() PacketCaptureFilterOutput { - return i.ToPacketCaptureFilterOutputWithContext(context.Background()) -} - -func (i PacketCaptureFilterArgs) ToPacketCaptureFilterOutputWithContext(ctx context.Context) PacketCaptureFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureFilterOutput) -} - -// PacketCaptureFilterArrayInput is an input type that accepts PacketCaptureFilterArray and PacketCaptureFilterArrayOutput values. -// You can construct a concrete instance of `PacketCaptureFilterArrayInput` via: -// -// PacketCaptureFilterArray{ PacketCaptureFilterArgs{...} } -type PacketCaptureFilterArrayInput interface { - pulumi.Input - - ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput - ToPacketCaptureFilterArrayOutputWithContext(context.Context) PacketCaptureFilterArrayOutput -} - -type PacketCaptureFilterArray []PacketCaptureFilterInput - -func (PacketCaptureFilterArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PacketCaptureFilter)(nil)).Elem() -} - -func (i PacketCaptureFilterArray) ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput { - return i.ToPacketCaptureFilterArrayOutputWithContext(context.Background()) -} - -func (i PacketCaptureFilterArray) ToPacketCaptureFilterArrayOutputWithContext(ctx context.Context) PacketCaptureFilterArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureFilterArrayOutput) -} - -// Filter that is applied to packet capture request. Multiple filters can be applied. -type PacketCaptureFilterOutput struct{ *pulumi.OutputState } - -func (PacketCaptureFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureFilter)(nil)).Elem() -} - -func (o PacketCaptureFilterOutput) ToPacketCaptureFilterOutput() PacketCaptureFilterOutput { - return o -} - -func (o PacketCaptureFilterOutput) ToPacketCaptureFilterOutputWithContext(ctx context.Context) PacketCaptureFilterOutput { - return o -} - -// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterOutput) LocalIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilter) *string { return v.LocalIPAddress }).(pulumi.StringPtrOutput) -} - -// Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterOutput) LocalPort() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilter) *string { return v.LocalPort }).(pulumi.StringPtrOutput) -} - -// Protocol to be filtered on. -func (o PacketCaptureFilterOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilter) *string { return v.Protocol }).(pulumi.StringPtrOutput) -} - -// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterOutput) RemoteIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilter) *string { return v.RemoteIPAddress }).(pulumi.StringPtrOutput) -} - -// Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterOutput) RemotePort() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilter) *string { return v.RemotePort }).(pulumi.StringPtrOutput) -} - -type PacketCaptureFilterArrayOutput struct{ *pulumi.OutputState } - -func (PacketCaptureFilterArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PacketCaptureFilter)(nil)).Elem() -} - -func (o PacketCaptureFilterArrayOutput) ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput { - return o -} - -func (o PacketCaptureFilterArrayOutput) ToPacketCaptureFilterArrayOutputWithContext(ctx context.Context) PacketCaptureFilterArrayOutput { - return o -} - -func (o PacketCaptureFilterArrayOutput) Index(i pulumi.IntInput) PacketCaptureFilterOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketCaptureFilter { - return vs[0].([]PacketCaptureFilter)[vs[1].(int)] - }).(PacketCaptureFilterOutput) -} - -// Filter that is applied to packet capture request. Multiple filters can be applied. -type PacketCaptureFilterResponse struct { - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalIPAddress *string `pulumi:"localIPAddress"` - // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - LocalPort *string `pulumi:"localPort"` - // Protocol to be filtered on. - Protocol *string `pulumi:"protocol"` - // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemoteIPAddress *string `pulumi:"remoteIPAddress"` - // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. - RemotePort *string `pulumi:"remotePort"` -} - -// Defaults sets the appropriate defaults for PacketCaptureFilterResponse -func (val *PacketCaptureFilterResponse) Defaults() *PacketCaptureFilterResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Protocol) { - protocol_ := "Any" - tmp.Protocol = &protocol_ - } - return &tmp -} - -// Filter that is applied to packet capture request. Multiple filters can be applied. -type PacketCaptureFilterResponseOutput struct{ *pulumi.OutputState } - -func (PacketCaptureFilterResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureFilterResponse)(nil)).Elem() -} - -func (o PacketCaptureFilterResponseOutput) ToPacketCaptureFilterResponseOutput() PacketCaptureFilterResponseOutput { - return o -} - -func (o PacketCaptureFilterResponseOutput) ToPacketCaptureFilterResponseOutputWithContext(ctx context.Context) PacketCaptureFilterResponseOutput { - return o -} - -// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterResponseOutput) LocalIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.LocalIPAddress }).(pulumi.StringPtrOutput) -} - -// Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterResponseOutput) LocalPort() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.LocalPort }).(pulumi.StringPtrOutput) -} - -// Protocol to be filtered on. -func (o PacketCaptureFilterResponseOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) -} - -// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterResponseOutput) RemoteIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.RemoteIPAddress }).(pulumi.StringPtrOutput) -} - -// Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. -func (o PacketCaptureFilterResponseOutput) RemotePort() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.RemotePort }).(pulumi.StringPtrOutput) -} - -type PacketCaptureFilterResponseArrayOutput struct{ *pulumi.OutputState } - -func (PacketCaptureFilterResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PacketCaptureFilterResponse)(nil)).Elem() -} - -func (o PacketCaptureFilterResponseArrayOutput) ToPacketCaptureFilterResponseArrayOutput() PacketCaptureFilterResponseArrayOutput { - return o -} - -func (o PacketCaptureFilterResponseArrayOutput) ToPacketCaptureFilterResponseArrayOutputWithContext(ctx context.Context) PacketCaptureFilterResponseArrayOutput { - return o -} - -func (o PacketCaptureFilterResponseArrayOutput) Index(i pulumi.IntInput) PacketCaptureFilterResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketCaptureFilterResponse { - return vs[0].([]PacketCaptureFilterResponse)[vs[1].(int)] - }).(PacketCaptureFilterResponseOutput) -} - -// The storage location for a packet capture session. -type PacketCaptureStorageLocation struct { - // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. - FilePath *string `pulumi:"filePath"` - // The ID of the storage account to save the packet capture session. Required if no local file path is provided. - StorageId *string `pulumi:"storageId"` - // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. - StoragePath *string `pulumi:"storagePath"` -} - -// PacketCaptureStorageLocationInput is an input type that accepts PacketCaptureStorageLocationArgs and PacketCaptureStorageLocationOutput values. -// You can construct a concrete instance of `PacketCaptureStorageLocationInput` via: -// -// PacketCaptureStorageLocationArgs{...} -type PacketCaptureStorageLocationInput interface { - pulumi.Input - - ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput - ToPacketCaptureStorageLocationOutputWithContext(context.Context) PacketCaptureStorageLocationOutput -} - -// The storage location for a packet capture session. -type PacketCaptureStorageLocationArgs struct { - // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. - FilePath pulumi.StringPtrInput `pulumi:"filePath"` - // The ID of the storage account to save the packet capture session. Required if no local file path is provided. - StorageId pulumi.StringPtrInput `pulumi:"storageId"` - // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. - StoragePath pulumi.StringPtrInput `pulumi:"storagePath"` -} - -func (PacketCaptureStorageLocationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureStorageLocation)(nil)).Elem() -} - -func (i PacketCaptureStorageLocationArgs) ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput { - return i.ToPacketCaptureStorageLocationOutputWithContext(context.Background()) -} - -func (i PacketCaptureStorageLocationArgs) ToPacketCaptureStorageLocationOutputWithContext(ctx context.Context) PacketCaptureStorageLocationOutput { - return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureStorageLocationOutput) -} - -// The storage location for a packet capture session. -type PacketCaptureStorageLocationOutput struct{ *pulumi.OutputState } - -func (PacketCaptureStorageLocationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureStorageLocation)(nil)).Elem() -} - -func (o PacketCaptureStorageLocationOutput) ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput { - return o -} - -func (o PacketCaptureStorageLocationOutput) ToPacketCaptureStorageLocationOutputWithContext(ctx context.Context) PacketCaptureStorageLocationOutput { - return o -} - -// A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. -func (o PacketCaptureStorageLocationOutput) FilePath() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.FilePath }).(pulumi.StringPtrOutput) -} - -// The ID of the storage account to save the packet capture session. Required if no local file path is provided. -func (o PacketCaptureStorageLocationOutput) StorageId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.StorageId }).(pulumi.StringPtrOutput) -} - -// The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. -func (o PacketCaptureStorageLocationOutput) StoragePath() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.StoragePath }).(pulumi.StringPtrOutput) -} - -// The storage location for a packet capture session. -type PacketCaptureStorageLocationResponse struct { - // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. - FilePath *string `pulumi:"filePath"` - // The ID of the storage account to save the packet capture session. Required if no local file path is provided. - StorageId *string `pulumi:"storageId"` - // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. - StoragePath *string `pulumi:"storagePath"` -} - -// The storage location for a packet capture session. -type PacketCaptureStorageLocationResponseOutput struct{ *pulumi.OutputState } - -func (PacketCaptureStorageLocationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PacketCaptureStorageLocationResponse)(nil)).Elem() -} - -func (o PacketCaptureStorageLocationResponseOutput) ToPacketCaptureStorageLocationResponseOutput() PacketCaptureStorageLocationResponseOutput { - return o -} - -func (o PacketCaptureStorageLocationResponseOutput) ToPacketCaptureStorageLocationResponseOutputWithContext(ctx context.Context) PacketCaptureStorageLocationResponseOutput { - return o -} - -// A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. -func (o PacketCaptureStorageLocationResponseOutput) FilePath() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.FilePath }).(pulumi.StringPtrOutput) -} - -// The ID of the storage account to save the packet capture session. Required if no local file path is provided. -func (o PacketCaptureStorageLocationResponseOutput) StorageId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.StorageId }).(pulumi.StringPtrOutput) -} - -// The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. -func (o PacketCaptureStorageLocationResponseOutput) StoragePath() pulumi.StringPtrOutput { - return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.StoragePath }).(pulumi.StringPtrOutput) -} - -// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. -type PeerExpressRouteCircuitConnectionResponse struct { - // /29 IP address space to carve out Customer addresses for tunnels. - AddressPrefix *string `pulumi:"addressPrefix"` - // The resource guid of the authorization used for the express route circuit connection. - AuthResourceGuid *string `pulumi:"authResourceGuid"` - // Express Route Circuit connection state. - CircuitConnectionStatus string `pulumi:"circuitConnectionStatus"` - // The name of the express route circuit connection resource. - ConnectionName *string `pulumi:"connectionName"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Reference to Express Route Circuit Private Peering Resource of the circuit. - ExpressRouteCircuitPeering *SubResourceResponse `pulumi:"expressRouteCircuitPeering"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Reference to Express Route Circuit Private Peering Resource of the peered circuit. - PeerExpressRouteCircuitPeering *SubResourceResponse `pulumi:"peerExpressRouteCircuitPeering"` - // The provisioning state of the peer express route circuit connection resource. - ProvisioningState string `pulumi:"provisioningState"` - // Type of the resource. - Type string `pulumi:"type"` -} - -// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. -type PeerExpressRouteCircuitConnectionResponseOutput struct{ *pulumi.OutputState } - -func (PeerExpressRouteCircuitConnectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PeerExpressRouteCircuitConnectionResponse)(nil)).Elem() -} - -func (o PeerExpressRouteCircuitConnectionResponseOutput) ToPeerExpressRouteCircuitConnectionResponseOutput() PeerExpressRouteCircuitConnectionResponseOutput { - return o -} - -func (o PeerExpressRouteCircuitConnectionResponseOutput) ToPeerExpressRouteCircuitConnectionResponseOutputWithContext(ctx context.Context) PeerExpressRouteCircuitConnectionResponseOutput { - return o -} - -// /29 IP address space to carve out Customer addresses for tunnels. -func (o PeerExpressRouteCircuitConnectionResponseOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) -} - -// The resource guid of the authorization used for the express route circuit connection. -func (o PeerExpressRouteCircuitConnectionResponseOutput) AuthResourceGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.AuthResourceGuid }).(pulumi.StringPtrOutput) -} - -// Express Route Circuit connection state. -func (o PeerExpressRouteCircuitConnectionResponseOutput) CircuitConnectionStatus() pulumi.StringOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.CircuitConnectionStatus }).(pulumi.StringOutput) -} - -// The name of the express route circuit connection resource. -func (o PeerExpressRouteCircuitConnectionResponseOutput) ConnectionName() pulumi.StringPtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.ConnectionName }).(pulumi.StringPtrOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o PeerExpressRouteCircuitConnectionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Reference to Express Route Circuit Private Peering Resource of the circuit. -func (o PeerExpressRouteCircuitConnectionResponseOutput) ExpressRouteCircuitPeering() SubResourceResponsePtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *SubResourceResponse { - return v.ExpressRouteCircuitPeering - }).(SubResourceResponsePtrOutput) -} - -// Resource ID. -func (o PeerExpressRouteCircuitConnectionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PeerExpressRouteCircuitConnectionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// Reference to Express Route Circuit Private Peering Resource of the peered circuit. -func (o PeerExpressRouteCircuitConnectionResponseOutput) PeerExpressRouteCircuitPeering() SubResourceResponsePtrOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *SubResourceResponse { - return v.PeerExpressRouteCircuitPeering - }).(SubResourceResponsePtrOutput) -} - -// The provisioning state of the peer express route circuit connection resource. -func (o PeerExpressRouteCircuitConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// Type of the resource. -func (o PeerExpressRouteCircuitConnectionResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.Type }).(pulumi.StringOutput) -} - -type PeerExpressRouteCircuitConnectionResponseArrayOutput struct{ *pulumi.OutputState } - -func (PeerExpressRouteCircuitConnectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PeerExpressRouteCircuitConnectionResponse)(nil)).Elem() -} - -func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) ToPeerExpressRouteCircuitConnectionResponseArrayOutput() PeerExpressRouteCircuitConnectionResponseArrayOutput { - return o -} - -func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) ToPeerExpressRouteCircuitConnectionResponseArrayOutputWithContext(ctx context.Context) PeerExpressRouteCircuitConnectionResponseArrayOutput { - return o -} - -func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) Index(i pulumi.IntInput) PeerExpressRouteCircuitConnectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PeerExpressRouteCircuitConnectionResponse { - return vs[0].([]PeerExpressRouteCircuitConnectionResponse)[vs[1].(int)] - }).(PeerExpressRouteCircuitConnectionResponseOutput) -} - -type PerimeterBasedAccessRule struct { - // NSP id in the ARM id format. - Id *string `pulumi:"id"` -} - -// PerimeterBasedAccessRuleInput is an input type that accepts PerimeterBasedAccessRuleArgs and PerimeterBasedAccessRuleOutput values. -// You can construct a concrete instance of `PerimeterBasedAccessRuleInput` via: -// -// PerimeterBasedAccessRuleArgs{...} -type PerimeterBasedAccessRuleInput interface { - pulumi.Input - - ToPerimeterBasedAccessRuleOutput() PerimeterBasedAccessRuleOutput - ToPerimeterBasedAccessRuleOutputWithContext(context.Context) PerimeterBasedAccessRuleOutput -} - -type PerimeterBasedAccessRuleArgs struct { - // NSP id in the ARM id format. - Id pulumi.StringPtrInput `pulumi:"id"` -} - -func (PerimeterBasedAccessRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PerimeterBasedAccessRule)(nil)).Elem() -} - -func (i PerimeterBasedAccessRuleArgs) ToPerimeterBasedAccessRuleOutput() PerimeterBasedAccessRuleOutput { - return i.ToPerimeterBasedAccessRuleOutputWithContext(context.Background()) -} - -func (i PerimeterBasedAccessRuleArgs) ToPerimeterBasedAccessRuleOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(PerimeterBasedAccessRuleOutput) -} - -// PerimeterBasedAccessRuleArrayInput is an input type that accepts PerimeterBasedAccessRuleArray and PerimeterBasedAccessRuleArrayOutput values. -// You can construct a concrete instance of `PerimeterBasedAccessRuleArrayInput` via: -// -// PerimeterBasedAccessRuleArray{ PerimeterBasedAccessRuleArgs{...} } -type PerimeterBasedAccessRuleArrayInput interface { - pulumi.Input - - ToPerimeterBasedAccessRuleArrayOutput() PerimeterBasedAccessRuleArrayOutput - ToPerimeterBasedAccessRuleArrayOutputWithContext(context.Context) PerimeterBasedAccessRuleArrayOutput -} - -type PerimeterBasedAccessRuleArray []PerimeterBasedAccessRuleInput - -func (PerimeterBasedAccessRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PerimeterBasedAccessRule)(nil)).Elem() -} - -func (i PerimeterBasedAccessRuleArray) ToPerimeterBasedAccessRuleArrayOutput() PerimeterBasedAccessRuleArrayOutput { - return i.ToPerimeterBasedAccessRuleArrayOutputWithContext(context.Background()) -} - -func (i PerimeterBasedAccessRuleArray) ToPerimeterBasedAccessRuleArrayOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PerimeterBasedAccessRuleArrayOutput) -} - -type PerimeterBasedAccessRuleOutput struct{ *pulumi.OutputState } - -func (PerimeterBasedAccessRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PerimeterBasedAccessRule)(nil)).Elem() -} - -func (o PerimeterBasedAccessRuleOutput) ToPerimeterBasedAccessRuleOutput() PerimeterBasedAccessRuleOutput { - return o -} - -func (o PerimeterBasedAccessRuleOutput) ToPerimeterBasedAccessRuleOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleOutput { - return o -} - -// NSP id in the ARM id format. -func (o PerimeterBasedAccessRuleOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PerimeterBasedAccessRule) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -type PerimeterBasedAccessRuleArrayOutput struct{ *pulumi.OutputState } - -func (PerimeterBasedAccessRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PerimeterBasedAccessRule)(nil)).Elem() -} - -func (o PerimeterBasedAccessRuleArrayOutput) ToPerimeterBasedAccessRuleArrayOutput() PerimeterBasedAccessRuleArrayOutput { - return o -} - -func (o PerimeterBasedAccessRuleArrayOutput) ToPerimeterBasedAccessRuleArrayOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleArrayOutput { - return o -} - -func (o PerimeterBasedAccessRuleArrayOutput) Index(i pulumi.IntInput) PerimeterBasedAccessRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PerimeterBasedAccessRule { - return vs[0].([]PerimeterBasedAccessRule)[vs[1].(int)] - }).(PerimeterBasedAccessRuleOutput) -} - -type PerimeterBasedAccessRuleResponse struct { - // NSP id in the ARM id format. - Id *string `pulumi:"id"` - // Location of the NSP supplied. - Location string `pulumi:"location"` - // Resource guid of the NSP supplied. - PerimeterGuid string `pulumi:"perimeterGuid"` -} - -type PerimeterBasedAccessRuleResponseOutput struct{ *pulumi.OutputState } - -func (PerimeterBasedAccessRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PerimeterBasedAccessRuleResponse)(nil)).Elem() -} - -func (o PerimeterBasedAccessRuleResponseOutput) ToPerimeterBasedAccessRuleResponseOutput() PerimeterBasedAccessRuleResponseOutput { - return o -} - -func (o PerimeterBasedAccessRuleResponseOutput) ToPerimeterBasedAccessRuleResponseOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleResponseOutput { - return o -} - -// NSP id in the ARM id format. -func (o PerimeterBasedAccessRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Location of the NSP supplied. -func (o PerimeterBasedAccessRuleResponseOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) string { return v.Location }).(pulumi.StringOutput) -} - -// Resource guid of the NSP supplied. -func (o PerimeterBasedAccessRuleResponseOutput) PerimeterGuid() pulumi.StringOutput { - return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) string { return v.PerimeterGuid }).(pulumi.StringOutput) -} - -type PerimeterBasedAccessRuleResponseArrayOutput struct{ *pulumi.OutputState } - -func (PerimeterBasedAccessRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PerimeterBasedAccessRuleResponse)(nil)).Elem() -} - -func (o PerimeterBasedAccessRuleResponseArrayOutput) ToPerimeterBasedAccessRuleResponseArrayOutput() PerimeterBasedAccessRuleResponseArrayOutput { - return o -} - -func (o PerimeterBasedAccessRuleResponseArrayOutput) ToPerimeterBasedAccessRuleResponseArrayOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleResponseArrayOutput { - return o -} - -func (o PerimeterBasedAccessRuleResponseArrayOutput) Index(i pulumi.IntInput) PerimeterBasedAccessRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PerimeterBasedAccessRuleResponse { - return vs[0].([]PerimeterBasedAccessRuleResponse)[vs[1].(int)] - }).(PerimeterBasedAccessRuleResponseOutput) -} - -// Defines contents of a web application firewall global configuration. -type PolicySettings struct { - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` - // The mode of the policy. - Mode *string `pulumi:"mode"` - // Whether to allow WAF to check request Body. - RequestBodyCheck *bool `pulumi:"requestBodyCheck"` - // The state of the policy. - State *string `pulumi:"state"` -} - -// PolicySettingsInput is an input type that accepts PolicySettingsArgs and PolicySettingsOutput values. -// You can construct a concrete instance of `PolicySettingsInput` via: -// -// PolicySettingsArgs{...} -type PolicySettingsInput interface { - pulumi.Input - - ToPolicySettingsOutput() PolicySettingsOutput - ToPolicySettingsOutputWithContext(context.Context) PolicySettingsOutput -} - -// Defines contents of a web application firewall global configuration. -type PolicySettingsArgs struct { - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb pulumi.IntPtrInput `pulumi:"fileUploadLimitInMb"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb pulumi.IntPtrInput `pulumi:"maxRequestBodySizeInKb"` - // The mode of the policy. - Mode pulumi.StringPtrInput `pulumi:"mode"` - // Whether to allow WAF to check request Body. - RequestBodyCheck pulumi.BoolPtrInput `pulumi:"requestBodyCheck"` - // The state of the policy. - State pulumi.StringPtrInput `pulumi:"state"` -} - -func (PolicySettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PolicySettings)(nil)).Elem() -} - -func (i PolicySettingsArgs) ToPolicySettingsOutput() PolicySettingsOutput { - return i.ToPolicySettingsOutputWithContext(context.Background()) -} - -func (i PolicySettingsArgs) ToPolicySettingsOutputWithContext(ctx context.Context) PolicySettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsOutput) -} - -func (i PolicySettingsArgs) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { - return i.ToPolicySettingsPtrOutputWithContext(context.Background()) -} - -func (i PolicySettingsArgs) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsOutput).ToPolicySettingsPtrOutputWithContext(ctx) -} - -// PolicySettingsPtrInput is an input type that accepts PolicySettingsArgs, PolicySettingsPtr and PolicySettingsPtrOutput values. -// You can construct a concrete instance of `PolicySettingsPtrInput` via: -// -// PolicySettingsArgs{...} -// -// or: -// -// nil -type PolicySettingsPtrInput interface { - pulumi.Input - - ToPolicySettingsPtrOutput() PolicySettingsPtrOutput - ToPolicySettingsPtrOutputWithContext(context.Context) PolicySettingsPtrOutput -} - -type policySettingsPtrType PolicySettingsArgs - -func PolicySettingsPtr(v *PolicySettingsArgs) PolicySettingsPtrInput { - return (*policySettingsPtrType)(v) -} - -func (*policySettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PolicySettings)(nil)).Elem() -} - -func (i *policySettingsPtrType) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { - return i.ToPolicySettingsPtrOutputWithContext(context.Background()) -} - -func (i *policySettingsPtrType) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsPtrOutput) -} - -// Defines contents of a web application firewall global configuration. -type PolicySettingsOutput struct{ *pulumi.OutputState } - -func (PolicySettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PolicySettings)(nil)).Elem() -} - -func (o PolicySettingsOutput) ToPolicySettingsOutput() PolicySettingsOutput { - return o -} - -func (o PolicySettingsOutput) ToPolicySettingsOutputWithContext(ctx context.Context) PolicySettingsOutput { - return o -} - -func (o PolicySettingsOutput) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { - return o.ToPolicySettingsPtrOutputWithContext(context.Background()) -} - -func (o PolicySettingsOutput) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PolicySettings) *PolicySettings { - return &v - }).(PolicySettingsPtrOutput) -} - -// Maximum file upload size in Mb for WAF. -func (o PolicySettingsOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v PolicySettings) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) -} - -// Maximum request body size in Kb for WAF. -func (o PolicySettingsOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v PolicySettings) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) -} - -// The mode of the policy. -func (o PolicySettingsOutput) Mode() pulumi.StringPtrOutput { - return o.ApplyT(func(v PolicySettings) *string { return v.Mode }).(pulumi.StringPtrOutput) -} - -// Whether to allow WAF to check request Body. -func (o PolicySettingsOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PolicySettings) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) -} - -// The state of the policy. -func (o PolicySettingsOutput) State() pulumi.StringPtrOutput { - return o.ApplyT(func(v PolicySettings) *string { return v.State }).(pulumi.StringPtrOutput) -} - -type PolicySettingsPtrOutput struct{ *pulumi.OutputState } - -func (PolicySettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PolicySettings)(nil)).Elem() -} - -func (o PolicySettingsPtrOutput) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { - return o -} - -func (o PolicySettingsPtrOutput) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { - return o -} - -func (o PolicySettingsPtrOutput) Elem() PolicySettingsOutput { - return o.ApplyT(func(v *PolicySettings) PolicySettings { - if v != nil { - return *v - } - var ret PolicySettings - return ret - }).(PolicySettingsOutput) -} - -// Maximum file upload size in Mb for WAF. -func (o PolicySettingsPtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PolicySettings) *int { - if v == nil { - return nil - } - return v.FileUploadLimitInMb - }).(pulumi.IntPtrOutput) -} - -// Maximum request body size in Kb for WAF. -func (o PolicySettingsPtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PolicySettings) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySizeInKb - }).(pulumi.IntPtrOutput) -} - -// The mode of the policy. -func (o PolicySettingsPtrOutput) Mode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PolicySettings) *string { - if v == nil { - return nil - } - return v.Mode - }).(pulumi.StringPtrOutput) -} - -// Whether to allow WAF to check request Body. -func (o PolicySettingsPtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *PolicySettings) *bool { - if v == nil { - return nil - } - return v.RequestBodyCheck - }).(pulumi.BoolPtrOutput) -} - -// The state of the policy. -func (o PolicySettingsPtrOutput) State() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PolicySettings) *string { - if v == nil { - return nil - } - return v.State - }).(pulumi.StringPtrOutput) -} - -// Defines contents of a web application firewall global configuration. -type PolicySettingsResponse struct { - // Maximum file upload size in Mb for WAF. - FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` - // Maximum request body size in Kb for WAF. - MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` - // The mode of the policy. - Mode *string `pulumi:"mode"` - // Whether to allow WAF to check request Body. - RequestBodyCheck *bool `pulumi:"requestBodyCheck"` - // The state of the policy. - State *string `pulumi:"state"` -} - -// Defines contents of a web application firewall global configuration. -type PolicySettingsResponseOutput struct{ *pulumi.OutputState } - -func (PolicySettingsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PolicySettingsResponse)(nil)).Elem() -} - -func (o PolicySettingsResponseOutput) ToPolicySettingsResponseOutput() PolicySettingsResponseOutput { - return o -} - -func (o PolicySettingsResponseOutput) ToPolicySettingsResponseOutputWithContext(ctx context.Context) PolicySettingsResponseOutput { - return o -} - -// Maximum file upload size in Mb for WAF. -func (o PolicySettingsResponseOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v PolicySettingsResponse) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) -} - -// Maximum request body size in Kb for WAF. -func (o PolicySettingsResponseOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v PolicySettingsResponse) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) -} - -// The mode of the policy. -func (o PolicySettingsResponseOutput) Mode() pulumi.StringPtrOutput { - return o.ApplyT(func(v PolicySettingsResponse) *string { return v.Mode }).(pulumi.StringPtrOutput) -} - -// Whether to allow WAF to check request Body. -func (o PolicySettingsResponseOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PolicySettingsResponse) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) -} - -// The state of the policy. -func (o PolicySettingsResponseOutput) State() pulumi.StringPtrOutput { - return o.ApplyT(func(v PolicySettingsResponse) *string { return v.State }).(pulumi.StringPtrOutput) -} - -type PolicySettingsResponsePtrOutput struct{ *pulumi.OutputState } - -func (PolicySettingsResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PolicySettingsResponse)(nil)).Elem() -} - -func (o PolicySettingsResponsePtrOutput) ToPolicySettingsResponsePtrOutput() PolicySettingsResponsePtrOutput { - return o -} - -func (o PolicySettingsResponsePtrOutput) ToPolicySettingsResponsePtrOutputWithContext(ctx context.Context) PolicySettingsResponsePtrOutput { - return o -} - -func (o PolicySettingsResponsePtrOutput) Elem() PolicySettingsResponseOutput { - return o.ApplyT(func(v *PolicySettingsResponse) PolicySettingsResponse { - if v != nil { - return *v - } - var ret PolicySettingsResponse - return ret - }).(PolicySettingsResponseOutput) -} - -// Maximum file upload size in Mb for WAF. -func (o PolicySettingsResponsePtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PolicySettingsResponse) *int { - if v == nil { - return nil - } - return v.FileUploadLimitInMb - }).(pulumi.IntPtrOutput) -} - -// Maximum request body size in Kb for WAF. -func (o PolicySettingsResponsePtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PolicySettingsResponse) *int { - if v == nil { - return nil - } - return v.MaxRequestBodySizeInKb - }).(pulumi.IntPtrOutput) -} - -// The mode of the policy. -func (o PolicySettingsResponsePtrOutput) Mode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PolicySettingsResponse) *string { - if v == nil { - return nil - } - return v.Mode - }).(pulumi.StringPtrOutput) -} - -// Whether to allow WAF to check request Body. -func (o PolicySettingsResponsePtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *PolicySettingsResponse) *bool { - if v == nil { - return nil - } - return v.RequestBodyCheck - }).(pulumi.BoolPtrOutput) -} - -// The state of the policy. -func (o PolicySettingsResponsePtrOutput) State() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PolicySettingsResponse) *string { - if v == nil { - return nil - } - return v.State - }).(pulumi.StringPtrOutput) -} - -// PrivateDnsZoneConfig resource. -type PrivateDnsZoneConfig struct { - // Name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The resource id of the private dns zone. - PrivateDnsZoneId *string `pulumi:"privateDnsZoneId"` -} - -// PrivateDnsZoneConfigInput is an input type that accepts PrivateDnsZoneConfigArgs and PrivateDnsZoneConfigOutput values. -// You can construct a concrete instance of `PrivateDnsZoneConfigInput` via: -// -// PrivateDnsZoneConfigArgs{...} -type PrivateDnsZoneConfigInput interface { - pulumi.Input - - ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput - ToPrivateDnsZoneConfigOutputWithContext(context.Context) PrivateDnsZoneConfigOutput -} - -// PrivateDnsZoneConfig resource. -type PrivateDnsZoneConfigArgs struct { - // Name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The resource id of the private dns zone. - PrivateDnsZoneId pulumi.StringPtrInput `pulumi:"privateDnsZoneId"` -} - -func (PrivateDnsZoneConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateDnsZoneConfig)(nil)).Elem() -} - -func (i PrivateDnsZoneConfigArgs) ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput { - return i.ToPrivateDnsZoneConfigOutputWithContext(context.Background()) -} - -func (i PrivateDnsZoneConfigArgs) ToPrivateDnsZoneConfigOutputWithContext(ctx context.Context) PrivateDnsZoneConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateDnsZoneConfigOutput) -} - -// PrivateDnsZoneConfigArrayInput is an input type that accepts PrivateDnsZoneConfigArray and PrivateDnsZoneConfigArrayOutput values. -// You can construct a concrete instance of `PrivateDnsZoneConfigArrayInput` via: -// -// PrivateDnsZoneConfigArray{ PrivateDnsZoneConfigArgs{...} } -type PrivateDnsZoneConfigArrayInput interface { - pulumi.Input - - ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput - ToPrivateDnsZoneConfigArrayOutputWithContext(context.Context) PrivateDnsZoneConfigArrayOutput -} - -type PrivateDnsZoneConfigArray []PrivateDnsZoneConfigInput - -func (PrivateDnsZoneConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateDnsZoneConfig)(nil)).Elem() -} - -func (i PrivateDnsZoneConfigArray) ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput { - return i.ToPrivateDnsZoneConfigArrayOutputWithContext(context.Background()) -} - -func (i PrivateDnsZoneConfigArray) ToPrivateDnsZoneConfigArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateDnsZoneConfigArrayOutput) -} - -// PrivateDnsZoneConfig resource. -type PrivateDnsZoneConfigOutput struct{ *pulumi.OutputState } - -func (PrivateDnsZoneConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateDnsZoneConfig)(nil)).Elem() -} - -func (o PrivateDnsZoneConfigOutput) ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput { - return o -} - -func (o PrivateDnsZoneConfigOutput) ToPrivateDnsZoneConfigOutputWithContext(ctx context.Context) PrivateDnsZoneConfigOutput { - return o -} - -// Name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PrivateDnsZoneConfigOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateDnsZoneConfig) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The resource id of the private dns zone. -func (o PrivateDnsZoneConfigOutput) PrivateDnsZoneId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateDnsZoneConfig) *string { return v.PrivateDnsZoneId }).(pulumi.StringPtrOutput) -} - -type PrivateDnsZoneConfigArrayOutput struct{ *pulumi.OutputState } - -func (PrivateDnsZoneConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateDnsZoneConfig)(nil)).Elem() -} - -func (o PrivateDnsZoneConfigArrayOutput) ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput { - return o -} - -func (o PrivateDnsZoneConfigArrayOutput) ToPrivateDnsZoneConfigArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigArrayOutput { - return o -} - -func (o PrivateDnsZoneConfigArrayOutput) Index(i pulumi.IntInput) PrivateDnsZoneConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateDnsZoneConfig { - return vs[0].([]PrivateDnsZoneConfig)[vs[1].(int)] - }).(PrivateDnsZoneConfigOutput) -} - -// PrivateDnsZoneConfig resource. -type PrivateDnsZoneConfigResponse struct { - // Name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The resource id of the private dns zone. - PrivateDnsZoneId *string `pulumi:"privateDnsZoneId"` - // A collection of information regarding a recordSet, holding information to identify private resources. - RecordSets []RecordSetResponse `pulumi:"recordSets"` -} - -// PrivateDnsZoneConfig resource. -type PrivateDnsZoneConfigResponseOutput struct{ *pulumi.OutputState } - -func (PrivateDnsZoneConfigResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateDnsZoneConfigResponse)(nil)).Elem() -} - -func (o PrivateDnsZoneConfigResponseOutput) ToPrivateDnsZoneConfigResponseOutput() PrivateDnsZoneConfigResponseOutput { - return o -} - -func (o PrivateDnsZoneConfigResponseOutput) ToPrivateDnsZoneConfigResponseOutputWithContext(ctx context.Context) PrivateDnsZoneConfigResponseOutput { - return o -} - -// Name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PrivateDnsZoneConfigResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateDnsZoneConfigResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The resource id of the private dns zone. -func (o PrivateDnsZoneConfigResponseOutput) PrivateDnsZoneId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateDnsZoneConfigResponse) *string { return v.PrivateDnsZoneId }).(pulumi.StringPtrOutput) -} - -// A collection of information regarding a recordSet, holding information to identify private resources. -func (o PrivateDnsZoneConfigResponseOutput) RecordSets() RecordSetResponseArrayOutput { - return o.ApplyT(func(v PrivateDnsZoneConfigResponse) []RecordSetResponse { return v.RecordSets }).(RecordSetResponseArrayOutput) -} - -type PrivateDnsZoneConfigResponseArrayOutput struct{ *pulumi.OutputState } - -func (PrivateDnsZoneConfigResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateDnsZoneConfigResponse)(nil)).Elem() -} - -func (o PrivateDnsZoneConfigResponseArrayOutput) ToPrivateDnsZoneConfigResponseArrayOutput() PrivateDnsZoneConfigResponseArrayOutput { - return o -} - -func (o PrivateDnsZoneConfigResponseArrayOutput) ToPrivateDnsZoneConfigResponseArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigResponseArrayOutput { - return o -} - -func (o PrivateDnsZoneConfigResponseArrayOutput) Index(i pulumi.IntInput) PrivateDnsZoneConfigResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateDnsZoneConfigResponse { - return vs[0].([]PrivateDnsZoneConfigResponse)[vs[1].(int)] - }).(PrivateDnsZoneConfigResponseOutput) -} - -// PrivateEndpointConnection resource. -type PrivateEndpointConnectionResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The consumer link id. - LinkIdentifier string `pulumi:"linkIdentifier"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The resource of private end point. - PrivateEndpoint PrivateEndpointResponse `pulumi:"privateEndpoint"` - // A collection of information about the state of the connection between service consumer and provider. - PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` - // The provisioning state of the private endpoint connection resource. - ProvisioningState string `pulumi:"provisioningState"` - // The resource type. - Type string `pulumi:"type"` -} - -// Defaults sets the appropriate defaults for PrivateEndpointConnectionResponse -func (val *PrivateEndpointConnectionResponse) Defaults() *PrivateEndpointConnectionResponse { - if val == nil { - return nil - } - tmp := *val - tmp.PrivateEndpoint = *tmp.PrivateEndpoint.Defaults() - - return &tmp -} - -// PrivateEndpointConnection resource. -type PrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } - -func (PrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateEndpointConnectionResponse)(nil)).Elem() -} - -func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutput() PrivateEndpointConnectionResponseOutput { - return o -} - -func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseOutput { - return o -} - -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateEndpointConnectionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Resource ID. -func (o PrivateEndpointConnectionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The consumer link id. -func (o PrivateEndpointConnectionResponseOutput) LinkIdentifier() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.LinkIdentifier }).(pulumi.StringOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PrivateEndpointConnectionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The resource of private end point. -func (o PrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponseOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) PrivateEndpointResponse { return v.PrivateEndpoint }).(PrivateEndpointResponseOutput) -} - -// A collection of information about the state of the connection between service consumer and provider. -func (o PrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) *PrivateLinkServiceConnectionStateResponse { - return v.PrivateLinkServiceConnectionState - }).(PrivateLinkServiceConnectionStateResponsePtrOutput) -} - -// The provisioning state of the private endpoint connection resource. -func (o PrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The resource type. -func (o PrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) -} - -type PrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } - -func (PrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateEndpointConnectionResponse)(nil)).Elem() -} - -func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutput() PrivateEndpointConnectionResponseArrayOutput { - return o -} - -func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseArrayOutput { - return o -} - -func (o PrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointConnectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointConnectionResponse { - return vs[0].([]PrivateEndpointConnectionResponse)[vs[1].(int)] - }).(PrivateEndpointConnectionResponseOutput) -} - -// Private endpoint resource. -type PrivateEndpointResponse struct { - // An array of custom dns configurations. - CustomDnsConfigs []CustomDnsConfigPropertiesFormatResponse `pulumi:"customDnsConfigs"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // The extended location of the load balancer. - ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. - ManualPrivateLinkServiceConnections []PrivateLinkServiceConnectionResponse `pulumi:"manualPrivateLinkServiceConnections"` - // Resource name. - Name string `pulumi:"name"` - // An array of references to the network interfaces created for this private endpoint. - NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` - // A grouping of information about the connection to the remote resource. - PrivateLinkServiceConnections []PrivateLinkServiceConnectionResponse `pulumi:"privateLinkServiceConnections"` - // The provisioning state of the private endpoint resource. - ProvisioningState string `pulumi:"provisioningState"` - // The ID of the subnet from which the private IP will be allocated. - Subnet *SubnetResponse `pulumi:"subnet"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` -} - -// Defaults sets the appropriate defaults for PrivateEndpointResponse -func (val *PrivateEndpointResponse) Defaults() *PrivateEndpointResponse { - if val == nil { - return nil - } - tmp := *val - tmp.Subnet = tmp.Subnet.Defaults() - - return &tmp -} - -// Private endpoint resource. -type PrivateEndpointResponseOutput struct{ *pulumi.OutputState } - -func (PrivateEndpointResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateEndpointResponse)(nil)).Elem() -} - -func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutput() PrivateEndpointResponseOutput { - return o -} - -func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutputWithContext(ctx context.Context) PrivateEndpointResponseOutput { - return o -} - -// An array of custom dns configurations. -func (o PrivateEndpointResponseOutput) CustomDnsConfigs() CustomDnsConfigPropertiesFormatResponseArrayOutput { - return o.ApplyT(func(v PrivateEndpointResponse) []CustomDnsConfigPropertiesFormatResponse { return v.CustomDnsConfigs }).(CustomDnsConfigPropertiesFormatResponseArrayOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateEndpointResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// The extended location of the load balancer. -func (o PrivateEndpointResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { - return o.ApplyT(func(v PrivateEndpointResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) -} - -// Resource ID. -func (o PrivateEndpointResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateEndpointResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Resource location. -func (o PrivateEndpointResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateEndpointResponse) *string { return v.Location }).(pulumi.StringPtrOutput) -} - -// A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. -func (o PrivateEndpointResponseOutput) ManualPrivateLinkServiceConnections() PrivateLinkServiceConnectionResponseArrayOutput { - return o.ApplyT(func(v PrivateEndpointResponse) []PrivateLinkServiceConnectionResponse { - return v.ManualPrivateLinkServiceConnections - }).(PrivateLinkServiceConnectionResponseArrayOutput) -} - -// Resource name. -func (o PrivateEndpointResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Name }).(pulumi.StringOutput) -} - -// An array of references to the network interfaces created for this private endpoint. -func (o PrivateEndpointResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { - return o.ApplyT(func(v PrivateEndpointResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) -} - -// A grouping of information about the connection to the remote resource. -func (o PrivateEndpointResponseOutput) PrivateLinkServiceConnections() PrivateLinkServiceConnectionResponseArrayOutput { - return o.ApplyT(func(v PrivateEndpointResponse) []PrivateLinkServiceConnectionResponse { - return v.PrivateLinkServiceConnections - }).(PrivateLinkServiceConnectionResponseArrayOutput) -} - -// The provisioning state of the private endpoint resource. -func (o PrivateEndpointResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The ID of the subnet from which the private IP will be allocated. -func (o PrivateEndpointResponseOutput) Subnet() SubnetResponsePtrOutput { - return o.ApplyT(func(v PrivateEndpointResponse) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) -} - -// Resource tags. -func (o PrivateEndpointResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v PrivateEndpointResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) -} - -// Resource type. -func (o PrivateEndpointResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Type }).(pulumi.StringOutput) -} - -type PrivateEndpointResponseArrayOutput struct{ *pulumi.OutputState } - -func (PrivateEndpointResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateEndpointResponse)(nil)).Elem() -} - -func (o PrivateEndpointResponseArrayOutput) ToPrivateEndpointResponseArrayOutput() PrivateEndpointResponseArrayOutput { - return o -} - -func (o PrivateEndpointResponseArrayOutput) ToPrivateEndpointResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointResponseArrayOutput { - return o -} - -func (o PrivateEndpointResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointResponse { - return vs[0].([]PrivateEndpointResponse)[vs[1].(int)] - }).(PrivateEndpointResponseOutput) -} - -// Private link service resource. -type PrivateLinkServiceType struct { - // The auto-approval list of the private link service. - AutoApproval *PrivateLinkServicePropertiesAutoApproval `pulumi:"autoApproval"` - // Whether the private link service is enabled for proxy protocol or not. - EnableProxyProtocol *bool `pulumi:"enableProxyProtocol"` - // The extended location of the load balancer. - ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` - // The list of Fqdn. - Fqdns []string `pulumi:"fqdns"` - // Resource ID. - Id *string `pulumi:"id"` - // An array of private link service IP configurations. - IpConfigurations []PrivateLinkServiceIpConfiguration `pulumi:"ipConfigurations"` - // An array of references to the load balancer IP configurations. - LoadBalancerFrontendIpConfigurations []FrontendIPConfiguration `pulumi:"loadBalancerFrontendIpConfigurations"` - // Resource location. - Location *string `pulumi:"location"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // The visibility list of the private link service. - Visibility *PrivateLinkServicePropertiesVisibility `pulumi:"visibility"` -} - -// PrivateLinkServiceTypeInput is an input type that accepts PrivateLinkServiceTypeArgs and PrivateLinkServiceTypeOutput values. -// You can construct a concrete instance of `PrivateLinkServiceTypeInput` via: -// -// PrivateLinkServiceTypeArgs{...} -type PrivateLinkServiceTypeInput interface { - pulumi.Input - - ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput - ToPrivateLinkServiceTypeOutputWithContext(context.Context) PrivateLinkServiceTypeOutput -} - -// Private link service resource. -type PrivateLinkServiceTypeArgs struct { - // The auto-approval list of the private link service. - AutoApproval PrivateLinkServicePropertiesAutoApprovalPtrInput `pulumi:"autoApproval"` - // Whether the private link service is enabled for proxy protocol or not. - EnableProxyProtocol pulumi.BoolPtrInput `pulumi:"enableProxyProtocol"` - // The extended location of the load balancer. - ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` - // The list of Fqdn. - Fqdns pulumi.StringArrayInput `pulumi:"fqdns"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // An array of private link service IP configurations. - IpConfigurations PrivateLinkServiceIpConfigurationArrayInput `pulumi:"ipConfigurations"` - // An array of references to the load balancer IP configurations. - LoadBalancerFrontendIpConfigurations FrontendIPConfigurationArrayInput `pulumi:"loadBalancerFrontendIpConfigurations"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` - // The visibility list of the private link service. - Visibility PrivateLinkServicePropertiesVisibilityPtrInput `pulumi:"visibility"` -} - -func (PrivateLinkServiceTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceType)(nil)).Elem() -} - -func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput { - return i.ToPrivateLinkServiceTypeOutputWithContext(context.Background()) -} - -func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypeOutputWithContext(ctx context.Context) PrivateLinkServiceTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypeOutput) -} - -func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { - return i.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) -} - -func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypeOutput).ToPrivateLinkServiceTypePtrOutputWithContext(ctx) -} - -// PrivateLinkServiceTypePtrInput is an input type that accepts PrivateLinkServiceTypeArgs, PrivateLinkServiceTypePtr and PrivateLinkServiceTypePtrOutput values. -// You can construct a concrete instance of `PrivateLinkServiceTypePtrInput` via: -// -// PrivateLinkServiceTypeArgs{...} -// -// or: -// -// nil -type PrivateLinkServiceTypePtrInput interface { - pulumi.Input - - ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput - ToPrivateLinkServiceTypePtrOutputWithContext(context.Context) PrivateLinkServiceTypePtrOutput -} - -type privateLinkServiceTypePtrType PrivateLinkServiceTypeArgs - -func PrivateLinkServiceTypePtr(v *PrivateLinkServiceTypeArgs) PrivateLinkServiceTypePtrInput { - return (*privateLinkServiceTypePtrType)(v) -} - -func (*privateLinkServiceTypePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceType)(nil)).Elem() -} - -func (i *privateLinkServiceTypePtrType) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { - return i.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) -} - -func (i *privateLinkServiceTypePtrType) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypePtrOutput) -} - -// Private link service resource. -type PrivateLinkServiceTypeOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServiceTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceType)(nil)).Elem() + +func (NetworkSecurityGroupResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkSecurityGroupResponse)(nil)).Elem() } -func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput { +func (o NetworkSecurityGroupResponseOutput) ToNetworkSecurityGroupResponseOutput() NetworkSecurityGroupResponseOutput { return o } -func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypeOutputWithContext(ctx context.Context) PrivateLinkServiceTypeOutput { +func (o NetworkSecurityGroupResponseOutput) ToNetworkSecurityGroupResponseOutputWithContext(ctx context.Context) NetworkSecurityGroupResponseOutput { return o } -func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { - return o.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) +// The default security rules of network security group. +func (o NetworkSecurityGroupResponseOutput) DefaultSecurityRules() SecurityRuleResponseArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) []SecurityRuleResponse { return v.DefaultSecurityRules }).(SecurityRuleResponseArrayOutput) } -func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServiceType) *PrivateLinkServiceType { - return &v - }).(PrivateLinkServiceTypePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o NetworkSecurityGroupResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Etag }).(pulumi.StringOutput) } -// The auto-approval list of the private link service. -func (o PrivateLinkServiceTypeOutput) AutoApproval() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *PrivateLinkServicePropertiesAutoApproval { return v.AutoApproval }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) +// A collection of references to flow log resources. +func (o NetworkSecurityGroupResponseOutput) FlowLogs() FlowLogResponseArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) []FlowLogResponse { return v.FlowLogs }).(FlowLogResponseArrayOutput) } -// Whether the private link service is enabled for proxy protocol or not. -func (o PrivateLinkServiceTypeOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *bool { return v.EnableProxyProtocol }).(pulumi.BoolPtrOutput) +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o NetworkSecurityGroupResponseOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) *bool { return v.FlushConnection }).(pulumi.BoolPtrOutput) } -// The extended location of the load balancer. -func (o PrivateLinkServiceTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) +// Resource ID. +func (o NetworkSecurityGroupResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The list of Fqdn. -func (o PrivateLinkServiceTypeOutput) Fqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceType) []string { return v.Fqdns }).(pulumi.StringArrayOutput) +// Resource location. +func (o NetworkSecurityGroupResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o PrivateLinkServiceTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *string { return v.Id }).(pulumi.StringPtrOutput) +// Resource name. +func (o NetworkSecurityGroupResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Name }).(pulumi.StringOutput) } -// An array of private link service IP configurations. -func (o PrivateLinkServiceTypeOutput) IpConfigurations() PrivateLinkServiceIpConfigurationArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceType) []PrivateLinkServiceIpConfiguration { return v.IpConfigurations }).(PrivateLinkServiceIpConfigurationArrayOutput) +// A collection of references to network interfaces. +func (o NetworkSecurityGroupResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) } -// An array of references to the load balancer IP configurations. -func (o PrivateLinkServiceTypeOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceType) []FrontendIPConfiguration { - return v.LoadBalancerFrontendIpConfigurations - }).(FrontendIPConfigurationArrayOutput) +// The provisioning state of the network security group resource. +func (o NetworkSecurityGroupResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Resource location. -func (o PrivateLinkServiceTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *string { return v.Location }).(pulumi.StringPtrOutput) +// The resource GUID property of the network security group resource. +func (o NetworkSecurityGroupResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + +// A collection of security rules of the network security group. +func (o NetworkSecurityGroupResponseOutput) SecurityRules() SecurityRuleResponseArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) []SecurityRuleResponse { return v.SecurityRules }).(SecurityRuleResponseArrayOutput) +} + +// A collection of references to subnets. +func (o NetworkSecurityGroupResponseOutput) Subnets() SubnetResponseArrayOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) } // Resource tags. -func (o PrivateLinkServiceTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v PrivateLinkServiceType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +func (o NetworkSecurityGroupResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// The visibility list of the private link service. -func (o PrivateLinkServiceTypeOutput) Visibility() PrivateLinkServicePropertiesVisibilityPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceType) *PrivateLinkServicePropertiesVisibility { return v.Visibility }).(PrivateLinkServicePropertiesVisibilityPtrOutput) +// Resource type. +func (o NetworkSecurityGroupResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v NetworkSecurityGroupResponse) string { return v.Type }).(pulumi.StringOutput) } -type PrivateLinkServiceTypePtrOutput struct{ *pulumi.OutputState } +type NetworkSecurityGroupResponsePtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceTypePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceType)(nil)).Elem() +func (NetworkSecurityGroupResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkSecurityGroupResponse)(nil)).Elem() } -func (o PrivateLinkServiceTypePtrOutput) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { +func (o NetworkSecurityGroupResponsePtrOutput) ToNetworkSecurityGroupResponsePtrOutput() NetworkSecurityGroupResponsePtrOutput { return o } -func (o PrivateLinkServiceTypePtrOutput) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { +func (o NetworkSecurityGroupResponsePtrOutput) ToNetworkSecurityGroupResponsePtrOutputWithContext(ctx context.Context) NetworkSecurityGroupResponsePtrOutput { return o } -func (o PrivateLinkServiceTypePtrOutput) Elem() PrivateLinkServiceTypeOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) PrivateLinkServiceType { +func (o NetworkSecurityGroupResponsePtrOutput) Elem() NetworkSecurityGroupResponseOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) NetworkSecurityGroupResponse { if v != nil { return *v } - var ret PrivateLinkServiceType + var ret NetworkSecurityGroupResponse return ret - }).(PrivateLinkServiceTypeOutput) + }).(NetworkSecurityGroupResponseOutput) } -// The auto-approval list of the private link service. -func (o PrivateLinkServiceTypePtrOutput) AutoApproval() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *PrivateLinkServicePropertiesAutoApproval { +// The default security rules of network security group. +func (o NetworkSecurityGroupResponsePtrOutput) DefaultSecurityRules() SecurityRuleResponseArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SecurityRuleResponse { if v == nil { return nil } - return v.AutoApproval - }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) + return v.DefaultSecurityRules + }).(SecurityRuleResponseArrayOutput) } -// Whether the private link service is enabled for proxy protocol or not. -func (o PrivateLinkServiceTypePtrOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *bool { +// A unique read-only string that changes whenever the resource is updated. +func (o NetworkSecurityGroupResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } - return v.EnableProxyProtocol - }).(pulumi.BoolPtrOutput) + return &v.Etag + }).(pulumi.StringPtrOutput) } -// The extended location of the load balancer. -func (o PrivateLinkServiceTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *ExtendedLocation { +// A collection of references to flow log resources. +func (o NetworkSecurityGroupResponsePtrOutput) FlowLogs() FlowLogResponseArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) []FlowLogResponse { if v == nil { return nil } - return v.ExtendedLocation - }).(ExtendedLocationPtrOutput) + return v.FlowLogs + }).(FlowLogResponseArrayOutput) } -// The list of Fqdn. -func (o PrivateLinkServiceTypePtrOutput) Fqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) []string { +// When enabled, flows created from Network Security Group connections will be re-evaluated when rules are updates. Initial enablement will trigger re-evaluation. +func (o NetworkSecurityGroupResponsePtrOutput) FlushConnection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *bool { if v == nil { return nil } - return v.Fqdns - }).(pulumi.StringArrayOutput) + return v.FlushConnection + }).(pulumi.BoolPtrOutput) } // Resource ID. -func (o PrivateLinkServiceTypePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *string { +func (o NetworkSecurityGroupResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } @@ -49849,6899 +50651,5851 @@ func (o PrivateLinkServiceTypePtrOutput) Id() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// An array of private link service IP configurations. -func (o PrivateLinkServiceTypePtrOutput) IpConfigurations() PrivateLinkServiceIpConfigurationArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) []PrivateLinkServiceIpConfiguration { +// Resource location. +func (o NetworkSecurityGroupResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } - return v.IpConfigurations - }).(PrivateLinkServiceIpConfigurationArrayOutput) + return v.Location + }).(pulumi.StringPtrOutput) } -// An array of references to the load balancer IP configurations. -func (o PrivateLinkServiceTypePtrOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) []FrontendIPConfiguration { +// Resource name. +func (o NetworkSecurityGroupResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } - return v.LoadBalancerFrontendIpConfigurations - }).(FrontendIPConfigurationArrayOutput) + return &v.Name + }).(pulumi.StringPtrOutput) } -// Resource location. -func (o PrivateLinkServiceTypePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *string { +// A collection of references to network interfaces. +func (o NetworkSecurityGroupResponsePtrOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) []NetworkInterfaceResponse { if v == nil { return nil } - return v.Location - }).(pulumi.StringPtrOutput) + return v.NetworkInterfaces + }).(NetworkInterfaceResponseArrayOutput) } -// Resource tags. -func (o PrivateLinkServiceTypePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) map[string]string { +// The provisioning state of the network security group resource. +func (o NetworkSecurityGroupResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } - return v.Tags - }).(pulumi.StringMapOutput) + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) } -// The visibility list of the private link service. -func (o PrivateLinkServiceTypePtrOutput) Visibility() PrivateLinkServicePropertiesVisibilityPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceType) *PrivateLinkServicePropertiesVisibility { +// The resource GUID property of the network security group resource. +func (o NetworkSecurityGroupResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { if v == nil { return nil } - return v.Visibility - }).(PrivateLinkServicePropertiesVisibilityPtrOutput) -} - -// PrivateLinkServiceConnection resource. -type PrivateLinkServiceConnection struct { - // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. - GroupIds []string `pulumi:"groupIds"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // A collection of read-only information about the state of the connection to the remote resource. - PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `pulumi:"privateLinkServiceConnectionState"` - // The resource id of private link service. - PrivateLinkServiceId *string `pulumi:"privateLinkServiceId"` - // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. - RequestMessage *string `pulumi:"requestMessage"` + return &v.ResourceGuid + }).(pulumi.StringPtrOutput) } -// PrivateLinkServiceConnectionInput is an input type that accepts PrivateLinkServiceConnectionArgs and PrivateLinkServiceConnectionOutput values. -// You can construct a concrete instance of `PrivateLinkServiceConnectionInput` via: -// -// PrivateLinkServiceConnectionArgs{...} -type PrivateLinkServiceConnectionInput interface { - pulumi.Input - - ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput - ToPrivateLinkServiceConnectionOutputWithContext(context.Context) PrivateLinkServiceConnectionOutput +// A collection of security rules of the network security group. +func (o NetworkSecurityGroupResponsePtrOutput) SecurityRules() SecurityRuleResponseArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SecurityRuleResponse { + if v == nil { + return nil + } + return v.SecurityRules + }).(SecurityRuleResponseArrayOutput) } -// PrivateLinkServiceConnection resource. -type PrivateLinkServiceConnectionArgs struct { - // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. - GroupIds pulumi.StringArrayInput `pulumi:"groupIds"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // A collection of read-only information about the state of the connection to the remote resource. - PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStatePtrInput `pulumi:"privateLinkServiceConnectionState"` - // The resource id of private link service. - PrivateLinkServiceId pulumi.StringPtrInput `pulumi:"privateLinkServiceId"` - // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. - RequestMessage pulumi.StringPtrInput `pulumi:"requestMessage"` +// A collection of references to subnets. +func (o NetworkSecurityGroupResponsePtrOutput) Subnets() SubnetResponseArrayOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) []SubnetResponse { + if v == nil { + return nil + } + return v.Subnets + }).(SubnetResponseArrayOutput) } -func (PrivateLinkServiceConnectionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnection)(nil)).Elem() +// Resource tags. +func (o NetworkSecurityGroupResponsePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -func (i PrivateLinkServiceConnectionArgs) ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput { - return i.ToPrivateLinkServiceConnectionOutputWithContext(context.Background()) +// Resource type. +func (o NetworkSecurityGroupResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkSecurityGroupResponse) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) } -func (i PrivateLinkServiceConnectionArgs) ToPrivateLinkServiceConnectionOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionOutput) +// An NS record. +type NsRecord struct { + // The name server name for this NS record. + Nsdname *string `pulumi:"nsdname"` } -// PrivateLinkServiceConnectionArrayInput is an input type that accepts PrivateLinkServiceConnectionArray and PrivateLinkServiceConnectionArrayOutput values. -// You can construct a concrete instance of `PrivateLinkServiceConnectionArrayInput` via: +// NsRecordInput is an input type that accepts NsRecordArgs and NsRecordOutput values. +// You can construct a concrete instance of `NsRecordInput` via: // -// PrivateLinkServiceConnectionArray{ PrivateLinkServiceConnectionArgs{...} } -type PrivateLinkServiceConnectionArrayInput interface { +// NsRecordArgs{...} +type NsRecordInput interface { pulumi.Input - ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput - ToPrivateLinkServiceConnectionArrayOutputWithContext(context.Context) PrivateLinkServiceConnectionArrayOutput -} - -type PrivateLinkServiceConnectionArray []PrivateLinkServiceConnectionInput - -func (PrivateLinkServiceConnectionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceConnection)(nil)).Elem() -} - -func (i PrivateLinkServiceConnectionArray) ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput { - return i.ToPrivateLinkServiceConnectionArrayOutputWithContext(context.Background()) + ToNsRecordOutput() NsRecordOutput + ToNsRecordOutputWithContext(context.Context) NsRecordOutput } -func (i PrivateLinkServiceConnectionArray) ToPrivateLinkServiceConnectionArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionArrayOutput) +// An NS record. +type NsRecordArgs struct { + // The name server name for this NS record. + Nsdname pulumi.StringPtrInput `pulumi:"nsdname"` } -// PrivateLinkServiceConnection resource. -type PrivateLinkServiceConnectionOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServiceConnectionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnection)(nil)).Elem() +func (NsRecordArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NsRecord)(nil)).Elem() } -func (o PrivateLinkServiceConnectionOutput) ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput { - return o +func (i NsRecordArgs) ToNsRecordOutput() NsRecordOutput { + return i.ToNsRecordOutputWithContext(context.Background()) } -func (o PrivateLinkServiceConnectionOutput) ToPrivateLinkServiceConnectionOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionOutput { - return o +func (i NsRecordArgs) ToNsRecordOutputWithContext(ctx context.Context) NsRecordOutput { + return pulumi.ToOutputWithContext(ctx, i).(NsRecordOutput) } -// The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. -func (o PrivateLinkServiceConnectionOutput) GroupIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) []string { return v.GroupIds }).(pulumi.StringArrayOutput) -} +// NsRecordArrayInput is an input type that accepts NsRecordArray and NsRecordArrayOutput values. +// You can construct a concrete instance of `NsRecordArrayInput` via: +// +// NsRecordArray{ NsRecordArgs{...} } +type NsRecordArrayInput interface { + pulumi.Input -// Resource ID. -func (o PrivateLinkServiceConnectionOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.Id }).(pulumi.StringPtrOutput) + ToNsRecordArrayOutput() NsRecordArrayOutput + ToNsRecordArrayOutputWithContext(context.Context) NsRecordArrayOutput } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PrivateLinkServiceConnectionOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.Name }).(pulumi.StringPtrOutput) -} +type NsRecordArray []NsRecordInput -// A collection of read-only information about the state of the connection to the remote resource. -func (o PrivateLinkServiceConnectionOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStatePtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) *PrivateLinkServiceConnectionState { - return v.PrivateLinkServiceConnectionState - }).(PrivateLinkServiceConnectionStatePtrOutput) +func (NsRecordArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NsRecord)(nil)).Elem() } -// The resource id of private link service. -func (o PrivateLinkServiceConnectionOutput) PrivateLinkServiceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.PrivateLinkServiceId }).(pulumi.StringPtrOutput) +func (i NsRecordArray) ToNsRecordArrayOutput() NsRecordArrayOutput { + return i.ToNsRecordArrayOutputWithContext(context.Background()) } -// A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. -func (o PrivateLinkServiceConnectionOutput) RequestMessage() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.RequestMessage }).(pulumi.StringPtrOutput) +func (i NsRecordArray) ToNsRecordArrayOutputWithContext(ctx context.Context) NsRecordArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NsRecordArrayOutput) } -type PrivateLinkServiceConnectionArrayOutput struct{ *pulumi.OutputState } +// An NS record. +type NsRecordOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceConnection)(nil)).Elem() +func (NsRecordOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NsRecord)(nil)).Elem() } -func (o PrivateLinkServiceConnectionArrayOutput) ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput { +func (o NsRecordOutput) ToNsRecordOutput() NsRecordOutput { return o } -func (o PrivateLinkServiceConnectionArrayOutput) ToPrivateLinkServiceConnectionArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionArrayOutput { +func (o NsRecordOutput) ToNsRecordOutputWithContext(ctx context.Context) NsRecordOutput { return o } -func (o PrivateLinkServiceConnectionArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceConnectionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceConnection { - return vs[0].([]PrivateLinkServiceConnection)[vs[1].(int)] - }).(PrivateLinkServiceConnectionOutput) -} - -// PrivateLinkServiceConnection resource. -type PrivateLinkServiceConnectionResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. - GroupIds []string `pulumi:"groupIds"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // A collection of read-only information about the state of the connection to the remote resource. - PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` - // The resource id of private link service. - PrivateLinkServiceId *string `pulumi:"privateLinkServiceId"` - // The provisioning state of the private link service connection resource. - ProvisioningState string `pulumi:"provisioningState"` - // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. - RequestMessage *string `pulumi:"requestMessage"` - // The resource type. - Type string `pulumi:"type"` +// The name server name for this NS record. +func (o NsRecordOutput) Nsdname() pulumi.StringPtrOutput { + return o.ApplyT(func(v NsRecord) *string { return v.Nsdname }).(pulumi.StringPtrOutput) } -// PrivateLinkServiceConnection resource. -type PrivateLinkServiceConnectionResponseOutput struct{ *pulumi.OutputState } +type NsRecordArrayOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionResponse)(nil)).Elem() +func (NsRecordArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NsRecord)(nil)).Elem() } -func (o PrivateLinkServiceConnectionResponseOutput) ToPrivateLinkServiceConnectionResponseOutput() PrivateLinkServiceConnectionResponseOutput { +func (o NsRecordArrayOutput) ToNsRecordArrayOutput() NsRecordArrayOutput { return o } -func (o PrivateLinkServiceConnectionResponseOutput) ToPrivateLinkServiceConnectionResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionResponseOutput { +func (o NsRecordArrayOutput) ToNsRecordArrayOutputWithContext(ctx context.Context) NsRecordArrayOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateLinkServiceConnectionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. -func (o PrivateLinkServiceConnectionResponseOutput) GroupIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) []string { return v.GroupIds }).(pulumi.StringArrayOutput) -} - -// Resource ID. -func (o PrivateLinkServiceConnectionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o NsRecordArrayOutput) Index(i pulumi.IntInput) NsRecordOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NsRecord { + return vs[0].([]NsRecord)[vs[1].(int)] + }).(NsRecordOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o PrivateLinkServiceConnectionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// An NS record. +type NsRecordResponse struct { + // The name server name for this NS record. + Nsdname *string `pulumi:"nsdname"` } -// A collection of read-only information about the state of the connection to the remote resource. -func (o PrivateLinkServiceConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *PrivateLinkServiceConnectionStateResponse { - return v.PrivateLinkServiceConnectionState - }).(PrivateLinkServiceConnectionStateResponsePtrOutput) -} +// An NS record. +type NsRecordResponseOutput struct{ *pulumi.OutputState } -// The resource id of private link service. -func (o PrivateLinkServiceConnectionResponseOutput) PrivateLinkServiceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.PrivateLinkServiceId }).(pulumi.StringPtrOutput) +func (NsRecordResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NsRecordResponse)(nil)).Elem() } -// The provisioning state of the private link service connection resource. -func (o PrivateLinkServiceConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o NsRecordResponseOutput) ToNsRecordResponseOutput() NsRecordResponseOutput { + return o } -// A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. -func (o PrivateLinkServiceConnectionResponseOutput) RequestMessage() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.RequestMessage }).(pulumi.StringPtrOutput) +func (o NsRecordResponseOutput) ToNsRecordResponseOutputWithContext(ctx context.Context) NsRecordResponseOutput { + return o } -// The resource type. -func (o PrivateLinkServiceConnectionResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.Type }).(pulumi.StringOutput) +// The name server name for this NS record. +func (o NsRecordResponseOutput) Nsdname() pulumi.StringPtrOutput { + return o.ApplyT(func(v NsRecordResponse) *string { return v.Nsdname }).(pulumi.StringPtrOutput) } -type PrivateLinkServiceConnectionResponseArrayOutput struct{ *pulumi.OutputState } +type NsRecordResponseArrayOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceConnectionResponse)(nil)).Elem() +func (NsRecordResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NsRecordResponse)(nil)).Elem() } -func (o PrivateLinkServiceConnectionResponseArrayOutput) ToPrivateLinkServiceConnectionResponseArrayOutput() PrivateLinkServiceConnectionResponseArrayOutput { +func (o NsRecordResponseArrayOutput) ToNsRecordResponseArrayOutput() NsRecordResponseArrayOutput { return o } -func (o PrivateLinkServiceConnectionResponseArrayOutput) ToPrivateLinkServiceConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionResponseArrayOutput { +func (o NsRecordResponseArrayOutput) ToNsRecordResponseArrayOutputWithContext(ctx context.Context) NsRecordResponseArrayOutput { return o } -func (o PrivateLinkServiceConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceConnectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceConnectionResponse { - return vs[0].([]PrivateLinkServiceConnectionResponse)[vs[1].(int)] - }).(PrivateLinkServiceConnectionResponseOutput) +func (o NsRecordResponseArrayOutput) Index(i pulumi.IntInput) NsRecordResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NsRecordResponse { + return vs[0].([]NsRecordResponse)[vs[1].(int)] + }).(NsRecordResponseOutput) } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionState struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionsRequired *string `pulumi:"actionsRequired"` - // The reason for approval/rejection of the connection. - Description *string `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status *string `pulumi:"status"` +// Office365 breakout categories. +type O365BreakOutCategoryPolicies struct { + // Flag to control allow category. + Allow *bool `pulumi:"allow"` + // Flag to control default category. + Default *bool `pulumi:"default"` + // Flag to control optimize category. + Optimize *bool `pulumi:"optimize"` } -// PrivateLinkServiceConnectionStateInput is an input type that accepts PrivateLinkServiceConnectionStateArgs and PrivateLinkServiceConnectionStateOutput values. -// You can construct a concrete instance of `PrivateLinkServiceConnectionStateInput` via: +// O365BreakOutCategoryPoliciesInput is an input type that accepts O365BreakOutCategoryPoliciesArgs and O365BreakOutCategoryPoliciesOutput values. +// You can construct a concrete instance of `O365BreakOutCategoryPoliciesInput` via: // -// PrivateLinkServiceConnectionStateArgs{...} -type PrivateLinkServiceConnectionStateInput interface { +// O365BreakOutCategoryPoliciesArgs{...} +type O365BreakOutCategoryPoliciesInput interface { pulumi.Input - ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput - ToPrivateLinkServiceConnectionStateOutputWithContext(context.Context) PrivateLinkServiceConnectionStateOutput + ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput + ToO365BreakOutCategoryPoliciesOutputWithContext(context.Context) O365BreakOutCategoryPoliciesOutput } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateArgs struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionsRequired pulumi.StringPtrInput `pulumi:"actionsRequired"` - // The reason for approval/rejection of the connection. - Description pulumi.StringPtrInput `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status pulumi.StringPtrInput `pulumi:"status"` +// Office365 breakout categories. +type O365BreakOutCategoryPoliciesArgs struct { + // Flag to control allow category. + Allow pulumi.BoolPtrInput `pulumi:"allow"` + // Flag to control default category. + Default pulumi.BoolPtrInput `pulumi:"default"` + // Flag to control optimize category. + Optimize pulumi.BoolPtrInput `pulumi:"optimize"` } -func (PrivateLinkServiceConnectionStateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() +func (O365BreakOutCategoryPoliciesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*O365BreakOutCategoryPolicies)(nil)).Elem() } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { - return i.ToPrivateLinkServiceConnectionStateOutputWithContext(context.Background()) +func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput { + return i.ToO365BreakOutCategoryPoliciesOutputWithContext(context.Background()) } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput) +func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesOutput) } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { - return i.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) +func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { + return i.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput).ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx) +func (i O365BreakOutCategoryPoliciesArgs) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesOutput).ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx) } -// PrivateLinkServiceConnectionStatePtrInput is an input type that accepts PrivateLinkServiceConnectionStateArgs, PrivateLinkServiceConnectionStatePtr and PrivateLinkServiceConnectionStatePtrOutput values. -// You can construct a concrete instance of `PrivateLinkServiceConnectionStatePtrInput` via: +// O365BreakOutCategoryPoliciesPtrInput is an input type that accepts O365BreakOutCategoryPoliciesArgs, O365BreakOutCategoryPoliciesPtr and O365BreakOutCategoryPoliciesPtrOutput values. +// You can construct a concrete instance of `O365BreakOutCategoryPoliciesPtrInput` via: // -// PrivateLinkServiceConnectionStateArgs{...} +// O365BreakOutCategoryPoliciesArgs{...} // // or: // // nil -type PrivateLinkServiceConnectionStatePtrInput interface { +type O365BreakOutCategoryPoliciesPtrInput interface { pulumi.Input - ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput - ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Context) PrivateLinkServiceConnectionStatePtrOutput + ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput + ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Context) O365BreakOutCategoryPoliciesPtrOutput } -type privateLinkServiceConnectionStatePtrType PrivateLinkServiceConnectionStateArgs +type o365breakOutCategoryPoliciesPtrType O365BreakOutCategoryPoliciesArgs -func PrivateLinkServiceConnectionStatePtr(v *PrivateLinkServiceConnectionStateArgs) PrivateLinkServiceConnectionStatePtrInput { - return (*privateLinkServiceConnectionStatePtrType)(v) +func O365BreakOutCategoryPoliciesPtr(v *O365BreakOutCategoryPoliciesArgs) O365BreakOutCategoryPoliciesPtrInput { + return (*o365breakOutCategoryPoliciesPtrType)(v) } -func (*privateLinkServiceConnectionStatePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceConnectionState)(nil)).Elem() +func (*o365breakOutCategoryPoliciesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**O365BreakOutCategoryPolicies)(nil)).Elem() } -func (i *privateLinkServiceConnectionStatePtrType) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { - return i.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) +func (i *o365breakOutCategoryPoliciesPtrType) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { + return i.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) } -func (i *privateLinkServiceConnectionStatePtrType) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStatePtrOutput) +func (i *o365breakOutCategoryPoliciesPtrType) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365BreakOutCategoryPoliciesPtrOutput) } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateOutput struct{ *pulumi.OutputState } +// Office365 breakout categories. +type O365BreakOutCategoryPoliciesOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() +func (O365BreakOutCategoryPoliciesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*O365BreakOutCategoryPolicies)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { +func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesOutput() O365BreakOutCategoryPoliciesOutput { return o } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { +func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesOutput { return o } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { - return o.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) +func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { + return o.ToO365BreakOutCategoryPoliciesPtrOutputWithContext(context.Background()) } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServiceConnectionState) *PrivateLinkServiceConnectionState { +func (o O365BreakOutCategoryPoliciesOutput) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v O365BreakOutCategoryPolicies) *O365BreakOutCategoryPolicies { return &v - }).(PrivateLinkServiceConnectionStatePtrOutput) + }).(O365BreakOutCategoryPoliciesPtrOutput) } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStateOutput) ActionsRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.ActionsRequired }).(pulumi.StringPtrOutput) +// Flag to control allow category. +func (o O365BreakOutCategoryPoliciesOutput) Allow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Allow }).(pulumi.BoolPtrOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStateOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Description }).(pulumi.StringPtrOutput) +// Flag to control default category. +func (o O365BreakOutCategoryPoliciesOutput) Default() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Default }).(pulumi.BoolPtrOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStateOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Status }).(pulumi.StringPtrOutput) +// Flag to control optimize category. +func (o O365BreakOutCategoryPoliciesOutput) Optimize() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPolicies) *bool { return v.Optimize }).(pulumi.BoolPtrOutput) } -type PrivateLinkServiceConnectionStatePtrOutput struct{ *pulumi.OutputState } +type O365BreakOutCategoryPoliciesPtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStatePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceConnectionState)(nil)).Elem() +func (O365BreakOutCategoryPoliciesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**O365BreakOutCategoryPolicies)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStatePtrOutput) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { +func (o O365BreakOutCategoryPoliciesPtrOutput) ToO365BreakOutCategoryPoliciesPtrOutput() O365BreakOutCategoryPoliciesPtrOutput { return o } -func (o PrivateLinkServiceConnectionStatePtrOutput) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { +func (o O365BreakOutCategoryPoliciesPtrOutput) ToO365BreakOutCategoryPoliciesPtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesPtrOutput { return o } -func (o PrivateLinkServiceConnectionStatePtrOutput) Elem() PrivateLinkServiceConnectionStateOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionState) PrivateLinkServiceConnectionState { +func (o O365BreakOutCategoryPoliciesPtrOutput) Elem() O365BreakOutCategoryPoliciesOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPolicies) O365BreakOutCategoryPolicies { if v != nil { return *v } - var ret PrivateLinkServiceConnectionState + var ret O365BreakOutCategoryPolicies return ret - }).(PrivateLinkServiceConnectionStateOutput) + }).(O365BreakOutCategoryPoliciesOutput) } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStatePtrOutput) ActionsRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { +// Flag to control allow category. +func (o O365BreakOutCategoryPoliciesPtrOutput) Allow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { if v == nil { return nil } - return v.ActionsRequired - }).(pulumi.StringPtrOutput) + return v.Allow + }).(pulumi.BoolPtrOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStatePtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { +// Flag to control default category. +func (o O365BreakOutCategoryPoliciesPtrOutput) Default() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { if v == nil { return nil } - return v.Description - }).(pulumi.StringPtrOutput) + return v.Default + }).(pulumi.BoolPtrOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStatePtrOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { +// Flag to control optimize category. +func (o O365BreakOutCategoryPoliciesPtrOutput) Optimize() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPolicies) *bool { if v == nil { return nil } - return v.Status - }).(pulumi.StringPtrOutput) + return v.Optimize + }).(pulumi.BoolPtrOutput) } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateResponse struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionsRequired *string `pulumi:"actionsRequired"` - // The reason for approval/rejection of the connection. - Description *string `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status *string `pulumi:"status"` +// Office365 breakout categories. +type O365BreakOutCategoryPoliciesResponse struct { + // Flag to control allow category. + Allow *bool `pulumi:"allow"` + // Flag to control default category. + Default *bool `pulumi:"default"` + // Flag to control optimize category. + Optimize *bool `pulumi:"optimize"` } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateResponseOutput struct{ *pulumi.OutputState } +// Office365 breakout categories. +type O365BreakOutCategoryPoliciesResponseOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionStateResponse)(nil)).Elem() +func (O365BreakOutCategoryPoliciesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*O365BreakOutCategoryPoliciesResponse)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutput() PrivateLinkServiceConnectionStateResponseOutput { +func (o O365BreakOutCategoryPoliciesResponseOutput) ToO365BreakOutCategoryPoliciesResponseOutput() O365BreakOutCategoryPoliciesResponseOutput { return o } -func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponseOutput { +func (o O365BreakOutCategoryPoliciesResponseOutput) ToO365BreakOutCategoryPoliciesResponseOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesResponseOutput { return o } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStateResponseOutput) ActionsRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.ActionsRequired }).(pulumi.StringPtrOutput) +// Flag to control allow category. +func (o O365BreakOutCategoryPoliciesResponseOutput) Allow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Allow }).(pulumi.BoolPtrOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStateResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +// Flag to control default category. +func (o O365BreakOutCategoryPoliciesResponseOutput) Default() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Default }).(pulumi.BoolPtrOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStateResponseOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Status }).(pulumi.StringPtrOutput) +// Flag to control optimize category. +func (o O365BreakOutCategoryPoliciesResponseOutput) Optimize() pulumi.BoolPtrOutput { + return o.ApplyT(func(v O365BreakOutCategoryPoliciesResponse) *bool { return v.Optimize }).(pulumi.BoolPtrOutput) } -type PrivateLinkServiceConnectionStateResponsePtrOutput struct{ *pulumi.OutputState } +type O365BreakOutCategoryPoliciesResponsePtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStateResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceConnectionStateResponse)(nil)).Elem() +func (O365BreakOutCategoryPoliciesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**O365BreakOutCategoryPoliciesResponse)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ToPrivateLinkServiceConnectionStateResponsePtrOutput() PrivateLinkServiceConnectionStateResponsePtrOutput { +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) ToO365BreakOutCategoryPoliciesResponsePtrOutput() O365BreakOutCategoryPoliciesResponsePtrOutput { return o } -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ToPrivateLinkServiceConnectionStateResponsePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponsePtrOutput { +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) ToO365BreakOutCategoryPoliciesResponsePtrOutputWithContext(ctx context.Context) O365BreakOutCategoryPoliciesResponsePtrOutput { return o } -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Elem() PrivateLinkServiceConnectionStateResponseOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) PrivateLinkServiceConnectionStateResponse { +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Elem() O365BreakOutCategoryPoliciesResponseOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) O365BreakOutCategoryPoliciesResponse { if v != nil { return *v } - var ret PrivateLinkServiceConnectionStateResponse + var ret O365BreakOutCategoryPoliciesResponse return ret - }).(PrivateLinkServiceConnectionStateResponseOutput) + }).(O365BreakOutCategoryPoliciesResponseOutput) } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ActionsRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { +// Flag to control allow category. +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Allow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { if v == nil { return nil } - return v.ActionsRequired - }).(pulumi.StringPtrOutput) + return v.Allow + }).(pulumi.BoolPtrOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { +// Flag to control default category. +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Default() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { if v == nil { return nil } - return v.Description - }).(pulumi.StringPtrOutput) + return v.Default + }).(pulumi.BoolPtrOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { +// Flag to control optimize category. +func (o O365BreakOutCategoryPoliciesResponsePtrOutput) Optimize() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *O365BreakOutCategoryPoliciesResponse) *bool { if v == nil { return nil } - return v.Status - }).(pulumi.StringPtrOutput) -} - -// The private link service ip configuration. -type PrivateLinkServiceIpConfiguration struct { - // Resource ID. - Id *string `pulumi:"id"` - // The name of private link service ip configuration. - Name *string `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary *bool `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress *string `pulumi:"privateIPAddress"` - // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. - PrivateIPAddressVersion *string `pulumi:"privateIPAddressVersion"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // The reference to the subnet resource. - Subnet *SubnetType `pulumi:"subnet"` -} - -// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfiguration -func (val *PrivateLinkServiceIpConfiguration) Defaults() *PrivateLinkServiceIpConfiguration { - if val == nil { - return nil - } - tmp := *val - tmp.Subnet = tmp.Subnet.Defaults() - - return &tmp -} - -// PrivateLinkServiceIpConfigurationInput is an input type that accepts PrivateLinkServiceIpConfigurationArgs and PrivateLinkServiceIpConfigurationOutput values. -// You can construct a concrete instance of `PrivateLinkServiceIpConfigurationInput` via: -// -// PrivateLinkServiceIpConfigurationArgs{...} -type PrivateLinkServiceIpConfigurationInput interface { - pulumi.Input - - ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput - ToPrivateLinkServiceIpConfigurationOutputWithContext(context.Context) PrivateLinkServiceIpConfigurationOutput -} - -// The private link service ip configuration. -type PrivateLinkServiceIpConfigurationArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of private link service ip configuration. - Name pulumi.StringPtrInput `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary pulumi.BoolPtrInput `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` - // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. - PrivateIPAddressVersion pulumi.StringPtrInput `pulumi:"privateIPAddressVersion"` - // The private IP address allocation method. - PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` - // The reference to the subnet resource. - Subnet SubnetTypePtrInput `pulumi:"subnet"` -} - -// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfigurationArgs -func (val *PrivateLinkServiceIpConfigurationArgs) Defaults() *PrivateLinkServiceIpConfigurationArgs { - if val == nil { - return nil - } - tmp := *val - - return &tmp -} -func (PrivateLinkServiceIpConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceIpConfiguration)(nil)).Elem() -} - -func (i PrivateLinkServiceIpConfigurationArgs) ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput { - return i.ToPrivateLinkServiceIpConfigurationOutputWithContext(context.Background()) + return v.Optimize + }).(pulumi.BoolPtrOutput) } -func (i PrivateLinkServiceIpConfigurationArgs) ToPrivateLinkServiceIpConfigurationOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceIpConfigurationOutput) +// The Office365 breakout policy. +type O365PolicyProperties struct { + // Office365 breakout categories. + BreakOutCategories *O365BreakOutCategoryPolicies `pulumi:"breakOutCategories"` } -// PrivateLinkServiceIpConfigurationArrayInput is an input type that accepts PrivateLinkServiceIpConfigurationArray and PrivateLinkServiceIpConfigurationArrayOutput values. -// You can construct a concrete instance of `PrivateLinkServiceIpConfigurationArrayInput` via: +// O365PolicyPropertiesInput is an input type that accepts O365PolicyPropertiesArgs and O365PolicyPropertiesOutput values. +// You can construct a concrete instance of `O365PolicyPropertiesInput` via: // -// PrivateLinkServiceIpConfigurationArray{ PrivateLinkServiceIpConfigurationArgs{...} } -type PrivateLinkServiceIpConfigurationArrayInput interface { +// O365PolicyPropertiesArgs{...} +type O365PolicyPropertiesInput interface { pulumi.Input - ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput - ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(context.Context) PrivateLinkServiceIpConfigurationArrayOutput + ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput + ToO365PolicyPropertiesOutputWithContext(context.Context) O365PolicyPropertiesOutput } -type PrivateLinkServiceIpConfigurationArray []PrivateLinkServiceIpConfigurationInput - -func (PrivateLinkServiceIpConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceIpConfiguration)(nil)).Elem() +// The Office365 breakout policy. +type O365PolicyPropertiesArgs struct { + // Office365 breakout categories. + BreakOutCategories O365BreakOutCategoryPoliciesPtrInput `pulumi:"breakOutCategories"` } -func (i PrivateLinkServiceIpConfigurationArray) ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput { - return i.ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(context.Background()) +func (O365PolicyPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*O365PolicyProperties)(nil)).Elem() } -func (i PrivateLinkServiceIpConfigurationArray) ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceIpConfigurationArrayOutput) +func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput { + return i.ToO365PolicyPropertiesOutputWithContext(context.Background()) } -// The private link service ip configuration. -type PrivateLinkServiceIpConfigurationOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServiceIpConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceIpConfiguration)(nil)).Elem() +func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesOutputWithContext(ctx context.Context) O365PolicyPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesOutput) } -func (o PrivateLinkServiceIpConfigurationOutput) ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput { - return o +func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { + return i.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) } -func (o PrivateLinkServiceIpConfigurationOutput) ToPrivateLinkServiceIpConfigurationOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationOutput { - return o +func (i O365PolicyPropertiesArgs) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesOutput).ToO365PolicyPropertiesPtrOutputWithContext(ctx) } -// Resource ID. -func (o PrivateLinkServiceIpConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) -} +// O365PolicyPropertiesPtrInput is an input type that accepts O365PolicyPropertiesArgs, O365PolicyPropertiesPtr and O365PolicyPropertiesPtrOutput values. +// You can construct a concrete instance of `O365PolicyPropertiesPtrInput` via: +// +// O365PolicyPropertiesArgs{...} +// +// or: +// +// nil +type O365PolicyPropertiesPtrInput interface { + pulumi.Input -// The name of private link service ip configuration. -func (o PrivateLinkServiceIpConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) + ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput + ToO365PolicyPropertiesPtrOutputWithContext(context.Context) O365PolicyPropertiesPtrOutput } -// Whether the ip configuration is primary or not. -func (o PrivateLinkServiceIpConfigurationOutput) Primary() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *bool { return v.Primary }).(pulumi.BoolPtrOutput) -} +type o365policyPropertiesPtrType O365PolicyPropertiesArgs -// The private IP address of the IP configuration. -func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +func O365PolicyPropertiesPtr(v *O365PolicyPropertiesArgs) O365PolicyPropertiesPtrInput { + return (*o365policyPropertiesPtrType)(v) } -// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. -func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAddressVersion }).(pulumi.StringPtrOutput) +func (*o365policyPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**O365PolicyProperties)(nil)).Elem() } -// The private IP address allocation method. -func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) +func (i *o365policyPropertiesPtrType) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { + return i.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) } -// The reference to the subnet resource. -func (o PrivateLinkServiceIpConfigurationOutput) Subnet() SubnetTypePtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *SubnetType { return v.Subnet }).(SubnetTypePtrOutput) +func (i *o365policyPropertiesPtrType) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(O365PolicyPropertiesPtrOutput) } -type PrivateLinkServiceIpConfigurationArrayOutput struct{ *pulumi.OutputState } +// The Office365 breakout policy. +type O365PolicyPropertiesOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceIpConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceIpConfiguration)(nil)).Elem() +func (O365PolicyPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*O365PolicyProperties)(nil)).Elem() } -func (o PrivateLinkServiceIpConfigurationArrayOutput) ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput { +func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesOutput() O365PolicyPropertiesOutput { return o } -func (o PrivateLinkServiceIpConfigurationArrayOutput) ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationArrayOutput { +func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesOutputWithContext(ctx context.Context) O365PolicyPropertiesOutput { return o } -func (o PrivateLinkServiceIpConfigurationArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceIpConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceIpConfiguration { - return vs[0].([]PrivateLinkServiceIpConfiguration)[vs[1].(int)] - }).(PrivateLinkServiceIpConfigurationOutput) +func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { + return o.ToO365PolicyPropertiesPtrOutputWithContext(context.Background()) } -// The private link service ip configuration. -type PrivateLinkServiceIpConfigurationResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of private link service ip configuration. - Name *string `pulumi:"name"` - // Whether the ip configuration is primary or not. - Primary *bool `pulumi:"primary"` - // The private IP address of the IP configuration. - PrivateIPAddress *string `pulumi:"privateIPAddress"` - // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. - PrivateIPAddressVersion *string `pulumi:"privateIPAddressVersion"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // The provisioning state of the private link service IP configuration resource. - ProvisioningState string `pulumi:"provisioningState"` - // The reference to the subnet resource. - Subnet *SubnetResponse `pulumi:"subnet"` - // The resource type. - Type string `pulumi:"type"` +func (o O365PolicyPropertiesOutput) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v O365PolicyProperties) *O365PolicyProperties { + return &v + }).(O365PolicyPropertiesPtrOutput) } -// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfigurationResponse -func (val *PrivateLinkServiceIpConfigurationResponse) Defaults() *PrivateLinkServiceIpConfigurationResponse { - if val == nil { - return nil - } - tmp := *val - tmp.Subnet = tmp.Subnet.Defaults() - - return &tmp +// Office365 breakout categories. +func (o O365PolicyPropertiesOutput) BreakOutCategories() O365BreakOutCategoryPoliciesPtrOutput { + return o.ApplyT(func(v O365PolicyProperties) *O365BreakOutCategoryPolicies { return v.BreakOutCategories }).(O365BreakOutCategoryPoliciesPtrOutput) } -// The private link service ip configuration. -type PrivateLinkServiceIpConfigurationResponseOutput struct{ *pulumi.OutputState } +type O365PolicyPropertiesPtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceIpConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceIpConfigurationResponse)(nil)).Elem() +func (O365PolicyPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**O365PolicyProperties)(nil)).Elem() } -func (o PrivateLinkServiceIpConfigurationResponseOutput) ToPrivateLinkServiceIpConfigurationResponseOutput() PrivateLinkServiceIpConfigurationResponseOutput { +func (o O365PolicyPropertiesPtrOutput) ToO365PolicyPropertiesPtrOutput() O365PolicyPropertiesPtrOutput { return o } -func (o PrivateLinkServiceIpConfigurationResponseOutput) ToPrivateLinkServiceIpConfigurationResponseOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationResponseOutput { +func (o O365PolicyPropertiesPtrOutput) ToO365PolicyPropertiesPtrOutputWithContext(ctx context.Context) O365PolicyPropertiesPtrOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o O365PolicyPropertiesPtrOutput) Elem() O365PolicyPropertiesOutput { + return o.ApplyT(func(v *O365PolicyProperties) O365PolicyProperties { + if v != nil { + return *v + } + var ret O365PolicyProperties + return ret + }).(O365PolicyPropertiesOutput) } -// Resource ID. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Office365 breakout categories. +func (o O365PolicyPropertiesPtrOutput) BreakOutCategories() O365BreakOutCategoryPoliciesPtrOutput { + return o.ApplyT(func(v *O365PolicyProperties) *O365BreakOutCategoryPolicies { + if v == nil { + return nil + } + return v.BreakOutCategories + }).(O365BreakOutCategoryPoliciesPtrOutput) } -// The name of private link service ip configuration. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// The Office365 breakout policy. +type O365PolicyPropertiesResponse struct { + // Office365 breakout categories. + BreakOutCategories *O365BreakOutCategoryPoliciesResponse `pulumi:"breakOutCategories"` } -// Whether the ip configuration is primary or not. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Primary() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *bool { return v.Primary }).(pulumi.BoolPtrOutput) -} +// The Office365 breakout policy. +type O365PolicyPropertiesResponseOutput struct{ *pulumi.OutputState } -// The private IP address of the IP configuration. -func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) +func (O365PolicyPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*O365PolicyPropertiesResponse)(nil)).Elem() } -// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. -func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAddressVersion }).(pulumi.StringPtrOutput) +func (o O365PolicyPropertiesResponseOutput) ToO365PolicyPropertiesResponseOutput() O365PolicyPropertiesResponseOutput { + return o } -// The private IP address allocation method. -func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) +func (o O365PolicyPropertiesResponseOutput) ToO365PolicyPropertiesResponseOutputWithContext(ctx context.Context) O365PolicyPropertiesResponseOutput { + return o } -// The provisioning state of the private link service IP configuration resource. -func (o PrivateLinkServiceIpConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Office365 breakout categories. +func (o O365PolicyPropertiesResponseOutput) BreakOutCategories() O365BreakOutCategoryPoliciesResponsePtrOutput { + return o.ApplyT(func(v O365PolicyPropertiesResponse) *O365BreakOutCategoryPoliciesResponse { + return v.BreakOutCategories + }).(O365BreakOutCategoryPoliciesResponsePtrOutput) } -// The reference to the subnet resource. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Subnet() SubnetResponsePtrOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) -} +type O365PolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } -// The resource type. -func (o PrivateLinkServiceIpConfigurationResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) +func (O365PolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**O365PolicyPropertiesResponse)(nil)).Elem() } -type PrivateLinkServiceIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServiceIpConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateLinkServiceIpConfigurationResponse)(nil)).Elem() +func (o O365PolicyPropertiesResponsePtrOutput) ToO365PolicyPropertiesResponsePtrOutput() O365PolicyPropertiesResponsePtrOutput { + return o } -func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) ToPrivateLinkServiceIpConfigurationResponseArrayOutput() PrivateLinkServiceIpConfigurationResponseArrayOutput { +func (o O365PolicyPropertiesResponsePtrOutput) ToO365PolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) O365PolicyPropertiesResponsePtrOutput { return o } -func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) ToPrivateLinkServiceIpConfigurationResponseArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationResponseArrayOutput { - return o +func (o O365PolicyPropertiesResponsePtrOutput) Elem() O365PolicyPropertiesResponseOutput { + return o.ApplyT(func(v *O365PolicyPropertiesResponse) O365PolicyPropertiesResponse { + if v != nil { + return *v + } + var ret O365PolicyPropertiesResponse + return ret + }).(O365PolicyPropertiesResponseOutput) } -func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceIpConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceIpConfigurationResponse { - return vs[0].([]PrivateLinkServiceIpConfigurationResponse)[vs[1].(int)] - }).(PrivateLinkServiceIpConfigurationResponseOutput) +// Office365 breakout categories. +func (o O365PolicyPropertiesResponsePtrOutput) BreakOutCategories() O365BreakOutCategoryPoliciesResponsePtrOutput { + return o.ApplyT(func(v *O365PolicyPropertiesResponse) *O365BreakOutCategoryPoliciesResponse { + if v == nil { + return nil + } + return v.BreakOutCategories + }).(O365BreakOutCategoryPoliciesResponsePtrOutput) } -// The auto-approval list of the private link service. -type PrivateLinkServicePropertiesAutoApproval struct { - // The list of subscriptions. - Subscriptions []string `pulumi:"subscriptions"` +// Network Virtual Appliance Sku Properties. +type Office365PolicyProperties struct { + // Office 365 breakout categories. + BreakOutCategories *BreakOutCategoryPolicies `pulumi:"breakOutCategories"` } -// PrivateLinkServicePropertiesAutoApprovalInput is an input type that accepts PrivateLinkServicePropertiesAutoApprovalArgs and PrivateLinkServicePropertiesAutoApprovalOutput values. -// You can construct a concrete instance of `PrivateLinkServicePropertiesAutoApprovalInput` via: +// Office365PolicyPropertiesInput is an input type that accepts Office365PolicyPropertiesArgs and Office365PolicyPropertiesOutput values. +// You can construct a concrete instance of `Office365PolicyPropertiesInput` via: // -// PrivateLinkServicePropertiesAutoApprovalArgs{...} -type PrivateLinkServicePropertiesAutoApprovalInput interface { +// Office365PolicyPropertiesArgs{...} +type Office365PolicyPropertiesInput interface { pulumi.Input - ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput - ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(context.Context) PrivateLinkServicePropertiesAutoApprovalOutput + ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput + ToOffice365PolicyPropertiesOutputWithContext(context.Context) Office365PolicyPropertiesOutput } -// The auto-approval list of the private link service. -type PrivateLinkServicePropertiesAutoApprovalArgs struct { - // The list of subscriptions. - Subscriptions pulumi.StringArrayInput `pulumi:"subscriptions"` +// Network Virtual Appliance Sku Properties. +type Office365PolicyPropertiesArgs struct { + // Office 365 breakout categories. + BreakOutCategories BreakOutCategoryPoliciesPtrInput `pulumi:"breakOutCategories"` } -func (PrivateLinkServicePropertiesAutoApprovalArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() +func (Office365PolicyPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Office365PolicyProperties)(nil)).Elem() } -func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput { - return i.ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(context.Background()) +func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput { + return i.ToOffice365PolicyPropertiesOutputWithContext(context.Background()) } -func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalOutput) +func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesOutputWithContext(ctx context.Context) Office365PolicyPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesOutput) } -func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return i.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) +func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { + return i.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) } -func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalOutput).ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx) +func (i Office365PolicyPropertiesArgs) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesOutput).ToOffice365PolicyPropertiesPtrOutputWithContext(ctx) } -// PrivateLinkServicePropertiesAutoApprovalPtrInput is an input type that accepts PrivateLinkServicePropertiesAutoApprovalArgs, PrivateLinkServicePropertiesAutoApprovalPtr and PrivateLinkServicePropertiesAutoApprovalPtrOutput values. -// You can construct a concrete instance of `PrivateLinkServicePropertiesAutoApprovalPtrInput` via: +// Office365PolicyPropertiesPtrInput is an input type that accepts Office365PolicyPropertiesArgs, Office365PolicyPropertiesPtr and Office365PolicyPropertiesPtrOutput values. +// You can construct a concrete instance of `Office365PolicyPropertiesPtrInput` via: // -// PrivateLinkServicePropertiesAutoApprovalArgs{...} +// Office365PolicyPropertiesArgs{...} // // or: // // nil -type PrivateLinkServicePropertiesAutoApprovalPtrInput interface { +type Office365PolicyPropertiesPtrInput interface { pulumi.Input - ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput - ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput + ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput + ToOffice365PolicyPropertiesPtrOutputWithContext(context.Context) Office365PolicyPropertiesPtrOutput } -type privateLinkServicePropertiesAutoApprovalPtrType PrivateLinkServicePropertiesAutoApprovalArgs +type office365PolicyPropertiesPtrType Office365PolicyPropertiesArgs -func PrivateLinkServicePropertiesAutoApprovalPtr(v *PrivateLinkServicePropertiesAutoApprovalArgs) PrivateLinkServicePropertiesAutoApprovalPtrInput { - return (*privateLinkServicePropertiesAutoApprovalPtrType)(v) +func Office365PolicyPropertiesPtr(v *Office365PolicyPropertiesArgs) Office365PolicyPropertiesPtrInput { + return (*office365PolicyPropertiesPtrType)(v) } -func (*privateLinkServicePropertiesAutoApprovalPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() +func (*office365PolicyPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Office365PolicyProperties)(nil)).Elem() } -func (i *privateLinkServicePropertiesAutoApprovalPtrType) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return i.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) +func (i *office365PolicyPropertiesPtrType) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { + return i.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) } -func (i *privateLinkServicePropertiesAutoApprovalPtrType) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) +func (i *office365PolicyPropertiesPtrType) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(Office365PolicyPropertiesPtrOutput) } -// The auto-approval list of the private link service. -type PrivateLinkServicePropertiesAutoApprovalOutput struct{ *pulumi.OutputState } +// Network Virtual Appliance Sku Properties. +type Office365PolicyPropertiesOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesAutoApprovalOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() +func (Office365PolicyPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Office365PolicyProperties)(nil)).Elem() } -func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput { +func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesOutput() Office365PolicyPropertiesOutput { return o } -func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalOutput { +func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesOutputWithContext(ctx context.Context) Office365PolicyPropertiesOutput { return o } -func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) +func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { + return o.ToOffice365PolicyPropertiesPtrOutputWithContext(context.Background()) } -func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServicePropertiesAutoApproval) *PrivateLinkServicePropertiesAutoApproval { +func (o Office365PolicyPropertiesOutput) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Office365PolicyProperties) *Office365PolicyProperties { return &v - }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) -} - -// The list of subscriptions. -func (o PrivateLinkServicePropertiesAutoApprovalOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServicePropertiesAutoApproval) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) -} - -type PrivateLinkServicePropertiesAutoApprovalPtrOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServicePropertiesAutoApprovalPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() -} - -func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o -} - -func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { - return o -} - -func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) Elem() PrivateLinkServicePropertiesAutoApprovalOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesAutoApproval) PrivateLinkServicePropertiesAutoApproval { - if v != nil { - return *v - } - var ret PrivateLinkServicePropertiesAutoApproval - return ret - }).(PrivateLinkServicePropertiesAutoApprovalOutput) -} - -// The list of subscriptions. -func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesAutoApproval) []string { - if v == nil { - return nil - } - return v.Subscriptions - }).(pulumi.StringArrayOutput) -} - -// The auto-approval list of the private link service. -type PrivateLinkServicePropertiesResponseAutoApproval struct { - // The list of subscriptions. - Subscriptions []string `pulumi:"subscriptions"` -} - -// The auto-approval list of the private link service. -type PrivateLinkServicePropertiesResponseAutoApprovalOutput struct{ *pulumi.OutputState } - -func (PrivateLinkServicePropertiesResponseAutoApprovalOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesResponseAutoApproval)(nil)).Elem() -} - -func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalOutput() PrivateLinkServicePropertiesResponseAutoApprovalOutput { - return o -} - -func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseAutoApprovalOutput { - return o + }).(Office365PolicyPropertiesPtrOutput) } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServicePropertiesResponseAutoApproval) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +// Office 365 breakout categories. +func (o Office365PolicyPropertiesOutput) BreakOutCategories() BreakOutCategoryPoliciesPtrOutput { + return o.ApplyT(func(v Office365PolicyProperties) *BreakOutCategoryPolicies { return v.BreakOutCategories }).(BreakOutCategoryPoliciesPtrOutput) } -type PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput struct{ *pulumi.OutputState } +type Office365PolicyPropertiesPtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesResponseAutoApproval)(nil)).Elem() +func (Office365PolicyPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Office365PolicyProperties)(nil)).Elem() } -func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalPtrOutput() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { +func (o Office365PolicyPropertiesPtrOutput) ToOffice365PolicyPropertiesPtrOutput() Office365PolicyPropertiesPtrOutput { return o } -func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { +func (o Office365PolicyPropertiesPtrOutput) ToOffice365PolicyPropertiesPtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesPtrOutput { return o } -func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) Elem() PrivateLinkServicePropertiesResponseAutoApprovalOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseAutoApproval) PrivateLinkServicePropertiesResponseAutoApproval { +func (o Office365PolicyPropertiesPtrOutput) Elem() Office365PolicyPropertiesOutput { + return o.ApplyT(func(v *Office365PolicyProperties) Office365PolicyProperties { if v != nil { return *v } - var ret PrivateLinkServicePropertiesResponseAutoApproval + var ret Office365PolicyProperties return ret - }).(PrivateLinkServicePropertiesResponseAutoApprovalOutput) + }).(Office365PolicyPropertiesOutput) } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseAutoApproval) []string { +// Office 365 breakout categories. +func (o Office365PolicyPropertiesPtrOutput) BreakOutCategories() BreakOutCategoryPoliciesPtrOutput { + return o.ApplyT(func(v *Office365PolicyProperties) *BreakOutCategoryPolicies { if v == nil { return nil } - return v.Subscriptions - }).(pulumi.StringArrayOutput) + return v.BreakOutCategories + }).(BreakOutCategoryPoliciesPtrOutput) } -// The visibility list of the private link service. -type PrivateLinkServicePropertiesResponseVisibility struct { - // The list of subscriptions. - Subscriptions []string `pulumi:"subscriptions"` +// Network Virtual Appliance Sku Properties. +type Office365PolicyPropertiesResponse struct { + // Office 365 breakout categories. + BreakOutCategories *BreakOutCategoryPoliciesResponse `pulumi:"breakOutCategories"` } -// The visibility list of the private link service. -type PrivateLinkServicePropertiesResponseVisibilityOutput struct{ *pulumi.OutputState } +// Network Virtual Appliance Sku Properties. +type Office365PolicyPropertiesResponseOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesResponseVisibilityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesResponseVisibility)(nil)).Elem() +func (Office365PolicyPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Office365PolicyPropertiesResponse)(nil)).Elem() } -func (o PrivateLinkServicePropertiesResponseVisibilityOutput) ToPrivateLinkServicePropertiesResponseVisibilityOutput() PrivateLinkServicePropertiesResponseVisibilityOutput { +func (o Office365PolicyPropertiesResponseOutput) ToOffice365PolicyPropertiesResponseOutput() Office365PolicyPropertiesResponseOutput { return o } -func (o PrivateLinkServicePropertiesResponseVisibilityOutput) ToPrivateLinkServicePropertiesResponseVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseVisibilityOutput { +func (o Office365PolicyPropertiesResponseOutput) ToOffice365PolicyPropertiesResponseOutputWithContext(ctx context.Context) Office365PolicyPropertiesResponseOutput { return o } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesResponseVisibilityOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServicePropertiesResponseVisibility) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +// Office 365 breakout categories. +func (o Office365PolicyPropertiesResponseOutput) BreakOutCategories() BreakOutCategoryPoliciesResponsePtrOutput { + return o.ApplyT(func(v Office365PolicyPropertiesResponse) *BreakOutCategoryPoliciesResponse { + return v.BreakOutCategories + }).(BreakOutCategoryPoliciesResponsePtrOutput) } -type PrivateLinkServicePropertiesResponseVisibilityPtrOutput struct{ *pulumi.OutputState } +type Office365PolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesResponseVisibility)(nil)).Elem() +func (Office365PolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Office365PolicyPropertiesResponse)(nil)).Elem() } -func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ToPrivateLinkServicePropertiesResponseVisibilityPtrOutput() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { +func (o Office365PolicyPropertiesResponsePtrOutput) ToOffice365PolicyPropertiesResponsePtrOutput() Office365PolicyPropertiesResponsePtrOutput { return o } -func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ToPrivateLinkServicePropertiesResponseVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseVisibilityPtrOutput { +func (o Office365PolicyPropertiesResponsePtrOutput) ToOffice365PolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) Office365PolicyPropertiesResponsePtrOutput { return o } -func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) Elem() PrivateLinkServicePropertiesResponseVisibilityOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseVisibility) PrivateLinkServicePropertiesResponseVisibility { +func (o Office365PolicyPropertiesResponsePtrOutput) Elem() Office365PolicyPropertiesResponseOutput { + return o.ApplyT(func(v *Office365PolicyPropertiesResponse) Office365PolicyPropertiesResponse { if v != nil { return *v } - var ret PrivateLinkServicePropertiesResponseVisibility + var ret Office365PolicyPropertiesResponse return ret - }).(PrivateLinkServicePropertiesResponseVisibilityOutput) + }).(Office365PolicyPropertiesResponseOutput) } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseVisibility) []string { +// Office 365 breakout categories. +func (o Office365PolicyPropertiesResponsePtrOutput) BreakOutCategories() BreakOutCategoryPoliciesResponsePtrOutput { + return o.ApplyT(func(v *Office365PolicyPropertiesResponse) *BreakOutCategoryPoliciesResponse { if v == nil { return nil } - return v.Subscriptions - }).(pulumi.StringArrayOutput) + return v.BreakOutCategories + }).(BreakOutCategoryPoliciesResponsePtrOutput) } -// The visibility list of the private link service. -type PrivateLinkServicePropertiesVisibility struct { - // The list of subscriptions. - Subscriptions []string `pulumi:"subscriptions"` +// Describes a column to sort +type OrderBy struct { + // Describes the actual column name to sort by + Field *string `pulumi:"field"` + // Describes if results should be in ascending/descending order + Order *string `pulumi:"order"` } -// PrivateLinkServicePropertiesVisibilityInput is an input type that accepts PrivateLinkServicePropertiesVisibilityArgs and PrivateLinkServicePropertiesVisibilityOutput values. -// You can construct a concrete instance of `PrivateLinkServicePropertiesVisibilityInput` via: +// OrderByInput is an input type that accepts OrderByArgs and OrderByOutput values. +// You can construct a concrete instance of `OrderByInput` via: // -// PrivateLinkServicePropertiesVisibilityArgs{...} -type PrivateLinkServicePropertiesVisibilityInput interface { +// OrderByArgs{...} +type OrderByInput interface { pulumi.Input - ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput - ToPrivateLinkServicePropertiesVisibilityOutputWithContext(context.Context) PrivateLinkServicePropertiesVisibilityOutput + ToOrderByOutput() OrderByOutput + ToOrderByOutputWithContext(context.Context) OrderByOutput } -// The visibility list of the private link service. -type PrivateLinkServicePropertiesVisibilityArgs struct { - // The list of subscriptions. - Subscriptions pulumi.StringArrayInput `pulumi:"subscriptions"` +// Describes a column to sort +type OrderByArgs struct { + // Describes the actual column name to sort by + Field pulumi.StringPtrInput `pulumi:"field"` + // Describes if results should be in ascending/descending order + Order pulumi.StringPtrInput `pulumi:"order"` } -func (PrivateLinkServicePropertiesVisibilityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesVisibility)(nil)).Elem() +func (OrderByArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OrderBy)(nil)).Elem() } -func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput { - return i.ToPrivateLinkServicePropertiesVisibilityOutputWithContext(context.Background()) +func (i OrderByArgs) ToOrderByOutput() OrderByOutput { + return i.ToOrderByOutputWithContext(context.Background()) } -func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityOutput) +func (i OrderByArgs) ToOrderByOutputWithContext(ctx context.Context) OrderByOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrderByOutput) } -func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { - return i.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) +func (i OrderByArgs) ToOrderByPtrOutput() OrderByPtrOutput { + return i.ToOrderByPtrOutputWithContext(context.Background()) } -func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityOutput).ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx) +func (i OrderByArgs) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrderByOutput).ToOrderByPtrOutputWithContext(ctx) } -// PrivateLinkServicePropertiesVisibilityPtrInput is an input type that accepts PrivateLinkServicePropertiesVisibilityArgs, PrivateLinkServicePropertiesVisibilityPtr and PrivateLinkServicePropertiesVisibilityPtrOutput values. -// You can construct a concrete instance of `PrivateLinkServicePropertiesVisibilityPtrInput` via: +// OrderByPtrInput is an input type that accepts OrderByArgs, OrderByPtr and OrderByPtrOutput values. +// You can construct a concrete instance of `OrderByPtrInput` via: // -// PrivateLinkServicePropertiesVisibilityArgs{...} +// OrderByArgs{...} // // or: // // nil -type PrivateLinkServicePropertiesVisibilityPtrInput interface { +type OrderByPtrInput interface { pulumi.Input - ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput - ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput + ToOrderByPtrOutput() OrderByPtrOutput + ToOrderByPtrOutputWithContext(context.Context) OrderByPtrOutput } -type privateLinkServicePropertiesVisibilityPtrType PrivateLinkServicePropertiesVisibilityArgs +type orderByPtrType OrderByArgs -func PrivateLinkServicePropertiesVisibilityPtr(v *PrivateLinkServicePropertiesVisibilityArgs) PrivateLinkServicePropertiesVisibilityPtrInput { - return (*privateLinkServicePropertiesVisibilityPtrType)(v) +func OrderByPtr(v *OrderByArgs) OrderByPtrInput { + return (*orderByPtrType)(v) } -func (*privateLinkServicePropertiesVisibilityPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesVisibility)(nil)).Elem() +func (*orderByPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OrderBy)(nil)).Elem() } -func (i *privateLinkServicePropertiesVisibilityPtrType) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { - return i.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) +func (i *orderByPtrType) ToOrderByPtrOutput() OrderByPtrOutput { + return i.ToOrderByPtrOutputWithContext(context.Background()) } -func (i *privateLinkServicePropertiesVisibilityPtrType) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityPtrOutput) +func (i *orderByPtrType) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OrderByPtrOutput) } -// The visibility list of the private link service. -type PrivateLinkServicePropertiesVisibilityOutput struct{ *pulumi.OutputState } +// Describes a column to sort +type OrderByOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesVisibilityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServicePropertiesVisibility)(nil)).Elem() +func (OrderByOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OrderBy)(nil)).Elem() } -func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput { +func (o OrderByOutput) ToOrderByOutput() OrderByOutput { return o } -func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityOutput { +func (o OrderByOutput) ToOrderByOutputWithContext(ctx context.Context) OrderByOutput { return o } -func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { - return o.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) +func (o OrderByOutput) ToOrderByPtrOutput() OrderByPtrOutput { + return o.ToOrderByPtrOutputWithContext(context.Background()) } -func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServicePropertiesVisibility) *PrivateLinkServicePropertiesVisibility { +func (o OrderByOutput) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OrderBy) *OrderBy { return &v - }).(PrivateLinkServicePropertiesVisibilityPtrOutput) + }).(OrderByPtrOutput) +} + +// Describes the actual column name to sort by +func (o OrderByOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v OrderBy) *string { return v.Field }).(pulumi.StringPtrOutput) } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesVisibilityOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServicePropertiesVisibility) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +// Describes if results should be in ascending/descending order +func (o OrderByOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v OrderBy) *string { return v.Order }).(pulumi.StringPtrOutput) } -type PrivateLinkServicePropertiesVisibilityPtrOutput struct{ *pulumi.OutputState } +type OrderByPtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServicePropertiesVisibilityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServicePropertiesVisibility)(nil)).Elem() +func (OrderByPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OrderBy)(nil)).Elem() } -func (o PrivateLinkServicePropertiesVisibilityPtrOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { +func (o OrderByPtrOutput) ToOrderByPtrOutput() OrderByPtrOutput { return o } -func (o PrivateLinkServicePropertiesVisibilityPtrOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { +func (o OrderByPtrOutput) ToOrderByPtrOutputWithContext(ctx context.Context) OrderByPtrOutput { return o } -func (o PrivateLinkServicePropertiesVisibilityPtrOutput) Elem() PrivateLinkServicePropertiesVisibilityOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesVisibility) PrivateLinkServicePropertiesVisibility { +func (o OrderByPtrOutput) Elem() OrderByOutput { + return o.ApplyT(func(v *OrderBy) OrderBy { if v != nil { return *v } - var ret PrivateLinkServicePropertiesVisibility + var ret OrderBy return ret - }).(PrivateLinkServicePropertiesVisibilityOutput) + }).(OrderByOutput) } -// The list of subscriptions. -func (o PrivateLinkServicePropertiesVisibilityPtrOutput) Subscriptions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServicePropertiesVisibility) []string { +// Describes the actual column name to sort by +func (o OrderByPtrOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrderBy) *string { if v == nil { return nil } - return v.Subscriptions - }).(pulumi.StringArrayOutput) + return v.Field + }).(pulumi.StringPtrOutput) } -// Private link service resource. -type PrivateLinkServiceResponse struct { - // The alias of the private link service. - Alias string `pulumi:"alias"` - // The auto-approval list of the private link service. - AutoApproval *PrivateLinkServicePropertiesResponseAutoApproval `pulumi:"autoApproval"` - // Whether the private link service is enabled for proxy protocol or not. - EnableProxyProtocol *bool `pulumi:"enableProxyProtocol"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // The extended location of the load balancer. - ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` - // The list of Fqdn. - Fqdns []string `pulumi:"fqdns"` +// Describes if results should be in ascending/descending order +func (o OrderByPtrOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OrderBy) *string { + if v == nil { + return nil + } + return v.Order + }).(pulumi.StringPtrOutput) +} + +// Outbound rule of the load balancer. +type OutboundRule struct { + // The number of outbound ports to be used for NAT. + AllocatedOutboundPorts *int `pulumi:"allocatedOutboundPorts"` + // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. + BackendAddressPool SubResource `pulumi:"backendAddressPool"` + // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. + EnableTcpReset *bool `pulumi:"enableTcpReset"` + // The Frontend IP addresses of the load balancer. + FrontendIPConfigurations []SubResource `pulumi:"frontendIPConfigurations"` // Resource ID. Id *string `pulumi:"id"` - // An array of private link service IP configurations. - IpConfigurations []PrivateLinkServiceIpConfigurationResponse `pulumi:"ipConfigurations"` - // An array of references to the load balancer IP configurations. - LoadBalancerFrontendIpConfigurations []FrontendIPConfigurationResponse `pulumi:"loadBalancerFrontendIpConfigurations"` - // Resource location. - Location *string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // An array of references to the network interfaces created for this private link service. - NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` - // An array of list about connections to the private endpoint. - PrivateEndpointConnections []PrivateEndpointConnectionResponse `pulumi:"privateEndpointConnections"` - // The provisioning state of the private link service resource. - ProvisioningState string `pulumi:"provisioningState"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` - // The visibility list of the private link service. - Visibility *PrivateLinkServicePropertiesResponseVisibility `pulumi:"visibility"` + // The timeout for the TCP idle connection. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The protocol for the outbound rule in load balancer. + Protocol string `pulumi:"protocol"` } -// Private link service resource. -type PrivateLinkServiceResponseOutput struct{ *pulumi.OutputState } +// OutboundRuleInput is an input type that accepts OutboundRuleArgs and OutboundRuleOutput values. +// You can construct a concrete instance of `OutboundRuleInput` via: +// +// OutboundRuleArgs{...} +type OutboundRuleInput interface { + pulumi.Input -func (PrivateLinkServiceResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceResponse)(nil)).Elem() + ToOutboundRuleOutput() OutboundRuleOutput + ToOutboundRuleOutputWithContext(context.Context) OutboundRuleOutput } -func (o PrivateLinkServiceResponseOutput) ToPrivateLinkServiceResponseOutput() PrivateLinkServiceResponseOutput { - return o +// Outbound rule of the load balancer. +type OutboundRuleArgs struct { + // The number of outbound ports to be used for NAT. + AllocatedOutboundPorts pulumi.IntPtrInput `pulumi:"allocatedOutboundPorts"` + // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. + BackendAddressPool SubResourceInput `pulumi:"backendAddressPool"` + // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. + EnableTcpReset pulumi.BoolPtrInput `pulumi:"enableTcpReset"` + // The Frontend IP addresses of the load balancer. + FrontendIPConfigurations SubResourceArrayInput `pulumi:"frontendIPConfigurations"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The timeout for the TCP idle connection. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The protocol for the outbound rule in load balancer. + Protocol pulumi.StringInput `pulumi:"protocol"` } -func (o PrivateLinkServiceResponseOutput) ToPrivateLinkServiceResponseOutputWithContext(ctx context.Context) PrivateLinkServiceResponseOutput { - return o +func (OutboundRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OutboundRule)(nil)).Elem() } -// The alias of the private link service. -func (o PrivateLinkServiceResponseOutput) Alias() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Alias }).(pulumi.StringOutput) +func (i OutboundRuleArgs) ToOutboundRuleOutput() OutboundRuleOutput { + return i.ToOutboundRuleOutputWithContext(context.Background()) } -// The auto-approval list of the private link service. -func (o PrivateLinkServiceResponseOutput) AutoApproval() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseAutoApproval { - return v.AutoApproval - }).(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) +func (i OutboundRuleArgs) ToOutboundRuleOutputWithContext(ctx context.Context) OutboundRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(OutboundRuleOutput) } -// Whether the private link service is enabled for proxy protocol or not. -func (o PrivateLinkServiceResponseOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *bool { return v.EnableProxyProtocol }).(pulumi.BoolPtrOutput) +// OutboundRuleArrayInput is an input type that accepts OutboundRuleArray and OutboundRuleArrayOutput values. +// You can construct a concrete instance of `OutboundRuleArrayInput` via: +// +// OutboundRuleArray{ OutboundRuleArgs{...} } +type OutboundRuleArrayInput interface { + pulumi.Input + + ToOutboundRuleArrayOutput() OutboundRuleArrayOutput + ToOutboundRuleArrayOutputWithContext(context.Context) OutboundRuleArrayOutput } -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateLinkServiceResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Etag }).(pulumi.StringOutput) +type OutboundRuleArray []OutboundRuleInput + +func (OutboundRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OutboundRule)(nil)).Elem() } -// The extended location of the load balancer. -func (o PrivateLinkServiceResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +func (i OutboundRuleArray) ToOutboundRuleArrayOutput() OutboundRuleArrayOutput { + return i.ToOutboundRuleArrayOutputWithContext(context.Background()) } -// The list of Fqdn. -func (o PrivateLinkServiceResponseOutput) Fqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) []string { return v.Fqdns }).(pulumi.StringArrayOutput) +func (i OutboundRuleArray) ToOutboundRuleArrayOutputWithContext(ctx context.Context) OutboundRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OutboundRuleArrayOutput) } -// Resource ID. -func (o PrivateLinkServiceResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Outbound rule of the load balancer. +type OutboundRuleOutput struct{ *pulumi.OutputState } + +func (OutboundRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OutboundRule)(nil)).Elem() } -// An array of private link service IP configurations. -func (o PrivateLinkServiceResponseOutput) IpConfigurations() PrivateLinkServiceIpConfigurationResponseArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) []PrivateLinkServiceIpConfigurationResponse { - return v.IpConfigurations - }).(PrivateLinkServiceIpConfigurationResponseArrayOutput) +func (o OutboundRuleOutput) ToOutboundRuleOutput() OutboundRuleOutput { + return o } -// An array of references to the load balancer IP configurations. -func (o PrivateLinkServiceResponseOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) []FrontendIPConfigurationResponse { - return v.LoadBalancerFrontendIpConfigurations - }).(FrontendIPConfigurationResponseArrayOutput) +func (o OutboundRuleOutput) ToOutboundRuleOutputWithContext(ctx context.Context) OutboundRuleOutput { + return o } -// Resource location. -func (o PrivateLinkServiceResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// The number of outbound ports to be used for NAT. +func (o OutboundRuleOutput) AllocatedOutboundPorts() pulumi.IntPtrOutput { + return o.ApplyT(func(v OutboundRule) *int { return v.AllocatedOutboundPorts }).(pulumi.IntPtrOutput) } -// Resource name. -func (o PrivateLinkServiceResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Name }).(pulumi.StringOutput) +// A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. +func (o OutboundRuleOutput) BackendAddressPool() SubResourceOutput { + return o.ApplyT(func(v OutboundRule) SubResource { return v.BackendAddressPool }).(SubResourceOutput) } -// An array of references to the network interfaces created for this private link service. -func (o PrivateLinkServiceResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) +// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. +func (o OutboundRuleOutput) EnableTcpReset() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OutboundRule) *bool { return v.EnableTcpReset }).(pulumi.BoolPtrOutput) } -// An array of list about connections to the private endpoint. -func (o PrivateLinkServiceResponseOutput) PrivateEndpointConnections() PrivateEndpointConnectionResponseArrayOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) []PrivateEndpointConnectionResponse { - return v.PrivateEndpointConnections - }).(PrivateEndpointConnectionResponseArrayOutput) +// The Frontend IP addresses of the load balancer. +func (o OutboundRuleOutput) FrontendIPConfigurations() SubResourceArrayOutput { + return o.ApplyT(func(v OutboundRule) []SubResource { return v.FrontendIPConfigurations }).(SubResourceArrayOutput) } -// The provisioning state of the private link service resource. -func (o PrivateLinkServiceResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Resource ID. +func (o OutboundRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v OutboundRule) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Resource tags. -func (o PrivateLinkServiceResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// The timeout for the TCP idle connection. +func (o OutboundRuleOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v OutboundRule) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) } -// Resource type. -func (o PrivateLinkServiceResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Type }).(pulumi.StringOutput) +// The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. +func (o OutboundRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v OutboundRule) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The visibility list of the private link service. -func (o PrivateLinkServiceResponseOutput) Visibility() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseVisibility { - return v.Visibility - }).(PrivateLinkServicePropertiesResponseVisibilityPtrOutput) +// The protocol for the outbound rule in load balancer. +func (o OutboundRuleOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v OutboundRule) string { return v.Protocol }).(pulumi.StringOutput) } -type PrivateLinkServiceResponsePtrOutput struct{ *pulumi.OutputState } +type OutboundRuleArrayOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateLinkServiceResponse)(nil)).Elem() +func (OutboundRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OutboundRule)(nil)).Elem() } -func (o PrivateLinkServiceResponsePtrOutput) ToPrivateLinkServiceResponsePtrOutput() PrivateLinkServiceResponsePtrOutput { +func (o OutboundRuleArrayOutput) ToOutboundRuleArrayOutput() OutboundRuleArrayOutput { return o } -func (o PrivateLinkServiceResponsePtrOutput) ToPrivateLinkServiceResponsePtrOutputWithContext(ctx context.Context) PrivateLinkServiceResponsePtrOutput { +func (o OutboundRuleArrayOutput) ToOutboundRuleArrayOutputWithContext(ctx context.Context) OutboundRuleArrayOutput { return o } -func (o PrivateLinkServiceResponsePtrOutput) Elem() PrivateLinkServiceResponseOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) PrivateLinkServiceResponse { - if v != nil { - return *v - } - var ret PrivateLinkServiceResponse - return ret - }).(PrivateLinkServiceResponseOutput) -} - -// The alias of the private link service. -func (o PrivateLinkServiceResponsePtrOutput) Alias() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return &v.Alias - }).(pulumi.StringPtrOutput) -} - -// The auto-approval list of the private link service. -func (o PrivateLinkServiceResponsePtrOutput) AutoApproval() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseAutoApproval { - if v == nil { - return nil - } - return v.AutoApproval - }).(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) +func (o OutboundRuleArrayOutput) Index(i pulumi.IntInput) OutboundRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OutboundRule { + return vs[0].([]OutboundRule)[vs[1].(int)] + }).(OutboundRuleOutput) } -// Whether the private link service is enabled for proxy protocol or not. -func (o PrivateLinkServiceResponsePtrOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *bool { - if v == nil { - return nil - } - return v.EnableProxyProtocol - }).(pulumi.BoolPtrOutput) +// Outbound rule of the load balancer. +type OutboundRuleResponse struct { + // The number of outbound ports to be used for NAT. + AllocatedOutboundPorts *int `pulumi:"allocatedOutboundPorts"` + // A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. + BackendAddressPool SubResourceResponse `pulumi:"backendAddressPool"` + // Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. + EnableTcpReset *bool `pulumi:"enableTcpReset"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The Frontend IP addresses of the load balancer. + FrontendIPConfigurations []SubResourceResponse `pulumi:"frontendIPConfigurations"` + // Resource ID. + Id *string `pulumi:"id"` + // The timeout for the TCP idle connection. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The protocol for the outbound rule in load balancer. + Protocol string `pulumi:"protocol"` + // The provisioning state of the outbound rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // Type of the resource. + Type string `pulumi:"type"` } -// A unique read-only string that changes whenever the resource is updated. -func (o PrivateLinkServiceResponsePtrOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return &v.Etag - }).(pulumi.StringPtrOutput) -} +// Outbound rule of the load balancer. +type OutboundRuleResponseOutput struct{ *pulumi.OutputState } -// The extended location of the load balancer. -func (o PrivateLinkServiceResponsePtrOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *ExtendedLocationResponse { - if v == nil { - return nil - } - return v.ExtendedLocation - }).(ExtendedLocationResponsePtrOutput) +func (OutboundRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OutboundRuleResponse)(nil)).Elem() } -// The list of Fqdn. -func (o PrivateLinkServiceResponsePtrOutput) Fqdns() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) []string { - if v == nil { - return nil - } - return v.Fqdns - }).(pulumi.StringArrayOutput) +func (o OutboundRuleResponseOutput) ToOutboundRuleResponseOutput() OutboundRuleResponseOutput { + return o } -// Resource ID. -func (o PrivateLinkServiceResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (o OutboundRuleResponseOutput) ToOutboundRuleResponseOutputWithContext(ctx context.Context) OutboundRuleResponseOutput { + return o } -// An array of private link service IP configurations. -func (o PrivateLinkServiceResponsePtrOutput) IpConfigurations() PrivateLinkServiceIpConfigurationResponseArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) []PrivateLinkServiceIpConfigurationResponse { - if v == nil { - return nil - } - return v.IpConfigurations - }).(PrivateLinkServiceIpConfigurationResponseArrayOutput) +// The number of outbound ports to be used for NAT. +func (o OutboundRuleResponseOutput) AllocatedOutboundPorts() pulumi.IntPtrOutput { + return o.ApplyT(func(v OutboundRuleResponse) *int { return v.AllocatedOutboundPorts }).(pulumi.IntPtrOutput) } -// An array of references to the load balancer IP configurations. -func (o PrivateLinkServiceResponsePtrOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) []FrontendIPConfigurationResponse { - if v == nil { - return nil - } - return v.LoadBalancerFrontendIpConfigurations - }).(FrontendIPConfigurationResponseArrayOutput) +// A reference to a pool of DIPs. Outbound traffic is randomly load balanced across IPs in the backend IPs. +func (o OutboundRuleResponseOutput) BackendAddressPool() SubResourceResponseOutput { + return o.ApplyT(func(v OutboundRuleResponse) SubResourceResponse { return v.BackendAddressPool }).(SubResourceResponseOutput) } -// Resource location. -func (o PrivateLinkServiceResponsePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) +// Receive bidirectional TCP Reset on TCP flow idle timeout or unexpected connection termination. This element is only used when the protocol is set to TCP. +func (o OutboundRuleResponseOutput) EnableTcpReset() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OutboundRuleResponse) *bool { return v.EnableTcpReset }).(pulumi.BoolPtrOutput) } -// Resource name. -func (o PrivateLinkServiceResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return &v.Name - }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o OutboundRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v OutboundRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } -// An array of references to the network interfaces created for this private link service. -func (o PrivateLinkServiceResponsePtrOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) []NetworkInterfaceResponse { - if v == nil { - return nil - } - return v.NetworkInterfaces - }).(NetworkInterfaceResponseArrayOutput) +// The Frontend IP addresses of the load balancer. +func (o OutboundRuleResponseOutput) FrontendIPConfigurations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v OutboundRuleResponse) []SubResourceResponse { return v.FrontendIPConfigurations }).(SubResourceResponseArrayOutput) } -// An array of list about connections to the private endpoint. -func (o PrivateLinkServiceResponsePtrOutput) PrivateEndpointConnections() PrivateEndpointConnectionResponseArrayOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) []PrivateEndpointConnectionResponse { - if v == nil { - return nil - } - return v.PrivateEndpointConnections - }).(PrivateEndpointConnectionResponseArrayOutput) +// Resource ID. +func (o OutboundRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v OutboundRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The provisioning state of the private link service resource. -func (o PrivateLinkServiceResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return &v.ProvisioningState - }).(pulumi.StringPtrOutput) +// The timeout for the TCP idle connection. +func (o OutboundRuleResponseOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v OutboundRuleResponse) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) } -// Resource tags. -func (o PrivateLinkServiceResponsePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) +// The name of the resource that is unique within the set of outbound rules used by the load balancer. This name can be used to access the resource. +func (o OutboundRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v OutboundRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource type. -func (o PrivateLinkServiceResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) +// The protocol for the outbound rule in load balancer. +func (o OutboundRuleResponseOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v OutboundRuleResponse) string { return v.Protocol }).(pulumi.StringOutput) } -// The visibility list of the private link service. -func (o PrivateLinkServiceResponsePtrOutput) Visibility() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { - return o.ApplyT(func(v *PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseVisibility { - if v == nil { - return nil - } - return v.Visibility - }).(PrivateLinkServicePropertiesResponseVisibilityPtrOutput) +// The provisioning state of the outbound rule resource. +func (o OutboundRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v OutboundRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// A load balancer probe. -type Probe struct { - // Resource ID. - Id *string `pulumi:"id"` - // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. - IntervalInSeconds *int `pulumi:"intervalInSeconds"` - // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. - NumberOfProbes *int `pulumi:"numberOfProbes"` - // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. - Port int `pulumi:"port"` - // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. - Protocol string `pulumi:"protocol"` - // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. - RequestPath *string `pulumi:"requestPath"` +// Type of the resource. +func (o OutboundRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v OutboundRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -// ProbeInput is an input type that accepts ProbeArgs and ProbeOutput values. -// You can construct a concrete instance of `ProbeInput` via: -// -// ProbeArgs{...} -type ProbeInput interface { - pulumi.Input +type OutboundRuleResponseArrayOutput struct{ *pulumi.OutputState } - ToProbeOutput() ProbeOutput - ToProbeOutputWithContext(context.Context) ProbeOutput +func (OutboundRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OutboundRuleResponse)(nil)).Elem() } -// A load balancer probe. -type ProbeArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. - IntervalInSeconds pulumi.IntPtrInput `pulumi:"intervalInSeconds"` - // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. - NumberOfProbes pulumi.IntPtrInput `pulumi:"numberOfProbes"` - // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. - Port pulumi.IntInput `pulumi:"port"` - // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. - Protocol pulumi.StringInput `pulumi:"protocol"` - // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. - RequestPath pulumi.StringPtrInput `pulumi:"requestPath"` +func (o OutboundRuleResponseArrayOutput) ToOutboundRuleResponseArrayOutput() OutboundRuleResponseArrayOutput { + return o } -func (ProbeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Probe)(nil)).Elem() +func (o OutboundRuleResponseArrayOutput) ToOutboundRuleResponseArrayOutputWithContext(ctx context.Context) OutboundRuleResponseArrayOutput { + return o } -func (i ProbeArgs) ToProbeOutput() ProbeOutput { - return i.ToProbeOutputWithContext(context.Background()) +func (o OutboundRuleResponseArrayOutput) Index(i pulumi.IntInput) OutboundRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OutboundRuleResponse { + return vs[0].([]OutboundRuleResponse)[vs[1].(int)] + }).(OutboundRuleResponseOutput) } -func (i ProbeArgs) ToProbeOutputWithContext(ctx context.Context) ProbeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProbeOutput) +// Allow to exclude some variable satisfy the condition for the WAF check. +type OwaspCrsExclusionEntry struct { + // The managed rule sets that are associated with the exclusion. + ExclusionManagedRuleSets []ExclusionManagedRuleSet `pulumi:"exclusionManagedRuleSets"` + // The variable to be excluded. + MatchVariable string `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. + Selector string `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. + SelectorMatchOperator string `pulumi:"selectorMatchOperator"` } -// ProbeArrayInput is an input type that accepts ProbeArray and ProbeArrayOutput values. -// You can construct a concrete instance of `ProbeArrayInput` via: +// OwaspCrsExclusionEntryInput is an input type that accepts OwaspCrsExclusionEntryArgs and OwaspCrsExclusionEntryOutput values. +// You can construct a concrete instance of `OwaspCrsExclusionEntryInput` via: // -// ProbeArray{ ProbeArgs{...} } -type ProbeArrayInput interface { +// OwaspCrsExclusionEntryArgs{...} +type OwaspCrsExclusionEntryInput interface { pulumi.Input - ToProbeArrayOutput() ProbeArrayOutput - ToProbeArrayOutputWithContext(context.Context) ProbeArrayOutput + ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput + ToOwaspCrsExclusionEntryOutputWithContext(context.Context) OwaspCrsExclusionEntryOutput } -type ProbeArray []ProbeInput - -func (ProbeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]Probe)(nil)).Elem() +// Allow to exclude some variable satisfy the condition for the WAF check. +type OwaspCrsExclusionEntryArgs struct { + // The managed rule sets that are associated with the exclusion. + ExclusionManagedRuleSets ExclusionManagedRuleSetArrayInput `pulumi:"exclusionManagedRuleSets"` + // The variable to be excluded. + MatchVariable pulumi.StringInput `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. + Selector pulumi.StringInput `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. + SelectorMatchOperator pulumi.StringInput `pulumi:"selectorMatchOperator"` } -func (i ProbeArray) ToProbeArrayOutput() ProbeArrayOutput { - return i.ToProbeArrayOutputWithContext(context.Background()) +func (OwaspCrsExclusionEntryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OwaspCrsExclusionEntry)(nil)).Elem() } -func (i ProbeArray) ToProbeArrayOutputWithContext(ctx context.Context) ProbeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProbeArrayOutput) +func (i OwaspCrsExclusionEntryArgs) ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput { + return i.ToOwaspCrsExclusionEntryOutputWithContext(context.Background()) } -// A load balancer probe. -type ProbeOutput struct{ *pulumi.OutputState } - -func (ProbeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Probe)(nil)).Elem() +func (i OwaspCrsExclusionEntryArgs) ToOwaspCrsExclusionEntryOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryOutput { + return pulumi.ToOutputWithContext(ctx, i).(OwaspCrsExclusionEntryOutput) } -func (o ProbeOutput) ToProbeOutput() ProbeOutput { - return o -} +// OwaspCrsExclusionEntryArrayInput is an input type that accepts OwaspCrsExclusionEntryArray and OwaspCrsExclusionEntryArrayOutput values. +// You can construct a concrete instance of `OwaspCrsExclusionEntryArrayInput` via: +// +// OwaspCrsExclusionEntryArray{ OwaspCrsExclusionEntryArgs{...} } +type OwaspCrsExclusionEntryArrayInput interface { + pulumi.Input -func (o ProbeOutput) ToProbeOutputWithContext(ctx context.Context) ProbeOutput { - return o + ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput + ToOwaspCrsExclusionEntryArrayOutputWithContext(context.Context) OwaspCrsExclusionEntryArrayOutput } -// Resource ID. -func (o ProbeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v Probe) *string { return v.Id }).(pulumi.StringPtrOutput) -} +type OwaspCrsExclusionEntryArray []OwaspCrsExclusionEntryInput -// The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. -func (o ProbeOutput) IntervalInSeconds() pulumi.IntPtrOutput { - return o.ApplyT(func(v Probe) *int { return v.IntervalInSeconds }).(pulumi.IntPtrOutput) +func (OwaspCrsExclusionEntryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OwaspCrsExclusionEntry)(nil)).Elem() } -// The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. -func (o ProbeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v Probe) *string { return v.Name }).(pulumi.StringPtrOutput) +func (i OwaspCrsExclusionEntryArray) ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput { + return i.ToOwaspCrsExclusionEntryArrayOutputWithContext(context.Background()) } -// The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. -func (o ProbeOutput) NumberOfProbes() pulumi.IntPtrOutput { - return o.ApplyT(func(v Probe) *int { return v.NumberOfProbes }).(pulumi.IntPtrOutput) +func (i OwaspCrsExclusionEntryArray) ToOwaspCrsExclusionEntryArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OwaspCrsExclusionEntryArrayOutput) } -// The port for communicating the probe. Possible values range from 1 to 65535, inclusive. -func (o ProbeOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v Probe) int { return v.Port }).(pulumi.IntOutput) -} +// Allow to exclude some variable satisfy the condition for the WAF check. +type OwaspCrsExclusionEntryOutput struct{ *pulumi.OutputState } -// The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. -func (o ProbeOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v Probe) string { return v.Protocol }).(pulumi.StringOutput) +func (OwaspCrsExclusionEntryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OwaspCrsExclusionEntry)(nil)).Elem() } -// The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. -func (o ProbeOutput) RequestPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v Probe) *string { return v.RequestPath }).(pulumi.StringPtrOutput) +func (o OwaspCrsExclusionEntryOutput) ToOwaspCrsExclusionEntryOutput() OwaspCrsExclusionEntryOutput { + return o } -type ProbeArrayOutput struct{ *pulumi.OutputState } - -func (ProbeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]Probe)(nil)).Elem() +func (o OwaspCrsExclusionEntryOutput) ToOwaspCrsExclusionEntryOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryOutput { + return o } -func (o ProbeArrayOutput) ToProbeArrayOutput() ProbeArrayOutput { - return o +// The managed rule sets that are associated with the exclusion. +func (o OwaspCrsExclusionEntryOutput) ExclusionManagedRuleSets() ExclusionManagedRuleSetArrayOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntry) []ExclusionManagedRuleSet { return v.ExclusionManagedRuleSets }).(ExclusionManagedRuleSetArrayOutput) } -func (o ProbeArrayOutput) ToProbeArrayOutputWithContext(ctx context.Context) ProbeArrayOutput { - return o +// The variable to be excluded. +func (o OwaspCrsExclusionEntryOutput) MatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.MatchVariable }).(pulumi.StringOutput) } -func (o ProbeArrayOutput) Index(i pulumi.IntInput) ProbeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) Probe { - return vs[0].([]Probe)[vs[1].(int)] - }).(ProbeOutput) +// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. +func (o OwaspCrsExclusionEntryOutput) Selector() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.Selector }).(pulumi.StringOutput) } -// A load balancer probe. -type ProbeResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. - IntervalInSeconds *int `pulumi:"intervalInSeconds"` - // The load balancer rules that use this probe. - LoadBalancingRules []SubResourceResponse `pulumi:"loadBalancingRules"` - // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. - NumberOfProbes *int `pulumi:"numberOfProbes"` - // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. - Port int `pulumi:"port"` - // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. - Protocol string `pulumi:"protocol"` - // The provisioning state of the probe resource. - ProvisioningState string `pulumi:"provisioningState"` - // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. - RequestPath *string `pulumi:"requestPath"` - // Type of the resource. - Type string `pulumi:"type"` +// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. +func (o OwaspCrsExclusionEntryOutput) SelectorMatchOperator() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntry) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) } -// A load balancer probe. -type ProbeResponseOutput struct{ *pulumi.OutputState } +type OwaspCrsExclusionEntryArrayOutput struct{ *pulumi.OutputState } -func (ProbeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProbeResponse)(nil)).Elem() +func (OwaspCrsExclusionEntryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OwaspCrsExclusionEntry)(nil)).Elem() } -func (o ProbeResponseOutput) ToProbeResponseOutput() ProbeResponseOutput { +func (o OwaspCrsExclusionEntryArrayOutput) ToOwaspCrsExclusionEntryArrayOutput() OwaspCrsExclusionEntryArrayOutput { return o } -func (o ProbeResponseOutput) ToProbeResponseOutputWithContext(ctx context.Context) ProbeResponseOutput { +func (o OwaspCrsExclusionEntryArrayOutput) ToOwaspCrsExclusionEntryArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryArrayOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ProbeResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ProbeResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Resource ID. -func (o ProbeResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProbeResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o OwaspCrsExclusionEntryArrayOutput) Index(i pulumi.IntInput) OwaspCrsExclusionEntryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OwaspCrsExclusionEntry { + return vs[0].([]OwaspCrsExclusionEntry)[vs[1].(int)] + }).(OwaspCrsExclusionEntryOutput) } -// The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. -func (o ProbeResponseOutput) IntervalInSeconds() pulumi.IntPtrOutput { - return o.ApplyT(func(v ProbeResponse) *int { return v.IntervalInSeconds }).(pulumi.IntPtrOutput) +// Allow to exclude some variable satisfy the condition for the WAF check. +type OwaspCrsExclusionEntryResponse struct { + // The managed rule sets that are associated with the exclusion. + ExclusionManagedRuleSets []ExclusionManagedRuleSetResponse `pulumi:"exclusionManagedRuleSets"` + // The variable to be excluded. + MatchVariable string `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. + Selector string `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. + SelectorMatchOperator string `pulumi:"selectorMatchOperator"` } -// The load balancer rules that use this probe. -func (o ProbeResponseOutput) LoadBalancingRules() SubResourceResponseArrayOutput { - return o.ApplyT(func(v ProbeResponse) []SubResourceResponse { return v.LoadBalancingRules }).(SubResourceResponseArrayOutput) -} +// Allow to exclude some variable satisfy the condition for the WAF check. +type OwaspCrsExclusionEntryResponseOutput struct{ *pulumi.OutputState } -// The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. -func (o ProbeResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProbeResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (OwaspCrsExclusionEntryResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OwaspCrsExclusionEntryResponse)(nil)).Elem() } -// The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. -func (o ProbeResponseOutput) NumberOfProbes() pulumi.IntPtrOutput { - return o.ApplyT(func(v ProbeResponse) *int { return v.NumberOfProbes }).(pulumi.IntPtrOutput) +func (o OwaspCrsExclusionEntryResponseOutput) ToOwaspCrsExclusionEntryResponseOutput() OwaspCrsExclusionEntryResponseOutput { + return o } -// The port for communicating the probe. Possible values range from 1 to 65535, inclusive. -func (o ProbeResponseOutput) Port() pulumi.IntOutput { - return o.ApplyT(func(v ProbeResponse) int { return v.Port }).(pulumi.IntOutput) +func (o OwaspCrsExclusionEntryResponseOutput) ToOwaspCrsExclusionEntryResponseOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryResponseOutput { + return o } -// The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. -func (o ProbeResponseOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v ProbeResponse) string { return v.Protocol }).(pulumi.StringOutput) +// The managed rule sets that are associated with the exclusion. +func (o OwaspCrsExclusionEntryResponseOutput) ExclusionManagedRuleSets() ExclusionManagedRuleSetResponseArrayOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) []ExclusionManagedRuleSetResponse { + return v.ExclusionManagedRuleSets + }).(ExclusionManagedRuleSetResponseArrayOutput) } -// The provisioning state of the probe resource. -func (o ProbeResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ProbeResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// The variable to be excluded. +func (o OwaspCrsExclusionEntryResponseOutput) MatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.MatchVariable }).(pulumi.StringOutput) } -// The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. -func (o ProbeResponseOutput) RequestPath() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProbeResponse) *string { return v.RequestPath }).(pulumi.StringPtrOutput) +// When matchVariable is a collection, operator used to specify which elements in the collection this exclusion applies to. +func (o OwaspCrsExclusionEntryResponseOutput) Selector() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.Selector }).(pulumi.StringOutput) } -// Type of the resource. -func (o ProbeResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ProbeResponse) string { return v.Type }).(pulumi.StringOutput) +// When matchVariable is a collection, operate on the selector to specify which elements in the collection this exclusion applies to. +func (o OwaspCrsExclusionEntryResponseOutput) SelectorMatchOperator() pulumi.StringOutput { + return o.ApplyT(func(v OwaspCrsExclusionEntryResponse) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) } -type ProbeResponseArrayOutput struct{ *pulumi.OutputState } +type OwaspCrsExclusionEntryResponseArrayOutput struct{ *pulumi.OutputState } -func (ProbeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ProbeResponse)(nil)).Elem() +func (OwaspCrsExclusionEntryResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OwaspCrsExclusionEntryResponse)(nil)).Elem() } -func (o ProbeResponseArrayOutput) ToProbeResponseArrayOutput() ProbeResponseArrayOutput { +func (o OwaspCrsExclusionEntryResponseArrayOutput) ToOwaspCrsExclusionEntryResponseArrayOutput() OwaspCrsExclusionEntryResponseArrayOutput { return o } -func (o ProbeResponseArrayOutput) ToProbeResponseArrayOutputWithContext(ctx context.Context) ProbeResponseArrayOutput { +func (o OwaspCrsExclusionEntryResponseArrayOutput) ToOwaspCrsExclusionEntryResponseArrayOutputWithContext(ctx context.Context) OwaspCrsExclusionEntryResponseArrayOutput { return o } -func (o ProbeResponseArrayOutput) Index(i pulumi.IntInput) ProbeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProbeResponse { - return vs[0].([]ProbeResponse)[vs[1].(int)] - }).(ProbeResponseOutput) +func (o OwaspCrsExclusionEntryResponseArrayOutput) Index(i pulumi.IntInput) OwaspCrsExclusionEntryResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OwaspCrsExclusionEntryResponse { + return vs[0].([]OwaspCrsExclusionEntryResponse)[vs[1].(int)] + }).(OwaspCrsExclusionEntryResponseOutput) } -// The list of RouteTables to advertise the routes to. -type PropagatedRouteTable struct { - // The list of resource ids of all the RouteTables. - Ids []SubResource `pulumi:"ids"` - // The list of labels. - Labels []string `pulumi:"labels"` +// P2SConnectionConfiguration Resource. +type P2SConnectionConfiguration struct { + // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. + EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration *RoutingConfiguration `pulumi:"routingConfiguration"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool *AddressSpace `pulumi:"vpnClientAddressPool"` } -// PropagatedRouteTableInput is an input type that accepts PropagatedRouteTableArgs and PropagatedRouteTableOutput values. -// You can construct a concrete instance of `PropagatedRouteTableInput` via: +// P2SConnectionConfigurationInput is an input type that accepts P2SConnectionConfigurationArgs and P2SConnectionConfigurationOutput values. +// You can construct a concrete instance of `P2SConnectionConfigurationInput` via: // -// PropagatedRouteTableArgs{...} -type PropagatedRouteTableInput interface { +// P2SConnectionConfigurationArgs{...} +type P2SConnectionConfigurationInput interface { pulumi.Input - ToPropagatedRouteTableOutput() PropagatedRouteTableOutput - ToPropagatedRouteTableOutputWithContext(context.Context) PropagatedRouteTableOutput -} - -// The list of RouteTables to advertise the routes to. -type PropagatedRouteTableArgs struct { - // The list of resource ids of all the RouteTables. - Ids SubResourceArrayInput `pulumi:"ids"` - // The list of labels. - Labels pulumi.StringArrayInput `pulumi:"labels"` -} - -func (PropagatedRouteTableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PropagatedRouteTable)(nil)).Elem() + ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput + ToP2SConnectionConfigurationOutputWithContext(context.Context) P2SConnectionConfigurationOutput } -func (i PropagatedRouteTableArgs) ToPropagatedRouteTableOutput() PropagatedRouteTableOutput { - return i.ToPropagatedRouteTableOutputWithContext(context.Background()) +// P2SConnectionConfiguration Resource. +type P2SConnectionConfigurationArgs struct { + // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. + EnableInternetSecurity pulumi.BoolPtrInput `pulumi:"enableInternetSecurity"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration RoutingConfigurationPtrInput `pulumi:"routingConfiguration"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool AddressSpacePtrInput `pulumi:"vpnClientAddressPool"` } -func (i PropagatedRouteTableArgs) ToPropagatedRouteTableOutputWithContext(ctx context.Context) PropagatedRouteTableOutput { - return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableOutput) +func (P2SConnectionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*P2SConnectionConfiguration)(nil)).Elem() } -func (i PropagatedRouteTableArgs) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { - return i.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) +func (i P2SConnectionConfigurationArgs) ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput { + return i.ToP2SConnectionConfigurationOutputWithContext(context.Background()) } -func (i PropagatedRouteTableArgs) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableOutput).ToPropagatedRouteTablePtrOutputWithContext(ctx) +func (i P2SConnectionConfigurationArgs) ToP2SConnectionConfigurationOutputWithContext(ctx context.Context) P2SConnectionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SConnectionConfigurationOutput) } -// PropagatedRouteTablePtrInput is an input type that accepts PropagatedRouteTableArgs, PropagatedRouteTablePtr and PropagatedRouteTablePtrOutput values. -// You can construct a concrete instance of `PropagatedRouteTablePtrInput` via: -// -// PropagatedRouteTableArgs{...} -// -// or: +// P2SConnectionConfigurationArrayInput is an input type that accepts P2SConnectionConfigurationArray and P2SConnectionConfigurationArrayOutput values. +// You can construct a concrete instance of `P2SConnectionConfigurationArrayInput` via: // -// nil -type PropagatedRouteTablePtrInput interface { +// P2SConnectionConfigurationArray{ P2SConnectionConfigurationArgs{...} } +type P2SConnectionConfigurationArrayInput interface { pulumi.Input - ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput - ToPropagatedRouteTablePtrOutputWithContext(context.Context) PropagatedRouteTablePtrOutput + ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput + ToP2SConnectionConfigurationArrayOutputWithContext(context.Context) P2SConnectionConfigurationArrayOutput } -type propagatedRouteTablePtrType PropagatedRouteTableArgs - -func PropagatedRouteTablePtr(v *PropagatedRouteTableArgs) PropagatedRouteTablePtrInput { - return (*propagatedRouteTablePtrType)(v) -} +type P2SConnectionConfigurationArray []P2SConnectionConfigurationInput -func (*propagatedRouteTablePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PropagatedRouteTable)(nil)).Elem() +func (P2SConnectionConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SConnectionConfiguration)(nil)).Elem() } -func (i *propagatedRouteTablePtrType) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { - return i.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) +func (i P2SConnectionConfigurationArray) ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput { + return i.ToP2SConnectionConfigurationArrayOutputWithContext(context.Background()) } -func (i *propagatedRouteTablePtrType) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTablePtrOutput) +func (i P2SConnectionConfigurationArray) ToP2SConnectionConfigurationArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SConnectionConfigurationArrayOutput) } -// The list of RouteTables to advertise the routes to. -type PropagatedRouteTableOutput struct{ *pulumi.OutputState } - -func (PropagatedRouteTableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PropagatedRouteTable)(nil)).Elem() -} +// P2SConnectionConfiguration Resource. +type P2SConnectionConfigurationOutput struct{ *pulumi.OutputState } -func (o PropagatedRouteTableOutput) ToPropagatedRouteTableOutput() PropagatedRouteTableOutput { - return o +func (P2SConnectionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SConnectionConfiguration)(nil)).Elem() } -func (o PropagatedRouteTableOutput) ToPropagatedRouteTableOutputWithContext(ctx context.Context) PropagatedRouteTableOutput { +func (o P2SConnectionConfigurationOutput) ToP2SConnectionConfigurationOutput() P2SConnectionConfigurationOutput { return o } -func (o PropagatedRouteTableOutput) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { - return o.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) -} - -func (o PropagatedRouteTableOutput) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PropagatedRouteTable) *PropagatedRouteTable { - return &v - }).(PropagatedRouteTablePtrOutput) -} - -// The list of resource ids of all the RouteTables. -func (o PropagatedRouteTableOutput) Ids() SubResourceArrayOutput { - return o.ApplyT(func(v PropagatedRouteTable) []SubResource { return v.Ids }).(SubResourceArrayOutput) -} - -// The list of labels. -func (o PropagatedRouteTableOutput) Labels() pulumi.StringArrayOutput { - return o.ApplyT(func(v PropagatedRouteTable) []string { return v.Labels }).(pulumi.StringArrayOutput) -} - -type PropagatedRouteTablePtrOutput struct{ *pulumi.OutputState } - -func (PropagatedRouteTablePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PropagatedRouteTable)(nil)).Elem() -} - -func (o PropagatedRouteTablePtrOutput) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { +func (o P2SConnectionConfigurationOutput) ToP2SConnectionConfigurationOutputWithContext(ctx context.Context) P2SConnectionConfigurationOutput { return o } -func (o PropagatedRouteTablePtrOutput) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { - return o +// Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. +func (o P2SConnectionConfigurationOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v P2SConnectionConfiguration) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) } -func (o PropagatedRouteTablePtrOutput) Elem() PropagatedRouteTableOutput { - return o.ApplyT(func(v *PropagatedRouteTable) PropagatedRouteTable { - if v != nil { - return *v - } - var ret PropagatedRouteTable - return ret - }).(PropagatedRouteTableOutput) +// Resource ID. +func (o P2SConnectionConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SConnectionConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The list of resource ids of all the RouteTables. -func (o PropagatedRouteTablePtrOutput) Ids() SubResourceArrayOutput { - return o.ApplyT(func(v *PropagatedRouteTable) []SubResource { - if v == nil { - return nil - } - return v.Ids - }).(SubResourceArrayOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SConnectionConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SConnectionConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The list of labels. -func (o PropagatedRouteTablePtrOutput) Labels() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PropagatedRouteTable) []string { - if v == nil { - return nil - } - return v.Labels - }).(pulumi.StringArrayOutput) +// The Routing Configuration indicating the associated and propagated route tables on this connection. +func (o P2SConnectionConfigurationOutput) RoutingConfiguration() RoutingConfigurationPtrOutput { + return o.ApplyT(func(v P2SConnectionConfiguration) *RoutingConfiguration { return v.RoutingConfiguration }).(RoutingConfigurationPtrOutput) } -// The list of RouteTables to advertise the routes to. -type PropagatedRouteTableResponse struct { - // The list of resource ids of all the RouteTables. - Ids []SubResourceResponse `pulumi:"ids"` - // The list of labels. - Labels []string `pulumi:"labels"` +// The reference to the address space resource which represents Address space for P2S VpnClient. +func (o P2SConnectionConfigurationOutput) VpnClientAddressPool() AddressSpacePtrOutput { + return o.ApplyT(func(v P2SConnectionConfiguration) *AddressSpace { return v.VpnClientAddressPool }).(AddressSpacePtrOutput) } -// The list of RouteTables to advertise the routes to. -type PropagatedRouteTableResponseOutput struct{ *pulumi.OutputState } +type P2SConnectionConfigurationArrayOutput struct{ *pulumi.OutputState } -func (PropagatedRouteTableResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PropagatedRouteTableResponse)(nil)).Elem() +func (P2SConnectionConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SConnectionConfiguration)(nil)).Elem() } -func (o PropagatedRouteTableResponseOutput) ToPropagatedRouteTableResponseOutput() PropagatedRouteTableResponseOutput { +func (o P2SConnectionConfigurationArrayOutput) ToP2SConnectionConfigurationArrayOutput() P2SConnectionConfigurationArrayOutput { return o } -func (o PropagatedRouteTableResponseOutput) ToPropagatedRouteTableResponseOutputWithContext(ctx context.Context) PropagatedRouteTableResponseOutput { +func (o P2SConnectionConfigurationArrayOutput) ToP2SConnectionConfigurationArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationArrayOutput { return o } -// The list of resource ids of all the RouteTables. -func (o PropagatedRouteTableResponseOutput) Ids() SubResourceResponseArrayOutput { - return o.ApplyT(func(v PropagatedRouteTableResponse) []SubResourceResponse { return v.Ids }).(SubResourceResponseArrayOutput) +func (o P2SConnectionConfigurationArrayOutput) Index(i pulumi.IntInput) P2SConnectionConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SConnectionConfiguration { + return vs[0].([]P2SConnectionConfiguration)[vs[1].(int)] + }).(P2SConnectionConfigurationOutput) } -// The list of labels. -func (o PropagatedRouteTableResponseOutput) Labels() pulumi.StringArrayOutput { - return o.ApplyT(func(v PropagatedRouteTableResponse) []string { return v.Labels }).(pulumi.StringArrayOutput) +// P2SConnectionConfiguration Resource. +type P2SConnectionConfigurationResponse struct { + // List of Configuration Policy Groups that this P2SConnectionConfiguration is attached to. + ConfigurationPolicyGroupAssociations []SubResourceResponse `pulumi:"configurationPolicyGroupAssociations"` + // Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. + EnableInternetSecurity *bool `pulumi:"enableInternetSecurity"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // List of previous Configuration Policy Groups that this P2SConnectionConfiguration was attached to. + PreviousConfigurationPolicyGroupAssociations []VpnServerConfigurationPolicyGroupResponse `pulumi:"previousConfigurationPolicyGroupAssociations"` + // The provisioning state of the P2SConnectionConfiguration resource. + ProvisioningState string `pulumi:"provisioningState"` + // The Routing Configuration indicating the associated and propagated route tables on this connection. + RoutingConfiguration *RoutingConfigurationResponse `pulumi:"routingConfiguration"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool *AddressSpaceResponse `pulumi:"vpnClientAddressPool"` } -type PropagatedRouteTableResponsePtrOutput struct{ *pulumi.OutputState } +// P2SConnectionConfiguration Resource. +type P2SConnectionConfigurationResponseOutput struct{ *pulumi.OutputState } -func (PropagatedRouteTableResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PropagatedRouteTableResponse)(nil)).Elem() +func (P2SConnectionConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SConnectionConfigurationResponse)(nil)).Elem() } -func (o PropagatedRouteTableResponsePtrOutput) ToPropagatedRouteTableResponsePtrOutput() PropagatedRouteTableResponsePtrOutput { +func (o P2SConnectionConfigurationResponseOutput) ToP2SConnectionConfigurationResponseOutput() P2SConnectionConfigurationResponseOutput { return o } -func (o PropagatedRouteTableResponsePtrOutput) ToPropagatedRouteTableResponsePtrOutputWithContext(ctx context.Context) PropagatedRouteTableResponsePtrOutput { +func (o P2SConnectionConfigurationResponseOutput) ToP2SConnectionConfigurationResponseOutputWithContext(ctx context.Context) P2SConnectionConfigurationResponseOutput { return o } -func (o PropagatedRouteTableResponsePtrOutput) Elem() PropagatedRouteTableResponseOutput { - return o.ApplyT(func(v *PropagatedRouteTableResponse) PropagatedRouteTableResponse { - if v != nil { - return *v - } - var ret PropagatedRouteTableResponse - return ret - }).(PropagatedRouteTableResponseOutput) -} - -// The list of resource ids of all the RouteTables. -func (o PropagatedRouteTableResponsePtrOutput) Ids() SubResourceResponseArrayOutput { - return o.ApplyT(func(v *PropagatedRouteTableResponse) []SubResourceResponse { - if v == nil { - return nil - } - return v.Ids +// List of Configuration Policy Groups that this P2SConnectionConfiguration is attached to. +func (o P2SConnectionConfigurationResponseOutput) ConfigurationPolicyGroupAssociations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) []SubResourceResponse { + return v.ConfigurationPolicyGroupAssociations }).(SubResourceResponseArrayOutput) } -// The list of labels. -func (o PropagatedRouteTableResponsePtrOutput) Labels() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PropagatedRouteTableResponse) []string { - if v == nil { - return nil - } - return v.Labels - }).(pulumi.StringArrayOutput) +// Flag indicating whether the enable internet security flag is turned on for the P2S Connections or not. +func (o P2SConnectionConfigurationResponseOutput) EnableInternetSecurity() pulumi.BoolPtrOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) *bool { return v.EnableInternetSecurity }).(pulumi.BoolPtrOutput) } -// DDoS custom policy properties. -type ProtocolCustomSettingsFormat struct { - // The protocol for which the DDoS protection policy is being customized. - Protocol *string `pulumi:"protocol"` - // The customized DDoS protection source rate. - SourceRateOverride *string `pulumi:"sourceRateOverride"` - // The customized DDoS protection trigger rate. - TriggerRateOverride *string `pulumi:"triggerRateOverride"` - // The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. - TriggerSensitivityOverride *string `pulumi:"triggerSensitivityOverride"` +// A unique read-only string that changes whenever the resource is updated. +func (o P2SConnectionConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } -// ProtocolCustomSettingsFormatInput is an input type that accepts ProtocolCustomSettingsFormatArgs and ProtocolCustomSettingsFormatOutput values. -// You can construct a concrete instance of `ProtocolCustomSettingsFormatInput` via: -// -// ProtocolCustomSettingsFormatArgs{...} -type ProtocolCustomSettingsFormatInput interface { - pulumi.Input +// Resource ID. +func (o P2SConnectionConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} - ToProtocolCustomSettingsFormatOutput() ProtocolCustomSettingsFormatOutput - ToProtocolCustomSettingsFormatOutputWithContext(context.Context) ProtocolCustomSettingsFormatOutput +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SConnectionConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// DDoS custom policy properties. -type ProtocolCustomSettingsFormatArgs struct { - // The protocol for which the DDoS protection policy is being customized. - Protocol pulumi.StringPtrInput `pulumi:"protocol"` - // The customized DDoS protection source rate. - SourceRateOverride pulumi.StringPtrInput `pulumi:"sourceRateOverride"` - // The customized DDoS protection trigger rate. - TriggerRateOverride pulumi.StringPtrInput `pulumi:"triggerRateOverride"` - // The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. - TriggerSensitivityOverride pulumi.StringPtrInput `pulumi:"triggerSensitivityOverride"` +// List of previous Configuration Policy Groups that this P2SConnectionConfiguration was attached to. +func (o P2SConnectionConfigurationResponseOutput) PreviousConfigurationPolicyGroupAssociations() VpnServerConfigurationPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) []VpnServerConfigurationPolicyGroupResponse { + return v.PreviousConfigurationPolicyGroupAssociations + }).(VpnServerConfigurationPolicyGroupResponseArrayOutput) } -func (ProtocolCustomSettingsFormatArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolCustomSettingsFormat)(nil)).Elem() +// The provisioning state of the P2SConnectionConfiguration resource. +func (o P2SConnectionConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i ProtocolCustomSettingsFormatArgs) ToProtocolCustomSettingsFormatOutput() ProtocolCustomSettingsFormatOutput { - return i.ToProtocolCustomSettingsFormatOutputWithContext(context.Background()) +// The Routing Configuration indicating the associated and propagated route tables on this connection. +func (o P2SConnectionConfigurationResponseOutput) RoutingConfiguration() RoutingConfigurationResponsePtrOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) *RoutingConfigurationResponse { + return v.RoutingConfiguration + }).(RoutingConfigurationResponsePtrOutput) } -func (i ProtocolCustomSettingsFormatArgs) ToProtocolCustomSettingsFormatOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProtocolCustomSettingsFormatOutput) +// The reference to the address space resource which represents Address space for P2S VpnClient. +func (o P2SConnectionConfigurationResponseOutput) VpnClientAddressPool() AddressSpaceResponsePtrOutput { + return o.ApplyT(func(v P2SConnectionConfigurationResponse) *AddressSpaceResponse { return v.VpnClientAddressPool }).(AddressSpaceResponsePtrOutput) } -// ProtocolCustomSettingsFormatArrayInput is an input type that accepts ProtocolCustomSettingsFormatArray and ProtocolCustomSettingsFormatArrayOutput values. -// You can construct a concrete instance of `ProtocolCustomSettingsFormatArrayInput` via: -// -// ProtocolCustomSettingsFormatArray{ ProtocolCustomSettingsFormatArgs{...} } -type ProtocolCustomSettingsFormatArrayInput interface { - pulumi.Input +type P2SConnectionConfigurationResponseArrayOutput struct{ *pulumi.OutputState } - ToProtocolCustomSettingsFormatArrayOutput() ProtocolCustomSettingsFormatArrayOutput - ToProtocolCustomSettingsFormatArrayOutputWithContext(context.Context) ProtocolCustomSettingsFormatArrayOutput +func (P2SConnectionConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SConnectionConfigurationResponse)(nil)).Elem() } -type ProtocolCustomSettingsFormatArray []ProtocolCustomSettingsFormatInput +func (o P2SConnectionConfigurationResponseArrayOutput) ToP2SConnectionConfigurationResponseArrayOutput() P2SConnectionConfigurationResponseArrayOutput { + return o +} -func (ProtocolCustomSettingsFormatArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ProtocolCustomSettingsFormat)(nil)).Elem() +func (o P2SConnectionConfigurationResponseArrayOutput) ToP2SConnectionConfigurationResponseArrayOutputWithContext(ctx context.Context) P2SConnectionConfigurationResponseArrayOutput { + return o } -func (i ProtocolCustomSettingsFormatArray) ToProtocolCustomSettingsFormatArrayOutput() ProtocolCustomSettingsFormatArrayOutput { - return i.ToProtocolCustomSettingsFormatArrayOutputWithContext(context.Background()) +func (o P2SConnectionConfigurationResponseArrayOutput) Index(i pulumi.IntInput) P2SConnectionConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SConnectionConfigurationResponse { + return vs[0].([]P2SConnectionConfigurationResponse)[vs[1].(int)] + }).(P2SConnectionConfigurationResponseOutput) } -func (i ProtocolCustomSettingsFormatArray) ToProtocolCustomSettingsFormatArrayOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProtocolCustomSettingsFormatArrayOutput) +// P2SVpnGateway Resource. +type P2SVpnGatewayResponse struct { + // List of all customer specified DNS servers IP addresses. + CustomDnsServers []string `pulumi:"customDnsServers"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway. + IsRoutingPreferenceInternet *bool `pulumi:"isRoutingPreferenceInternet"` + // Resource location. + Location string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // List of all p2s connection configurations of the gateway. + P2SConnectionConfigurations []P2SConnectionConfigurationResponse `pulumi:"p2SConnectionConfigurations"` + // The provisioning state of the P2S VPN gateway resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` + // The VirtualHub to which the gateway belongs. + VirtualHub *SubResourceResponse `pulumi:"virtualHub"` + // All P2S VPN clients' connection health status. + VpnClientConnectionHealth VpnClientConnectionHealthResponse `pulumi:"vpnClientConnectionHealth"` + // The scale unit for this p2s vpn gateway. + VpnGatewayScaleUnit *int `pulumi:"vpnGatewayScaleUnit"` + // The VpnServerConfiguration to which the p2sVpnGateway is attached to. + VpnServerConfiguration *SubResourceResponse `pulumi:"vpnServerConfiguration"` } -// DDoS custom policy properties. -type ProtocolCustomSettingsFormatOutput struct{ *pulumi.OutputState } +// P2SVpnGateway Resource. +type P2SVpnGatewayResponseOutput struct{ *pulumi.OutputState } -func (ProtocolCustomSettingsFormatOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolCustomSettingsFormat)(nil)).Elem() +func (P2SVpnGatewayResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnGatewayResponse)(nil)).Elem() } -func (o ProtocolCustomSettingsFormatOutput) ToProtocolCustomSettingsFormatOutput() ProtocolCustomSettingsFormatOutput { +func (o P2SVpnGatewayResponseOutput) ToP2SVpnGatewayResponseOutput() P2SVpnGatewayResponseOutput { return o } -func (o ProtocolCustomSettingsFormatOutput) ToProtocolCustomSettingsFormatOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatOutput { +func (o P2SVpnGatewayResponseOutput) ToP2SVpnGatewayResponseOutputWithContext(ctx context.Context) P2SVpnGatewayResponseOutput { return o } -// The protocol for which the DDoS protection policy is being customized. -func (o ProtocolCustomSettingsFormatOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormat) *string { return v.Protocol }).(pulumi.StringPtrOutput) -} - -// The customized DDoS protection source rate. -func (o ProtocolCustomSettingsFormatOutput) SourceRateOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormat) *string { return v.SourceRateOverride }).(pulumi.StringPtrOutput) -} - -// The customized DDoS protection trigger rate. -func (o ProtocolCustomSettingsFormatOutput) TriggerRateOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormat) *string { return v.TriggerRateOverride }).(pulumi.StringPtrOutput) +// List of all customer specified DNS servers IP addresses. +func (o P2SVpnGatewayResponseOutput) CustomDnsServers() pulumi.StringArrayOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) []string { return v.CustomDnsServers }).(pulumi.StringArrayOutput) } -// The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. -func (o ProtocolCustomSettingsFormatOutput) TriggerSensitivityOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormat) *string { return v.TriggerSensitivityOverride }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnGatewayResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Etag }).(pulumi.StringOutput) } -type ProtocolCustomSettingsFormatArrayOutput struct{ *pulumi.OutputState } - -func (ProtocolCustomSettingsFormatArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ProtocolCustomSettingsFormat)(nil)).Elem() +// Resource ID. +func (o P2SVpnGatewayResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o ProtocolCustomSettingsFormatArrayOutput) ToProtocolCustomSettingsFormatArrayOutput() ProtocolCustomSettingsFormatArrayOutput { - return o +// Enable Routing Preference property for the Public IP Interface of the P2SVpnGateway. +func (o P2SVpnGatewayResponseOutput) IsRoutingPreferenceInternet() pulumi.BoolPtrOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) *bool { return v.IsRoutingPreferenceInternet }).(pulumi.BoolPtrOutput) } -func (o ProtocolCustomSettingsFormatArrayOutput) ToProtocolCustomSettingsFormatArrayOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatArrayOutput { - return o +// Resource location. +func (o P2SVpnGatewayResponseOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Location }).(pulumi.StringOutput) } -func (o ProtocolCustomSettingsFormatArrayOutput) Index(i pulumi.IntInput) ProtocolCustomSettingsFormatOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProtocolCustomSettingsFormat { - return vs[0].([]ProtocolCustomSettingsFormat)[vs[1].(int)] - }).(ProtocolCustomSettingsFormatOutput) +// Resource name. +func (o P2SVpnGatewayResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Name }).(pulumi.StringOutput) } -// DDoS custom policy properties. -type ProtocolCustomSettingsFormatResponse struct { - // The protocol for which the DDoS protection policy is being customized. - Protocol *string `pulumi:"protocol"` - // The customized DDoS protection source rate. - SourceRateOverride *string `pulumi:"sourceRateOverride"` - // The customized DDoS protection trigger rate. - TriggerRateOverride *string `pulumi:"triggerRateOverride"` - // The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. - TriggerSensitivityOverride *string `pulumi:"triggerSensitivityOverride"` +// List of all p2s connection configurations of the gateway. +func (o P2SVpnGatewayResponseOutput) P2SConnectionConfigurations() P2SConnectionConfigurationResponseArrayOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) []P2SConnectionConfigurationResponse { + return v.P2SConnectionConfigurations + }).(P2SConnectionConfigurationResponseArrayOutput) } -// DDoS custom policy properties. -type ProtocolCustomSettingsFormatResponseOutput struct{ *pulumi.OutputState } - -func (ProtocolCustomSettingsFormatResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolCustomSettingsFormatResponse)(nil)).Elem() +// The provisioning state of the P2S VPN gateway resource. +func (o P2SVpnGatewayResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (o ProtocolCustomSettingsFormatResponseOutput) ToProtocolCustomSettingsFormatResponseOutput() ProtocolCustomSettingsFormatResponseOutput { - return o +// Resource tags. +func (o P2SVpnGatewayResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -func (o ProtocolCustomSettingsFormatResponseOutput) ToProtocolCustomSettingsFormatResponseOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatResponseOutput { - return o +// Resource type. +func (o P2SVpnGatewayResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) string { return v.Type }).(pulumi.StringOutput) } -// The protocol for which the DDoS protection policy is being customized. -func (o ProtocolCustomSettingsFormatResponseOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormatResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +// The VirtualHub to which the gateway belongs. +func (o P2SVpnGatewayResponseOutput) VirtualHub() SubResourceResponsePtrOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) *SubResourceResponse { return v.VirtualHub }).(SubResourceResponsePtrOutput) } -// The customized DDoS protection source rate. -func (o ProtocolCustomSettingsFormatResponseOutput) SourceRateOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormatResponse) *string { return v.SourceRateOverride }).(pulumi.StringPtrOutput) +// All P2S VPN clients' connection health status. +func (o P2SVpnGatewayResponseOutput) VpnClientConnectionHealth() VpnClientConnectionHealthResponseOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) VpnClientConnectionHealthResponse { return v.VpnClientConnectionHealth }).(VpnClientConnectionHealthResponseOutput) } -// The customized DDoS protection trigger rate. -func (o ProtocolCustomSettingsFormatResponseOutput) TriggerRateOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormatResponse) *string { return v.TriggerRateOverride }).(pulumi.StringPtrOutput) +// The scale unit for this p2s vpn gateway. +func (o P2SVpnGatewayResponseOutput) VpnGatewayScaleUnit() pulumi.IntPtrOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) *int { return v.VpnGatewayScaleUnit }).(pulumi.IntPtrOutput) } -// The customized DDoS protection trigger rate sensitivity degrees. High: Trigger rate set with most sensitivity w.r.t. normal traffic. Default: Trigger rate set with moderate sensitivity w.r.t. normal traffic. Low: Trigger rate set with less sensitivity w.r.t. normal traffic. Relaxed: Trigger rate set with least sensitivity w.r.t. normal traffic. -func (o ProtocolCustomSettingsFormatResponseOutput) TriggerSensitivityOverride() pulumi.StringPtrOutput { - return o.ApplyT(func(v ProtocolCustomSettingsFormatResponse) *string { return v.TriggerSensitivityOverride }).(pulumi.StringPtrOutput) +// The VpnServerConfiguration to which the p2sVpnGateway is attached to. +func (o P2SVpnGatewayResponseOutput) VpnServerConfiguration() SubResourceResponsePtrOutput { + return o.ApplyT(func(v P2SVpnGatewayResponse) *SubResourceResponse { return v.VpnServerConfiguration }).(SubResourceResponsePtrOutput) } -type ProtocolCustomSettingsFormatResponseArrayOutput struct{ *pulumi.OutputState } +type P2SVpnGatewayResponseArrayOutput struct{ *pulumi.OutputState } -func (ProtocolCustomSettingsFormatResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ProtocolCustomSettingsFormatResponse)(nil)).Elem() +func (P2SVpnGatewayResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnGatewayResponse)(nil)).Elem() } -func (o ProtocolCustomSettingsFormatResponseArrayOutput) ToProtocolCustomSettingsFormatResponseArrayOutput() ProtocolCustomSettingsFormatResponseArrayOutput { +func (o P2SVpnGatewayResponseArrayOutput) ToP2SVpnGatewayResponseArrayOutput() P2SVpnGatewayResponseArrayOutput { return o } -func (o ProtocolCustomSettingsFormatResponseArrayOutput) ToProtocolCustomSettingsFormatResponseArrayOutputWithContext(ctx context.Context) ProtocolCustomSettingsFormatResponseArrayOutput { +func (o P2SVpnGatewayResponseArrayOutput) ToP2SVpnGatewayResponseArrayOutputWithContext(ctx context.Context) P2SVpnGatewayResponseArrayOutput { return o } -func (o ProtocolCustomSettingsFormatResponseArrayOutput) Index(i pulumi.IntInput) ProtocolCustomSettingsFormatResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProtocolCustomSettingsFormatResponse { - return vs[0].([]ProtocolCustomSettingsFormatResponse)[vs[1].(int)] - }).(ProtocolCustomSettingsFormatResponseOutput) +func (o P2SVpnGatewayResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnGatewayResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnGatewayResponse { + return vs[0].([]P2SVpnGatewayResponse)[vs[1].(int)] + }).(P2SVpnGatewayResponseOutput) } -// A PTR record. -type PtrRecord struct { - // The PTR target domain name for this PTR record. - Ptrdname *string `pulumi:"ptrdname"` +// Radius client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusClientRootCertificate struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The Radius client root certificate thumbprint. + Thumbprint *string `pulumi:"thumbprint"` } -// PtrRecordInput is an input type that accepts PtrRecordArgs and PtrRecordOutput values. -// You can construct a concrete instance of `PtrRecordInput` via: +// P2SVpnServerConfigRadiusClientRootCertificateInput is an input type that accepts P2SVpnServerConfigRadiusClientRootCertificateArgs and P2SVpnServerConfigRadiusClientRootCertificateOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigRadiusClientRootCertificateInput` via: // -// PtrRecordArgs{...} -type PtrRecordInput interface { +// P2SVpnServerConfigRadiusClientRootCertificateArgs{...} +type P2SVpnServerConfigRadiusClientRootCertificateInput interface { pulumi.Input - ToPtrRecordOutput() PtrRecordOutput - ToPtrRecordOutputWithContext(context.Context) PtrRecordOutput + ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput + ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput } -// A PTR record. -type PtrRecordArgs struct { - // The PTR target domain name for this PTR record. - Ptrdname pulumi.StringPtrInput `pulumi:"ptrdname"` +// Radius client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusClientRootCertificateArgs struct { + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The Radius client root certificate thumbprint. + Thumbprint pulumi.StringPtrInput `pulumi:"thumbprint"` } -func (PtrRecordArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PtrRecord)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() } -func (i PtrRecordArgs) ToPtrRecordOutput() PtrRecordOutput { - return i.ToPtrRecordOutputWithContext(context.Background()) +func (i P2SVpnServerConfigRadiusClientRootCertificateArgs) ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput { + return i.ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(context.Background()) } -func (i PtrRecordArgs) ToPtrRecordOutputWithContext(ctx context.Context) PtrRecordOutput { - return pulumi.ToOutputWithContext(ctx, i).(PtrRecordOutput) +func (i P2SVpnServerConfigRadiusClientRootCertificateArgs) ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusClientRootCertificateOutput) } -// PtrRecordArrayInput is an input type that accepts PtrRecordArray and PtrRecordArrayOutput values. -// You can construct a concrete instance of `PtrRecordArrayInput` via: +// P2SVpnServerConfigRadiusClientRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigRadiusClientRootCertificateArray and P2SVpnServerConfigRadiusClientRootCertificateArrayOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigRadiusClientRootCertificateArrayInput` via: // -// PtrRecordArray{ PtrRecordArgs{...} } -type PtrRecordArrayInput interface { +// P2SVpnServerConfigRadiusClientRootCertificateArray{ P2SVpnServerConfigRadiusClientRootCertificateArgs{...} } +type P2SVpnServerConfigRadiusClientRootCertificateArrayInput interface { pulumi.Input - ToPtrRecordArrayOutput() PtrRecordArrayOutput - ToPtrRecordArrayOutputWithContext(context.Context) PtrRecordArrayOutput + ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput + ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput } -type PtrRecordArray []PtrRecordInput +type P2SVpnServerConfigRadiusClientRootCertificateArray []P2SVpnServerConfigRadiusClientRootCertificateInput -func (PtrRecordArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PtrRecord)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() } -func (i PtrRecordArray) ToPtrRecordArrayOutput() PtrRecordArrayOutput { - return i.ToPtrRecordArrayOutputWithContext(context.Background()) +func (i P2SVpnServerConfigRadiusClientRootCertificateArray) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { + return i.ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(context.Background()) } -func (i PtrRecordArray) ToPtrRecordArrayOutputWithContext(ctx context.Context) PtrRecordArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PtrRecordArrayOutput) +func (i P2SVpnServerConfigRadiusClientRootCertificateArray) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) } -// A PTR record. -type PtrRecordOutput struct{ *pulumi.OutputState } +// Radius client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusClientRootCertificateOutput struct{ *pulumi.OutputState } -func (PtrRecordOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PtrRecord)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() } -func (o PtrRecordOutput) ToPtrRecordOutput() PtrRecordOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) ToP2SVpnServerConfigRadiusClientRootCertificateOutput() P2SVpnServerConfigRadiusClientRootCertificateOutput { return o } -func (o PtrRecordOutput) ToPtrRecordOutputWithContext(ctx context.Context) PtrRecordOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) ToP2SVpnServerConfigRadiusClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateOutput { return o } -// The PTR target domain name for this PTR record. -func (o PtrRecordOutput) Ptrdname() pulumi.StringPtrOutput { - return o.ApplyT(func(v PtrRecord) *string { return v.Ptrdname }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The Radius client root certificate thumbprint. +func (o P2SVpnServerConfigRadiusClientRootCertificateOutput) Thumbprint() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificate) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) } -type PtrRecordArrayOutput struct{ *pulumi.OutputState } +type P2SVpnServerConfigRadiusClientRootCertificateArrayOutput struct{ *pulumi.OutputState } -func (PtrRecordArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PtrRecord)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificate)(nil)).Elem() } -func (o PtrRecordArrayOutput) ToPtrRecordArrayOutput() PtrRecordArrayOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { return o } -func (o PtrRecordArrayOutput) ToPtrRecordArrayOutputWithContext(ctx context.Context) PtrRecordArrayOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateArrayOutput { return o } -func (o PtrRecordArrayOutput) Index(i pulumi.IntInput) PtrRecordOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PtrRecord { - return vs[0].([]PtrRecord)[vs[1].(int)] - }).(PtrRecordOutput) +func (o P2SVpnServerConfigRadiusClientRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusClientRootCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusClientRootCertificate { + return vs[0].([]P2SVpnServerConfigRadiusClientRootCertificate)[vs[1].(int)] + }).(P2SVpnServerConfigRadiusClientRootCertificateOutput) } -// A PTR record. -type PtrRecordResponse struct { - // The PTR target domain name for this PTR record. - Ptrdname *string `pulumi:"ptrdname"` +// Radius client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusClientRootCertificateResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the radius client root certificate resource. + ProvisioningState string `pulumi:"provisioningState"` + // The Radius client root certificate thumbprint. + Thumbprint *string `pulumi:"thumbprint"` } -// A PTR record. -type PtrRecordResponseOutput struct{ *pulumi.OutputState } +// Radius client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusClientRootCertificateResponseOutput struct{ *pulumi.OutputState } -func (PtrRecordResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PtrRecordResponse)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusClientRootCertificateResponse)(nil)).Elem() } -func (o PtrRecordResponseOutput) ToPtrRecordResponseOutput() PtrRecordResponseOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseOutput() P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { return o } -func (o PtrRecordResponseOutput) ToPtrRecordResponseOutputWithContext(ctx context.Context) PtrRecordResponseOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { return o } -// The PTR target domain name for this PTR record. -func (o PtrRecordResponseOutput) Ptrdname() pulumi.StringPtrOutput { - return o.ApplyT(func(v PtrRecordResponse) *string { return v.Ptrdname }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the radius client root certificate resource. +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The Radius client root certificate thumbprint. +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) Thumbprint() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusClientRootCertificateResponse) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) } -type PtrRecordResponseArrayOutput struct{ *pulumi.OutputState } +type P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } -func (PtrRecordResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PtrRecordResponse)(nil)).Elem() +func (P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusClientRootCertificateResponse)(nil)).Elem() } -func (o PtrRecordResponseArrayOutput) ToPtrRecordResponseArrayOutput() PtrRecordResponseArrayOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput() P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput { return o } -func (o PtrRecordResponseArrayOutput) ToPtrRecordResponseArrayOutputWithContext(ctx context.Context) PtrRecordResponseArrayOutput { +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput { return o } -func (o PtrRecordResponseArrayOutput) Index(i pulumi.IntInput) PtrRecordResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PtrRecordResponse { - return vs[0].([]PtrRecordResponse)[vs[1].(int)] - }).(PtrRecordResponseOutput) +func (o P2SVpnServerConfigRadiusClientRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusClientRootCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusClientRootCertificateResponse { + return vs[0].([]P2SVpnServerConfigRadiusClientRootCertificateResponse)[vs[1].(int)] + }).(P2SVpnServerConfigRadiusClientRootCertificateResponseOutput) } -// Public IP address resource. -type PublicIPAddressType struct { - // The DDoS protection custom policy associated with the public IP address. - DdosSettings *DdosSettings `pulumi:"ddosSettings"` - // The FQDN of the DNS record associated with the public IP address. - DnsSettings *PublicIPAddressDnsSettings `pulumi:"dnsSettings"` - // The extended location of the public ip address. - ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` +// Radius Server root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusServerRootCertificate struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // The idle timeout of the public IP address. - IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` - // The IP address associated with the public IP address resource. - IpAddress *string `pulumi:"ipAddress"` - // The list of tags associated with the public IP address. - IpTags []IpTag `pulumi:"ipTags"` - // The linked public IP address of the public IP address resource. - LinkedPublicIPAddress *PublicIPAddressType `pulumi:"linkedPublicIPAddress"` - // Resource location. - Location *string `pulumi:"location"` - // Migration phase of Public IP Address. - MigrationPhase *string `pulumi:"migrationPhase"` - // The NatGateway for the Public IP address. - NatGateway *NatGatewayType `pulumi:"natGateway"` - // The public IP address version. - PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` - // The public IP address allocation method. - PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` - // The Public IP Prefix this Public IP Address should be allocated from. - PublicIPPrefix *SubResource `pulumi:"publicIPPrefix"` - // The service public IP address of the public IP address resource. - ServicePublicIPAddress *PublicIPAddressType `pulumi:"servicePublicIPAddress"` - // The public IP address SKU. - Sku *PublicIPAddressSku `pulumi:"sku"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // A list of availability zones denoting the IP allocated for the resource needs to come from. - Zones []string `pulumi:"zones"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The certificate public data. + PublicCertData string `pulumi:"publicCertData"` } -// PublicIPAddressTypeInput is an input type that accepts PublicIPAddressTypeArgs and PublicIPAddressTypeOutput values. -// You can construct a concrete instance of `PublicIPAddressTypeInput` via: +// P2SVpnServerConfigRadiusServerRootCertificateInput is an input type that accepts P2SVpnServerConfigRadiusServerRootCertificateArgs and P2SVpnServerConfigRadiusServerRootCertificateOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigRadiusServerRootCertificateInput` via: // -// PublicIPAddressTypeArgs{...} -type PublicIPAddressTypeInput interface { +// P2SVpnServerConfigRadiusServerRootCertificateArgs{...} +type P2SVpnServerConfigRadiusServerRootCertificateInput interface { pulumi.Input - ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput - ToPublicIPAddressTypeOutputWithContext(context.Context) PublicIPAddressTypeOutput + ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput + ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput } -// Public IP address resource. -type PublicIPAddressTypeArgs struct { - // The DDoS protection custom policy associated with the public IP address. - DdosSettings DdosSettingsPtrInput `pulumi:"ddosSettings"` - // The FQDN of the DNS record associated with the public IP address. - DnsSettings PublicIPAddressDnsSettingsPtrInput `pulumi:"dnsSettings"` - // The extended location of the public ip address. - ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` +// Radius Server root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusServerRootCertificateArgs struct { + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // The idle timeout of the public IP address. - IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` - // The IP address associated with the public IP address resource. - IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` - // The list of tags associated with the public IP address. - IpTags IpTagArrayInput `pulumi:"ipTags"` - // The linked public IP address of the public IP address resource. - LinkedPublicIPAddress PublicIPAddressTypePtrInput `pulumi:"linkedPublicIPAddress"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // Migration phase of Public IP Address. - MigrationPhase pulumi.StringPtrInput `pulumi:"migrationPhase"` - // The NatGateway for the Public IP address. - NatGateway NatGatewayTypePtrInput `pulumi:"natGateway"` - // The public IP address version. - PublicIPAddressVersion pulumi.StringPtrInput `pulumi:"publicIPAddressVersion"` - // The public IP address allocation method. - PublicIPAllocationMethod pulumi.StringPtrInput `pulumi:"publicIPAllocationMethod"` - // The Public IP Prefix this Public IP Address should be allocated from. - PublicIPPrefix SubResourcePtrInput `pulumi:"publicIPPrefix"` - // The service public IP address of the public IP address resource. - ServicePublicIPAddress PublicIPAddressTypePtrInput `pulumi:"servicePublicIPAddress"` - // The public IP address SKU. - Sku PublicIPAddressSkuPtrInput `pulumi:"sku"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` - // A list of availability zones denoting the IP allocated for the resource needs to come from. - Zones pulumi.StringArrayInput `pulumi:"zones"` -} - -func (PublicIPAddressTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressType)(nil)).Elem() -} - -func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput { - return i.ToPublicIPAddressTypeOutputWithContext(context.Background()) + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The certificate public data. + PublicCertData pulumi.StringInput `pulumi:"publicCertData"` } -func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypeOutputWithContext(ctx context.Context) PublicIPAddressTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypeOutput) +func (P2SVpnServerConfigRadiusServerRootCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() } -func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { - return i.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) +func (i P2SVpnServerConfigRadiusServerRootCertificateArgs) ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput { + return i.ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(context.Background()) } -func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypeOutput).ToPublicIPAddressTypePtrOutputWithContext(ctx) +func (i P2SVpnServerConfigRadiusServerRootCertificateArgs) ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusServerRootCertificateOutput) } -// PublicIPAddressTypePtrInput is an input type that accepts PublicIPAddressTypeArgs, PublicIPAddressTypePtr and PublicIPAddressTypePtrOutput values. -// You can construct a concrete instance of `PublicIPAddressTypePtrInput` via: -// -// PublicIPAddressTypeArgs{...} -// -// or: +// P2SVpnServerConfigRadiusServerRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigRadiusServerRootCertificateArray and P2SVpnServerConfigRadiusServerRootCertificateArrayOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigRadiusServerRootCertificateArrayInput` via: // -// nil -type PublicIPAddressTypePtrInput interface { +// P2SVpnServerConfigRadiusServerRootCertificateArray{ P2SVpnServerConfigRadiusServerRootCertificateArgs{...} } +type P2SVpnServerConfigRadiusServerRootCertificateArrayInput interface { pulumi.Input - ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput - ToPublicIPAddressTypePtrOutputWithContext(context.Context) PublicIPAddressTypePtrOutput + ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput + ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput } -type publicIPAddressTypePtrType PublicIPAddressTypeArgs - -func PublicIPAddressTypePtr(v *PublicIPAddressTypeArgs) PublicIPAddressTypePtrInput { - return (*publicIPAddressTypePtrType)(v) -} +type P2SVpnServerConfigRadiusServerRootCertificateArray []P2SVpnServerConfigRadiusServerRootCertificateInput -func (*publicIPAddressTypePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressType)(nil)).Elem() +func (P2SVpnServerConfigRadiusServerRootCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() } -func (i *publicIPAddressTypePtrType) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { - return i.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) +func (i P2SVpnServerConfigRadiusServerRootCertificateArray) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { + return i.ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(context.Background()) } -func (i *publicIPAddressTypePtrType) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypePtrOutput) +func (i P2SVpnServerConfigRadiusServerRootCertificateArray) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) } -// Public IP address resource. -type PublicIPAddressTypeOutput struct{ *pulumi.OutputState } +// Radius Server root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusServerRootCertificateOutput struct{ *pulumi.OutputState } -func (PublicIPAddressTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressType)(nil)).Elem() +func (P2SVpnServerConfigRadiusServerRootCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() } -func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput { +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) ToP2SVpnServerConfigRadiusServerRootCertificateOutput() P2SVpnServerConfigRadiusServerRootCertificateOutput { return o } -func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypeOutputWithContext(ctx context.Context) PublicIPAddressTypeOutput { +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) ToP2SVpnServerConfigRadiusServerRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateOutput { return o } -func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { - return o.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) -} - -func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressType) *PublicIPAddressType { - return &v - }).(PublicIPAddressTypePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// The DDoS protection custom policy associated with the public IP address. -func (o PublicIPAddressTypeOutput) DdosSettings() DdosSettingsPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *DdosSettings { return v.DdosSettings }).(DdosSettingsPtrOutput) +// Resource ID. +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The FQDN of the DNS record associated with the public IP address. -func (o PublicIPAddressTypeOutput) DnsSettings() PublicIPAddressDnsSettingsPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressDnsSettings { return v.DnsSettings }).(PublicIPAddressDnsSettingsPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The extended location of the public ip address. -func (o PublicIPAddressTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) +// The certificate public data. +func (o P2SVpnServerConfigRadiusServerRootCertificateOutput) PublicCertData() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificate) string { return v.PublicCertData }).(pulumi.StringOutput) } -// Resource ID. -func (o PublicIPAddressTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.Id }).(pulumi.StringPtrOutput) -} +type P2SVpnServerConfigRadiusServerRootCertificateArrayOutput struct{ *pulumi.OutputState } -// The idle timeout of the public IP address. -func (o PublicIPAddressTypeOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) +func (P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificate)(nil)).Elem() } -// The IP address associated with the public IP address resource. -func (o PublicIPAddressTypeOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { + return o } -// The list of tags associated with the public IP address. -func (o PublicIPAddressTypeOutput) IpTags() IpTagArrayOutput { - return o.ApplyT(func(v PublicIPAddressType) []IpTag { return v.IpTags }).(IpTagArrayOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateArrayOutput { + return o } -// The linked public IP address of the public IP address resource. -func (o PublicIPAddressTypeOutput) LinkedPublicIPAddress() PublicIPAddressTypePtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressType { return v.LinkedPublicIPAddress }).(PublicIPAddressTypePtrOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusServerRootCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusServerRootCertificate { + return vs[0].([]P2SVpnServerConfigRadiusServerRootCertificate)[vs[1].(int)] + }).(P2SVpnServerConfigRadiusServerRootCertificateOutput) } -// Resource location. -func (o PublicIPAddressTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.Location }).(pulumi.StringPtrOutput) +// Radius Server root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusServerRootCertificateResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the radius server root certificate resource. + ProvisioningState string `pulumi:"provisioningState"` + // The certificate public data. + PublicCertData string `pulumi:"publicCertData"` } -// Migration phase of Public IP Address. -func (o PublicIPAddressTypeOutput) MigrationPhase() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.MigrationPhase }).(pulumi.StringPtrOutput) -} +// Radius Server root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigRadiusServerRootCertificateResponseOutput struct{ *pulumi.OutputState } -// The NatGateway for the Public IP address. -func (o PublicIPAddressTypeOutput) NatGateway() NatGatewayTypePtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *NatGatewayType { return v.NatGateway }).(NatGatewayTypePtrOutput) +func (P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigRadiusServerRootCertificateResponse)(nil)).Elem() } -// The public IP address version. -func (o PublicIPAddressTypeOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.PublicIPAddressVersion }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseOutput() P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { + return o } -// The public IP address allocation method. -func (o PublicIPAddressTypeOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *string { return v.PublicIPAllocationMethod }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { + return o } -// The Public IP Prefix this Public IP Address should be allocated from. -func (o PublicIPAddressTypeOutput) PublicIPPrefix() SubResourcePtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *SubResource { return v.PublicIPPrefix }).(SubResourcePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// The service public IP address of the public IP address resource. -func (o PublicIPAddressTypeOutput) ServicePublicIPAddress() PublicIPAddressTypePtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressType { return v.ServicePublicIPAddress }).(PublicIPAddressTypePtrOutput) +// Resource ID. +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The public IP address SKU. -func (o PublicIPAddressTypeOutput) Sku() PublicIPAddressSkuPtrOutput { - return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressSku { return v.Sku }).(PublicIPAddressSkuPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource tags. -func (o PublicIPAddressTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v PublicIPAddressType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// The provisioning state of the radius server root certificate resource. +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// A list of availability zones denoting the IP allocated for the resource needs to come from. -func (o PublicIPAddressTypeOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v PublicIPAddressType) []string { return v.Zones }).(pulumi.StringArrayOutput) +// The certificate public data. +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) PublicCertData() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigRadiusServerRootCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) } -type PublicIPAddressTypePtrOutput struct{ *pulumi.OutputState } +type P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } -func (PublicIPAddressTypePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressType)(nil)).Elem() +func (P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigRadiusServerRootCertificateResponse)(nil)).Elem() } -func (o PublicIPAddressTypePtrOutput) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput() P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput { return o } -func (o PublicIPAddressTypePtrOutput) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) ToP2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput { return o } -func (o PublicIPAddressTypePtrOutput) Elem() PublicIPAddressTypeOutput { - return o.ApplyT(func(v *PublicIPAddressType) PublicIPAddressType { - if v != nil { - return *v - } - var ret PublicIPAddressType - return ret - }).(PublicIPAddressTypeOutput) +func (o P2SVpnServerConfigRadiusServerRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigRadiusServerRootCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigRadiusServerRootCertificateResponse { + return vs[0].([]P2SVpnServerConfigRadiusServerRootCertificateResponse)[vs[1].(int)] + }).(P2SVpnServerConfigRadiusServerRootCertificateResponseOutput) } -// The DDoS protection custom policy associated with the public IP address. -func (o PublicIPAddressTypePtrOutput) DdosSettings() DdosSettingsPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *DdosSettings { - if v == nil { - return nil - } - return v.DdosSettings - }).(DdosSettingsPtrOutput) +// VPN client revoked certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRevokedCertificate struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The revoked VPN client certificate thumbprint. + Thumbprint *string `pulumi:"thumbprint"` } -// The FQDN of the DNS record associated with the public IP address. -func (o PublicIPAddressTypePtrOutput) DnsSettings() PublicIPAddressDnsSettingsPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressDnsSettings { - if v == nil { - return nil - } - return v.DnsSettings - }).(PublicIPAddressDnsSettingsPtrOutput) -} +// P2SVpnServerConfigVpnClientRevokedCertificateInput is an input type that accepts P2SVpnServerConfigVpnClientRevokedCertificateArgs and P2SVpnServerConfigVpnClientRevokedCertificateOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRevokedCertificateInput` via: +// +// P2SVpnServerConfigVpnClientRevokedCertificateArgs{...} +type P2SVpnServerConfigVpnClientRevokedCertificateInput interface { + pulumi.Input -// The extended location of the public ip address. -func (o PublicIPAddressTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *ExtendedLocation { - if v == nil { - return nil - } - return v.ExtendedLocation - }).(ExtendedLocationPtrOutput) + ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput + ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput } -// Resource ID. -func (o PublicIPAddressTypePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +// VPN client revoked certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRevokedCertificateArgs struct { + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The revoked VPN client certificate thumbprint. + Thumbprint pulumi.StringPtrInput `pulumi:"thumbprint"` } -// The idle timeout of the public IP address. -func (o PublicIPAddressTypePtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *int { - if v == nil { - return nil - } - return v.IdleTimeoutInMinutes - }).(pulumi.IntPtrOutput) +func (P2SVpnServerConfigVpnClientRevokedCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() } -// The IP address associated with the public IP address resource. -func (o PublicIPAddressTypePtrOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.IpAddress - }).(pulumi.StringPtrOutput) +func (i P2SVpnServerConfigVpnClientRevokedCertificateArgs) ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput { + return i.ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(context.Background()) } -// The list of tags associated with the public IP address. -func (o PublicIPAddressTypePtrOutput) IpTags() IpTagArrayOutput { - return o.ApplyT(func(v *PublicIPAddressType) []IpTag { - if v == nil { - return nil - } - return v.IpTags - }).(IpTagArrayOutput) +func (i P2SVpnServerConfigVpnClientRevokedCertificateArgs) ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRevokedCertificateOutput) } -// The linked public IP address of the public IP address resource. -func (o PublicIPAddressTypePtrOutput) LinkedPublicIPAddress() PublicIPAddressTypePtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressType { - if v == nil { - return nil - } - return v.LinkedPublicIPAddress - }).(PublicIPAddressTypePtrOutput) -} +// P2SVpnServerConfigVpnClientRevokedCertificateArrayInput is an input type that accepts P2SVpnServerConfigVpnClientRevokedCertificateArray and P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRevokedCertificateArrayInput` via: +// +// P2SVpnServerConfigVpnClientRevokedCertificateArray{ P2SVpnServerConfigVpnClientRevokedCertificateArgs{...} } +type P2SVpnServerConfigVpnClientRevokedCertificateArrayInput interface { + pulumi.Input -// Resource location. -func (o PublicIPAddressTypePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) + ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput + ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput } -// Migration phase of Public IP Address. -func (o PublicIPAddressTypePtrOutput) MigrationPhase() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.MigrationPhase - }).(pulumi.StringPtrOutput) +type P2SVpnServerConfigVpnClientRevokedCertificateArray []P2SVpnServerConfigVpnClientRevokedCertificateInput + +func (P2SVpnServerConfigVpnClientRevokedCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() } -// The NatGateway for the Public IP address. -func (o PublicIPAddressTypePtrOutput) NatGateway() NatGatewayTypePtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *NatGatewayType { - if v == nil { - return nil - } - return v.NatGateway - }).(NatGatewayTypePtrOutput) +func (i P2SVpnServerConfigVpnClientRevokedCertificateArray) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { + return i.ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(context.Background()) } -// The public IP address version. -func (o PublicIPAddressTypePtrOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.PublicIPAddressVersion - }).(pulumi.StringPtrOutput) +func (i P2SVpnServerConfigVpnClientRevokedCertificateArray) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) } -// The public IP address allocation method. -func (o PublicIPAddressTypePtrOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *string { - if v == nil { - return nil - } - return v.PublicIPAllocationMethod - }).(pulumi.StringPtrOutput) +// VPN client revoked certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRevokedCertificateOutput struct{ *pulumi.OutputState } + +func (P2SVpnServerConfigVpnClientRevokedCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() } -// The Public IP Prefix this Public IP Address should be allocated from. -func (o PublicIPAddressTypePtrOutput) PublicIPPrefix() SubResourcePtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *SubResource { - if v == nil { - return nil - } - return v.PublicIPPrefix - }).(SubResourcePtrOutput) +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateOutput() P2SVpnServerConfigVpnClientRevokedCertificateOutput { + return o } -// The service public IP address of the public IP address resource. -func (o PublicIPAddressTypePtrOutput) ServicePublicIPAddress() PublicIPAddressTypePtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressType { - if v == nil { - return nil - } - return v.ServicePublicIPAddress - }).(PublicIPAddressTypePtrOutput) +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateOutput { + return o } -// The public IP address SKU. -func (o PublicIPAddressTypePtrOutput) Sku() PublicIPAddressSkuPtrOutput { - return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressSku { - if v == nil { - return nil - } - return v.Sku - }).(PublicIPAddressSkuPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// Resource tags. -func (o PublicIPAddressTypePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *PublicIPAddressType) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) +// Resource ID. +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -// A list of availability zones denoting the IP allocated for the resource needs to come from. -func (o PublicIPAddressTypePtrOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PublicIPAddressType) []string { - if v == nil { - return nil - } - return v.Zones - }).(pulumi.StringArrayOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Contains FQDN of the DNS record associated with the public IP address. -type PublicIPAddressDnsSettings struct { - // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. - DomainNameLabel *string `pulumi:"domainNameLabel"` - // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. - Fqdn *string `pulumi:"fqdn"` - // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. - ReverseFqdn *string `pulumi:"reverseFqdn"` +// The revoked VPN client certificate thumbprint. +func (o P2SVpnServerConfigVpnClientRevokedCertificateOutput) Thumbprint() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificate) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) } -// PublicIPAddressDnsSettingsInput is an input type that accepts PublicIPAddressDnsSettingsArgs and PublicIPAddressDnsSettingsOutput values. -// You can construct a concrete instance of `PublicIPAddressDnsSettingsInput` via: -// -// PublicIPAddressDnsSettingsArgs{...} -type PublicIPAddressDnsSettingsInput interface { - pulumi.Input +type P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput struct{ *pulumi.OutputState } - ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput - ToPublicIPAddressDnsSettingsOutputWithContext(context.Context) PublicIPAddressDnsSettingsOutput +func (P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificate)(nil)).Elem() } -// Contains FQDN of the DNS record associated with the public IP address. -type PublicIPAddressDnsSettingsArgs struct { - // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. - DomainNameLabel pulumi.StringPtrInput `pulumi:"domainNameLabel"` - // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. - Fqdn pulumi.StringPtrInput `pulumi:"fqdn"` - // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. - ReverseFqdn pulumi.StringPtrInput `pulumi:"reverseFqdn"` +func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { + return o } -func (PublicIPAddressDnsSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressDnsSettings)(nil)).Elem() +func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput { + return o } -func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput { - return i.ToPublicIPAddressDnsSettingsOutputWithContext(context.Background()) +func (o P2SVpnServerConfigVpnClientRevokedCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRevokedCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRevokedCertificate { + return vs[0].([]P2SVpnServerConfigVpnClientRevokedCertificate)[vs[1].(int)] + }).(P2SVpnServerConfigVpnClientRevokedCertificateOutput) } -func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsOutput) +// VPN client revoked certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRevokedCertificateResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the VPN client revoked certificate resource. + ProvisioningState string `pulumi:"provisioningState"` + // The revoked VPN client certificate thumbprint. + Thumbprint *string `pulumi:"thumbprint"` } -func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { - return i.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) -} +// VPN client revoked certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput struct{ *pulumi.OutputState } -func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsOutput).ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx) +func (P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRevokedCertificateResponse)(nil)).Elem() } -// PublicIPAddressDnsSettingsPtrInput is an input type that accepts PublicIPAddressDnsSettingsArgs, PublicIPAddressDnsSettingsPtr and PublicIPAddressDnsSettingsPtrOutput values. -// You can construct a concrete instance of `PublicIPAddressDnsSettingsPtrInput` via: -// -// PublicIPAddressDnsSettingsArgs{...} -// -// or: -// -// nil -type PublicIPAddressDnsSettingsPtrInput interface { - pulumi.Input +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseOutput() P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { + return o +} - ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput - ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Context) PublicIPAddressDnsSettingsPtrOutput +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { + return o } -type publicIPAddressDnsSettingsPtrType PublicIPAddressDnsSettingsArgs +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) +} -func PublicIPAddressDnsSettingsPtr(v *PublicIPAddressDnsSettingsArgs) PublicIPAddressDnsSettingsPtrInput { - return (*publicIPAddressDnsSettingsPtrType)(v) +// Resource ID. +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (*publicIPAddressDnsSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressDnsSettings)(nil)).Elem() +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i *publicIPAddressDnsSettingsPtrType) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { - return i.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) +// The provisioning state of the VPN client revoked certificate resource. +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i *publicIPAddressDnsSettingsPtrType) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsPtrOutput) +// The revoked VPN client certificate thumbprint. +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) Thumbprint() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRevokedCertificateResponse) *string { return v.Thumbprint }).(pulumi.StringPtrOutput) } -// Contains FQDN of the DNS record associated with the public IP address. -type PublicIPAddressDnsSettingsOutput struct{ *pulumi.OutputState } +type P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput struct{ *pulumi.OutputState } -func (PublicIPAddressDnsSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressDnsSettings)(nil)).Elem() +func (P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRevokedCertificateResponse)(nil)).Elem() } -func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput { +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput() P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput { return o } -func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsOutput { +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput { return o } -func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { - return o.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) +func (o P2SVpnServerConfigVpnClientRevokedCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRevokedCertificateResponse { + return vs[0].([]P2SVpnServerConfigVpnClientRevokedCertificateResponse)[vs[1].(int)] + }).(P2SVpnServerConfigVpnClientRevokedCertificateResponseOutput) } -func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressDnsSettings) *PublicIPAddressDnsSettings { - return &v - }).(PublicIPAddressDnsSettingsPtrOutput) +// VPN client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRootCertificate struct { + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The certificate public data. + PublicCertData string `pulumi:"publicCertData"` } -// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. -func (o PublicIPAddressDnsSettingsOutput) DomainNameLabel() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.DomainNameLabel }).(pulumi.StringPtrOutput) -} +// P2SVpnServerConfigVpnClientRootCertificateInput is an input type that accepts P2SVpnServerConfigVpnClientRootCertificateArgs and P2SVpnServerConfigVpnClientRootCertificateOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRootCertificateInput` via: +// +// P2SVpnServerConfigVpnClientRootCertificateArgs{...} +type P2SVpnServerConfigVpnClientRootCertificateInput interface { + pulumi.Input -// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. -func (o PublicIPAddressDnsSettingsOutput) Fqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.Fqdn }).(pulumi.StringPtrOutput) + ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput + ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput } -// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. -func (o PublicIPAddressDnsSettingsOutput) ReverseFqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.ReverseFqdn }).(pulumi.StringPtrOutput) +// VPN client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRootCertificateArgs struct { + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The certificate public data. + PublicCertData pulumi.StringInput `pulumi:"publicCertData"` } -type PublicIPAddressDnsSettingsPtrOutput struct{ *pulumi.OutputState } - -func (PublicIPAddressDnsSettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressDnsSettings)(nil)).Elem() +func (P2SVpnServerConfigVpnClientRootCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() } -func (o PublicIPAddressDnsSettingsPtrOutput) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { - return o +func (i P2SVpnServerConfigVpnClientRootCertificateArgs) ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput { + return i.ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(context.Background()) } -func (o PublicIPAddressDnsSettingsPtrOutput) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { - return o +func (i P2SVpnServerConfigVpnClientRootCertificateArgs) ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRootCertificateOutput) } -func (o PublicIPAddressDnsSettingsPtrOutput) Elem() PublicIPAddressDnsSettingsOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettings) PublicIPAddressDnsSettings { - if v != nil { - return *v - } - var ret PublicIPAddressDnsSettings - return ret - }).(PublicIPAddressDnsSettingsOutput) -} +// P2SVpnServerConfigVpnClientRootCertificateArrayInput is an input type that accepts P2SVpnServerConfigVpnClientRootCertificateArray and P2SVpnServerConfigVpnClientRootCertificateArrayOutput values. +// You can construct a concrete instance of `P2SVpnServerConfigVpnClientRootCertificateArrayInput` via: +// +// P2SVpnServerConfigVpnClientRootCertificateArray{ P2SVpnServerConfigVpnClientRootCertificateArgs{...} } +type P2SVpnServerConfigVpnClientRootCertificateArrayInput interface { + pulumi.Input -// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. -func (o PublicIPAddressDnsSettingsPtrOutput) DomainNameLabel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { - if v == nil { - return nil - } - return v.DomainNameLabel - }).(pulumi.StringPtrOutput) + ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput + ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput } -// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. -func (o PublicIPAddressDnsSettingsPtrOutput) Fqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { - if v == nil { - return nil - } - return v.Fqdn - }).(pulumi.StringPtrOutput) +type P2SVpnServerConfigVpnClientRootCertificateArray []P2SVpnServerConfigVpnClientRootCertificateInput + +func (P2SVpnServerConfigVpnClientRootCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() } -// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. -func (o PublicIPAddressDnsSettingsPtrOutput) ReverseFqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { - if v == nil { - return nil - } - return v.ReverseFqdn - }).(pulumi.StringPtrOutput) +func (i P2SVpnServerConfigVpnClientRootCertificateArray) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput { + return i.ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(context.Background()) } -// Contains FQDN of the DNS record associated with the public IP address. -type PublicIPAddressDnsSettingsResponse struct { - // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. - DomainNameLabel *string `pulumi:"domainNameLabel"` - // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. - Fqdn *string `pulumi:"fqdn"` - // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. - ReverseFqdn *string `pulumi:"reverseFqdn"` +func (i P2SVpnServerConfigVpnClientRootCertificateArray) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(P2SVpnServerConfigVpnClientRootCertificateArrayOutput) } -// Contains FQDN of the DNS record associated with the public IP address. -type PublicIPAddressDnsSettingsResponseOutput struct{ *pulumi.OutputState } +// VPN client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRootCertificateOutput struct{ *pulumi.OutputState } -func (PublicIPAddressDnsSettingsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressDnsSettingsResponse)(nil)).Elem() +func (P2SVpnServerConfigVpnClientRootCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() } -func (o PublicIPAddressDnsSettingsResponseOutput) ToPublicIPAddressDnsSettingsResponseOutput() PublicIPAddressDnsSettingsResponseOutput { +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) ToP2SVpnServerConfigVpnClientRootCertificateOutput() P2SVpnServerConfigVpnClientRootCertificateOutput { return o } -func (o PublicIPAddressDnsSettingsResponseOutput) ToPublicIPAddressDnsSettingsResponseOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsResponseOutput { +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) ToP2SVpnServerConfigVpnClientRootCertificateOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateOutput { return o } -// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. -func (o PublicIPAddressDnsSettingsResponseOutput) DomainNameLabel() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.DomainNameLabel }).(pulumi.StringPtrOutput) -} - -// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. -func (o PublicIPAddressDnsSettingsResponseOutput) Fqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.Fqdn }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. -func (o PublicIPAddressDnsSettingsResponseOutput) ReverseFqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.ReverseFqdn }).(pulumi.StringPtrOutput) +// Resource ID. +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Id }).(pulumi.StringPtrOutput) } -type PublicIPAddressDnsSettingsResponsePtrOutput struct{ *pulumi.OutputState } - -func (PublicIPAddressDnsSettingsResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressDnsSettingsResponse)(nil)).Elem() +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o PublicIPAddressDnsSettingsResponsePtrOutput) ToPublicIPAddressDnsSettingsResponsePtrOutput() PublicIPAddressDnsSettingsResponsePtrOutput { - return o +// The certificate public data. +func (o P2SVpnServerConfigVpnClientRootCertificateOutput) PublicCertData() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificate) string { return v.PublicCertData }).(pulumi.StringOutput) } -func (o PublicIPAddressDnsSettingsResponsePtrOutput) ToPublicIPAddressDnsSettingsResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsResponsePtrOutput { - return o -} +type P2SVpnServerConfigVpnClientRootCertificateArrayOutput struct{ *pulumi.OutputState } -func (o PublicIPAddressDnsSettingsResponsePtrOutput) Elem() PublicIPAddressDnsSettingsResponseOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) PublicIPAddressDnsSettingsResponse { - if v != nil { - return *v - } - var ret PublicIPAddressDnsSettingsResponse - return ret - }).(PublicIPAddressDnsSettingsResponseOutput) +func (P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificate)(nil)).Elem() } -// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. -func (o PublicIPAddressDnsSettingsResponsePtrOutput) DomainNameLabel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { - if v == nil { - return nil - } - return v.DomainNameLabel - }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutput() P2SVpnServerConfigVpnClientRootCertificateArrayOutput { + return o } -// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. -func (o PublicIPAddressDnsSettingsResponsePtrOutput) Fqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { - if v == nil { - return nil - } - return v.Fqdn - }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateArrayOutput { + return o } -// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. -func (o PublicIPAddressDnsSettingsResponsePtrOutput) ReverseFqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { - if v == nil { - return nil - } - return v.ReverseFqdn - }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRootCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRootCertificate { + return vs[0].([]P2SVpnServerConfigVpnClientRootCertificate)[vs[1].(int)] + }).(P2SVpnServerConfigVpnClientRootCertificateOutput) } -// Public IP address resource. -type PublicIPAddressResponse struct { - // The DDoS protection custom policy associated with the public IP address. - DdosSettings *DdosSettingsResponse `pulumi:"ddosSettings"` - // The FQDN of the DNS record associated with the public IP address. - DnsSettings *PublicIPAddressDnsSettingsResponse `pulumi:"dnsSettings"` +// VPN client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRootCertificateResponse struct { // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // The extended location of the public ip address. - ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` + Etag *string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // The idle timeout of the public IP address. - IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` - // The IP address associated with the public IP address resource. - IpAddress *string `pulumi:"ipAddress"` - // The IP configuration associated with the public IP address. - IpConfiguration IPConfigurationResponse `pulumi:"ipConfiguration"` - // The list of tags associated with the public IP address. - IpTags []IpTagResponse `pulumi:"ipTags"` - // The linked public IP address of the public IP address resource. - LinkedPublicIPAddress *PublicIPAddressResponse `pulumi:"linkedPublicIPAddress"` - // Resource location. - Location *string `pulumi:"location"` - // Migration phase of Public IP Address. - MigrationPhase *string `pulumi:"migrationPhase"` - // Resource name. - Name string `pulumi:"name"` - // The NatGateway for the Public IP address. - NatGateway *NatGatewayResponse `pulumi:"natGateway"` - // The provisioning state of the public IP address resource. + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the VPN client root certificate resource. ProvisioningState string `pulumi:"provisioningState"` - // The public IP address version. - PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` - // The public IP address allocation method. - PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` - // The Public IP Prefix this Public IP Address should be allocated from. - PublicIPPrefix *SubResourceResponse `pulumi:"publicIPPrefix"` - // The resource GUID property of the public IP address resource. - ResourceGuid string `pulumi:"resourceGuid"` - // The service public IP address of the public IP address resource. - ServicePublicIPAddress *PublicIPAddressResponse `pulumi:"servicePublicIPAddress"` - // The public IP address SKU. - Sku *PublicIPAddressSkuResponse `pulumi:"sku"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` - // A list of availability zones denoting the IP allocated for the resource needs to come from. - Zones []string `pulumi:"zones"` -} - -// Defaults sets the appropriate defaults for PublicIPAddressResponse -func (val *PublicIPAddressResponse) Defaults() *PublicIPAddressResponse { - if val == nil { - return nil - } - tmp := *val - tmp.IpConfiguration = *tmp.IpConfiguration.Defaults() - - tmp.LinkedPublicIPAddress = tmp.LinkedPublicIPAddress.Defaults() - - tmp.ServicePublicIPAddress = tmp.ServicePublicIPAddress.Defaults() - - return &tmp + // The certificate public data. + PublicCertData string `pulumi:"publicCertData"` } -// Public IP address resource. -type PublicIPAddressResponseOutput struct{ *pulumi.OutputState } +// VPN client root certificate of P2SVpnServerConfiguration. +type P2SVpnServerConfigVpnClientRootCertificateResponseOutput struct{ *pulumi.OutputState } -func (PublicIPAddressResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressResponse)(nil)).Elem() +func (P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*P2SVpnServerConfigVpnClientRootCertificateResponse)(nil)).Elem() } -func (o PublicIPAddressResponseOutput) ToPublicIPAddressResponseOutput() PublicIPAddressResponseOutput { +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseOutput() P2SVpnServerConfigVpnClientRootCertificateResponseOutput { return o } -func (o PublicIPAddressResponseOutput) ToPublicIPAddressResponseOutputWithContext(ctx context.Context) PublicIPAddressResponseOutput { +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateResponseOutput { return o } -// The DDoS protection custom policy associated with the public IP address. -func (o PublicIPAddressResponseOutput) DdosSettings() DdosSettingsResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *DdosSettingsResponse { return v.DdosSettings }).(DdosSettingsResponsePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// The FQDN of the DNS record associated with the public IP address. -func (o PublicIPAddressResponseOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressDnsSettingsResponse { return v.DnsSettings }).(PublicIPAddressDnsSettingsResponsePtrOutput) +// Resource ID. +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o PublicIPAddressResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Etag }).(pulumi.StringOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The extended location of the public ip address. -func (o PublicIPAddressResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +// The provisioning state of the VPN client root certificate resource. +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Resource ID. -func (o PublicIPAddressResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// The certificate public data. +func (o P2SVpnServerConfigVpnClientRootCertificateResponseOutput) PublicCertData() pulumi.StringOutput { + return o.ApplyT(func(v P2SVpnServerConfigVpnClientRootCertificateResponse) string { return v.PublicCertData }).(pulumi.StringOutput) } -// The idle timeout of the public IP address. -func (o PublicIPAddressResponseOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) +type P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput struct{ *pulumi.OutputState } + +func (P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]P2SVpnServerConfigVpnClientRootCertificateResponse)(nil)).Elem() } -// The IP address associated with the public IP address resource. -func (o PublicIPAddressResponseOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput() P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput { + return o } -// The IP configuration associated with the public IP address. -func (o PublicIPAddressResponseOutput) IpConfiguration() IPConfigurationResponseOutput { - return o.ApplyT(func(v PublicIPAddressResponse) IPConfigurationResponse { return v.IpConfiguration }).(IPConfigurationResponseOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) ToP2SVpnServerConfigVpnClientRootCertificateResponseArrayOutputWithContext(ctx context.Context) P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput { + return o } -// The list of tags associated with the public IP address. -func (o PublicIPAddressResponseOutput) IpTags() IpTagResponseArrayOutput { - return o.ApplyT(func(v PublicIPAddressResponse) []IpTagResponse { return v.IpTags }).(IpTagResponseArrayOutput) +func (o P2SVpnServerConfigVpnClientRootCertificateResponseArrayOutput) Index(i pulumi.IntInput) P2SVpnServerConfigVpnClientRootCertificateResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) P2SVpnServerConfigVpnClientRootCertificateResponse { + return vs[0].([]P2SVpnServerConfigVpnClientRootCertificateResponse)[vs[1].(int)] + }).(P2SVpnServerConfigVpnClientRootCertificateResponseOutput) } -// The linked public IP address of the public IP address resource. -func (o PublicIPAddressResponseOutput) LinkedPublicIPAddress() PublicIPAddressResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressResponse { return v.LinkedPublicIPAddress }).(PublicIPAddressResponsePtrOutput) +// Filter that is applied to packet capture request. Multiple filters can be applied. +type PacketCaptureFilter struct { + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalIPAddress *string `pulumi:"localIPAddress"` + // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalPort *string `pulumi:"localPort"` + // Protocol to be filtered on. + Protocol *string `pulumi:"protocol"` + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemoteIPAddress *string `pulumi:"remoteIPAddress"` + // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemotePort *string `pulumi:"remotePort"` } -// Resource location. -func (o PublicIPAddressResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// Defaults sets the appropriate defaults for PacketCaptureFilter +func (val *PacketCaptureFilter) Defaults() *PacketCaptureFilter { + if val == nil { + return nil + } + tmp := *val + if tmp.Protocol == nil { + protocol_ := "Any" + tmp.Protocol = &protocol_ + } + return &tmp } -// Migration phase of Public IP Address. -func (o PublicIPAddressResponseOutput) MigrationPhase() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.MigrationPhase }).(pulumi.StringPtrOutput) -} +// PacketCaptureFilterInput is an input type that accepts PacketCaptureFilterArgs and PacketCaptureFilterOutput values. +// You can construct a concrete instance of `PacketCaptureFilterInput` via: +// +// PacketCaptureFilterArgs{...} +type PacketCaptureFilterInput interface { + pulumi.Input -// Resource name. -func (o PublicIPAddressResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Name }).(pulumi.StringOutput) + ToPacketCaptureFilterOutput() PacketCaptureFilterOutput + ToPacketCaptureFilterOutputWithContext(context.Context) PacketCaptureFilterOutput } -// The NatGateway for the Public IP address. -func (o PublicIPAddressResponseOutput) NatGateway() NatGatewayResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *NatGatewayResponse { return v.NatGateway }).(NatGatewayResponsePtrOutput) +// Filter that is applied to packet capture request. Multiple filters can be applied. +type PacketCaptureFilterArgs struct { + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalIPAddress pulumi.StringPtrInput `pulumi:"localIPAddress"` + // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalPort pulumi.StringPtrInput `pulumi:"localPort"` + // Protocol to be filtered on. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemoteIPAddress pulumi.StringPtrInput `pulumi:"remoteIPAddress"` + // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemotePort pulumi.StringPtrInput `pulumi:"remotePort"` } -// The provisioning state of the public IP address resource. -func (o PublicIPAddressResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PublicIPAddressResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Defaults sets the appropriate defaults for PacketCaptureFilterArgs +func (val *PacketCaptureFilterArgs) Defaults() *PacketCaptureFilterArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Protocol == nil { + tmp.Protocol = pulumi.StringPtr("Any") + } + return &tmp } - -// The public IP address version. -func (o PublicIPAddressResponseOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.PublicIPAddressVersion }).(pulumi.StringPtrOutput) +func (PacketCaptureFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureFilter)(nil)).Elem() } -// The public IP address allocation method. -func (o PublicIPAddressResponseOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.PublicIPAllocationMethod }).(pulumi.StringPtrOutput) +func (i PacketCaptureFilterArgs) ToPacketCaptureFilterOutput() PacketCaptureFilterOutput { + return i.ToPacketCaptureFilterOutputWithContext(context.Background()) } -// The Public IP Prefix this Public IP Address should be allocated from. -func (o PublicIPAddressResponseOutput) PublicIPPrefix() SubResourceResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *SubResourceResponse { return v.PublicIPPrefix }).(SubResourceResponsePtrOutput) +func (i PacketCaptureFilterArgs) ToPacketCaptureFilterOutputWithContext(ctx context.Context) PacketCaptureFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureFilterOutput) } -// The resource GUID property of the public IP address resource. -func (o PublicIPAddressResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v PublicIPAddressResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) -} +// PacketCaptureFilterArrayInput is an input type that accepts PacketCaptureFilterArray and PacketCaptureFilterArrayOutput values. +// You can construct a concrete instance of `PacketCaptureFilterArrayInput` via: +// +// PacketCaptureFilterArray{ PacketCaptureFilterArgs{...} } +type PacketCaptureFilterArrayInput interface { + pulumi.Input -// The service public IP address of the public IP address resource. -func (o PublicIPAddressResponseOutput) ServicePublicIPAddress() PublicIPAddressResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressResponse { return v.ServicePublicIPAddress }).(PublicIPAddressResponsePtrOutput) + ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput + ToPacketCaptureFilterArrayOutputWithContext(context.Context) PacketCaptureFilterArrayOutput } -// The public IP address SKU. -func (o PublicIPAddressResponseOutput) Sku() PublicIPAddressSkuResponsePtrOutput { - return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressSkuResponse { return v.Sku }).(PublicIPAddressSkuResponsePtrOutput) -} +type PacketCaptureFilterArray []PacketCaptureFilterInput -// Resource tags. -func (o PublicIPAddressResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v PublicIPAddressResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +func (PacketCaptureFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PacketCaptureFilter)(nil)).Elem() } -// Resource type. -func (o PublicIPAddressResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Type }).(pulumi.StringOutput) +func (i PacketCaptureFilterArray) ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput { + return i.ToPacketCaptureFilterArrayOutputWithContext(context.Background()) } -// A list of availability zones denoting the IP allocated for the resource needs to come from. -func (o PublicIPAddressResponseOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v PublicIPAddressResponse) []string { return v.Zones }).(pulumi.StringArrayOutput) +func (i PacketCaptureFilterArray) ToPacketCaptureFilterArrayOutputWithContext(ctx context.Context) PacketCaptureFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureFilterArrayOutput) } -type PublicIPAddressResponsePtrOutput struct{ *pulumi.OutputState } +// Filter that is applied to packet capture request. Multiple filters can be applied. +type PacketCaptureFilterOutput struct{ *pulumi.OutputState } -func (PublicIPAddressResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressResponse)(nil)).Elem() +func (PacketCaptureFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureFilter)(nil)).Elem() } -func (o PublicIPAddressResponsePtrOutput) ToPublicIPAddressResponsePtrOutput() PublicIPAddressResponsePtrOutput { +func (o PacketCaptureFilterOutput) ToPacketCaptureFilterOutput() PacketCaptureFilterOutput { return o } -func (o PublicIPAddressResponsePtrOutput) ToPublicIPAddressResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressResponsePtrOutput { +func (o PacketCaptureFilterOutput) ToPacketCaptureFilterOutputWithContext(ctx context.Context) PacketCaptureFilterOutput { return o } -func (o PublicIPAddressResponsePtrOutput) Elem() PublicIPAddressResponseOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) PublicIPAddressResponse { - if v != nil { - return *v - } - var ret PublicIPAddressResponse - return ret - }).(PublicIPAddressResponseOutput) +// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterOutput) LocalIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilter) *string { return v.LocalIPAddress }).(pulumi.StringPtrOutput) } -// The DDoS protection custom policy associated with the public IP address. -func (o PublicIPAddressResponsePtrOutput) DdosSettings() DdosSettingsResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *DdosSettingsResponse { - if v == nil { - return nil - } - return v.DdosSettings - }).(DdosSettingsResponsePtrOutput) +// Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterOutput) LocalPort() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilter) *string { return v.LocalPort }).(pulumi.StringPtrOutput) } -// The FQDN of the DNS record associated with the public IP address. -func (o PublicIPAddressResponsePtrOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressDnsSettingsResponse { - if v == nil { - return nil - } - return v.DnsSettings - }).(PublicIPAddressDnsSettingsResponsePtrOutput) +// Protocol to be filtered on. +func (o PacketCaptureFilterOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilter) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o PublicIPAddressResponsePtrOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return &v.Etag - }).(pulumi.StringPtrOutput) +// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterOutput) RemoteIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilter) *string { return v.RemoteIPAddress }).(pulumi.StringPtrOutput) } -// The extended location of the public ip address. -func (o PublicIPAddressResponsePtrOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *ExtendedLocationResponse { - if v == nil { - return nil - } - return v.ExtendedLocation - }).(ExtendedLocationResponsePtrOutput) +// Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterOutput) RemotePort() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilter) *string { return v.RemotePort }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o PublicIPAddressResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) -} +type PacketCaptureFilterArrayOutput struct{ *pulumi.OutputState } -// The idle timeout of the public IP address. -func (o PublicIPAddressResponsePtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *int { - if v == nil { - return nil - } - return v.IdleTimeoutInMinutes - }).(pulumi.IntPtrOutput) +func (PacketCaptureFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PacketCaptureFilter)(nil)).Elem() } -// The IP address associated with the public IP address resource. -func (o PublicIPAddressResponsePtrOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.IpAddress - }).(pulumi.StringPtrOutput) +func (o PacketCaptureFilterArrayOutput) ToPacketCaptureFilterArrayOutput() PacketCaptureFilterArrayOutput { + return o } -// The IP configuration associated with the public IP address. -func (o PublicIPAddressResponsePtrOutput) IpConfiguration() IPConfigurationResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *IPConfigurationResponse { - if v == nil { - return nil - } - return &v.IpConfiguration - }).(IPConfigurationResponsePtrOutput) +func (o PacketCaptureFilterArrayOutput) ToPacketCaptureFilterArrayOutputWithContext(ctx context.Context) PacketCaptureFilterArrayOutput { + return o } -// The list of tags associated with the public IP address. -func (o PublicIPAddressResponsePtrOutput) IpTags() IpTagResponseArrayOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) []IpTagResponse { - if v == nil { - return nil - } - return v.IpTags - }).(IpTagResponseArrayOutput) +func (o PacketCaptureFilterArrayOutput) Index(i pulumi.IntInput) PacketCaptureFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketCaptureFilter { + return vs[0].([]PacketCaptureFilter)[vs[1].(int)] + }).(PacketCaptureFilterOutput) } -// The linked public IP address of the public IP address resource. -func (o PublicIPAddressResponsePtrOutput) LinkedPublicIPAddress() PublicIPAddressResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressResponse { - if v == nil { - return nil - } - return v.LinkedPublicIPAddress - }).(PublicIPAddressResponsePtrOutput) +// Filter that is applied to packet capture request. Multiple filters can be applied. +type PacketCaptureFilterResponse struct { + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalIPAddress *string `pulumi:"localIPAddress"` + // Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + LocalPort *string `pulumi:"localPort"` + // Protocol to be filtered on. + Protocol *string `pulumi:"protocol"` + // Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemoteIPAddress *string `pulumi:"remoteIPAddress"` + // Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. + RemotePort *string `pulumi:"remotePort"` } -// Resource location. -func (o PublicIPAddressResponsePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) +// Defaults sets the appropriate defaults for PacketCaptureFilterResponse +func (val *PacketCaptureFilterResponse) Defaults() *PacketCaptureFilterResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.Protocol == nil { + protocol_ := "Any" + tmp.Protocol = &protocol_ + } + return &tmp } -// Migration phase of Public IP Address. -func (o PublicIPAddressResponsePtrOutput) MigrationPhase() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.MigrationPhase - }).(pulumi.StringPtrOutput) -} +// Filter that is applied to packet capture request. Multiple filters can be applied. +type PacketCaptureFilterResponseOutput struct{ *pulumi.OutputState } -// Resource name. -func (o PublicIPAddressResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return &v.Name - }).(pulumi.StringPtrOutput) +func (PacketCaptureFilterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureFilterResponse)(nil)).Elem() } -// The NatGateway for the Public IP address. -func (o PublicIPAddressResponsePtrOutput) NatGateway() NatGatewayResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *NatGatewayResponse { - if v == nil { - return nil - } - return v.NatGateway - }).(NatGatewayResponsePtrOutput) +func (o PacketCaptureFilterResponseOutput) ToPacketCaptureFilterResponseOutput() PacketCaptureFilterResponseOutput { + return o } -// The provisioning state of the public IP address resource. -func (o PublicIPAddressResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return &v.ProvisioningState - }).(pulumi.StringPtrOutput) +func (o PacketCaptureFilterResponseOutput) ToPacketCaptureFilterResponseOutputWithContext(ctx context.Context) PacketCaptureFilterResponseOutput { + return o } -// The public IP address version. -func (o PublicIPAddressResponsePtrOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.PublicIPAddressVersion - }).(pulumi.StringPtrOutput) +// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterResponseOutput) LocalIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.LocalIPAddress }).(pulumi.StringPtrOutput) } -// The public IP address allocation method. -func (o PublicIPAddressResponsePtrOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return v.PublicIPAllocationMethod - }).(pulumi.StringPtrOutput) +// Local port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterResponseOutput) LocalPort() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.LocalPort }).(pulumi.StringPtrOutput) } -// The Public IP Prefix this Public IP Address should be allocated from. -func (o PublicIPAddressResponsePtrOutput) PublicIPPrefix() SubResourceResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *SubResourceResponse { - if v == nil { - return nil - } - return v.PublicIPPrefix - }).(SubResourceResponsePtrOutput) +// Protocol to be filtered on. +func (o PacketCaptureFilterResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -// The resource GUID property of the public IP address resource. -func (o PublicIPAddressResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return &v.ResourceGuid - }).(pulumi.StringPtrOutput) +// Local IP Address to be filtered on. Notation: "127.0.0.1" for single address entry. "127.0.0.1-127.0.0.255" for range. "127.0.0.1;127.0.0.5;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterResponseOutput) RemoteIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.RemoteIPAddress }).(pulumi.StringPtrOutput) } -// The service public IP address of the public IP address resource. -func (o PublicIPAddressResponsePtrOutput) ServicePublicIPAddress() PublicIPAddressResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressResponse { - if v == nil { - return nil - } - return v.ServicePublicIPAddress - }).(PublicIPAddressResponsePtrOutput) +// Remote port to be filtered on. Notation: "80" for single port entry."80-85" for range. "80;443;" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null. +func (o PacketCaptureFilterResponseOutput) RemotePort() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureFilterResponse) *string { return v.RemotePort }).(pulumi.StringPtrOutput) } -// The public IP address SKU. -func (o PublicIPAddressResponsePtrOutput) Sku() PublicIPAddressSkuResponsePtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressSkuResponse { - if v == nil { - return nil - } - return v.Sku - }).(PublicIPAddressSkuResponsePtrOutput) +type PacketCaptureFilterResponseArrayOutput struct{ *pulumi.OutputState } + +func (PacketCaptureFilterResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PacketCaptureFilterResponse)(nil)).Elem() } -// Resource tags. -func (o PublicIPAddressResponsePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) +func (o PacketCaptureFilterResponseArrayOutput) ToPacketCaptureFilterResponseArrayOutput() PacketCaptureFilterResponseArrayOutput { + return o } -// Resource type. -func (o PublicIPAddressResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) +func (o PacketCaptureFilterResponseArrayOutput) ToPacketCaptureFilterResponseArrayOutputWithContext(ctx context.Context) PacketCaptureFilterResponseArrayOutput { + return o } -// A list of availability zones denoting the IP allocated for the resource needs to come from. -func (o PublicIPAddressResponsePtrOutput) Zones() pulumi.StringArrayOutput { - return o.ApplyT(func(v *PublicIPAddressResponse) []string { - if v == nil { - return nil - } - return v.Zones - }).(pulumi.StringArrayOutput) +func (o PacketCaptureFilterResponseArrayOutput) Index(i pulumi.IntInput) PacketCaptureFilterResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PacketCaptureFilterResponse { + return vs[0].([]PacketCaptureFilterResponse)[vs[1].(int)] + }).(PacketCaptureFilterResponseOutput) } -// SKU of a public IP address. -type PublicIPAddressSku struct { - // Name of a public IP address SKU. - Name *string `pulumi:"name"` - // Tier of a public IP address SKU. - Tier *string `pulumi:"tier"` +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +type PacketCaptureMachineScope struct { + // List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. + Exclude []string `pulumi:"exclude"` + // List of AzureVMSS instances to run packet capture on. + Include []string `pulumi:"include"` } -// PublicIPAddressSkuInput is an input type that accepts PublicIPAddressSkuArgs and PublicIPAddressSkuOutput values. -// You can construct a concrete instance of `PublicIPAddressSkuInput` via: +// PacketCaptureMachineScopeInput is an input type that accepts PacketCaptureMachineScopeArgs and PacketCaptureMachineScopeOutput values. +// You can construct a concrete instance of `PacketCaptureMachineScopeInput` via: // -// PublicIPAddressSkuArgs{...} -type PublicIPAddressSkuInput interface { +// PacketCaptureMachineScopeArgs{...} +type PacketCaptureMachineScopeInput interface { pulumi.Input - ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput - ToPublicIPAddressSkuOutputWithContext(context.Context) PublicIPAddressSkuOutput + ToPacketCaptureMachineScopeOutput() PacketCaptureMachineScopeOutput + ToPacketCaptureMachineScopeOutputWithContext(context.Context) PacketCaptureMachineScopeOutput } -// SKU of a public IP address. -type PublicIPAddressSkuArgs struct { - // Name of a public IP address SKU. - Name pulumi.StringPtrInput `pulumi:"name"` - // Tier of a public IP address SKU. - Tier pulumi.StringPtrInput `pulumi:"tier"` +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +type PacketCaptureMachineScopeArgs struct { + // List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. + Exclude pulumi.StringArrayInput `pulumi:"exclude"` + // List of AzureVMSS instances to run packet capture on. + Include pulumi.StringArrayInput `pulumi:"include"` } -func (PublicIPAddressSkuArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressSku)(nil)).Elem() +func (PacketCaptureMachineScopeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureMachineScope)(nil)).Elem() } -func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput { - return i.ToPublicIPAddressSkuOutputWithContext(context.Background()) +func (i PacketCaptureMachineScopeArgs) ToPacketCaptureMachineScopeOutput() PacketCaptureMachineScopeOutput { + return i.ToPacketCaptureMachineScopeOutputWithContext(context.Background()) } -func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuOutputWithContext(ctx context.Context) PublicIPAddressSkuOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuOutput) +func (i PacketCaptureMachineScopeArgs) ToPacketCaptureMachineScopeOutputWithContext(ctx context.Context) PacketCaptureMachineScopeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureMachineScopeOutput) } -func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { - return i.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) +func (i PacketCaptureMachineScopeArgs) ToPacketCaptureMachineScopePtrOutput() PacketCaptureMachineScopePtrOutput { + return i.ToPacketCaptureMachineScopePtrOutputWithContext(context.Background()) } -func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuOutput).ToPublicIPAddressSkuPtrOutputWithContext(ctx) +func (i PacketCaptureMachineScopeArgs) ToPacketCaptureMachineScopePtrOutputWithContext(ctx context.Context) PacketCaptureMachineScopePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureMachineScopeOutput).ToPacketCaptureMachineScopePtrOutputWithContext(ctx) } -// PublicIPAddressSkuPtrInput is an input type that accepts PublicIPAddressSkuArgs, PublicIPAddressSkuPtr and PublicIPAddressSkuPtrOutput values. -// You can construct a concrete instance of `PublicIPAddressSkuPtrInput` via: +// PacketCaptureMachineScopePtrInput is an input type that accepts PacketCaptureMachineScopeArgs, PacketCaptureMachineScopePtr and PacketCaptureMachineScopePtrOutput values. +// You can construct a concrete instance of `PacketCaptureMachineScopePtrInput` via: // -// PublicIPAddressSkuArgs{...} +// PacketCaptureMachineScopeArgs{...} // // or: // // nil -type PublicIPAddressSkuPtrInput interface { +type PacketCaptureMachineScopePtrInput interface { pulumi.Input - ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput - ToPublicIPAddressSkuPtrOutputWithContext(context.Context) PublicIPAddressSkuPtrOutput + ToPacketCaptureMachineScopePtrOutput() PacketCaptureMachineScopePtrOutput + ToPacketCaptureMachineScopePtrOutputWithContext(context.Context) PacketCaptureMachineScopePtrOutput } -type publicIPAddressSkuPtrType PublicIPAddressSkuArgs +type packetCaptureMachineScopePtrType PacketCaptureMachineScopeArgs -func PublicIPAddressSkuPtr(v *PublicIPAddressSkuArgs) PublicIPAddressSkuPtrInput { - return (*publicIPAddressSkuPtrType)(v) +func PacketCaptureMachineScopePtr(v *PacketCaptureMachineScopeArgs) PacketCaptureMachineScopePtrInput { + return (*packetCaptureMachineScopePtrType)(v) } -func (*publicIPAddressSkuPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressSku)(nil)).Elem() +func (*packetCaptureMachineScopePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PacketCaptureMachineScope)(nil)).Elem() } -func (i *publicIPAddressSkuPtrType) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { - return i.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) +func (i *packetCaptureMachineScopePtrType) ToPacketCaptureMachineScopePtrOutput() PacketCaptureMachineScopePtrOutput { + return i.ToPacketCaptureMachineScopePtrOutputWithContext(context.Background()) } -func (i *publicIPAddressSkuPtrType) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuPtrOutput) +func (i *packetCaptureMachineScopePtrType) ToPacketCaptureMachineScopePtrOutputWithContext(ctx context.Context) PacketCaptureMachineScopePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureMachineScopePtrOutput) } -// SKU of a public IP address. -type PublicIPAddressSkuOutput struct{ *pulumi.OutputState } +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +type PacketCaptureMachineScopeOutput struct{ *pulumi.OutputState } -func (PublicIPAddressSkuOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressSku)(nil)).Elem() +func (PacketCaptureMachineScopeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureMachineScope)(nil)).Elem() } -func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput { +func (o PacketCaptureMachineScopeOutput) ToPacketCaptureMachineScopeOutput() PacketCaptureMachineScopeOutput { return o } -func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuOutputWithContext(ctx context.Context) PublicIPAddressSkuOutput { +func (o PacketCaptureMachineScopeOutput) ToPacketCaptureMachineScopeOutputWithContext(ctx context.Context) PacketCaptureMachineScopeOutput { return o } -func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { - return o.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) +func (o PacketCaptureMachineScopeOutput) ToPacketCaptureMachineScopePtrOutput() PacketCaptureMachineScopePtrOutput { + return o.ToPacketCaptureMachineScopePtrOutputWithContext(context.Background()) } -func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressSku) *PublicIPAddressSku { +func (o PacketCaptureMachineScopeOutput) ToPacketCaptureMachineScopePtrOutputWithContext(ctx context.Context) PacketCaptureMachineScopePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PacketCaptureMachineScope) *PacketCaptureMachineScope { return &v - }).(PublicIPAddressSkuPtrOutput) + }).(PacketCaptureMachineScopePtrOutput) } -// Name of a public IP address SKU. -func (o PublicIPAddressSkuOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressSku) *string { return v.Name }).(pulumi.StringPtrOutput) +// List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. +func (o PacketCaptureMachineScopeOutput) Exclude() pulumi.StringArrayOutput { + return o.ApplyT(func(v PacketCaptureMachineScope) []string { return v.Exclude }).(pulumi.StringArrayOutput) } -// Tier of a public IP address SKU. -func (o PublicIPAddressSkuOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressSku) *string { return v.Tier }).(pulumi.StringPtrOutput) +// List of AzureVMSS instances to run packet capture on. +func (o PacketCaptureMachineScopeOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v PacketCaptureMachineScope) []string { return v.Include }).(pulumi.StringArrayOutput) } -type PublicIPAddressSkuPtrOutput struct{ *pulumi.OutputState } +type PacketCaptureMachineScopePtrOutput struct{ *pulumi.OutputState } -func (PublicIPAddressSkuPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressSku)(nil)).Elem() +func (PacketCaptureMachineScopePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PacketCaptureMachineScope)(nil)).Elem() } -func (o PublicIPAddressSkuPtrOutput) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { +func (o PacketCaptureMachineScopePtrOutput) ToPacketCaptureMachineScopePtrOutput() PacketCaptureMachineScopePtrOutput { return o } -func (o PublicIPAddressSkuPtrOutput) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { +func (o PacketCaptureMachineScopePtrOutput) ToPacketCaptureMachineScopePtrOutputWithContext(ctx context.Context) PacketCaptureMachineScopePtrOutput { return o } -func (o PublicIPAddressSkuPtrOutput) Elem() PublicIPAddressSkuOutput { - return o.ApplyT(func(v *PublicIPAddressSku) PublicIPAddressSku { +func (o PacketCaptureMachineScopePtrOutput) Elem() PacketCaptureMachineScopeOutput { + return o.ApplyT(func(v *PacketCaptureMachineScope) PacketCaptureMachineScope { if v != nil { return *v } - var ret PublicIPAddressSku + var ret PacketCaptureMachineScope return ret - }).(PublicIPAddressSkuOutput) + }).(PacketCaptureMachineScopeOutput) } -// Name of a public IP address SKU. -func (o PublicIPAddressSkuPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressSku) *string { +// List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. +func (o PacketCaptureMachineScopePtrOutput) Exclude() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PacketCaptureMachineScope) []string { if v == nil { return nil } - return v.Name - }).(pulumi.StringPtrOutput) + return v.Exclude + }).(pulumi.StringArrayOutput) } -// Tier of a public IP address SKU. -func (o PublicIPAddressSkuPtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressSku) *string { +// List of AzureVMSS instances to run packet capture on. +func (o PacketCaptureMachineScopePtrOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PacketCaptureMachineScope) []string { if v == nil { return nil } - return v.Tier - }).(pulumi.StringPtrOutput) + return v.Include + }).(pulumi.StringArrayOutput) } -// SKU of a public IP address. -type PublicIPAddressSkuResponse struct { - // Name of a public IP address SKU. - Name *string `pulumi:"name"` - // Tier of a public IP address SKU. - Tier *string `pulumi:"tier"` +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +type PacketCaptureMachineScopeResponse struct { + // List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. + Exclude []string `pulumi:"exclude"` + // List of AzureVMSS instances to run packet capture on. + Include []string `pulumi:"include"` } -// SKU of a public IP address. -type PublicIPAddressSkuResponseOutput struct{ *pulumi.OutputState } +// A list of AzureVMSS instances which can be included or excluded to run packet capture. If both included and excluded are empty, then the packet capture will run on all instances of AzureVMSS. +type PacketCaptureMachineScopeResponseOutput struct{ *pulumi.OutputState } -func (PublicIPAddressSkuResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPAddressSkuResponse)(nil)).Elem() +func (PacketCaptureMachineScopeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureMachineScopeResponse)(nil)).Elem() } -func (o PublicIPAddressSkuResponseOutput) ToPublicIPAddressSkuResponseOutput() PublicIPAddressSkuResponseOutput { +func (o PacketCaptureMachineScopeResponseOutput) ToPacketCaptureMachineScopeResponseOutput() PacketCaptureMachineScopeResponseOutput { return o } -func (o PublicIPAddressSkuResponseOutput) ToPublicIPAddressSkuResponseOutputWithContext(ctx context.Context) PublicIPAddressSkuResponseOutput { +func (o PacketCaptureMachineScopeResponseOutput) ToPacketCaptureMachineScopeResponseOutputWithContext(ctx context.Context) PacketCaptureMachineScopeResponseOutput { return o } -// Name of a public IP address SKU. -func (o PublicIPAddressSkuResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressSkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. +func (o PacketCaptureMachineScopeResponseOutput) Exclude() pulumi.StringArrayOutput { + return o.ApplyT(func(v PacketCaptureMachineScopeResponse) []string { return v.Exclude }).(pulumi.StringArrayOutput) } -// Tier of a public IP address SKU. -func (o PublicIPAddressSkuResponseOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPAddressSkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) +// List of AzureVMSS instances to run packet capture on. +func (o PacketCaptureMachineScopeResponseOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v PacketCaptureMachineScopeResponse) []string { return v.Include }).(pulumi.StringArrayOutput) } -type PublicIPAddressSkuResponsePtrOutput struct{ *pulumi.OutputState } +type PacketCaptureMachineScopeResponsePtrOutput struct{ *pulumi.OutputState } -func (PublicIPAddressSkuResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPAddressSkuResponse)(nil)).Elem() +func (PacketCaptureMachineScopeResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PacketCaptureMachineScopeResponse)(nil)).Elem() } -func (o PublicIPAddressSkuResponsePtrOutput) ToPublicIPAddressSkuResponsePtrOutput() PublicIPAddressSkuResponsePtrOutput { +func (o PacketCaptureMachineScopeResponsePtrOutput) ToPacketCaptureMachineScopeResponsePtrOutput() PacketCaptureMachineScopeResponsePtrOutput { return o } -func (o PublicIPAddressSkuResponsePtrOutput) ToPublicIPAddressSkuResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressSkuResponsePtrOutput { +func (o PacketCaptureMachineScopeResponsePtrOutput) ToPacketCaptureMachineScopeResponsePtrOutputWithContext(ctx context.Context) PacketCaptureMachineScopeResponsePtrOutput { return o } -func (o PublicIPAddressSkuResponsePtrOutput) Elem() PublicIPAddressSkuResponseOutput { - return o.ApplyT(func(v *PublicIPAddressSkuResponse) PublicIPAddressSkuResponse { +func (o PacketCaptureMachineScopeResponsePtrOutput) Elem() PacketCaptureMachineScopeResponseOutput { + return o.ApplyT(func(v *PacketCaptureMachineScopeResponse) PacketCaptureMachineScopeResponse { if v != nil { return *v } - var ret PublicIPAddressSkuResponse + var ret PacketCaptureMachineScopeResponse return ret - }).(PublicIPAddressSkuResponseOutput) + }).(PacketCaptureMachineScopeResponseOutput) } -// Name of a public IP address SKU. -func (o PublicIPAddressSkuResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressSkuResponse) *string { +// List of AzureVMSS instances which has to be excluded from the AzureVMSS from running packet capture. +func (o PacketCaptureMachineScopeResponsePtrOutput) Exclude() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PacketCaptureMachineScopeResponse) []string { if v == nil { return nil } - return v.Name - }).(pulumi.StringPtrOutput) + return v.Exclude + }).(pulumi.StringArrayOutput) } -// Tier of a public IP address SKU. -func (o PublicIPAddressSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPAddressSkuResponse) *string { +// List of AzureVMSS instances to run packet capture on. +func (o PacketCaptureMachineScopeResponsePtrOutput) Include() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PacketCaptureMachineScopeResponse) []string { if v == nil { return nil } - return v.Tier - }).(pulumi.StringPtrOutput) + return v.Include + }).(pulumi.StringArrayOutput) } -// SKU of a public IP prefix. -type PublicIPPrefixSku struct { - // Name of a public IP prefix SKU. - Name *string `pulumi:"name"` - // Tier of a public IP prefix SKU. - Tier *string `pulumi:"tier"` +// The storage location for a packet capture session. +type PacketCaptureStorageLocation struct { + // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. + FilePath *string `pulumi:"filePath"` + // The ID of the storage account to save the packet capture session. Required if no local file path is provided. + StorageId *string `pulumi:"storageId"` + // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. + StoragePath *string `pulumi:"storagePath"` } -// PublicIPPrefixSkuInput is an input type that accepts PublicIPPrefixSkuArgs and PublicIPPrefixSkuOutput values. -// You can construct a concrete instance of `PublicIPPrefixSkuInput` via: +// PacketCaptureStorageLocationInput is an input type that accepts PacketCaptureStorageLocationArgs and PacketCaptureStorageLocationOutput values. +// You can construct a concrete instance of `PacketCaptureStorageLocationInput` via: // -// PublicIPPrefixSkuArgs{...} -type PublicIPPrefixSkuInput interface { +// PacketCaptureStorageLocationArgs{...} +type PacketCaptureStorageLocationInput interface { pulumi.Input - ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput - ToPublicIPPrefixSkuOutputWithContext(context.Context) PublicIPPrefixSkuOutput + ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput + ToPacketCaptureStorageLocationOutputWithContext(context.Context) PacketCaptureStorageLocationOutput } -// SKU of a public IP prefix. -type PublicIPPrefixSkuArgs struct { - // Name of a public IP prefix SKU. - Name pulumi.StringPtrInput `pulumi:"name"` - // Tier of a public IP prefix SKU. - Tier pulumi.StringPtrInput `pulumi:"tier"` +// The storage location for a packet capture session. +type PacketCaptureStorageLocationArgs struct { + // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. + FilePath pulumi.StringPtrInput `pulumi:"filePath"` + // The ID of the storage account to save the packet capture session. Required if no local file path is provided. + StorageId pulumi.StringPtrInput `pulumi:"storageId"` + // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. + StoragePath pulumi.StringPtrInput `pulumi:"storagePath"` } -func (PublicIPPrefixSkuArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPPrefixSku)(nil)).Elem() +func (PacketCaptureStorageLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureStorageLocation)(nil)).Elem() } -func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput { - return i.ToPublicIPPrefixSkuOutputWithContext(context.Background()) +func (i PacketCaptureStorageLocationArgs) ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput { + return i.ToPacketCaptureStorageLocationOutputWithContext(context.Background()) } -func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuOutputWithContext(ctx context.Context) PublicIPPrefixSkuOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuOutput) +func (i PacketCaptureStorageLocationArgs) ToPacketCaptureStorageLocationOutputWithContext(ctx context.Context) PacketCaptureStorageLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(PacketCaptureStorageLocationOutput) } -func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { - return i.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) -} +// The storage location for a packet capture session. +type PacketCaptureStorageLocationOutput struct{ *pulumi.OutputState } -func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuOutput).ToPublicIPPrefixSkuPtrOutputWithContext(ctx) +func (PacketCaptureStorageLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureStorageLocation)(nil)).Elem() } -// PublicIPPrefixSkuPtrInput is an input type that accepts PublicIPPrefixSkuArgs, PublicIPPrefixSkuPtr and PublicIPPrefixSkuPtrOutput values. -// You can construct a concrete instance of `PublicIPPrefixSkuPtrInput` via: -// -// PublicIPPrefixSkuArgs{...} -// -// or: -// -// nil -type PublicIPPrefixSkuPtrInput interface { - pulumi.Input - - ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput - ToPublicIPPrefixSkuPtrOutputWithContext(context.Context) PublicIPPrefixSkuPtrOutput +func (o PacketCaptureStorageLocationOutput) ToPacketCaptureStorageLocationOutput() PacketCaptureStorageLocationOutput { + return o } -type publicIPPrefixSkuPtrType PublicIPPrefixSkuArgs +func (o PacketCaptureStorageLocationOutput) ToPacketCaptureStorageLocationOutputWithContext(ctx context.Context) PacketCaptureStorageLocationOutput { + return o +} -func PublicIPPrefixSkuPtr(v *PublicIPPrefixSkuArgs) PublicIPPrefixSkuPtrInput { - return (*publicIPPrefixSkuPtrType)(v) +// A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. +func (o PacketCaptureStorageLocationOutput) FilePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.FilePath }).(pulumi.StringPtrOutput) } -func (*publicIPPrefixSkuPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPPrefixSku)(nil)).Elem() +// The ID of the storage account to save the packet capture session. Required if no local file path is provided. +func (o PacketCaptureStorageLocationOutput) StorageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.StorageId }).(pulumi.StringPtrOutput) } -func (i *publicIPPrefixSkuPtrType) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { - return i.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) +// The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. +func (o PacketCaptureStorageLocationOutput) StoragePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocation) *string { return v.StoragePath }).(pulumi.StringPtrOutput) } -func (i *publicIPPrefixSkuPtrType) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuPtrOutput) +// The storage location for a packet capture session. +type PacketCaptureStorageLocationResponse struct { + // A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. + FilePath *string `pulumi:"filePath"` + // The ID of the storage account to save the packet capture session. Required if no local file path is provided. + StorageId *string `pulumi:"storageId"` + // The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. + StoragePath *string `pulumi:"storagePath"` } -// SKU of a public IP prefix. -type PublicIPPrefixSkuOutput struct{ *pulumi.OutputState } +// The storage location for a packet capture session. +type PacketCaptureStorageLocationResponseOutput struct{ *pulumi.OutputState } -func (PublicIPPrefixSkuOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPPrefixSku)(nil)).Elem() +func (PacketCaptureStorageLocationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PacketCaptureStorageLocationResponse)(nil)).Elem() } -func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput { +func (o PacketCaptureStorageLocationResponseOutput) ToPacketCaptureStorageLocationResponseOutput() PacketCaptureStorageLocationResponseOutput { return o } -func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuOutputWithContext(ctx context.Context) PublicIPPrefixSkuOutput { +func (o PacketCaptureStorageLocationResponseOutput) ToPacketCaptureStorageLocationResponseOutputWithContext(ctx context.Context) PacketCaptureStorageLocationResponseOutput { return o } -func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { - return o.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) -} - -func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPPrefixSku) *PublicIPPrefixSku { - return &v - }).(PublicIPPrefixSkuPtrOutput) +// A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional. +func (o PacketCaptureStorageLocationResponseOutput) FilePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.FilePath }).(pulumi.StringPtrOutput) } -// Name of a public IP prefix SKU. -func (o PublicIPPrefixSkuOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPPrefixSku) *string { return v.Name }).(pulumi.StringPtrOutput) +// The ID of the storage account to save the packet capture session. Required if no local file path is provided. +func (o PacketCaptureStorageLocationResponseOutput) StorageId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.StorageId }).(pulumi.StringPtrOutput) } -// Tier of a public IP prefix SKU. -func (o PublicIPPrefixSkuOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPPrefixSku) *string { return v.Tier }).(pulumi.StringPtrOutput) +// The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture. +func (o PacketCaptureStorageLocationResponseOutput) StoragePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PacketCaptureStorageLocationResponse) *string { return v.StoragePath }).(pulumi.StringPtrOutput) } -type PublicIPPrefixSkuPtrOutput struct{ *pulumi.OutputState } - -func (PublicIPPrefixSkuPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPPrefixSku)(nil)).Elem() +// Parameters for an Action. +type Parameter struct { + // List of AS paths. + AsPath []string `pulumi:"asPath"` + // List of BGP communities. + Community []string `pulumi:"community"` + // List of route prefixes. + RoutePrefix []string `pulumi:"routePrefix"` } -func (o PublicIPPrefixSkuPtrOutput) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { - return o -} +// ParameterInput is an input type that accepts ParameterArgs and ParameterOutput values. +// You can construct a concrete instance of `ParameterInput` via: +// +// ParameterArgs{...} +type ParameterInput interface { + pulumi.Input -func (o PublicIPPrefixSkuPtrOutput) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { - return o + ToParameterOutput() ParameterOutput + ToParameterOutputWithContext(context.Context) ParameterOutput } -func (o PublicIPPrefixSkuPtrOutput) Elem() PublicIPPrefixSkuOutput { - return o.ApplyT(func(v *PublicIPPrefixSku) PublicIPPrefixSku { - if v != nil { - return *v - } - var ret PublicIPPrefixSku - return ret - }).(PublicIPPrefixSkuOutput) +// Parameters for an Action. +type ParameterArgs struct { + // List of AS paths. + AsPath pulumi.StringArrayInput `pulumi:"asPath"` + // List of BGP communities. + Community pulumi.StringArrayInput `pulumi:"community"` + // List of route prefixes. + RoutePrefix pulumi.StringArrayInput `pulumi:"routePrefix"` } -// Name of a public IP prefix SKU. -func (o PublicIPPrefixSkuPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPPrefixSku) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +func (ParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Parameter)(nil)).Elem() } -// Tier of a public IP prefix SKU. -func (o PublicIPPrefixSkuPtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPPrefixSku) *string { - if v == nil { - return nil - } - return v.Tier - }).(pulumi.StringPtrOutput) +func (i ParameterArgs) ToParameterOutput() ParameterOutput { + return i.ToParameterOutputWithContext(context.Background()) } -// SKU of a public IP prefix. -type PublicIPPrefixSkuResponse struct { - // Name of a public IP prefix SKU. - Name *string `pulumi:"name"` - // Tier of a public IP prefix SKU. - Tier *string `pulumi:"tier"` +func (i ParameterArgs) ToParameterOutputWithContext(ctx context.Context) ParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ParameterOutput) } -// SKU of a public IP prefix. -type PublicIPPrefixSkuResponseOutput struct{ *pulumi.OutputState } +// ParameterArrayInput is an input type that accepts ParameterArray and ParameterArrayOutput values. +// You can construct a concrete instance of `ParameterArrayInput` via: +// +// ParameterArray{ ParameterArgs{...} } +type ParameterArrayInput interface { + pulumi.Input -func (PublicIPPrefixSkuResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PublicIPPrefixSkuResponse)(nil)).Elem() + ToParameterArrayOutput() ParameterArrayOutput + ToParameterArrayOutputWithContext(context.Context) ParameterArrayOutput } -func (o PublicIPPrefixSkuResponseOutput) ToPublicIPPrefixSkuResponseOutput() PublicIPPrefixSkuResponseOutput { - return o -} +type ParameterArray []ParameterInput -func (o PublicIPPrefixSkuResponseOutput) ToPublicIPPrefixSkuResponseOutputWithContext(ctx context.Context) PublicIPPrefixSkuResponseOutput { - return o +func (ParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Parameter)(nil)).Elem() } -// Name of a public IP prefix SKU. -func (o PublicIPPrefixSkuResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPPrefixSkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (i ParameterArray) ToParameterArrayOutput() ParameterArrayOutput { + return i.ToParameterArrayOutputWithContext(context.Background()) } -// Tier of a public IP prefix SKU. -func (o PublicIPPrefixSkuResponseOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v PublicIPPrefixSkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) +func (i ParameterArray) ToParameterArrayOutputWithContext(ctx context.Context) ParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ParameterArrayOutput) } -type PublicIPPrefixSkuResponsePtrOutput struct{ *pulumi.OutputState } +// Parameters for an Action. +type ParameterOutput struct{ *pulumi.OutputState } -func (PublicIPPrefixSkuResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PublicIPPrefixSkuResponse)(nil)).Elem() +func (ParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Parameter)(nil)).Elem() } -func (o PublicIPPrefixSkuResponsePtrOutput) ToPublicIPPrefixSkuResponsePtrOutput() PublicIPPrefixSkuResponsePtrOutput { +func (o ParameterOutput) ToParameterOutput() ParameterOutput { return o } -func (o PublicIPPrefixSkuResponsePtrOutput) ToPublicIPPrefixSkuResponsePtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuResponsePtrOutput { +func (o ParameterOutput) ToParameterOutputWithContext(ctx context.Context) ParameterOutput { return o } -func (o PublicIPPrefixSkuResponsePtrOutput) Elem() PublicIPPrefixSkuResponseOutput { - return o.ApplyT(func(v *PublicIPPrefixSkuResponse) PublicIPPrefixSkuResponse { - if v != nil { - return *v - } - var ret PublicIPPrefixSkuResponse - return ret - }).(PublicIPPrefixSkuResponseOutput) -} - -// Name of a public IP prefix SKU. -func (o PublicIPPrefixSkuResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPPrefixSkuResponse) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +// List of AS paths. +func (o ParameterOutput) AsPath() pulumi.StringArrayOutput { + return o.ApplyT(func(v Parameter) []string { return v.AsPath }).(pulumi.StringArrayOutput) } -// Tier of a public IP prefix SKU. -func (o PublicIPPrefixSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PublicIPPrefixSkuResponse) *string { - if v == nil { - return nil - } - return v.Tier - }).(pulumi.StringPtrOutput) +// List of BGP communities. +func (o ParameterOutput) Community() pulumi.StringArrayOutput { + return o.ApplyT(func(v Parameter) []string { return v.Community }).(pulumi.StringArrayOutput) } -// Qos Traffic Profiler IP Range properties. -type QosIpRange struct { - // End IP Address. - EndIP *string `pulumi:"endIP"` - // Start IP Address. - StartIP *string `pulumi:"startIP"` +// List of route prefixes. +func (o ParameterOutput) RoutePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v Parameter) []string { return v.RoutePrefix }).(pulumi.StringArrayOutput) } -// QosIpRangeInput is an input type that accepts QosIpRangeArgs and QosIpRangeOutput values. -// You can construct a concrete instance of `QosIpRangeInput` via: -// -// QosIpRangeArgs{...} -type QosIpRangeInput interface { - pulumi.Input +type ParameterArrayOutput struct{ *pulumi.OutputState } - ToQosIpRangeOutput() QosIpRangeOutput - ToQosIpRangeOutputWithContext(context.Context) QosIpRangeOutput +func (ParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Parameter)(nil)).Elem() } -// Qos Traffic Profiler IP Range properties. -type QosIpRangeArgs struct { - // End IP Address. - EndIP pulumi.StringPtrInput `pulumi:"endIP"` - // Start IP Address. - StartIP pulumi.StringPtrInput `pulumi:"startIP"` +func (o ParameterArrayOutput) ToParameterArrayOutput() ParameterArrayOutput { + return o } -func (QosIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*QosIpRange)(nil)).Elem() +func (o ParameterArrayOutput) ToParameterArrayOutputWithContext(ctx context.Context) ParameterArrayOutput { + return o } -func (i QosIpRangeArgs) ToQosIpRangeOutput() QosIpRangeOutput { - return i.ToQosIpRangeOutputWithContext(context.Background()) +func (o ParameterArrayOutput) Index(i pulumi.IntInput) ParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Parameter { + return vs[0].([]Parameter)[vs[1].(int)] + }).(ParameterOutput) } -func (i QosIpRangeArgs) ToQosIpRangeOutputWithContext(ctx context.Context) QosIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(QosIpRangeOutput) +// Parameters for an Action. +type ParameterResponse struct { + // List of AS paths. + AsPath []string `pulumi:"asPath"` + // List of BGP communities. + Community []string `pulumi:"community"` + // List of route prefixes. + RoutePrefix []string `pulumi:"routePrefix"` } -// QosIpRangeArrayInput is an input type that accepts QosIpRangeArray and QosIpRangeArrayOutput values. -// You can construct a concrete instance of `QosIpRangeArrayInput` via: -// -// QosIpRangeArray{ QosIpRangeArgs{...} } -type QosIpRangeArrayInput interface { - pulumi.Input +// Parameters for an Action. +type ParameterResponseOutput struct{ *pulumi.OutputState } - ToQosIpRangeArrayOutput() QosIpRangeArrayOutput - ToQosIpRangeArrayOutputWithContext(context.Context) QosIpRangeArrayOutput +func (ParameterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ParameterResponse)(nil)).Elem() } -type QosIpRangeArray []QosIpRangeInput +func (o ParameterResponseOutput) ToParameterResponseOutput() ParameterResponseOutput { + return o +} + +func (o ParameterResponseOutput) ToParameterResponseOutputWithContext(ctx context.Context) ParameterResponseOutput { + return o +} -func (QosIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosIpRange)(nil)).Elem() +// List of AS paths. +func (o ParameterResponseOutput) AsPath() pulumi.StringArrayOutput { + return o.ApplyT(func(v ParameterResponse) []string { return v.AsPath }).(pulumi.StringArrayOutput) } -func (i QosIpRangeArray) ToQosIpRangeArrayOutput() QosIpRangeArrayOutput { - return i.ToQosIpRangeArrayOutputWithContext(context.Background()) +// List of BGP communities. +func (o ParameterResponseOutput) Community() pulumi.StringArrayOutput { + return o.ApplyT(func(v ParameterResponse) []string { return v.Community }).(pulumi.StringArrayOutput) } -func (i QosIpRangeArray) ToQosIpRangeArrayOutputWithContext(ctx context.Context) QosIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(QosIpRangeArrayOutput) +// List of route prefixes. +func (o ParameterResponseOutput) RoutePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v ParameterResponse) []string { return v.RoutePrefix }).(pulumi.StringArrayOutput) } -// Qos Traffic Profiler IP Range properties. -type QosIpRangeOutput struct{ *pulumi.OutputState } +type ParameterResponseArrayOutput struct{ *pulumi.OutputState } -func (QosIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*QosIpRange)(nil)).Elem() +func (ParameterResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ParameterResponse)(nil)).Elem() } -func (o QosIpRangeOutput) ToQosIpRangeOutput() QosIpRangeOutput { +func (o ParameterResponseArrayOutput) ToParameterResponseArrayOutput() ParameterResponseArrayOutput { return o } -func (o QosIpRangeOutput) ToQosIpRangeOutputWithContext(ctx context.Context) QosIpRangeOutput { +func (o ParameterResponseArrayOutput) ToParameterResponseArrayOutputWithContext(ctx context.Context) ParameterResponseArrayOutput { return o } -// End IP Address. -func (o QosIpRangeOutput) EndIP() pulumi.StringPtrOutput { - return o.ApplyT(func(v QosIpRange) *string { return v.EndIP }).(pulumi.StringPtrOutput) +func (o ParameterResponseArrayOutput) Index(i pulumi.IntInput) ParameterResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ParameterResponse { + return vs[0].([]ParameterResponse)[vs[1].(int)] + }).(ParameterResponseOutput) } -// Start IP Address. -func (o QosIpRangeOutput) StartIP() pulumi.StringPtrOutput { - return o.ApplyT(func(v QosIpRange) *string { return v.StartIP }).(pulumi.StringPtrOutput) +// Properties of the partner managed resource. +type PartnerManagedResourcePropertiesResponse struct { + // The partner managed resource id. + Id string `pulumi:"id"` + // The partner managed ILB resource id + InternalLoadBalancerId string `pulumi:"internalLoadBalancerId"` + // The partner managed SLB resource id + StandardLoadBalancerId string `pulumi:"standardLoadBalancerId"` } -type QosIpRangeArrayOutput struct{ *pulumi.OutputState } +// Properties of the partner managed resource. +type PartnerManagedResourcePropertiesResponseOutput struct{ *pulumi.OutputState } -func (QosIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosIpRange)(nil)).Elem() +func (PartnerManagedResourcePropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PartnerManagedResourcePropertiesResponse)(nil)).Elem() } -func (o QosIpRangeArrayOutput) ToQosIpRangeArrayOutput() QosIpRangeArrayOutput { +func (o PartnerManagedResourcePropertiesResponseOutput) ToPartnerManagedResourcePropertiesResponseOutput() PartnerManagedResourcePropertiesResponseOutput { return o } -func (o QosIpRangeArrayOutput) ToQosIpRangeArrayOutputWithContext(ctx context.Context) QosIpRangeArrayOutput { +func (o PartnerManagedResourcePropertiesResponseOutput) ToPartnerManagedResourcePropertiesResponseOutputWithContext(ctx context.Context) PartnerManagedResourcePropertiesResponseOutput { return o } -func (o QosIpRangeArrayOutput) Index(i pulumi.IntInput) QosIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosIpRange { - return vs[0].([]QosIpRange)[vs[1].(int)] - }).(QosIpRangeOutput) +// The partner managed resource id. +func (o PartnerManagedResourcePropertiesResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v PartnerManagedResourcePropertiesResponse) string { return v.Id }).(pulumi.StringOutput) +} + +// The partner managed ILB resource id +func (o PartnerManagedResourcePropertiesResponseOutput) InternalLoadBalancerId() pulumi.StringOutput { + return o.ApplyT(func(v PartnerManagedResourcePropertiesResponse) string { return v.InternalLoadBalancerId }).(pulumi.StringOutput) } -// Qos Traffic Profiler IP Range properties. -type QosIpRangeResponse struct { - // End IP Address. - EndIP *string `pulumi:"endIP"` - // Start IP Address. - StartIP *string `pulumi:"startIP"` +// The partner managed SLB resource id +func (o PartnerManagedResourcePropertiesResponseOutput) StandardLoadBalancerId() pulumi.StringOutput { + return o.ApplyT(func(v PartnerManagedResourcePropertiesResponse) string { return v.StandardLoadBalancerId }).(pulumi.StringOutput) } -// Qos Traffic Profiler IP Range properties. -type QosIpRangeResponseOutput struct{ *pulumi.OutputState } +type PartnerManagedResourcePropertiesResponsePtrOutput struct{ *pulumi.OutputState } -func (QosIpRangeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*QosIpRangeResponse)(nil)).Elem() +func (PartnerManagedResourcePropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PartnerManagedResourcePropertiesResponse)(nil)).Elem() } -func (o QosIpRangeResponseOutput) ToQosIpRangeResponseOutput() QosIpRangeResponseOutput { +func (o PartnerManagedResourcePropertiesResponsePtrOutput) ToPartnerManagedResourcePropertiesResponsePtrOutput() PartnerManagedResourcePropertiesResponsePtrOutput { return o } -func (o QosIpRangeResponseOutput) ToQosIpRangeResponseOutputWithContext(ctx context.Context) QosIpRangeResponseOutput { +func (o PartnerManagedResourcePropertiesResponsePtrOutput) ToPartnerManagedResourcePropertiesResponsePtrOutputWithContext(ctx context.Context) PartnerManagedResourcePropertiesResponsePtrOutput { return o } -// End IP Address. -func (o QosIpRangeResponseOutput) EndIP() pulumi.StringPtrOutput { - return o.ApplyT(func(v QosIpRangeResponse) *string { return v.EndIP }).(pulumi.StringPtrOutput) +func (o PartnerManagedResourcePropertiesResponsePtrOutput) Elem() PartnerManagedResourcePropertiesResponseOutput { + return o.ApplyT(func(v *PartnerManagedResourcePropertiesResponse) PartnerManagedResourcePropertiesResponse { + if v != nil { + return *v + } + var ret PartnerManagedResourcePropertiesResponse + return ret + }).(PartnerManagedResourcePropertiesResponseOutput) } -// Start IP Address. -func (o QosIpRangeResponseOutput) StartIP() pulumi.StringPtrOutput { - return o.ApplyT(func(v QosIpRangeResponse) *string { return v.StartIP }).(pulumi.StringPtrOutput) +// The partner managed resource id. +func (o PartnerManagedResourcePropertiesResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PartnerManagedResourcePropertiesResponse) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) } -type QosIpRangeResponseArrayOutput struct{ *pulumi.OutputState } +// The partner managed ILB resource id +func (o PartnerManagedResourcePropertiesResponsePtrOutput) InternalLoadBalancerId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PartnerManagedResourcePropertiesResponse) *string { + if v == nil { + return nil + } + return &v.InternalLoadBalancerId + }).(pulumi.StringPtrOutput) +} -func (QosIpRangeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosIpRangeResponse)(nil)).Elem() +// The partner managed SLB resource id +func (o PartnerManagedResourcePropertiesResponsePtrOutput) StandardLoadBalancerId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PartnerManagedResourcePropertiesResponse) *string { + if v == nil { + return nil + } + return &v.StandardLoadBalancerId + }).(pulumi.StringPtrOutput) } -func (o QosIpRangeResponseArrayOutput) ToQosIpRangeResponseArrayOutput() QosIpRangeResponseArrayOutput { - return o +// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. +type PeerExpressRouteCircuitConnectionResponse struct { + // /29 IP address space to carve out Customer addresses for tunnels. + AddressPrefix *string `pulumi:"addressPrefix"` + // The resource guid of the authorization used for the express route circuit connection. + AuthResourceGuid *string `pulumi:"authResourceGuid"` + // Express Route Circuit connection state. + CircuitConnectionStatus string `pulumi:"circuitConnectionStatus"` + // The name of the express route circuit connection resource. + ConnectionName *string `pulumi:"connectionName"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Reference to Express Route Circuit Private Peering Resource of the circuit. + ExpressRouteCircuitPeering *SubResourceResponse `pulumi:"expressRouteCircuitPeering"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Reference to Express Route Circuit Private Peering Resource of the peered circuit. + PeerExpressRouteCircuitPeering *SubResourceResponse `pulumi:"peerExpressRouteCircuitPeering"` + // The provisioning state of the peer express route circuit connection resource. + ProvisioningState string `pulumi:"provisioningState"` + // Type of the resource. + Type string `pulumi:"type"` } -func (o QosIpRangeResponseArrayOutput) ToQosIpRangeResponseArrayOutputWithContext(ctx context.Context) QosIpRangeResponseArrayOutput { - return o +// Peer Express Route Circuit Connection in an ExpressRouteCircuitPeering resource. +type PeerExpressRouteCircuitConnectionResponseOutput struct{ *pulumi.OutputState } + +func (PeerExpressRouteCircuitConnectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PeerExpressRouteCircuitConnectionResponse)(nil)).Elem() } -func (o QosIpRangeResponseArrayOutput) Index(i pulumi.IntInput) QosIpRangeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosIpRangeResponse { - return vs[0].([]QosIpRangeResponse)[vs[1].(int)] - }).(QosIpRangeResponseOutput) +func (o PeerExpressRouteCircuitConnectionResponseOutput) ToPeerExpressRouteCircuitConnectionResponseOutput() PeerExpressRouteCircuitConnectionResponseOutput { + return o } -// Qos Traffic Profiler Port range properties. -type QosPortRange struct { - // Qos Port Range end. - End *int `pulumi:"end"` - // Qos Port Range start. - Start *int `pulumi:"start"` +func (o PeerExpressRouteCircuitConnectionResponseOutput) ToPeerExpressRouteCircuitConnectionResponseOutputWithContext(ctx context.Context) PeerExpressRouteCircuitConnectionResponseOutput { + return o } -// QosPortRangeInput is an input type that accepts QosPortRangeArgs and QosPortRangeOutput values. -// You can construct a concrete instance of `QosPortRangeInput` via: -// -// QosPortRangeArgs{...} -type QosPortRangeInput interface { - pulumi.Input +// /29 IP address space to carve out Customer addresses for tunnels. +func (o PeerExpressRouteCircuitConnectionResponseOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +} - ToQosPortRangeOutput() QosPortRangeOutput - ToQosPortRangeOutputWithContext(context.Context) QosPortRangeOutput +// The resource guid of the authorization used for the express route circuit connection. +func (o PeerExpressRouteCircuitConnectionResponseOutput) AuthResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.AuthResourceGuid }).(pulumi.StringPtrOutput) } -// Qos Traffic Profiler Port range properties. -type QosPortRangeArgs struct { - // Qos Port Range end. - End pulumi.IntPtrInput `pulumi:"end"` - // Qos Port Range start. - Start pulumi.IntPtrInput `pulumi:"start"` +// Express Route Circuit connection state. +func (o PeerExpressRouteCircuitConnectionResponseOutput) CircuitConnectionStatus() pulumi.StringOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.CircuitConnectionStatus }).(pulumi.StringOutput) } -func (QosPortRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*QosPortRange)(nil)).Elem() +// The name of the express route circuit connection resource. +func (o PeerExpressRouteCircuitConnectionResponseOutput) ConnectionName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.ConnectionName }).(pulumi.StringPtrOutput) } -func (i QosPortRangeArgs) ToQosPortRangeOutput() QosPortRangeOutput { - return i.ToQosPortRangeOutputWithContext(context.Background()) +// A unique read-only string that changes whenever the resource is updated. +func (o PeerExpressRouteCircuitConnectionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) } -func (i QosPortRangeArgs) ToQosPortRangeOutputWithContext(ctx context.Context) QosPortRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(QosPortRangeOutput) +// Reference to Express Route Circuit Private Peering Resource of the circuit. +func (o PeerExpressRouteCircuitConnectionResponseOutput) ExpressRouteCircuitPeering() SubResourceResponsePtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *SubResourceResponse { + return v.ExpressRouteCircuitPeering + }).(SubResourceResponsePtrOutput) } -// QosPortRangeArrayInput is an input type that accepts QosPortRangeArray and QosPortRangeArrayOutput values. -// You can construct a concrete instance of `QosPortRangeArrayInput` via: -// -// QosPortRangeArray{ QosPortRangeArgs{...} } -type QosPortRangeArrayInput interface { - pulumi.Input - - ToQosPortRangeArrayOutput() QosPortRangeArrayOutput - ToQosPortRangeArrayOutputWithContext(context.Context) QosPortRangeArrayOutput +// Resource ID. +func (o PeerExpressRouteCircuitConnectionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -type QosPortRangeArray []QosPortRangeInput +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o PeerExpressRouteCircuitConnectionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func (QosPortRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosPortRange)(nil)).Elem() +// Reference to Express Route Circuit Private Peering Resource of the peered circuit. +func (o PeerExpressRouteCircuitConnectionResponseOutput) PeerExpressRouteCircuitPeering() SubResourceResponsePtrOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) *SubResourceResponse { + return v.PeerExpressRouteCircuitPeering + }).(SubResourceResponsePtrOutput) } -func (i QosPortRangeArray) ToQosPortRangeArrayOutput() QosPortRangeArrayOutput { - return i.ToQosPortRangeArrayOutputWithContext(context.Background()) +// The provisioning state of the peer express route circuit connection resource. +func (o PeerExpressRouteCircuitConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i QosPortRangeArray) ToQosPortRangeArrayOutputWithContext(ctx context.Context) QosPortRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(QosPortRangeArrayOutput) +// Type of the resource. +func (o PeerExpressRouteCircuitConnectionResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PeerExpressRouteCircuitConnectionResponse) string { return v.Type }).(pulumi.StringOutput) } -// Qos Traffic Profiler Port range properties. -type QosPortRangeOutput struct{ *pulumi.OutputState } +type PeerExpressRouteCircuitConnectionResponseArrayOutput struct{ *pulumi.OutputState } -func (QosPortRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*QosPortRange)(nil)).Elem() +func (PeerExpressRouteCircuitConnectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PeerExpressRouteCircuitConnectionResponse)(nil)).Elem() } -func (o QosPortRangeOutput) ToQosPortRangeOutput() QosPortRangeOutput { +func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) ToPeerExpressRouteCircuitConnectionResponseArrayOutput() PeerExpressRouteCircuitConnectionResponseArrayOutput { return o } -func (o QosPortRangeOutput) ToQosPortRangeOutputWithContext(ctx context.Context) QosPortRangeOutput { +func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) ToPeerExpressRouteCircuitConnectionResponseArrayOutputWithContext(ctx context.Context) PeerExpressRouteCircuitConnectionResponseArrayOutput { return o } -// Qos Port Range end. -func (o QosPortRangeOutput) End() pulumi.IntPtrOutput { - return o.ApplyT(func(v QosPortRange) *int { return v.End }).(pulumi.IntPtrOutput) +func (o PeerExpressRouteCircuitConnectionResponseArrayOutput) Index(i pulumi.IntInput) PeerExpressRouteCircuitConnectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PeerExpressRouteCircuitConnectionResponse { + return vs[0].([]PeerExpressRouteCircuitConnectionResponse)[vs[1].(int)] + }).(PeerExpressRouteCircuitConnectionResponseOutput) } -// Qos Port Range start. -func (o QosPortRangeOutput) Start() pulumi.IntPtrOutput { - return o.ApplyT(func(v QosPortRange) *int { return v.Start }).(pulumi.IntPtrOutput) +type PerimeterBasedAccessRuleResponse struct { + // NSP id in the ARM id format. + Id string `pulumi:"id"` + // Location of the NSP supplied. + Location string `pulumi:"location"` + // Resource guid of the NSP supplied. + PerimeterGuid string `pulumi:"perimeterGuid"` } -type QosPortRangeArrayOutput struct{ *pulumi.OutputState } +type PerimeterBasedAccessRuleResponseOutput struct{ *pulumi.OutputState } -func (QosPortRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosPortRange)(nil)).Elem() +func (PerimeterBasedAccessRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PerimeterBasedAccessRuleResponse)(nil)).Elem() } -func (o QosPortRangeArrayOutput) ToQosPortRangeArrayOutput() QosPortRangeArrayOutput { +func (o PerimeterBasedAccessRuleResponseOutput) ToPerimeterBasedAccessRuleResponseOutput() PerimeterBasedAccessRuleResponseOutput { return o } -func (o QosPortRangeArrayOutput) ToQosPortRangeArrayOutputWithContext(ctx context.Context) QosPortRangeArrayOutput { +func (o PerimeterBasedAccessRuleResponseOutput) ToPerimeterBasedAccessRuleResponseOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleResponseOutput { return o } -func (o QosPortRangeArrayOutput) Index(i pulumi.IntInput) QosPortRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosPortRange { - return vs[0].([]QosPortRange)[vs[1].(int)] - }).(QosPortRangeOutput) +// NSP id in the ARM id format. +func (o PerimeterBasedAccessRuleResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) string { return v.Id }).(pulumi.StringOutput) +} + +// Location of the NSP supplied. +func (o PerimeterBasedAccessRuleResponseOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) string { return v.Location }).(pulumi.StringOutput) } -// Qos Traffic Profiler Port range properties. -type QosPortRangeResponse struct { - // Qos Port Range end. - End *int `pulumi:"end"` - // Qos Port Range start. - Start *int `pulumi:"start"` +// Resource guid of the NSP supplied. +func (o PerimeterBasedAccessRuleResponseOutput) PerimeterGuid() pulumi.StringOutput { + return o.ApplyT(func(v PerimeterBasedAccessRuleResponse) string { return v.PerimeterGuid }).(pulumi.StringOutput) } -// Qos Traffic Profiler Port range properties. -type QosPortRangeResponseOutput struct{ *pulumi.OutputState } +type PerimeterBasedAccessRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (QosPortRangeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*QosPortRangeResponse)(nil)).Elem() +func (PerimeterBasedAccessRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PerimeterBasedAccessRuleResponse)(nil)).Elem() } -func (o QosPortRangeResponseOutput) ToQosPortRangeResponseOutput() QosPortRangeResponseOutput { +func (o PerimeterBasedAccessRuleResponseArrayOutput) ToPerimeterBasedAccessRuleResponseArrayOutput() PerimeterBasedAccessRuleResponseArrayOutput { return o } -func (o QosPortRangeResponseOutput) ToQosPortRangeResponseOutputWithContext(ctx context.Context) QosPortRangeResponseOutput { +func (o PerimeterBasedAccessRuleResponseArrayOutput) ToPerimeterBasedAccessRuleResponseArrayOutputWithContext(ctx context.Context) PerimeterBasedAccessRuleResponseArrayOutput { return o } -// Qos Port Range end. -func (o QosPortRangeResponseOutput) End() pulumi.IntPtrOutput { - return o.ApplyT(func(v QosPortRangeResponse) *int { return v.End }).(pulumi.IntPtrOutput) +func (o PerimeterBasedAccessRuleResponseArrayOutput) Index(i pulumi.IntInput) PerimeterBasedAccessRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PerimeterBasedAccessRuleResponse { + return vs[0].([]PerimeterBasedAccessRuleResponse)[vs[1].(int)] + }).(PerimeterBasedAccessRuleResponseOutput) } -// Qos Port Range start. -func (o QosPortRangeResponseOutput) Start() pulumi.IntPtrOutput { - return o.ApplyT(func(v QosPortRangeResponse) *int { return v.Start }).(pulumi.IntPtrOutput) +// Defines contents of a web application firewall global configuration. +type PolicySettings struct { + // If the action type is block, customer can override the response body. The body must be specified in base64 encoding. + CustomBlockResponseBody *string `pulumi:"customBlockResponseBody"` + // If the action type is block, customer can override the response status code. + CustomBlockResponseStatusCode *int `pulumi:"customBlockResponseStatusCode"` + // Whether allow WAF to enforce file upload limits. + FileUploadEnforcement *bool `pulumi:"fileUploadEnforcement"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` + // To scrub sensitive log fields + LogScrubbing *PolicySettingsLogScrubbing `pulumi:"logScrubbing"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` + // The mode of the policy. + Mode *string `pulumi:"mode"` + // Whether to allow WAF to check request Body. + RequestBodyCheck *bool `pulumi:"requestBodyCheck"` + // Whether allow WAF to enforce request body limits. + RequestBodyEnforcement *bool `pulumi:"requestBodyEnforcement"` + // Max inspection limit in KB for request body inspection for WAF. + RequestBodyInspectLimitInKB *int `pulumi:"requestBodyInspectLimitInKB"` + // The state of the policy. + State *string `pulumi:"state"` } -type QosPortRangeResponseArrayOutput struct{ *pulumi.OutputState } - -func (QosPortRangeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]QosPortRangeResponse)(nil)).Elem() +// Defaults sets the appropriate defaults for PolicySettings +func (val *PolicySettings) Defaults() *PolicySettings { + if val == nil { + return nil + } + tmp := *val + if tmp.FileUploadEnforcement == nil { + fileUploadEnforcement_ := true + tmp.FileUploadEnforcement = &fileUploadEnforcement_ + } + if tmp.RequestBodyEnforcement == nil { + requestBodyEnforcement_ := true + tmp.RequestBodyEnforcement = &requestBodyEnforcement_ + } + return &tmp } -func (o QosPortRangeResponseArrayOutput) ToQosPortRangeResponseArrayOutput() QosPortRangeResponseArrayOutput { - return o -} +// PolicySettingsInput is an input type that accepts PolicySettingsArgs and PolicySettingsOutput values. +// You can construct a concrete instance of `PolicySettingsInput` via: +// +// PolicySettingsArgs{...} +type PolicySettingsInput interface { + pulumi.Input -func (o QosPortRangeResponseArrayOutput) ToQosPortRangeResponseArrayOutputWithContext(ctx context.Context) QosPortRangeResponseArrayOutput { - return o + ToPolicySettingsOutput() PolicySettingsOutput + ToPolicySettingsOutputWithContext(context.Context) PolicySettingsOutput } -func (o QosPortRangeResponseArrayOutput) Index(i pulumi.IntInput) QosPortRangeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosPortRangeResponse { - return vs[0].([]QosPortRangeResponse)[vs[1].(int)] - }).(QosPortRangeResponseOutput) +// Defines contents of a web application firewall global configuration. +type PolicySettingsArgs struct { + // If the action type is block, customer can override the response body. The body must be specified in base64 encoding. + CustomBlockResponseBody pulumi.StringPtrInput `pulumi:"customBlockResponseBody"` + // If the action type is block, customer can override the response status code. + CustomBlockResponseStatusCode pulumi.IntPtrInput `pulumi:"customBlockResponseStatusCode"` + // Whether allow WAF to enforce file upload limits. + FileUploadEnforcement pulumi.BoolPtrInput `pulumi:"fileUploadEnforcement"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb pulumi.IntPtrInput `pulumi:"fileUploadLimitInMb"` + // To scrub sensitive log fields + LogScrubbing PolicySettingsLogScrubbingPtrInput `pulumi:"logScrubbing"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb pulumi.IntPtrInput `pulumi:"maxRequestBodySizeInKb"` + // The mode of the policy. + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Whether to allow WAF to check request Body. + RequestBodyCheck pulumi.BoolPtrInput `pulumi:"requestBodyCheck"` + // Whether allow WAF to enforce request body limits. + RequestBodyEnforcement pulumi.BoolPtrInput `pulumi:"requestBodyEnforcement"` + // Max inspection limit in KB for request body inspection for WAF. + RequestBodyInspectLimitInKB pulumi.IntPtrInput `pulumi:"requestBodyInspectLimitInKB"` + // The state of the policy. + State pulumi.StringPtrInput `pulumi:"state"` } -// Radius Server Settings. -type RadiusServer struct { - // The address of this radius server. - RadiusServerAddress string `pulumi:"radiusServerAddress"` - // The initial score assigned to this radius server. - RadiusServerScore *float64 `pulumi:"radiusServerScore"` - // The secret used for this radius server. - RadiusServerSecret *string `pulumi:"radiusServerSecret"` +// Defaults sets the appropriate defaults for PolicySettingsArgs +func (val *PolicySettingsArgs) Defaults() *PolicySettingsArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.FileUploadEnforcement == nil { + tmp.FileUploadEnforcement = pulumi.BoolPtr(true) + } + if tmp.RequestBodyEnforcement == nil { + tmp.RequestBodyEnforcement = pulumi.BoolPtr(true) + } + return &tmp } - -// RadiusServerInput is an input type that accepts RadiusServerArgs and RadiusServerOutput values. -// You can construct a concrete instance of `RadiusServerInput` via: -// -// RadiusServerArgs{...} -type RadiusServerInput interface { - pulumi.Input - - ToRadiusServerOutput() RadiusServerOutput - ToRadiusServerOutputWithContext(context.Context) RadiusServerOutput +func (PolicySettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettings)(nil)).Elem() } -// Radius Server Settings. -type RadiusServerArgs struct { - // The address of this radius server. - RadiusServerAddress pulumi.StringInput `pulumi:"radiusServerAddress"` - // The initial score assigned to this radius server. - RadiusServerScore pulumi.Float64PtrInput `pulumi:"radiusServerScore"` - // The secret used for this radius server. - RadiusServerSecret pulumi.StringPtrInput `pulumi:"radiusServerSecret"` +func (i PolicySettingsArgs) ToPolicySettingsOutput() PolicySettingsOutput { + return i.ToPolicySettingsOutputWithContext(context.Background()) } -func (RadiusServerArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RadiusServer)(nil)).Elem() +func (i PolicySettingsArgs) ToPolicySettingsOutputWithContext(ctx context.Context) PolicySettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsOutput) } -func (i RadiusServerArgs) ToRadiusServerOutput() RadiusServerOutput { - return i.ToRadiusServerOutputWithContext(context.Background()) +func (i PolicySettingsArgs) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { + return i.ToPolicySettingsPtrOutputWithContext(context.Background()) } -func (i RadiusServerArgs) ToRadiusServerOutputWithContext(ctx context.Context) RadiusServerOutput { - return pulumi.ToOutputWithContext(ctx, i).(RadiusServerOutput) +func (i PolicySettingsArgs) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsOutput).ToPolicySettingsPtrOutputWithContext(ctx) } -// RadiusServerArrayInput is an input type that accepts RadiusServerArray and RadiusServerArrayOutput values. -// You can construct a concrete instance of `RadiusServerArrayInput` via: +// PolicySettingsPtrInput is an input type that accepts PolicySettingsArgs, PolicySettingsPtr and PolicySettingsPtrOutput values. +// You can construct a concrete instance of `PolicySettingsPtrInput` via: +// +// PolicySettingsArgs{...} // -// RadiusServerArray{ RadiusServerArgs{...} } -type RadiusServerArrayInput interface { +// or: +// +// nil +type PolicySettingsPtrInput interface { pulumi.Input - ToRadiusServerArrayOutput() RadiusServerArrayOutput - ToRadiusServerArrayOutputWithContext(context.Context) RadiusServerArrayOutput + ToPolicySettingsPtrOutput() PolicySettingsPtrOutput + ToPolicySettingsPtrOutputWithContext(context.Context) PolicySettingsPtrOutput } -type RadiusServerArray []RadiusServerInput +type policySettingsPtrType PolicySettingsArgs + +func PolicySettingsPtr(v *PolicySettingsArgs) PolicySettingsPtrInput { + return (*policySettingsPtrType)(v) +} -func (RadiusServerArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RadiusServer)(nil)).Elem() +func (*policySettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettings)(nil)).Elem() } -func (i RadiusServerArray) ToRadiusServerArrayOutput() RadiusServerArrayOutput { - return i.ToRadiusServerArrayOutputWithContext(context.Background()) +func (i *policySettingsPtrType) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { + return i.ToPolicySettingsPtrOutputWithContext(context.Background()) } -func (i RadiusServerArray) ToRadiusServerArrayOutputWithContext(ctx context.Context) RadiusServerArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RadiusServerArrayOutput) +func (i *policySettingsPtrType) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsPtrOutput) } -// Radius Server Settings. -type RadiusServerOutput struct{ *pulumi.OutputState } +// Defines contents of a web application firewall global configuration. +type PolicySettingsOutput struct{ *pulumi.OutputState } -func (RadiusServerOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RadiusServer)(nil)).Elem() +func (PolicySettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettings)(nil)).Elem() } -func (o RadiusServerOutput) ToRadiusServerOutput() RadiusServerOutput { +func (o PolicySettingsOutput) ToPolicySettingsOutput() PolicySettingsOutput { return o } -func (o RadiusServerOutput) ToRadiusServerOutputWithContext(ctx context.Context) RadiusServerOutput { +func (o PolicySettingsOutput) ToPolicySettingsOutputWithContext(ctx context.Context) PolicySettingsOutput { return o } -// The address of this radius server. -func (o RadiusServerOutput) RadiusServerAddress() pulumi.StringOutput { - return o.ApplyT(func(v RadiusServer) string { return v.RadiusServerAddress }).(pulumi.StringOutput) -} - -// The initial score assigned to this radius server. -func (o RadiusServerOutput) RadiusServerScore() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RadiusServer) *float64 { return v.RadiusServerScore }).(pulumi.Float64PtrOutput) +func (o PolicySettingsOutput) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { + return o.ToPolicySettingsPtrOutputWithContext(context.Background()) } -// The secret used for this radius server. -func (o RadiusServerOutput) RadiusServerSecret() pulumi.StringPtrOutput { - return o.ApplyT(func(v RadiusServer) *string { return v.RadiusServerSecret }).(pulumi.StringPtrOutput) +func (o PolicySettingsOutput) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PolicySettings) *PolicySettings { + return &v + }).(PolicySettingsPtrOutput) } -type RadiusServerArrayOutput struct{ *pulumi.OutputState } - -func (RadiusServerArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RadiusServer)(nil)).Elem() +// If the action type is block, customer can override the response body. The body must be specified in base64 encoding. +func (o PolicySettingsOutput) CustomBlockResponseBody() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettings) *string { return v.CustomBlockResponseBody }).(pulumi.StringPtrOutput) } -func (o RadiusServerArrayOutput) ToRadiusServerArrayOutput() RadiusServerArrayOutput { - return o +// If the action type is block, customer can override the response status code. +func (o PolicySettingsOutput) CustomBlockResponseStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettings) *int { return v.CustomBlockResponseStatusCode }).(pulumi.IntPtrOutput) } -func (o RadiusServerArrayOutput) ToRadiusServerArrayOutputWithContext(ctx context.Context) RadiusServerArrayOutput { - return o +// Whether allow WAF to enforce file upload limits. +func (o PolicySettingsOutput) FileUploadEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettings) *bool { return v.FileUploadEnforcement }).(pulumi.BoolPtrOutput) } -func (o RadiusServerArrayOutput) Index(i pulumi.IntInput) RadiusServerOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RadiusServer { - return vs[0].([]RadiusServer)[vs[1].(int)] - }).(RadiusServerOutput) +// Maximum file upload size in Mb for WAF. +func (o PolicySettingsOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettings) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) } -// Radius Server Settings. -type RadiusServerResponse struct { - // The address of this radius server. - RadiusServerAddress string `pulumi:"radiusServerAddress"` - // The initial score assigned to this radius server. - RadiusServerScore *float64 `pulumi:"radiusServerScore"` - // The secret used for this radius server. - RadiusServerSecret *string `pulumi:"radiusServerSecret"` +// To scrub sensitive log fields +func (o PolicySettingsOutput) LogScrubbing() PolicySettingsLogScrubbingPtrOutput { + return o.ApplyT(func(v PolicySettings) *PolicySettingsLogScrubbing { return v.LogScrubbing }).(PolicySettingsLogScrubbingPtrOutput) } -// Radius Server Settings. -type RadiusServerResponseOutput struct{ *pulumi.OutputState } - -func (RadiusServerResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RadiusServerResponse)(nil)).Elem() +// Maximum request body size in Kb for WAF. +func (o PolicySettingsOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettings) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) } -func (o RadiusServerResponseOutput) ToRadiusServerResponseOutput() RadiusServerResponseOutput { - return o +// The mode of the policy. +func (o PolicySettingsOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettings) *string { return v.Mode }).(pulumi.StringPtrOutput) } -func (o RadiusServerResponseOutput) ToRadiusServerResponseOutputWithContext(ctx context.Context) RadiusServerResponseOutput { - return o +// Whether to allow WAF to check request Body. +func (o PolicySettingsOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettings) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) } -// The address of this radius server. -func (o RadiusServerResponseOutput) RadiusServerAddress() pulumi.StringOutput { - return o.ApplyT(func(v RadiusServerResponse) string { return v.RadiusServerAddress }).(pulumi.StringOutput) +// Whether allow WAF to enforce request body limits. +func (o PolicySettingsOutput) RequestBodyEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettings) *bool { return v.RequestBodyEnforcement }).(pulumi.BoolPtrOutput) } -// The initial score assigned to this radius server. -func (o RadiusServerResponseOutput) RadiusServerScore() pulumi.Float64PtrOutput { - return o.ApplyT(func(v RadiusServerResponse) *float64 { return v.RadiusServerScore }).(pulumi.Float64PtrOutput) +// Max inspection limit in KB for request body inspection for WAF. +func (o PolicySettingsOutput) RequestBodyInspectLimitInKB() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettings) *int { return v.RequestBodyInspectLimitInKB }).(pulumi.IntPtrOutput) } -// The secret used for this radius server. -func (o RadiusServerResponseOutput) RadiusServerSecret() pulumi.StringPtrOutput { - return o.ApplyT(func(v RadiusServerResponse) *string { return v.RadiusServerSecret }).(pulumi.StringPtrOutput) +// The state of the policy. +func (o PolicySettingsOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettings) *string { return v.State }).(pulumi.StringPtrOutput) } -type RadiusServerResponseArrayOutput struct{ *pulumi.OutputState } +type PolicySettingsPtrOutput struct{ *pulumi.OutputState } -func (RadiusServerResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RadiusServerResponse)(nil)).Elem() +func (PolicySettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettings)(nil)).Elem() } -func (o RadiusServerResponseArrayOutput) ToRadiusServerResponseArrayOutput() RadiusServerResponseArrayOutput { +func (o PolicySettingsPtrOutput) ToPolicySettingsPtrOutput() PolicySettingsPtrOutput { return o } -func (o RadiusServerResponseArrayOutput) ToRadiusServerResponseArrayOutputWithContext(ctx context.Context) RadiusServerResponseArrayOutput { +func (o PolicySettingsPtrOutput) ToPolicySettingsPtrOutputWithContext(ctx context.Context) PolicySettingsPtrOutput { return o } -func (o RadiusServerResponseArrayOutput) Index(i pulumi.IntInput) RadiusServerResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RadiusServerResponse { - return vs[0].([]RadiusServerResponse)[vs[1].(int)] - }).(RadiusServerResponseOutput) -} - -// A collective group of information about the record set information. -type RecordSetResponse struct { - // Fqdn that resolves to private endpoint ip address. - Fqdn *string `pulumi:"fqdn"` - // The private ip address of the private endpoint. - IpAddresses []string `pulumi:"ipAddresses"` - // The provisioning state of the recordset. - ProvisioningState string `pulumi:"provisioningState"` - // Recordset name. - RecordSetName *string `pulumi:"recordSetName"` - // Resource record type. - RecordType *string `pulumi:"recordType"` - // Recordset time to live. - Ttl *int `pulumi:"ttl"` +func (o PolicySettingsPtrOutput) Elem() PolicySettingsOutput { + return o.ApplyT(func(v *PolicySettings) PolicySettings { + if v != nil { + return *v + } + var ret PolicySettings + return ret + }).(PolicySettingsOutput) } -// A collective group of information about the record set information. -type RecordSetResponseOutput struct{ *pulumi.OutputState } - -func (RecordSetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RecordSetResponse)(nil)).Elem() +// If the action type is block, customer can override the response body. The body must be specified in base64 encoding. +func (o PolicySettingsPtrOutput) CustomBlockResponseBody() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettings) *string { + if v == nil { + return nil + } + return v.CustomBlockResponseBody + }).(pulumi.StringPtrOutput) } -func (o RecordSetResponseOutput) ToRecordSetResponseOutput() RecordSetResponseOutput { - return o +// If the action type is block, customer can override the response status code. +func (o PolicySettingsPtrOutput) CustomBlockResponseStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettings) *int { + if v == nil { + return nil + } + return v.CustomBlockResponseStatusCode + }).(pulumi.IntPtrOutput) } -func (o RecordSetResponseOutput) ToRecordSetResponseOutputWithContext(ctx context.Context) RecordSetResponseOutput { - return o +// Whether allow WAF to enforce file upload limits. +func (o PolicySettingsPtrOutput) FileUploadEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettings) *bool { + if v == nil { + return nil + } + return v.FileUploadEnforcement + }).(pulumi.BoolPtrOutput) } -// Fqdn that resolves to private endpoint ip address. -func (o RecordSetResponseOutput) Fqdn() pulumi.StringPtrOutput { - return o.ApplyT(func(v RecordSetResponse) *string { return v.Fqdn }).(pulumi.StringPtrOutput) +// Maximum file upload size in Mb for WAF. +func (o PolicySettingsPtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettings) *int { + if v == nil { + return nil + } + return v.FileUploadLimitInMb + }).(pulumi.IntPtrOutput) } -// The private ip address of the private endpoint. -func (o RecordSetResponseOutput) IpAddresses() pulumi.StringArrayOutput { - return o.ApplyT(func(v RecordSetResponse) []string { return v.IpAddresses }).(pulumi.StringArrayOutput) +// To scrub sensitive log fields +func (o PolicySettingsPtrOutput) LogScrubbing() PolicySettingsLogScrubbingPtrOutput { + return o.ApplyT(func(v *PolicySettings) *PolicySettingsLogScrubbing { + if v == nil { + return nil + } + return v.LogScrubbing + }).(PolicySettingsLogScrubbingPtrOutput) } -// The provisioning state of the recordset. -func (o RecordSetResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v RecordSetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Maximum request body size in Kb for WAF. +func (o PolicySettingsPtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettings) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySizeInKb + }).(pulumi.IntPtrOutput) } -// Recordset name. -func (o RecordSetResponseOutput) RecordSetName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RecordSetResponse) *string { return v.RecordSetName }).(pulumi.StringPtrOutput) +// The mode of the policy. +func (o PolicySettingsPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettings) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) } -// Resource record type. -func (o RecordSetResponseOutput) RecordType() pulumi.StringPtrOutput { - return o.ApplyT(func(v RecordSetResponse) *string { return v.RecordType }).(pulumi.StringPtrOutput) +// Whether to allow WAF to check request Body. +func (o PolicySettingsPtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettings) *bool { + if v == nil { + return nil + } + return v.RequestBodyCheck + }).(pulumi.BoolPtrOutput) } -// Recordset time to live. -func (o RecordSetResponseOutput) Ttl() pulumi.IntPtrOutput { - return o.ApplyT(func(v RecordSetResponse) *int { return v.Ttl }).(pulumi.IntPtrOutput) +// Whether allow WAF to enforce request body limits. +func (o PolicySettingsPtrOutput) RequestBodyEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettings) *bool { + if v == nil { + return nil + } + return v.RequestBodyEnforcement + }).(pulumi.BoolPtrOutput) } -type RecordSetResponseArrayOutput struct{ *pulumi.OutputState } - -func (RecordSetResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RecordSetResponse)(nil)).Elem() +// Max inspection limit in KB for request body inspection for WAF. +func (o PolicySettingsPtrOutput) RequestBodyInspectLimitInKB() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettings) *int { + if v == nil { + return nil + } + return v.RequestBodyInspectLimitInKB + }).(pulumi.IntPtrOutput) } -func (o RecordSetResponseArrayOutput) ToRecordSetResponseArrayOutput() RecordSetResponseArrayOutput { - return o +// The state of the policy. +func (o PolicySettingsPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettings) *string { + if v == nil { + return nil + } + return v.State + }).(pulumi.StringPtrOutput) } -func (o RecordSetResponseArrayOutput) ToRecordSetResponseArrayOutputWithContext(ctx context.Context) RecordSetResponseArrayOutput { - return o +// To scrub sensitive log fields +type PolicySettingsLogScrubbing struct { + // The rules that are applied to the logs for scrubbing. + ScrubbingRules []WebApplicationFirewallScrubbingRules `pulumi:"scrubbingRules"` + // State of the log scrubbing config. Default value is Enabled. + State *string `pulumi:"state"` } -func (o RecordSetResponseArrayOutput) Index(i pulumi.IntInput) RecordSetResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RecordSetResponse { - return vs[0].([]RecordSetResponse)[vs[1].(int)] - }).(RecordSetResponseOutput) -} +// PolicySettingsLogScrubbingInput is an input type that accepts PolicySettingsLogScrubbingArgs and PolicySettingsLogScrubbingOutput values. +// You can construct a concrete instance of `PolicySettingsLogScrubbingInput` via: +// +// PolicySettingsLogScrubbingArgs{...} +type PolicySettingsLogScrubbingInput interface { + pulumi.Input -// Describes Redirect Route. -type RedirectConfiguration struct { - // Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. - CustomFragment *string `pulumi:"customFragment"` - // Host to redirect. Leave empty to use the incoming host as the destination host. - CustomHost *string `pulumi:"customHost"` - // The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. - CustomPath *string `pulumi:"customPath"` - // The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in = format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. - CustomQueryString *string `pulumi:"customQueryString"` - // Expected value is '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'. - OdataType string `pulumi:"odataType"` - // The protocol of the destination to where the traffic is redirected - RedirectProtocol *string `pulumi:"redirectProtocol"` - // The redirect type the rule will use when redirecting traffic. - RedirectType *string `pulumi:"redirectType"` + ToPolicySettingsLogScrubbingOutput() PolicySettingsLogScrubbingOutput + ToPolicySettingsLogScrubbingOutputWithContext(context.Context) PolicySettingsLogScrubbingOutput } -// Describes Redirect Route. -type RedirectConfigurationResponse struct { - // Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. - CustomFragment *string `pulumi:"customFragment"` - // Host to redirect. Leave empty to use the incoming host as the destination host. - CustomHost *string `pulumi:"customHost"` - // The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. - CustomPath *string `pulumi:"customPath"` - // The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in = format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. - CustomQueryString *string `pulumi:"customQueryString"` - // Expected value is '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'. - OdataType string `pulumi:"odataType"` - // The protocol of the destination to where the traffic is redirected - RedirectProtocol *string `pulumi:"redirectProtocol"` - // The redirect type the rule will use when redirecting traffic. - RedirectType *string `pulumi:"redirectType"` +// To scrub sensitive log fields +type PolicySettingsLogScrubbingArgs struct { + // The rules that are applied to the logs for scrubbing. + ScrubbingRules WebApplicationFirewallScrubbingRulesArrayInput `pulumi:"scrubbingRules"` + // State of the log scrubbing config. Default value is Enabled. + State pulumi.StringPtrInput `pulumi:"state"` } -// Reference to a public IP address. -type ReferencedPublicIpAddressResponse struct { - // The PublicIPAddress Reference. - Id *string `pulumi:"id"` +func (PolicySettingsLogScrubbingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettingsLogScrubbing)(nil)).Elem() } -// Reference to a public IP address. -type ReferencedPublicIpAddressResponseOutput struct{ *pulumi.OutputState } - -func (ReferencedPublicIpAddressResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ReferencedPublicIpAddressResponse)(nil)).Elem() +func (i PolicySettingsLogScrubbingArgs) ToPolicySettingsLogScrubbingOutput() PolicySettingsLogScrubbingOutput { + return i.ToPolicySettingsLogScrubbingOutputWithContext(context.Background()) } -func (o ReferencedPublicIpAddressResponseOutput) ToReferencedPublicIpAddressResponseOutput() ReferencedPublicIpAddressResponseOutput { - return o +func (i PolicySettingsLogScrubbingArgs) ToPolicySettingsLogScrubbingOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsLogScrubbingOutput) } -func (o ReferencedPublicIpAddressResponseOutput) ToReferencedPublicIpAddressResponseOutputWithContext(ctx context.Context) ReferencedPublicIpAddressResponseOutput { - return o +func (i PolicySettingsLogScrubbingArgs) ToPolicySettingsLogScrubbingPtrOutput() PolicySettingsLogScrubbingPtrOutput { + return i.ToPolicySettingsLogScrubbingPtrOutputWithContext(context.Background()) } -// The PublicIPAddress Reference. -func (o ReferencedPublicIpAddressResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ReferencedPublicIpAddressResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i PolicySettingsLogScrubbingArgs) ToPolicySettingsLogScrubbingPtrOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsLogScrubbingOutput).ToPolicySettingsLogScrubbingPtrOutputWithContext(ctx) } -type ReferencedPublicIpAddressResponseArrayOutput struct{ *pulumi.OutputState } +// PolicySettingsLogScrubbingPtrInput is an input type that accepts PolicySettingsLogScrubbingArgs, PolicySettingsLogScrubbingPtr and PolicySettingsLogScrubbingPtrOutput values. +// You can construct a concrete instance of `PolicySettingsLogScrubbingPtrInput` via: +// +// PolicySettingsLogScrubbingArgs{...} +// +// or: +// +// nil +type PolicySettingsLogScrubbingPtrInput interface { + pulumi.Input -func (ReferencedPublicIpAddressResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ReferencedPublicIpAddressResponse)(nil)).Elem() + ToPolicySettingsLogScrubbingPtrOutput() PolicySettingsLogScrubbingPtrOutput + ToPolicySettingsLogScrubbingPtrOutputWithContext(context.Context) PolicySettingsLogScrubbingPtrOutput } -func (o ReferencedPublicIpAddressResponseArrayOutput) ToReferencedPublicIpAddressResponseArrayOutput() ReferencedPublicIpAddressResponseArrayOutput { - return o +type policySettingsLogScrubbingPtrType PolicySettingsLogScrubbingArgs + +func PolicySettingsLogScrubbingPtr(v *PolicySettingsLogScrubbingArgs) PolicySettingsLogScrubbingPtrInput { + return (*policySettingsLogScrubbingPtrType)(v) } -func (o ReferencedPublicIpAddressResponseArrayOutput) ToReferencedPublicIpAddressResponseArrayOutputWithContext(ctx context.Context) ReferencedPublicIpAddressResponseArrayOutput { - return o +func (*policySettingsLogScrubbingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettingsLogScrubbing)(nil)).Elem() } -func (o ReferencedPublicIpAddressResponseArrayOutput) Index(i pulumi.IntInput) ReferencedPublicIpAddressResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReferencedPublicIpAddressResponse { - return vs[0].([]ReferencedPublicIpAddressResponse)[vs[1].(int)] - }).(ReferencedPublicIpAddressResponseOutput) +func (i *policySettingsLogScrubbingPtrType) ToPolicySettingsLogScrubbingPtrOutput() PolicySettingsLogScrubbingPtrOutput { + return i.ToPolicySettingsLogScrubbingPtrOutputWithContext(context.Background()) } -// ResourceNavigationLink resource. -type ResourceNavigationLinkResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id string `pulumi:"id"` - // Link to the external resource. - Link *string `pulumi:"link"` - // Resource type of the linked resource. - LinkedResourceType *string `pulumi:"linkedResourceType"` - // Name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the resource navigation link resource. - ProvisioningState string `pulumi:"provisioningState"` - // Resource type. - Type string `pulumi:"type"` +func (i *policySettingsLogScrubbingPtrType) ToPolicySettingsLogScrubbingPtrOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySettingsLogScrubbingPtrOutput) } -// ResourceNavigationLink resource. -type ResourceNavigationLinkResponseOutput struct{ *pulumi.OutputState } +// To scrub sensitive log fields +type PolicySettingsLogScrubbingOutput struct{ *pulumi.OutputState } -func (ResourceNavigationLinkResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceNavigationLinkResponse)(nil)).Elem() +func (PolicySettingsLogScrubbingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettingsLogScrubbing)(nil)).Elem() } -func (o ResourceNavigationLinkResponseOutput) ToResourceNavigationLinkResponseOutput() ResourceNavigationLinkResponseOutput { +func (o PolicySettingsLogScrubbingOutput) ToPolicySettingsLogScrubbingOutput() PolicySettingsLogScrubbingOutput { return o } -func (o ResourceNavigationLinkResponseOutput) ToResourceNavigationLinkResponseOutputWithContext(ctx context.Context) ResourceNavigationLinkResponseOutput { +func (o PolicySettingsLogScrubbingOutput) ToPolicySettingsLogScrubbingOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ResourceNavigationLinkResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o PolicySettingsLogScrubbingOutput) ToPolicySettingsLogScrubbingPtrOutput() PolicySettingsLogScrubbingPtrOutput { + return o.ToPolicySettingsLogScrubbingPtrOutputWithContext(context.Background()) } -// Resource ID. -func (o ResourceNavigationLinkResponseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Id }).(pulumi.StringOutput) +func (o PolicySettingsLogScrubbingOutput) ToPolicySettingsLogScrubbingPtrOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PolicySettingsLogScrubbing) *PolicySettingsLogScrubbing { + return &v + }).(PolicySettingsLogScrubbingPtrOutput) } -// Link to the external resource. -func (o ResourceNavigationLinkResponseOutput) Link() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.Link }).(pulumi.StringPtrOutput) +// The rules that are applied to the logs for scrubbing. +func (o PolicySettingsLogScrubbingOutput) ScrubbingRules() WebApplicationFirewallScrubbingRulesArrayOutput { + return o.ApplyT(func(v PolicySettingsLogScrubbing) []WebApplicationFirewallScrubbingRules { return v.ScrubbingRules }).(WebApplicationFirewallScrubbingRulesArrayOutput) } -// Resource type of the linked resource. -func (o ResourceNavigationLinkResponseOutput) LinkedResourceType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) +// State of the log scrubbing config. Default value is Enabled. +func (o PolicySettingsLogScrubbingOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettingsLogScrubbing) *string { return v.State }).(pulumi.StringPtrOutput) } -// Name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o ResourceNavigationLinkResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} +type PolicySettingsLogScrubbingPtrOutput struct{ *pulumi.OutputState } -// The provisioning state of the resource navigation link resource. -func (o ResourceNavigationLinkResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (PolicySettingsLogScrubbingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettingsLogScrubbing)(nil)).Elem() } -// Resource type. -func (o ResourceNavigationLinkResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Type }).(pulumi.StringOutput) +func (o PolicySettingsLogScrubbingPtrOutput) ToPolicySettingsLogScrubbingPtrOutput() PolicySettingsLogScrubbingPtrOutput { + return o } -type ResourceNavigationLinkResponseArrayOutput struct{ *pulumi.OutputState } - -func (ResourceNavigationLinkResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourceNavigationLinkResponse)(nil)).Elem() +func (o PolicySettingsLogScrubbingPtrOutput) ToPolicySettingsLogScrubbingPtrOutputWithContext(ctx context.Context) PolicySettingsLogScrubbingPtrOutput { + return o } -func (o ResourceNavigationLinkResponseArrayOutput) ToResourceNavigationLinkResponseArrayOutput() ResourceNavigationLinkResponseArrayOutput { - return o +func (o PolicySettingsLogScrubbingPtrOutput) Elem() PolicySettingsLogScrubbingOutput { + return o.ApplyT(func(v *PolicySettingsLogScrubbing) PolicySettingsLogScrubbing { + if v != nil { + return *v + } + var ret PolicySettingsLogScrubbing + return ret + }).(PolicySettingsLogScrubbingOutput) } -func (o ResourceNavigationLinkResponseArrayOutput) ToResourceNavigationLinkResponseArrayOutputWithContext(ctx context.Context) ResourceNavigationLinkResponseArrayOutput { - return o +// The rules that are applied to the logs for scrubbing. +func (o PolicySettingsLogScrubbingPtrOutput) ScrubbingRules() WebApplicationFirewallScrubbingRulesArrayOutput { + return o.ApplyT(func(v *PolicySettingsLogScrubbing) []WebApplicationFirewallScrubbingRules { + if v == nil { + return nil + } + return v.ScrubbingRules + }).(WebApplicationFirewallScrubbingRulesArrayOutput) } -func (o ResourceNavigationLinkResponseArrayOutput) Index(i pulumi.IntInput) ResourceNavigationLinkResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceNavigationLinkResponse { - return vs[0].([]ResourceNavigationLinkResponse)[vs[1].(int)] - }).(ResourceNavigationLinkResponseOutput) +// State of the log scrubbing config. Default value is Enabled. +func (o PolicySettingsLogScrubbingPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettingsLogScrubbing) *string { + if v == nil { + return nil + } + return v.State + }).(pulumi.StringPtrOutput) } -// Parameters that define the retention policy for flow log. -type RetentionPolicyParameters struct { - // Number of days to retain flow log records. - Days *int `pulumi:"days"` - // Flag to enable/disable retention. - Enabled *bool `pulumi:"enabled"` +// Defines contents of a web application firewall global configuration. +type PolicySettingsResponse struct { + // If the action type is block, customer can override the response body. The body must be specified in base64 encoding. + CustomBlockResponseBody *string `pulumi:"customBlockResponseBody"` + // If the action type is block, customer can override the response status code. + CustomBlockResponseStatusCode *int `pulumi:"customBlockResponseStatusCode"` + // Whether allow WAF to enforce file upload limits. + FileUploadEnforcement *bool `pulumi:"fileUploadEnforcement"` + // Maximum file upload size in Mb for WAF. + FileUploadLimitInMb *int `pulumi:"fileUploadLimitInMb"` + // To scrub sensitive log fields + LogScrubbing *PolicySettingsResponseLogScrubbing `pulumi:"logScrubbing"` + // Maximum request body size in Kb for WAF. + MaxRequestBodySizeInKb *int `pulumi:"maxRequestBodySizeInKb"` + // The mode of the policy. + Mode *string `pulumi:"mode"` + // Whether to allow WAF to check request Body. + RequestBodyCheck *bool `pulumi:"requestBodyCheck"` + // Whether allow WAF to enforce request body limits. + RequestBodyEnforcement *bool `pulumi:"requestBodyEnforcement"` + // Max inspection limit in KB for request body inspection for WAF. + RequestBodyInspectLimitInKB *int `pulumi:"requestBodyInspectLimitInKB"` + // The state of the policy. + State *string `pulumi:"state"` } -// Defaults sets the appropriate defaults for RetentionPolicyParameters -func (val *RetentionPolicyParameters) Defaults() *RetentionPolicyParameters { +// Defaults sets the appropriate defaults for PolicySettingsResponse +func (val *PolicySettingsResponse) Defaults() *PolicySettingsResponse { if val == nil { return nil } tmp := *val - if isZero(tmp.Days) { - days_ := 0 - tmp.Days = &days_ + if tmp.FileUploadEnforcement == nil { + fileUploadEnforcement_ := true + tmp.FileUploadEnforcement = &fileUploadEnforcement_ } - if isZero(tmp.Enabled) { - enabled_ := false - tmp.Enabled = &enabled_ + if tmp.RequestBodyEnforcement == nil { + requestBodyEnforcement_ := true + tmp.RequestBodyEnforcement = &requestBodyEnforcement_ } return &tmp } -// RetentionPolicyParametersInput is an input type that accepts RetentionPolicyParametersArgs and RetentionPolicyParametersOutput values. -// You can construct a concrete instance of `RetentionPolicyParametersInput` via: -// -// RetentionPolicyParametersArgs{...} -type RetentionPolicyParametersInput interface { - pulumi.Input +// Defines contents of a web application firewall global configuration. +type PolicySettingsResponseOutput struct{ *pulumi.OutputState } - ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput - ToRetentionPolicyParametersOutputWithContext(context.Context) RetentionPolicyParametersOutput +func (PolicySettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettingsResponse)(nil)).Elem() } -// Parameters that define the retention policy for flow log. -type RetentionPolicyParametersArgs struct { - // Number of days to retain flow log records. - Days pulumi.IntPtrInput `pulumi:"days"` - // Flag to enable/disable retention. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +func (o PolicySettingsResponseOutput) ToPolicySettingsResponseOutput() PolicySettingsResponseOutput { + return o } -// Defaults sets the appropriate defaults for RetentionPolicyParametersArgs -func (val *RetentionPolicyParametersArgs) Defaults() *RetentionPolicyParametersArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Days) { - tmp.Days = pulumi.IntPtr(0) - } - if isZero(tmp.Enabled) { - tmp.Enabled = pulumi.BoolPtr(false) - } - return &tmp -} -func (RetentionPolicyParametersArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RetentionPolicyParameters)(nil)).Elem() +func (o PolicySettingsResponseOutput) ToPolicySettingsResponseOutputWithContext(ctx context.Context) PolicySettingsResponseOutput { + return o } -func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput { - return i.ToRetentionPolicyParametersOutputWithContext(context.Background()) +// If the action type is block, customer can override the response body. The body must be specified in base64 encoding. +func (o PolicySettingsResponseOutput) CustomBlockResponseBody() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *string { return v.CustomBlockResponseBody }).(pulumi.StringPtrOutput) } -func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersOutputWithContext(ctx context.Context) RetentionPolicyParametersOutput { - return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersOutput) +// If the action type is block, customer can override the response status code. +func (o PolicySettingsResponseOutput) CustomBlockResponseStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *int { return v.CustomBlockResponseStatusCode }).(pulumi.IntPtrOutput) } -func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { - return i.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) +// Whether allow WAF to enforce file upload limits. +func (o PolicySettingsResponseOutput) FileUploadEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *bool { return v.FileUploadEnforcement }).(pulumi.BoolPtrOutput) } -func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersOutput).ToRetentionPolicyParametersPtrOutputWithContext(ctx) +// Maximum file upload size in Mb for WAF. +func (o PolicySettingsResponseOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *int { return v.FileUploadLimitInMb }).(pulumi.IntPtrOutput) } -// RetentionPolicyParametersPtrInput is an input type that accepts RetentionPolicyParametersArgs, RetentionPolicyParametersPtr and RetentionPolicyParametersPtrOutput values. -// You can construct a concrete instance of `RetentionPolicyParametersPtrInput` via: -// -// RetentionPolicyParametersArgs{...} -// -// or: -// -// nil -type RetentionPolicyParametersPtrInput interface { - pulumi.Input +// To scrub sensitive log fields +func (o PolicySettingsResponseOutput) LogScrubbing() PolicySettingsResponseLogScrubbingPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *PolicySettingsResponseLogScrubbing { return v.LogScrubbing }).(PolicySettingsResponseLogScrubbingPtrOutput) +} - ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput - ToRetentionPolicyParametersPtrOutputWithContext(context.Context) RetentionPolicyParametersPtrOutput +// Maximum request body size in Kb for WAF. +func (o PolicySettingsResponseOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *int { return v.MaxRequestBodySizeInKb }).(pulumi.IntPtrOutput) } -type retentionPolicyParametersPtrType RetentionPolicyParametersArgs +// The mode of the policy. +func (o PolicySettingsResponseOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *string { return v.Mode }).(pulumi.StringPtrOutput) +} -func RetentionPolicyParametersPtr(v *RetentionPolicyParametersArgs) RetentionPolicyParametersPtrInput { - return (*retentionPolicyParametersPtrType)(v) +// Whether to allow WAF to check request Body. +func (o PolicySettingsResponseOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *bool { return v.RequestBodyCheck }).(pulumi.BoolPtrOutput) } -func (*retentionPolicyParametersPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RetentionPolicyParameters)(nil)).Elem() +// Whether allow WAF to enforce request body limits. +func (o PolicySettingsResponseOutput) RequestBodyEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *bool { return v.RequestBodyEnforcement }).(pulumi.BoolPtrOutput) } -func (i *retentionPolicyParametersPtrType) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { - return i.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) +// Max inspection limit in KB for request body inspection for WAF. +func (o PolicySettingsResponseOutput) RequestBodyInspectLimitInKB() pulumi.IntPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *int { return v.RequestBodyInspectLimitInKB }).(pulumi.IntPtrOutput) } -func (i *retentionPolicyParametersPtrType) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersPtrOutput) +// The state of the policy. +func (o PolicySettingsResponseOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettingsResponse) *string { return v.State }).(pulumi.StringPtrOutput) } -// Parameters that define the retention policy for flow log. -type RetentionPolicyParametersOutput struct{ *pulumi.OutputState } +type PolicySettingsResponsePtrOutput struct{ *pulumi.OutputState } -func (RetentionPolicyParametersOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RetentionPolicyParameters)(nil)).Elem() +func (PolicySettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettingsResponse)(nil)).Elem() } -func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput { +func (o PolicySettingsResponsePtrOutput) ToPolicySettingsResponsePtrOutput() PolicySettingsResponsePtrOutput { return o } -func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersOutputWithContext(ctx context.Context) RetentionPolicyParametersOutput { +func (o PolicySettingsResponsePtrOutput) ToPolicySettingsResponsePtrOutputWithContext(ctx context.Context) PolicySettingsResponsePtrOutput { return o } -func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { - return o.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) +func (o PolicySettingsResponsePtrOutput) Elem() PolicySettingsResponseOutput { + return o.ApplyT(func(v *PolicySettingsResponse) PolicySettingsResponse { + if v != nil { + return *v + } + var ret PolicySettingsResponse + return ret + }).(PolicySettingsResponseOutput) } -func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RetentionPolicyParameters) *RetentionPolicyParameters { - return &v - }).(RetentionPolicyParametersPtrOutput) +// If the action type is block, customer can override the response body. The body must be specified in base64 encoding. +func (o PolicySettingsResponsePtrOutput) CustomBlockResponseBody() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *string { + if v == nil { + return nil + } + return v.CustomBlockResponseBody + }).(pulumi.StringPtrOutput) } -// Number of days to retain flow log records. -func (o RetentionPolicyParametersOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v RetentionPolicyParameters) *int { return v.Days }).(pulumi.IntPtrOutput) +// If the action type is block, customer can override the response status code. +func (o PolicySettingsResponsePtrOutput) CustomBlockResponseStatusCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *int { + if v == nil { + return nil + } + return v.CustomBlockResponseStatusCode + }).(pulumi.IntPtrOutput) } -// Flag to enable/disable retention. -func (o RetentionPolicyParametersOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RetentionPolicyParameters) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// Whether allow WAF to enforce file upload limits. +func (o PolicySettingsResponsePtrOutput) FileUploadEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *bool { + if v == nil { + return nil + } + return v.FileUploadEnforcement + }).(pulumi.BoolPtrOutput) } -type RetentionPolicyParametersPtrOutput struct{ *pulumi.OutputState } - -func (RetentionPolicyParametersPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RetentionPolicyParameters)(nil)).Elem() +// Maximum file upload size in Mb for WAF. +func (o PolicySettingsResponsePtrOutput) FileUploadLimitInMb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *int { + if v == nil { + return nil + } + return v.FileUploadLimitInMb + }).(pulumi.IntPtrOutput) } -func (o RetentionPolicyParametersPtrOutput) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { - return o +// To scrub sensitive log fields +func (o PolicySettingsResponsePtrOutput) LogScrubbing() PolicySettingsResponseLogScrubbingPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *PolicySettingsResponseLogScrubbing { + if v == nil { + return nil + } + return v.LogScrubbing + }).(PolicySettingsResponseLogScrubbingPtrOutput) } -func (o RetentionPolicyParametersPtrOutput) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { - return o +// Maximum request body size in Kb for WAF. +func (o PolicySettingsResponsePtrOutput) MaxRequestBodySizeInKb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *int { + if v == nil { + return nil + } + return v.MaxRequestBodySizeInKb + }).(pulumi.IntPtrOutput) } -func (o RetentionPolicyParametersPtrOutput) Elem() RetentionPolicyParametersOutput { - return o.ApplyT(func(v *RetentionPolicyParameters) RetentionPolicyParameters { - if v != nil { - return *v +// The mode of the policy. +func (o PolicySettingsResponsePtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *string { + if v == nil { + return nil } - var ret RetentionPolicyParameters - return ret - }).(RetentionPolicyParametersOutput) + return v.Mode + }).(pulumi.StringPtrOutput) } -// Number of days to retain flow log records. -func (o RetentionPolicyParametersPtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RetentionPolicyParameters) *int { +// Whether to allow WAF to check request Body. +func (o PolicySettingsResponsePtrOutput) RequestBodyCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *bool { if v == nil { return nil } - return v.Days - }).(pulumi.IntPtrOutput) + return v.RequestBodyCheck + }).(pulumi.BoolPtrOutput) } -// Flag to enable/disable retention. -func (o RetentionPolicyParametersPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RetentionPolicyParameters) *bool { +// Whether allow WAF to enforce request body limits. +func (o PolicySettingsResponsePtrOutput) RequestBodyEnforcement() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *bool { if v == nil { return nil } - return v.Enabled + return v.RequestBodyEnforcement }).(pulumi.BoolPtrOutput) } -// Parameters that define the retention policy for flow log. -type RetentionPolicyParametersResponse struct { - // Number of days to retain flow log records. - Days *int `pulumi:"days"` - // Flag to enable/disable retention. - Enabled *bool `pulumi:"enabled"` +// Max inspection limit in KB for request body inspection for WAF. +func (o PolicySettingsResponsePtrOutput) RequestBodyInspectLimitInKB() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *int { + if v == nil { + return nil + } + return v.RequestBodyInspectLimitInKB + }).(pulumi.IntPtrOutput) } -// Defaults sets the appropriate defaults for RetentionPolicyParametersResponse -func (val *RetentionPolicyParametersResponse) Defaults() *RetentionPolicyParametersResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Days) { - days_ := 0 - tmp.Days = &days_ - } - if isZero(tmp.Enabled) { - enabled_ := false - tmp.Enabled = &enabled_ - } - return &tmp +// The state of the policy. +func (o PolicySettingsResponsePtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponse) *string { + if v == nil { + return nil + } + return v.State + }).(pulumi.StringPtrOutput) } -// Parameters that define the retention policy for flow log. -type RetentionPolicyParametersResponseOutput struct{ *pulumi.OutputState } +// To scrub sensitive log fields +type PolicySettingsResponseLogScrubbing struct { + // The rules that are applied to the logs for scrubbing. + ScrubbingRules []WebApplicationFirewallScrubbingRulesResponse `pulumi:"scrubbingRules"` + // State of the log scrubbing config. Default value is Enabled. + State *string `pulumi:"state"` +} -func (RetentionPolicyParametersResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RetentionPolicyParametersResponse)(nil)).Elem() +// To scrub sensitive log fields +type PolicySettingsResponseLogScrubbingOutput struct{ *pulumi.OutputState } + +func (PolicySettingsResponseLogScrubbingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySettingsResponseLogScrubbing)(nil)).Elem() } -func (o RetentionPolicyParametersResponseOutput) ToRetentionPolicyParametersResponseOutput() RetentionPolicyParametersResponseOutput { +func (o PolicySettingsResponseLogScrubbingOutput) ToPolicySettingsResponseLogScrubbingOutput() PolicySettingsResponseLogScrubbingOutput { return o } -func (o RetentionPolicyParametersResponseOutput) ToRetentionPolicyParametersResponseOutputWithContext(ctx context.Context) RetentionPolicyParametersResponseOutput { +func (o PolicySettingsResponseLogScrubbingOutput) ToPolicySettingsResponseLogScrubbingOutputWithContext(ctx context.Context) PolicySettingsResponseLogScrubbingOutput { return o } -// Number of days to retain flow log records. -func (o RetentionPolicyParametersResponseOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v RetentionPolicyParametersResponse) *int { return v.Days }).(pulumi.IntPtrOutput) +// The rules that are applied to the logs for scrubbing. +func (o PolicySettingsResponseLogScrubbingOutput) ScrubbingRules() WebApplicationFirewallScrubbingRulesResponseArrayOutput { + return o.ApplyT(func(v PolicySettingsResponseLogScrubbing) []WebApplicationFirewallScrubbingRulesResponse { + return v.ScrubbingRules + }).(WebApplicationFirewallScrubbingRulesResponseArrayOutput) } -// Flag to enable/disable retention. -func (o RetentionPolicyParametersResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RetentionPolicyParametersResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// State of the log scrubbing config. Default value is Enabled. +func (o PolicySettingsResponseLogScrubbingOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySettingsResponseLogScrubbing) *string { return v.State }).(pulumi.StringPtrOutput) } -type RetentionPolicyParametersResponsePtrOutput struct{ *pulumi.OutputState } +type PolicySettingsResponseLogScrubbingPtrOutput struct{ *pulumi.OutputState } -func (RetentionPolicyParametersResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RetentionPolicyParametersResponse)(nil)).Elem() +func (PolicySettingsResponseLogScrubbingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySettingsResponseLogScrubbing)(nil)).Elem() } -func (o RetentionPolicyParametersResponsePtrOutput) ToRetentionPolicyParametersResponsePtrOutput() RetentionPolicyParametersResponsePtrOutput { +func (o PolicySettingsResponseLogScrubbingPtrOutput) ToPolicySettingsResponseLogScrubbingPtrOutput() PolicySettingsResponseLogScrubbingPtrOutput { return o } -func (o RetentionPolicyParametersResponsePtrOutput) ToRetentionPolicyParametersResponsePtrOutputWithContext(ctx context.Context) RetentionPolicyParametersResponsePtrOutput { +func (o PolicySettingsResponseLogScrubbingPtrOutput) ToPolicySettingsResponseLogScrubbingPtrOutputWithContext(ctx context.Context) PolicySettingsResponseLogScrubbingPtrOutput { return o } -func (o RetentionPolicyParametersResponsePtrOutput) Elem() RetentionPolicyParametersResponseOutput { - return o.ApplyT(func(v *RetentionPolicyParametersResponse) RetentionPolicyParametersResponse { +func (o PolicySettingsResponseLogScrubbingPtrOutput) Elem() PolicySettingsResponseLogScrubbingOutput { + return o.ApplyT(func(v *PolicySettingsResponseLogScrubbing) PolicySettingsResponseLogScrubbing { if v != nil { return *v } - var ret RetentionPolicyParametersResponse + var ret PolicySettingsResponseLogScrubbing return ret - }).(RetentionPolicyParametersResponseOutput) + }).(PolicySettingsResponseLogScrubbingOutput) } -// Number of days to retain flow log records. -func (o RetentionPolicyParametersResponsePtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RetentionPolicyParametersResponse) *int { +// The rules that are applied to the logs for scrubbing. +func (o PolicySettingsResponseLogScrubbingPtrOutput) ScrubbingRules() WebApplicationFirewallScrubbingRulesResponseArrayOutput { + return o.ApplyT(func(v *PolicySettingsResponseLogScrubbing) []WebApplicationFirewallScrubbingRulesResponse { if v == nil { return nil } - return v.Days - }).(pulumi.IntPtrOutput) + return v.ScrubbingRules + }).(WebApplicationFirewallScrubbingRulesResponseArrayOutput) } -// Flag to enable/disable retention. -func (o RetentionPolicyParametersResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RetentionPolicyParametersResponse) *bool { +// State of the log scrubbing config. Default value is Enabled. +func (o PolicySettingsResponseLogScrubbingPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySettingsResponseLogScrubbing) *string { if v == nil { return nil } - return v.Enabled - }).(pulumi.BoolPtrOutput) + return v.State + }).(pulumi.StringPtrOutput) } -// Route resource. -type RouteType struct { - // The destination CIDR to which the route applies. - AddressPrefix *string `pulumi:"addressPrefix"` - // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. - HasBgpOverride *bool `pulumi:"hasBgpOverride"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. +// PrivateDnsZoneConfig resource. +type PrivateDnsZoneConfig struct { + // Name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` - // The type of Azure hop the packet should be sent to. - NextHopType string `pulumi:"nextHopType"` - // The type of the resource. - Type *string `pulumi:"type"` + // The resource id of the private dns zone. + PrivateDnsZoneId *string `pulumi:"privateDnsZoneId"` } -// RouteTypeInput is an input type that accepts RouteTypeArgs and RouteTypeOutput values. -// You can construct a concrete instance of `RouteTypeInput` via: +// PrivateDnsZoneConfigInput is an input type that accepts PrivateDnsZoneConfigArgs and PrivateDnsZoneConfigOutput values. +// You can construct a concrete instance of `PrivateDnsZoneConfigInput` via: // -// RouteTypeArgs{...} -type RouteTypeInput interface { +// PrivateDnsZoneConfigArgs{...} +type PrivateDnsZoneConfigInput interface { pulumi.Input - ToRouteTypeOutput() RouteTypeOutput - ToRouteTypeOutputWithContext(context.Context) RouteTypeOutput + ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput + ToPrivateDnsZoneConfigOutputWithContext(context.Context) PrivateDnsZoneConfigOutput } -// Route resource. -type RouteTypeArgs struct { - // The destination CIDR to which the route applies. - AddressPrefix pulumi.StringPtrInput `pulumi:"addressPrefix"` - // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. - HasBgpOverride pulumi.BoolPtrInput `pulumi:"hasBgpOverride"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. +// PrivateDnsZoneConfig resource. +type PrivateDnsZoneConfigArgs struct { + // Name of the resource that is unique within a resource group. This name can be used to access the resource. Name pulumi.StringPtrInput `pulumi:"name"` - // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. - NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` - // The type of Azure hop the packet should be sent to. - NextHopType pulumi.StringInput `pulumi:"nextHopType"` - // The type of the resource. - Type pulumi.StringPtrInput `pulumi:"type"` + // The resource id of the private dns zone. + PrivateDnsZoneId pulumi.StringPtrInput `pulumi:"privateDnsZoneId"` } -func (RouteTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteType)(nil)).Elem() +func (PrivateDnsZoneConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateDnsZoneConfig)(nil)).Elem() } -func (i RouteTypeArgs) ToRouteTypeOutput() RouteTypeOutput { - return i.ToRouteTypeOutputWithContext(context.Background()) +func (i PrivateDnsZoneConfigArgs) ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput { + return i.ToPrivateDnsZoneConfigOutputWithContext(context.Background()) } -func (i RouteTypeArgs) ToRouteTypeOutputWithContext(ctx context.Context) RouteTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteTypeOutput) +func (i PrivateDnsZoneConfigArgs) ToPrivateDnsZoneConfigOutputWithContext(ctx context.Context) PrivateDnsZoneConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateDnsZoneConfigOutput) } -// RouteTypeArrayInput is an input type that accepts RouteTypeArray and RouteTypeArrayOutput values. -// You can construct a concrete instance of `RouteTypeArrayInput` via: +// PrivateDnsZoneConfigArrayInput is an input type that accepts PrivateDnsZoneConfigArray and PrivateDnsZoneConfigArrayOutput values. +// You can construct a concrete instance of `PrivateDnsZoneConfigArrayInput` via: // -// RouteTypeArray{ RouteTypeArgs{...} } -type RouteTypeArrayInput interface { +// PrivateDnsZoneConfigArray{ PrivateDnsZoneConfigArgs{...} } +type PrivateDnsZoneConfigArrayInput interface { pulumi.Input - ToRouteTypeArrayOutput() RouteTypeArrayOutput - ToRouteTypeArrayOutputWithContext(context.Context) RouteTypeArrayOutput + ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput + ToPrivateDnsZoneConfigArrayOutputWithContext(context.Context) PrivateDnsZoneConfigArrayOutput } -type RouteTypeArray []RouteTypeInput +type PrivateDnsZoneConfigArray []PrivateDnsZoneConfigInput -func (RouteTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteType)(nil)).Elem() +func (PrivateDnsZoneConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateDnsZoneConfig)(nil)).Elem() } -func (i RouteTypeArray) ToRouteTypeArrayOutput() RouteTypeArrayOutput { - return i.ToRouteTypeArrayOutputWithContext(context.Background()) +func (i PrivateDnsZoneConfigArray) ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput { + return i.ToPrivateDnsZoneConfigArrayOutputWithContext(context.Background()) } -func (i RouteTypeArray) ToRouteTypeArrayOutputWithContext(ctx context.Context) RouteTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteTypeArrayOutput) +func (i PrivateDnsZoneConfigArray) ToPrivateDnsZoneConfigArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateDnsZoneConfigArrayOutput) } -// Route resource. -type RouteTypeOutput struct{ *pulumi.OutputState } +// PrivateDnsZoneConfig resource. +type PrivateDnsZoneConfigOutput struct{ *pulumi.OutputState } -func (RouteTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteType)(nil)).Elem() +func (PrivateDnsZoneConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateDnsZoneConfig)(nil)).Elem() } -func (o RouteTypeOutput) ToRouteTypeOutput() RouteTypeOutput { +func (o PrivateDnsZoneConfigOutput) ToPrivateDnsZoneConfigOutput() PrivateDnsZoneConfigOutput { return o } -func (o RouteTypeOutput) ToRouteTypeOutputWithContext(ctx context.Context) RouteTypeOutput { +func (o PrivateDnsZoneConfigOutput) ToPrivateDnsZoneConfigOutputWithContext(ctx context.Context) PrivateDnsZoneConfigOutput { return o } -// The destination CIDR to which the route applies. -func (o RouteTypeOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteType) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) -} - -// A value indicating whether this route overrides overlapping BGP routes regardless of LPM. -func (o RouteTypeOutput) HasBgpOverride() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteType) *bool { return v.HasBgpOverride }).(pulumi.BoolPtrOutput) -} - -// Resource ID. -func (o RouteTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteType) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o RouteTypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteType) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. -func (o RouteTypeOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteType) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) -} - -// The type of Azure hop the packet should be sent to. -func (o RouteTypeOutput) NextHopType() pulumi.StringOutput { - return o.ApplyT(func(v RouteType) string { return v.NextHopType }).(pulumi.StringOutput) +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o PrivateDnsZoneConfigOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateDnsZoneConfig) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The type of the resource. -func (o RouteTypeOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteType) *string { return v.Type }).(pulumi.StringPtrOutput) +// The resource id of the private dns zone. +func (o PrivateDnsZoneConfigOutput) PrivateDnsZoneId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateDnsZoneConfig) *string { return v.PrivateDnsZoneId }).(pulumi.StringPtrOutput) } -type RouteTypeArrayOutput struct{ *pulumi.OutputState } +type PrivateDnsZoneConfigArrayOutput struct{ *pulumi.OutputState } -func (RouteTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteType)(nil)).Elem() +func (PrivateDnsZoneConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateDnsZoneConfig)(nil)).Elem() } -func (o RouteTypeArrayOutput) ToRouteTypeArrayOutput() RouteTypeArrayOutput { +func (o PrivateDnsZoneConfigArrayOutput) ToPrivateDnsZoneConfigArrayOutput() PrivateDnsZoneConfigArrayOutput { return o } -func (o RouteTypeArrayOutput) ToRouteTypeArrayOutputWithContext(ctx context.Context) RouteTypeArrayOutput { +func (o PrivateDnsZoneConfigArrayOutput) ToPrivateDnsZoneConfigArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigArrayOutput { return o } -func (o RouteTypeArrayOutput) Index(i pulumi.IntInput) RouteTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteType { - return vs[0].([]RouteType)[vs[1].(int)] - }).(RouteTypeOutput) +func (o PrivateDnsZoneConfigArrayOutput) Index(i pulumi.IntInput) PrivateDnsZoneConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateDnsZoneConfig { + return vs[0].([]PrivateDnsZoneConfig)[vs[1].(int)] + }).(PrivateDnsZoneConfigOutput) } -// Route Filter Rule Resource. -type RouteFilterRuleType struct { - // The access type of the rule. - Access string `pulumi:"access"` - // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. - Communities []string `pulumi:"communities"` - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. +// PrivateDnsZoneConfig resource. +type PrivateDnsZoneConfigResponse struct { + // Name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // The rule type of the rule. - RouteFilterRuleType string `pulumi:"routeFilterRuleType"` -} - -// RouteFilterRuleTypeInput is an input type that accepts RouteFilterRuleTypeArgs and RouteFilterRuleTypeOutput values. -// You can construct a concrete instance of `RouteFilterRuleTypeInput` via: -// -// RouteFilterRuleTypeArgs{...} -type RouteFilterRuleTypeInput interface { - pulumi.Input - - ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput - ToRouteFilterRuleTypeOutputWithContext(context.Context) RouteFilterRuleTypeOutput -} - -// Route Filter Rule Resource. -type RouteFilterRuleTypeArgs struct { - // The access type of the rule. - Access pulumi.StringInput `pulumi:"access"` - // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. - Communities pulumi.StringArrayInput `pulumi:"communities"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // The rule type of the rule. - RouteFilterRuleType pulumi.StringInput `pulumi:"routeFilterRuleType"` -} - -func (RouteFilterRuleTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteFilterRuleType)(nil)).Elem() -} - -func (i RouteFilterRuleTypeArgs) ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput { - return i.ToRouteFilterRuleTypeOutputWithContext(context.Background()) -} - -func (i RouteFilterRuleTypeArgs) ToRouteFilterRuleTypeOutputWithContext(ctx context.Context) RouteFilterRuleTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteFilterRuleTypeOutput) -} - -// RouteFilterRuleTypeArrayInput is an input type that accepts RouteFilterRuleTypeArray and RouteFilterRuleTypeArrayOutput values. -// You can construct a concrete instance of `RouteFilterRuleTypeArrayInput` via: -// -// RouteFilterRuleTypeArray{ RouteFilterRuleTypeArgs{...} } -type RouteFilterRuleTypeArrayInput interface { - pulumi.Input - - ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput - ToRouteFilterRuleTypeArrayOutputWithContext(context.Context) RouteFilterRuleTypeArrayOutput -} - -type RouteFilterRuleTypeArray []RouteFilterRuleTypeInput - -func (RouteFilterRuleTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteFilterRuleType)(nil)).Elem() -} - -func (i RouteFilterRuleTypeArray) ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput { - return i.ToRouteFilterRuleTypeArrayOutputWithContext(context.Background()) -} - -func (i RouteFilterRuleTypeArray) ToRouteFilterRuleTypeArrayOutputWithContext(ctx context.Context) RouteFilterRuleTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteFilterRuleTypeArrayOutput) + // The resource id of the private dns zone. + PrivateDnsZoneId *string `pulumi:"privateDnsZoneId"` + // A collection of information regarding a recordSet, holding information to identify private resources. + RecordSets []RecordSetResponse `pulumi:"recordSets"` } -// Route Filter Rule Resource. -type RouteFilterRuleTypeOutput struct{ *pulumi.OutputState } +// PrivateDnsZoneConfig resource. +type PrivateDnsZoneConfigResponseOutput struct{ *pulumi.OutputState } -func (RouteFilterRuleTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteFilterRuleType)(nil)).Elem() +func (PrivateDnsZoneConfigResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateDnsZoneConfigResponse)(nil)).Elem() } -func (o RouteFilterRuleTypeOutput) ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput { +func (o PrivateDnsZoneConfigResponseOutput) ToPrivateDnsZoneConfigResponseOutput() PrivateDnsZoneConfigResponseOutput { return o } -func (o RouteFilterRuleTypeOutput) ToRouteFilterRuleTypeOutputWithContext(ctx context.Context) RouteFilterRuleTypeOutput { +func (o PrivateDnsZoneConfigResponseOutput) ToPrivateDnsZoneConfigResponseOutputWithContext(ctx context.Context) PrivateDnsZoneConfigResponseOutput { return o } -// The access type of the rule. -func (o RouteFilterRuleTypeOutput) Access() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleType) string { return v.Access }).(pulumi.StringOutput) -} - -// The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. -func (o RouteFilterRuleTypeOutput) Communities() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteFilterRuleType) []string { return v.Communities }).(pulumi.StringArrayOutput) -} - -// Resource ID. -func (o RouteFilterRuleTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Resource location. -func (o RouteFilterRuleTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Location }).(pulumi.StringPtrOutput) +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o PrivateDnsZoneConfigResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateDnsZoneConfigResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o RouteFilterRuleTypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Name }).(pulumi.StringPtrOutput) +// The resource id of the private dns zone. +func (o PrivateDnsZoneConfigResponseOutput) PrivateDnsZoneId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateDnsZoneConfigResponse) *string { return v.PrivateDnsZoneId }).(pulumi.StringPtrOutput) } -// The rule type of the rule. -func (o RouteFilterRuleTypeOutput) RouteFilterRuleType() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleType) string { return v.RouteFilterRuleType }).(pulumi.StringOutput) +// A collection of information regarding a recordSet, holding information to identify private resources. +func (o PrivateDnsZoneConfigResponseOutput) RecordSets() RecordSetResponseArrayOutput { + return o.ApplyT(func(v PrivateDnsZoneConfigResponse) []RecordSetResponse { return v.RecordSets }).(RecordSetResponseArrayOutput) } -type RouteFilterRuleTypeArrayOutput struct{ *pulumi.OutputState } +type PrivateDnsZoneConfigResponseArrayOutput struct{ *pulumi.OutputState } -func (RouteFilterRuleTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteFilterRuleType)(nil)).Elem() +func (PrivateDnsZoneConfigResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateDnsZoneConfigResponse)(nil)).Elem() } -func (o RouteFilterRuleTypeArrayOutput) ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput { +func (o PrivateDnsZoneConfigResponseArrayOutput) ToPrivateDnsZoneConfigResponseArrayOutput() PrivateDnsZoneConfigResponseArrayOutput { return o } -func (o RouteFilterRuleTypeArrayOutput) ToRouteFilterRuleTypeArrayOutputWithContext(ctx context.Context) RouteFilterRuleTypeArrayOutput { +func (o PrivateDnsZoneConfigResponseArrayOutput) ToPrivateDnsZoneConfigResponseArrayOutputWithContext(ctx context.Context) PrivateDnsZoneConfigResponseArrayOutput { return o } -func (o RouteFilterRuleTypeArrayOutput) Index(i pulumi.IntInput) RouteFilterRuleTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteFilterRuleType { - return vs[0].([]RouteFilterRuleType)[vs[1].(int)] - }).(RouteFilterRuleTypeOutput) +func (o PrivateDnsZoneConfigResponseArrayOutput) Index(i pulumi.IntInput) PrivateDnsZoneConfigResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateDnsZoneConfigResponse { + return vs[0].([]PrivateDnsZoneConfigResponse)[vs[1].(int)] + }).(PrivateDnsZoneConfigResponseOutput) } -// Route Filter Rule Resource. -type RouteFilterRuleResponse struct { - // The access type of the rule. - Access string `pulumi:"access"` - // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. - Communities []string `pulumi:"communities"` +// PrivateEndpointConnection resource. +type PrivateEndpointConnectionResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` + // The consumer link id. + LinkIdentifier string `pulumi:"linkIdentifier"` // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // The provisioning state of the route filter rule resource. + // The resource of private end point. + PrivateEndpoint PrivateEndpointResponse `pulumi:"privateEndpoint"` + // The location of the private endpoint. + PrivateEndpointLocation string `pulumi:"privateEndpointLocation"` + // A collection of information about the state of the connection between service consumer and provider. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` + // The provisioning state of the private endpoint connection resource. ProvisioningState string `pulumi:"provisioningState"` - // The rule type of the rule. - RouteFilterRuleType string `pulumi:"routeFilterRuleType"` + // The resource type. + Type string `pulumi:"type"` } -// Route Filter Rule Resource. -type RouteFilterRuleResponseOutput struct{ *pulumi.OutputState } +// Defaults sets the appropriate defaults for PrivateEndpointConnectionResponse +func (val *PrivateEndpointConnectionResponse) Defaults() *PrivateEndpointConnectionResponse { + if val == nil { + return nil + } + tmp := *val + tmp.PrivateEndpoint = *tmp.PrivateEndpoint.Defaults() -func (RouteFilterRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteFilterRuleResponse)(nil)).Elem() + return &tmp } -func (o RouteFilterRuleResponseOutput) ToRouteFilterRuleResponseOutput() RouteFilterRuleResponseOutput { - return o -} +// PrivateEndpointConnection resource. +type PrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } -func (o RouteFilterRuleResponseOutput) ToRouteFilterRuleResponseOutputWithContext(ctx context.Context) RouteFilterRuleResponseOutput { - return o +func (PrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointConnectionResponse)(nil)).Elem() } -// The access type of the rule. -func (o RouteFilterRuleResponseOutput) Access() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.Access }).(pulumi.StringOutput) +func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutput() PrivateEndpointConnectionResponseOutput { + return o } -// The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. -func (o RouteFilterRuleResponseOutput) Communities() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) []string { return v.Communities }).(pulumi.StringArrayOutput) +func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseOutput { + return o } // A unique read-only string that changes whenever the resource is updated. -func (o RouteFilterRuleResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o PrivateEndpointConnectionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o RouteFilterRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o PrivateEndpointConnectionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Resource location. -func (o RouteFilterRuleResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// The consumer link id. +func (o PrivateEndpointConnectionResponseOutput) LinkIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.LinkIdentifier }).(pulumi.StringOutput) } // The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o RouteFilterRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the route filter rule resource. -func (o RouteFilterRuleResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} - -// The rule type of the rule. -func (o RouteFilterRuleResponseOutput) RouteFilterRuleType() pulumi.StringOutput { - return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.RouteFilterRuleType }).(pulumi.StringOutput) +func (o PrivateEndpointConnectionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -type RouteFilterRuleResponseArrayOutput struct{ *pulumi.OutputState } - -func (RouteFilterRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteFilterRuleResponse)(nil)).Elem() +// The resource of private end point. +func (o PrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponseOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) PrivateEndpointResponse { return v.PrivateEndpoint }).(PrivateEndpointResponseOutput) } -func (o RouteFilterRuleResponseArrayOutput) ToRouteFilterRuleResponseArrayOutput() RouteFilterRuleResponseArrayOutput { - return o +// The location of the private endpoint. +func (o PrivateEndpointConnectionResponseOutput) PrivateEndpointLocation() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.PrivateEndpointLocation }).(pulumi.StringOutput) } -func (o RouteFilterRuleResponseArrayOutput) ToRouteFilterRuleResponseArrayOutputWithContext(ctx context.Context) RouteFilterRuleResponseArrayOutput { - return o +// A collection of information about the state of the connection between service consumer and provider. +func (o PrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) *PrivateLinkServiceConnectionStateResponse { + return v.PrivateLinkServiceConnectionState + }).(PrivateLinkServiceConnectionStateResponsePtrOutput) } -func (o RouteFilterRuleResponseArrayOutput) Index(i pulumi.IntInput) RouteFilterRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteFilterRuleResponse { - return vs[0].([]RouteFilterRuleResponse)[vs[1].(int)] - }).(RouteFilterRuleResponseOutput) +// The provisioning state of the private endpoint connection resource. +func (o PrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Route resource. -type RouteResponse struct { - // The destination CIDR to which the route applies. - AddressPrefix *string `pulumi:"addressPrefix"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. - HasBgpOverride *bool `pulumi:"hasBgpOverride"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` - // The type of Azure hop the packet should be sent to. - NextHopType string `pulumi:"nextHopType"` - // The provisioning state of the route resource. - ProvisioningState string `pulumi:"provisioningState"` - // The type of the resource. - Type *string `pulumi:"type"` +// The resource type. +func (o PrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) } -// Route resource. -type RouteResponseOutput struct{ *pulumi.OutputState } +type PrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } -func (RouteResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteResponse)(nil)).Elem() +func (PrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointConnectionResponse)(nil)).Elem() } -func (o RouteResponseOutput) ToRouteResponseOutput() RouteResponseOutput { +func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutput() PrivateEndpointConnectionResponseArrayOutput { return o } -func (o RouteResponseOutput) ToRouteResponseOutputWithContext(ctx context.Context) RouteResponseOutput { +func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseArrayOutput { return o } -// The destination CIDR to which the route applies. -func (o RouteResponseOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) -} - -// A unique read-only string that changes whenever the resource is updated. -func (o RouteResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v RouteResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o PrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointConnectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointConnectionResponse { + return vs[0].([]PrivateEndpointConnectionResponse)[vs[1].(int)] + }).(PrivateEndpointConnectionResponseOutput) } -// A value indicating whether this route overrides overlapping BGP routes regardless of LPM. -func (o RouteResponseOutput) HasBgpOverride() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteResponse) *bool { return v.HasBgpOverride }).(pulumi.BoolPtrOutput) +// An IP Configuration of the private endpoint. +type PrivateEndpointIPConfiguration struct { + // The ID of a group obtained from the remote resource that this private endpoint should connect to. + GroupId *string `pulumi:"groupId"` + // The member name of a group obtained from the remote resource that this private endpoint should connect to. + MemberName *string `pulumi:"memberName"` + // The name of the resource that is unique within a resource group. + Name *string `pulumi:"name"` + // A private ip address obtained from the private endpoint's subnet. + PrivateIPAddress *string `pulumi:"privateIPAddress"` } -// Resource ID. -func (o RouteResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} +// PrivateEndpointIPConfigurationInput is an input type that accepts PrivateEndpointIPConfigurationArgs and PrivateEndpointIPConfigurationOutput values. +// You can construct a concrete instance of `PrivateEndpointIPConfigurationInput` via: +// +// PrivateEndpointIPConfigurationArgs{...} +type PrivateEndpointIPConfigurationInput interface { + pulumi.Input -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o RouteResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteResponse) *string { return v.Name }).(pulumi.StringPtrOutput) + ToPrivateEndpointIPConfigurationOutput() PrivateEndpointIPConfigurationOutput + ToPrivateEndpointIPConfigurationOutputWithContext(context.Context) PrivateEndpointIPConfigurationOutput } -// The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. -func (o RouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +// An IP Configuration of the private endpoint. +type PrivateEndpointIPConfigurationArgs struct { + // The ID of a group obtained from the remote resource that this private endpoint should connect to. + GroupId pulumi.StringPtrInput `pulumi:"groupId"` + // The member name of a group obtained from the remote resource that this private endpoint should connect to. + MemberName pulumi.StringPtrInput `pulumi:"memberName"` + // The name of the resource that is unique within a resource group. + Name pulumi.StringPtrInput `pulumi:"name"` + // A private ip address obtained from the private endpoint's subnet. + PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` } -// The type of Azure hop the packet should be sent to. -func (o RouteResponseOutput) NextHopType() pulumi.StringOutput { - return o.ApplyT(func(v RouteResponse) string { return v.NextHopType }).(pulumi.StringOutput) +func (PrivateEndpointIPConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointIPConfiguration)(nil)).Elem() } -// The provisioning state of the route resource. -func (o RouteResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v RouteResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (i PrivateEndpointIPConfigurationArgs) ToPrivateEndpointIPConfigurationOutput() PrivateEndpointIPConfigurationOutput { + return i.ToPrivateEndpointIPConfigurationOutputWithContext(context.Background()) } -// The type of the resource. -func (o RouteResponseOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +func (i PrivateEndpointIPConfigurationArgs) ToPrivateEndpointIPConfigurationOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointIPConfigurationOutput) } -type RouteResponseArrayOutput struct{ *pulumi.OutputState } +// PrivateEndpointIPConfigurationArrayInput is an input type that accepts PrivateEndpointIPConfigurationArray and PrivateEndpointIPConfigurationArrayOutput values. +// You can construct a concrete instance of `PrivateEndpointIPConfigurationArrayInput` via: +// +// PrivateEndpointIPConfigurationArray{ PrivateEndpointIPConfigurationArgs{...} } +type PrivateEndpointIPConfigurationArrayInput interface { + pulumi.Input -func (RouteResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteResponse)(nil)).Elem() + ToPrivateEndpointIPConfigurationArrayOutput() PrivateEndpointIPConfigurationArrayOutput + ToPrivateEndpointIPConfigurationArrayOutputWithContext(context.Context) PrivateEndpointIPConfigurationArrayOutput } -func (o RouteResponseArrayOutput) ToRouteResponseArrayOutput() RouteResponseArrayOutput { - return o -} +type PrivateEndpointIPConfigurationArray []PrivateEndpointIPConfigurationInput -func (o RouteResponseArrayOutput) ToRouteResponseArrayOutputWithContext(ctx context.Context) RouteResponseArrayOutput { - return o +func (PrivateEndpointIPConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointIPConfiguration)(nil)).Elem() } -func (o RouteResponseArrayOutput) Index(i pulumi.IntInput) RouteResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteResponse { - return vs[0].([]RouteResponse)[vs[1].(int)] - }).(RouteResponseOutput) +func (i PrivateEndpointIPConfigurationArray) ToPrivateEndpointIPConfigurationArrayOutput() PrivateEndpointIPConfigurationArrayOutput { + return i.ToPrivateEndpointIPConfigurationArrayOutputWithContext(context.Background()) } -// Route table resource. -type RouteTableType struct { - // Whether to disable the routes learned by BGP on that route table. True means disable. - DisableBgpRoutePropagation *bool `pulumi:"disableBgpRoutePropagation"` - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // Collection of routes contained within a route table. - Routes []RouteType `pulumi:"routes"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` +func (i PrivateEndpointIPConfigurationArray) ToPrivateEndpointIPConfigurationArrayOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointIPConfigurationArrayOutput) } -// RouteTableTypeInput is an input type that accepts RouteTableTypeArgs and RouteTableTypeOutput values. -// You can construct a concrete instance of `RouteTableTypeInput` via: -// -// RouteTableTypeArgs{...} -type RouteTableTypeInput interface { - pulumi.Input +// An IP Configuration of the private endpoint. +type PrivateEndpointIPConfigurationOutput struct{ *pulumi.OutputState } - ToRouteTableTypeOutput() RouteTableTypeOutput - ToRouteTableTypeOutputWithContext(context.Context) RouteTableTypeOutput +func (PrivateEndpointIPConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointIPConfiguration)(nil)).Elem() } -// Route table resource. -type RouteTableTypeArgs struct { - // Whether to disable the routes learned by BGP on that route table. True means disable. - DisableBgpRoutePropagation pulumi.BoolPtrInput `pulumi:"disableBgpRoutePropagation"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // Collection of routes contained within a route table. - Routes RouteTypeArrayInput `pulumi:"routes"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` +func (o PrivateEndpointIPConfigurationOutput) ToPrivateEndpointIPConfigurationOutput() PrivateEndpointIPConfigurationOutput { + return o } -func (RouteTableTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteTableType)(nil)).Elem() +func (o PrivateEndpointIPConfigurationOutput) ToPrivateEndpointIPConfigurationOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationOutput { + return o } -func (i RouteTableTypeArgs) ToRouteTableTypeOutput() RouteTableTypeOutput { - return i.ToRouteTableTypeOutputWithContext(context.Background()) +// The ID of a group obtained from the remote resource that this private endpoint should connect to. +func (o PrivateEndpointIPConfigurationOutput) GroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfiguration) *string { return v.GroupId }).(pulumi.StringPtrOutput) } -func (i RouteTableTypeArgs) ToRouteTableTypeOutputWithContext(ctx context.Context) RouteTableTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypeOutput) +// The member name of a group obtained from the remote resource that this private endpoint should connect to. +func (o PrivateEndpointIPConfigurationOutput) MemberName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfiguration) *string { return v.MemberName }).(pulumi.StringPtrOutput) } -func (i RouteTableTypeArgs) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { - return i.ToRouteTableTypePtrOutputWithContext(context.Background()) +// The name of the resource that is unique within a resource group. +func (o PrivateEndpointIPConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i RouteTableTypeArgs) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypeOutput).ToRouteTableTypePtrOutputWithContext(ctx) +// A private ip address obtained from the private endpoint's subnet. +func (o PrivateEndpointIPConfigurationOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfiguration) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -// RouteTableTypePtrInput is an input type that accepts RouteTableTypeArgs, RouteTableTypePtr and RouteTableTypePtrOutput values. -// You can construct a concrete instance of `RouteTableTypePtrInput` via: -// -// RouteTableTypeArgs{...} -// -// or: -// -// nil -type RouteTableTypePtrInput interface { - pulumi.Input +type PrivateEndpointIPConfigurationArrayOutput struct{ *pulumi.OutputState } - ToRouteTableTypePtrOutput() RouteTableTypePtrOutput - ToRouteTableTypePtrOutputWithContext(context.Context) RouteTableTypePtrOutput +func (PrivateEndpointIPConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointIPConfiguration)(nil)).Elem() } -type routeTableTypePtrType RouteTableTypeArgs - -func RouteTableTypePtr(v *RouteTableTypeArgs) RouteTableTypePtrInput { - return (*routeTableTypePtrType)(v) +func (o PrivateEndpointIPConfigurationArrayOutput) ToPrivateEndpointIPConfigurationArrayOutput() PrivateEndpointIPConfigurationArrayOutput { + return o } -func (*routeTableTypePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteTableType)(nil)).Elem() +func (o PrivateEndpointIPConfigurationArrayOutput) ToPrivateEndpointIPConfigurationArrayOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationArrayOutput { + return o } -func (i *routeTableTypePtrType) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { - return i.ToRouteTableTypePtrOutputWithContext(context.Background()) +func (o PrivateEndpointIPConfigurationArrayOutput) Index(i pulumi.IntInput) PrivateEndpointIPConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointIPConfiguration { + return vs[0].([]PrivateEndpointIPConfiguration)[vs[1].(int)] + }).(PrivateEndpointIPConfigurationOutput) } -func (i *routeTableTypePtrType) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypePtrOutput) +// An IP Configuration of the private endpoint. +type PrivateEndpointIPConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The ID of a group obtained from the remote resource that this private endpoint should connect to. + GroupId *string `pulumi:"groupId"` + // The member name of a group obtained from the remote resource that this private endpoint should connect to. + MemberName *string `pulumi:"memberName"` + // The name of the resource that is unique within a resource group. + Name *string `pulumi:"name"` + // A private ip address obtained from the private endpoint's subnet. + PrivateIPAddress *string `pulumi:"privateIPAddress"` + // The resource type. + Type string `pulumi:"type"` } -// Route table resource. -type RouteTableTypeOutput struct{ *pulumi.OutputState } +// An IP Configuration of the private endpoint. +type PrivateEndpointIPConfigurationResponseOutput struct{ *pulumi.OutputState } -func (RouteTableTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteTableType)(nil)).Elem() +func (PrivateEndpointIPConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointIPConfigurationResponse)(nil)).Elem() } -func (o RouteTableTypeOutput) ToRouteTableTypeOutput() RouteTableTypeOutput { +func (o PrivateEndpointIPConfigurationResponseOutput) ToPrivateEndpointIPConfigurationResponseOutput() PrivateEndpointIPConfigurationResponseOutput { return o } -func (o RouteTableTypeOutput) ToRouteTableTypeOutputWithContext(ctx context.Context) RouteTableTypeOutput { +func (o PrivateEndpointIPConfigurationResponseOutput) ToPrivateEndpointIPConfigurationResponseOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationResponseOutput { return o } -func (o RouteTableTypeOutput) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { - return o.ToRouteTableTypePtrOutputWithContext(context.Background()) -} - -func (o RouteTableTypeOutput) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouteTableType) *RouteTableType { - return &v - }).(RouteTableTypePtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateEndpointIPConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Whether to disable the routes learned by BGP on that route table. True means disable. -func (o RouteTableTypeOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteTableType) *bool { return v.DisableBgpRoutePropagation }).(pulumi.BoolPtrOutput) +// The ID of a group obtained from the remote resource that this private endpoint should connect to. +func (o PrivateEndpointIPConfigurationResponseOutput) GroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) *string { return v.GroupId }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o RouteTableTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteTableType) *string { return v.Id }).(pulumi.StringPtrOutput) +// The member name of a group obtained from the remote resource that this private endpoint should connect to. +func (o PrivateEndpointIPConfigurationResponseOutput) MemberName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) *string { return v.MemberName }).(pulumi.StringPtrOutput) } -// Resource location. -func (o RouteTableTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteTableType) *string { return v.Location }).(pulumi.StringPtrOutput) +// The name of the resource that is unique within a resource group. +func (o PrivateEndpointIPConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Collection of routes contained within a route table. -func (o RouteTableTypeOutput) Routes() RouteTypeArrayOutput { - return o.ApplyT(func(v RouteTableType) []RouteType { return v.Routes }).(RouteTypeArrayOutput) +// A private ip address obtained from the private endpoint's subnet. +func (o PrivateEndpointIPConfigurationResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -// Resource tags. -func (o RouteTableTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v RouteTableType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// The resource type. +func (o PrivateEndpointIPConfigurationResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointIPConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) } -type RouteTableTypePtrOutput struct{ *pulumi.OutputState } +type PrivateEndpointIPConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (RouteTableTypePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteTableType)(nil)).Elem() +func (PrivateEndpointIPConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointIPConfigurationResponse)(nil)).Elem() } -func (o RouteTableTypePtrOutput) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { +func (o PrivateEndpointIPConfigurationResponseArrayOutput) ToPrivateEndpointIPConfigurationResponseArrayOutput() PrivateEndpointIPConfigurationResponseArrayOutput { return o } -func (o RouteTableTypePtrOutput) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { +func (o PrivateEndpointIPConfigurationResponseArrayOutput) ToPrivateEndpointIPConfigurationResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointIPConfigurationResponseArrayOutput { return o } -func (o RouteTableTypePtrOutput) Elem() RouteTableTypeOutput { - return o.ApplyT(func(v *RouteTableType) RouteTableType { - if v != nil { - return *v - } - var ret RouteTableType - return ret - }).(RouteTableTypeOutput) -} - -// Whether to disable the routes learned by BGP on that route table. True means disable. -func (o RouteTableTypePtrOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RouteTableType) *bool { - if v == nil { - return nil - } - return v.DisableBgpRoutePropagation - }).(pulumi.BoolPtrOutput) -} - -// Resource ID. -func (o RouteTableTypePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableType) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) -} - -// Resource location. -func (o RouteTableTypePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableType) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) -} - -// Collection of routes contained within a route table. -func (o RouteTableTypePtrOutput) Routes() RouteTypeArrayOutput { - return o.ApplyT(func(v *RouteTableType) []RouteType { - if v == nil { - return nil - } - return v.Routes - }).(RouteTypeArrayOutput) -} - -// Resource tags. -func (o RouteTableTypePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *RouteTableType) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) +func (o PrivateEndpointIPConfigurationResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointIPConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointIPConfigurationResponse { + return vs[0].([]PrivateEndpointIPConfigurationResponse)[vs[1].(int)] + }).(PrivateEndpointIPConfigurationResponseOutput) } -// Route table resource. -type RouteTableResponse struct { - // Whether to disable the routes learned by BGP on that route table. True means disable. - DisableBgpRoutePropagation *bool `pulumi:"disableBgpRoutePropagation"` +// Private endpoint resource. +type PrivateEndpointResponse struct { + // Application security groups in which the private endpoint IP configuration is included. + ApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"applicationSecurityGroups"` + // An array of custom dns configurations. + CustomDnsConfigs []CustomDnsConfigPropertiesFormatResponse `pulumi:"customDnsConfigs"` + // The custom name of the network interface attached to the private endpoint. + CustomNetworkInterfaceName *string `pulumi:"customNetworkInterfaceName"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // The extended location of the load balancer. + ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` // Resource ID. Id *string `pulumi:"id"` + // A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. + IpConfigurations []PrivateEndpointIPConfigurationResponse `pulumi:"ipConfigurations"` // Resource location. Location *string `pulumi:"location"` + // A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. + ManualPrivateLinkServiceConnections []PrivateLinkServiceConnectionResponse `pulumi:"manualPrivateLinkServiceConnections"` // Resource name. Name string `pulumi:"name"` - // The provisioning state of the route table resource. + // An array of references to the network interfaces created for this private endpoint. + NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` + // A grouping of information about the connection to the remote resource. + PrivateLinkServiceConnections []PrivateLinkServiceConnectionResponse `pulumi:"privateLinkServiceConnections"` + // The provisioning state of the private endpoint resource. ProvisioningState string `pulumi:"provisioningState"` - // The resource GUID property of the route table. - ResourceGuid string `pulumi:"resourceGuid"` - // Collection of routes contained within a route table. - Routes []RouteResponse `pulumi:"routes"` - // A collection of references to subnets. - Subnets []SubnetResponse `pulumi:"subnets"` + // The ID of the subnet from which the private IP will be allocated. + Subnet *SubnetResponse `pulumi:"subnet"` // Resource tags. Tags map[string]string `pulumi:"tags"` // Resource type. Type string `pulumi:"type"` } -// Route table resource. -type RouteTableResponseOutput struct{ *pulumi.OutputState } - -func (RouteTableResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteTableResponse)(nil)).Elem() -} - -func (o RouteTableResponseOutput) ToRouteTableResponseOutput() RouteTableResponseOutput { - return o -} - -func (o RouteTableResponseOutput) ToRouteTableResponseOutputWithContext(ctx context.Context) RouteTableResponseOutput { - return o -} +// Defaults sets the appropriate defaults for PrivateEndpointResponse +func (val *PrivateEndpointResponse) Defaults() *PrivateEndpointResponse { + if val == nil { + return nil + } + tmp := *val + tmp.Subnet = tmp.Subnet.Defaults() -// Whether to disable the routes learned by BGP on that route table. True means disable. -func (o RouteTableResponseOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteTableResponse) *bool { return v.DisableBgpRoutePropagation }).(pulumi.BoolPtrOutput) + return &tmp } -// A unique read-only string that changes whenever the resource is updated. -func (o RouteTableResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v RouteTableResponse) string { return v.Etag }).(pulumi.StringOutput) -} +// Private endpoint resource. +type PrivateEndpointResponseOutput struct{ *pulumi.OutputState } -// Resource ID. -func (o RouteTableResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteTableResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (PrivateEndpointResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointResponse)(nil)).Elem() } -// Resource location. -func (o RouteTableResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteTableResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutput() PrivateEndpointResponseOutput { + return o } -// Resource name. -func (o RouteTableResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouteTableResponse) string { return v.Name }).(pulumi.StringOutput) +func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutputWithContext(ctx context.Context) PrivateEndpointResponseOutput { + return o } -// The provisioning state of the route table resource. -func (o RouteTableResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v RouteTableResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Application security groups in which the private endpoint IP configuration is included. +func (o PrivateEndpointResponseOutput) ApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []ApplicationSecurityGroupResponse { return v.ApplicationSecurityGroups }).(ApplicationSecurityGroupResponseArrayOutput) } -// The resource GUID property of the route table. -func (o RouteTableResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v RouteTableResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +// An array of custom dns configurations. +func (o PrivateEndpointResponseOutput) CustomDnsConfigs() CustomDnsConfigPropertiesFormatResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []CustomDnsConfigPropertiesFormatResponse { return v.CustomDnsConfigs }).(CustomDnsConfigPropertiesFormatResponseArrayOutput) } -// Collection of routes contained within a route table. -func (o RouteTableResponseOutput) Routes() RouteResponseArrayOutput { - return o.ApplyT(func(v RouteTableResponse) []RouteResponse { return v.Routes }).(RouteResponseArrayOutput) +// The custom name of the network interface attached to the private endpoint. +func (o PrivateEndpointResponseOutput) CustomNetworkInterfaceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointResponse) *string { return v.CustomNetworkInterfaceName }).(pulumi.StringPtrOutput) } -// A collection of references to subnets. -func (o RouteTableResponseOutput) Subnets() SubnetResponseArrayOutput { - return o.ApplyT(func(v RouteTableResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateEndpointResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Resource tags. -func (o RouteTableResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v RouteTableResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// The extended location of the load balancer. +func (o PrivateEndpointResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v PrivateEndpointResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -// Resource type. -func (o RouteTableResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v RouteTableResponse) string { return v.Type }).(pulumi.StringOutput) +// Resource ID. +func (o PrivateEndpointResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -type RouteTableResponsePtrOutput struct{ *pulumi.OutputState } - -func (RouteTableResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteTableResponse)(nil)).Elem() +// A list of IP configurations of the private endpoint. This will be used to map to the First Party Service's endpoints. +func (o PrivateEndpointResponseOutput) IpConfigurations() PrivateEndpointIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []PrivateEndpointIPConfigurationResponse { return v.IpConfigurations }).(PrivateEndpointIPConfigurationResponseArrayOutput) } -func (o RouteTableResponsePtrOutput) ToRouteTableResponsePtrOutput() RouteTableResponsePtrOutput { - return o +// Resource location. +func (o PrivateEndpointResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o RouteTableResponsePtrOutput) ToRouteTableResponsePtrOutputWithContext(ctx context.Context) RouteTableResponsePtrOutput { - return o +// A grouping of information about the connection to the remote resource. Used when the network admin does not have access to approve connections to the remote resource. +func (o PrivateEndpointResponseOutput) ManualPrivateLinkServiceConnections() PrivateLinkServiceConnectionResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []PrivateLinkServiceConnectionResponse { + return v.ManualPrivateLinkServiceConnections + }).(PrivateLinkServiceConnectionResponseArrayOutput) } -func (o RouteTableResponsePtrOutput) Elem() RouteTableResponseOutput { - return o.ApplyT(func(v *RouteTableResponse) RouteTableResponse { - if v != nil { - return *v - } - var ret RouteTableResponse - return ret - }).(RouteTableResponseOutput) +// Resource name. +func (o PrivateEndpointResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Name }).(pulumi.StringOutput) } -// Whether to disable the routes learned by BGP on that route table. True means disable. -func (o RouteTableResponsePtrOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *bool { - if v == nil { - return nil - } - return v.DisableBgpRoutePropagation - }).(pulumi.BoolPtrOutput) +// An array of references to the network interfaces created for this private endpoint. +func (o PrivateEndpointResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o RouteTableResponsePtrOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return &v.Etag - }).(pulumi.StringPtrOutput) +// A grouping of information about the connection to the remote resource. +func (o PrivateEndpointResponseOutput) PrivateLinkServiceConnections() PrivateLinkServiceConnectionResponseArrayOutput { + return o.ApplyT(func(v PrivateEndpointResponse) []PrivateLinkServiceConnectionResponse { + return v.PrivateLinkServiceConnections + }).(PrivateLinkServiceConnectionResponseArrayOutput) } -// Resource ID. -func (o RouteTableResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +// The provisioning state of the private endpoint resource. +func (o PrivateEndpointResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Resource location. -func (o RouteTableResponsePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) +// The ID of the subnet from which the private IP will be allocated. +func (o PrivateEndpointResponseOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v PrivateEndpointResponse) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) } -// Resource name. -func (o RouteTableResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return &v.Name - }).(pulumi.StringPtrOutput) +// Resource tags. +func (o PrivateEndpointResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v PrivateEndpointResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// The provisioning state of the route table resource. -func (o RouteTableResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return &v.ProvisioningState - }).(pulumi.StringPtrOutput) +// Resource type. +func (o PrivateEndpointResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Type }).(pulumi.StringOutput) } -// The resource GUID property of the route table. -func (o RouteTableResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return &v.ResourceGuid - }).(pulumi.StringPtrOutput) -} +type PrivateEndpointResponseArrayOutput struct{ *pulumi.OutputState } -// Collection of routes contained within a route table. -func (o RouteTableResponsePtrOutput) Routes() RouteResponseArrayOutput { - return o.ApplyT(func(v *RouteTableResponse) []RouteResponse { - if v == nil { - return nil - } - return v.Routes - }).(RouteResponseArrayOutput) +func (PrivateEndpointResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointResponse)(nil)).Elem() } -// A collection of references to subnets. -func (o RouteTableResponsePtrOutput) Subnets() SubnetResponseArrayOutput { - return o.ApplyT(func(v *RouteTableResponse) []SubnetResponse { - if v == nil { - return nil - } - return v.Subnets - }).(SubnetResponseArrayOutput) +func (o PrivateEndpointResponseArrayOutput) ToPrivateEndpointResponseArrayOutput() PrivateEndpointResponseArrayOutput { + return o } -// Resource tags. -func (o RouteTableResponsePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *RouteTableResponse) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) +func (o PrivateEndpointResponseArrayOutput) ToPrivateEndpointResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointResponseArrayOutput { + return o } -// Resource type. -func (o RouteTableResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteTableResponse) *string { - if v == nil { - return nil - } - return &v.Type - }).(pulumi.StringPtrOutput) +func (o PrivateEndpointResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointResponse { + return vs[0].([]PrivateEndpointResponse)[vs[1].(int)] + }).(PrivateEndpointResponseOutput) } -// Routing Configuration indicating the associated and propagated route tables for this connection. -type RoutingConfiguration struct { - // The resource id RouteTable associated with this RoutingConfiguration. - AssociatedRouteTable *SubResource `pulumi:"associatedRouteTable"` - // The list of RouteTables to advertise the routes to. - PropagatedRouteTables *PropagatedRouteTable `pulumi:"propagatedRouteTables"` - // List of routes that control routing from VirtualHub into a virtual network connection. - VnetRoutes *VnetRoute `pulumi:"vnetRoutes"` +// Private link service resource. +type PrivateLinkServiceType struct { + // The auto-approval list of the private link service. + AutoApproval *PrivateLinkServicePropertiesAutoApproval `pulumi:"autoApproval"` + // Whether the private link service is enabled for proxy protocol or not. + EnableProxyProtocol *bool `pulumi:"enableProxyProtocol"` + // The extended location of the load balancer. + ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` + // The list of Fqdn. + Fqdns []string `pulumi:"fqdns"` + // Resource ID. + Id *string `pulumi:"id"` + // An array of private link service IP configurations. + IpConfigurations []PrivateLinkServiceIpConfiguration `pulumi:"ipConfigurations"` + // An array of references to the load balancer IP configurations. + LoadBalancerFrontendIpConfigurations []FrontendIPConfiguration `pulumi:"loadBalancerFrontendIpConfigurations"` + // Resource location. + Location *string `pulumi:"location"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // The visibility list of the private link service. + Visibility *PrivateLinkServicePropertiesVisibility `pulumi:"visibility"` } -// RoutingConfigurationInput is an input type that accepts RoutingConfigurationArgs and RoutingConfigurationOutput values. -// You can construct a concrete instance of `RoutingConfigurationInput` via: +// PrivateLinkServiceTypeInput is an input type that accepts PrivateLinkServiceTypeArgs and PrivateLinkServiceTypeOutput values. +// You can construct a concrete instance of `PrivateLinkServiceTypeInput` via: // -// RoutingConfigurationArgs{...} -type RoutingConfigurationInput interface { +// PrivateLinkServiceTypeArgs{...} +type PrivateLinkServiceTypeInput interface { pulumi.Input - ToRoutingConfigurationOutput() RoutingConfigurationOutput - ToRoutingConfigurationOutputWithContext(context.Context) RoutingConfigurationOutput + ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput + ToPrivateLinkServiceTypeOutputWithContext(context.Context) PrivateLinkServiceTypeOutput } -// Routing Configuration indicating the associated and propagated route tables for this connection. -type RoutingConfigurationArgs struct { - // The resource id RouteTable associated with this RoutingConfiguration. - AssociatedRouteTable SubResourcePtrInput `pulumi:"associatedRouteTable"` - // The list of RouteTables to advertise the routes to. - PropagatedRouteTables PropagatedRouteTablePtrInput `pulumi:"propagatedRouteTables"` - // List of routes that control routing from VirtualHub into a virtual network connection. - VnetRoutes VnetRoutePtrInput `pulumi:"vnetRoutes"` +// Private link service resource. +type PrivateLinkServiceTypeArgs struct { + // The auto-approval list of the private link service. + AutoApproval PrivateLinkServicePropertiesAutoApprovalPtrInput `pulumi:"autoApproval"` + // Whether the private link service is enabled for proxy protocol or not. + EnableProxyProtocol pulumi.BoolPtrInput `pulumi:"enableProxyProtocol"` + // The extended location of the load balancer. + ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` + // The list of Fqdn. + Fqdns pulumi.StringArrayInput `pulumi:"fqdns"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // An array of private link service IP configurations. + IpConfigurations PrivateLinkServiceIpConfigurationArrayInput `pulumi:"ipConfigurations"` + // An array of references to the load balancer IP configurations. + LoadBalancerFrontendIpConfigurations FrontendIPConfigurationArrayInput `pulumi:"loadBalancerFrontendIpConfigurations"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` + // The visibility list of the private link service. + Visibility PrivateLinkServicePropertiesVisibilityPtrInput `pulumi:"visibility"` } -func (RoutingConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingConfiguration)(nil)).Elem() +func (PrivateLinkServiceTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceType)(nil)).Elem() } -func (i RoutingConfigurationArgs) ToRoutingConfigurationOutput() RoutingConfigurationOutput { - return i.ToRoutingConfigurationOutputWithContext(context.Background()) +func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput { + return i.ToPrivateLinkServiceTypeOutputWithContext(context.Background()) } -func (i RoutingConfigurationArgs) ToRoutingConfigurationOutputWithContext(ctx context.Context) RoutingConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationOutput) +func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypeOutputWithContext(ctx context.Context) PrivateLinkServiceTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypeOutput) } -func (i RoutingConfigurationArgs) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { - return i.ToRoutingConfigurationPtrOutputWithContext(context.Background()) +func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { + return i.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) } -func (i RoutingConfigurationArgs) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationOutput).ToRoutingConfigurationPtrOutputWithContext(ctx) +func (i PrivateLinkServiceTypeArgs) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypeOutput).ToPrivateLinkServiceTypePtrOutputWithContext(ctx) } -// RoutingConfigurationPtrInput is an input type that accepts RoutingConfigurationArgs, RoutingConfigurationPtr and RoutingConfigurationPtrOutput values. -// You can construct a concrete instance of `RoutingConfigurationPtrInput` via: +// PrivateLinkServiceTypePtrInput is an input type that accepts PrivateLinkServiceTypeArgs, PrivateLinkServiceTypePtr and PrivateLinkServiceTypePtrOutput values. +// You can construct a concrete instance of `PrivateLinkServiceTypePtrInput` via: // -// RoutingConfigurationArgs{...} +// PrivateLinkServiceTypeArgs{...} // // or: // // nil -type RoutingConfigurationPtrInput interface { +type PrivateLinkServiceTypePtrInput interface { pulumi.Input - ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput - ToRoutingConfigurationPtrOutputWithContext(context.Context) RoutingConfigurationPtrOutput + ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput + ToPrivateLinkServiceTypePtrOutputWithContext(context.Context) PrivateLinkServiceTypePtrOutput } -type routingConfigurationPtrType RoutingConfigurationArgs +type privateLinkServiceTypePtrType PrivateLinkServiceTypeArgs -func RoutingConfigurationPtr(v *RoutingConfigurationArgs) RoutingConfigurationPtrInput { - return (*routingConfigurationPtrType)(v) +func PrivateLinkServiceTypePtr(v *PrivateLinkServiceTypeArgs) PrivateLinkServiceTypePtrInput { + return (*privateLinkServiceTypePtrType)(v) } -func (*routingConfigurationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingConfiguration)(nil)).Elem() +func (*privateLinkServiceTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceType)(nil)).Elem() } -func (i *routingConfigurationPtrType) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { - return i.ToRoutingConfigurationPtrOutputWithContext(context.Background()) +func (i *privateLinkServiceTypePtrType) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { + return i.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) } -func (i *routingConfigurationPtrType) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationPtrOutput) +func (i *privateLinkServiceTypePtrType) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceTypePtrOutput) } -// Routing Configuration indicating the associated and propagated route tables for this connection. -type RoutingConfigurationOutput struct{ *pulumi.OutputState } +// Private link service resource. +type PrivateLinkServiceTypeOutput struct{ *pulumi.OutputState } -func (RoutingConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingConfiguration)(nil)).Elem() +func (PrivateLinkServiceTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceType)(nil)).Elem() } -func (o RoutingConfigurationOutput) ToRoutingConfigurationOutput() RoutingConfigurationOutput { +func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypeOutput() PrivateLinkServiceTypeOutput { return o } -func (o RoutingConfigurationOutput) ToRoutingConfigurationOutputWithContext(ctx context.Context) RoutingConfigurationOutput { +func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypeOutputWithContext(ctx context.Context) PrivateLinkServiceTypeOutput { return o } -func (o RoutingConfigurationOutput) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { - return o.ToRoutingConfigurationPtrOutputWithContext(context.Background()) +func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { + return o.ToPrivateLinkServiceTypePtrOutputWithContext(context.Background()) } -func (o RoutingConfigurationOutput) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingConfiguration) *RoutingConfiguration { +func (o PrivateLinkServiceTypeOutput) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServiceType) *PrivateLinkServiceType { return &v - }).(RoutingConfigurationPtrOutput) -} - -// The resource id RouteTable associated with this RoutingConfiguration. -func (o RoutingConfigurationOutput) AssociatedRouteTable() SubResourcePtrOutput { - return o.ApplyT(func(v RoutingConfiguration) *SubResource { return v.AssociatedRouteTable }).(SubResourcePtrOutput) -} - -// The list of RouteTables to advertise the routes to. -func (o RoutingConfigurationOutput) PropagatedRouteTables() PropagatedRouteTablePtrOutput { - return o.ApplyT(func(v RoutingConfiguration) *PropagatedRouteTable { return v.PropagatedRouteTables }).(PropagatedRouteTablePtrOutput) -} - -// List of routes that control routing from VirtualHub into a virtual network connection. -func (o RoutingConfigurationOutput) VnetRoutes() VnetRoutePtrOutput { - return o.ApplyT(func(v RoutingConfiguration) *VnetRoute { return v.VnetRoutes }).(VnetRoutePtrOutput) -} - -type RoutingConfigurationPtrOutput struct{ *pulumi.OutputState } - -func (RoutingConfigurationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingConfiguration)(nil)).Elem() -} - -func (o RoutingConfigurationPtrOutput) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { - return o -} - -func (o RoutingConfigurationPtrOutput) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { - return o -} - -func (o RoutingConfigurationPtrOutput) Elem() RoutingConfigurationOutput { - return o.ApplyT(func(v *RoutingConfiguration) RoutingConfiguration { - if v != nil { - return *v - } - var ret RoutingConfiguration - return ret - }).(RoutingConfigurationOutput) + }).(PrivateLinkServiceTypePtrOutput) } -// The resource id RouteTable associated with this RoutingConfiguration. -func (o RoutingConfigurationPtrOutput) AssociatedRouteTable() SubResourcePtrOutput { - return o.ApplyT(func(v *RoutingConfiguration) *SubResource { - if v == nil { - return nil - } - return v.AssociatedRouteTable - }).(SubResourcePtrOutput) +// The auto-approval list of the private link service. +func (o PrivateLinkServiceTypeOutput) AutoApproval() PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *PrivateLinkServicePropertiesAutoApproval { return v.AutoApproval }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) } -// The list of RouteTables to advertise the routes to. -func (o RoutingConfigurationPtrOutput) PropagatedRouteTables() PropagatedRouteTablePtrOutput { - return o.ApplyT(func(v *RoutingConfiguration) *PropagatedRouteTable { - if v == nil { - return nil - } - return v.PropagatedRouteTables - }).(PropagatedRouteTablePtrOutput) +// Whether the private link service is enabled for proxy protocol or not. +func (o PrivateLinkServiceTypeOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *bool { return v.EnableProxyProtocol }).(pulumi.BoolPtrOutput) } -// List of routes that control routing from VirtualHub into a virtual network connection. -func (o RoutingConfigurationPtrOutput) VnetRoutes() VnetRoutePtrOutput { - return o.ApplyT(func(v *RoutingConfiguration) *VnetRoute { - if v == nil { - return nil - } - return v.VnetRoutes - }).(VnetRoutePtrOutput) +// The extended location of the load balancer. +func (o PrivateLinkServiceTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) } -// Routing Configuration indicating the associated and propagated route tables for this connection. -type RoutingConfigurationResponse struct { - // The resource id RouteTable associated with this RoutingConfiguration. - AssociatedRouteTable *SubResourceResponse `pulumi:"associatedRouteTable"` - // The list of RouteTables to advertise the routes to. - PropagatedRouteTables *PropagatedRouteTableResponse `pulumi:"propagatedRouteTables"` - // List of routes that control routing from VirtualHub into a virtual network connection. - VnetRoutes *VnetRouteResponse `pulumi:"vnetRoutes"` +// The list of Fqdn. +func (o PrivateLinkServiceTypeOutput) Fqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceType) []string { return v.Fqdns }).(pulumi.StringArrayOutput) } -// Routing Configuration indicating the associated and propagated route tables for this connection. -type RoutingConfigurationResponseOutput struct{ *pulumi.OutputState } - -func (RoutingConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingConfigurationResponse)(nil)).Elem() +// Resource ID. +func (o PrivateLinkServiceTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o RoutingConfigurationResponseOutput) ToRoutingConfigurationResponseOutput() RoutingConfigurationResponseOutput { - return o +// An array of private link service IP configurations. +func (o PrivateLinkServiceTypeOutput) IpConfigurations() PrivateLinkServiceIpConfigurationArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceType) []PrivateLinkServiceIpConfiguration { return v.IpConfigurations }).(PrivateLinkServiceIpConfigurationArrayOutput) } -func (o RoutingConfigurationResponseOutput) ToRoutingConfigurationResponseOutputWithContext(ctx context.Context) RoutingConfigurationResponseOutput { - return o +// An array of references to the load balancer IP configurations. +func (o PrivateLinkServiceTypeOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceType) []FrontendIPConfiguration { + return v.LoadBalancerFrontendIpConfigurations + }).(FrontendIPConfigurationArrayOutput) } -// The resource id RouteTable associated with this RoutingConfiguration. -func (o RoutingConfigurationResponseOutput) AssociatedRouteTable() SubResourceResponsePtrOutput { - return o.ApplyT(func(v RoutingConfigurationResponse) *SubResourceResponse { return v.AssociatedRouteTable }).(SubResourceResponsePtrOutput) +// Resource location. +func (o PrivateLinkServiceTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *string { return v.Location }).(pulumi.StringPtrOutput) } -// The list of RouteTables to advertise the routes to. -func (o RoutingConfigurationResponseOutput) PropagatedRouteTables() PropagatedRouteTableResponsePtrOutput { - return o.ApplyT(func(v RoutingConfigurationResponse) *PropagatedRouteTableResponse { return v.PropagatedRouteTables }).(PropagatedRouteTableResponsePtrOutput) +// Resource tags. +func (o PrivateLinkServiceTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v PrivateLinkServiceType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// List of routes that control routing from VirtualHub into a virtual network connection. -func (o RoutingConfigurationResponseOutput) VnetRoutes() VnetRouteResponsePtrOutput { - return o.ApplyT(func(v RoutingConfigurationResponse) *VnetRouteResponse { return v.VnetRoutes }).(VnetRouteResponsePtrOutput) +// The visibility list of the private link service. +func (o PrivateLinkServiceTypeOutput) Visibility() PrivateLinkServicePropertiesVisibilityPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceType) *PrivateLinkServicePropertiesVisibility { return v.Visibility }).(PrivateLinkServicePropertiesVisibilityPtrOutput) } -type RoutingConfigurationResponsePtrOutput struct{ *pulumi.OutputState } +type PrivateLinkServiceTypePtrOutput struct{ *pulumi.OutputState } -func (RoutingConfigurationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingConfigurationResponse)(nil)).Elem() +func (PrivateLinkServiceTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceType)(nil)).Elem() } -func (o RoutingConfigurationResponsePtrOutput) ToRoutingConfigurationResponsePtrOutput() RoutingConfigurationResponsePtrOutput { +func (o PrivateLinkServiceTypePtrOutput) ToPrivateLinkServiceTypePtrOutput() PrivateLinkServiceTypePtrOutput { return o } -func (o RoutingConfigurationResponsePtrOutput) ToRoutingConfigurationResponsePtrOutputWithContext(ctx context.Context) RoutingConfigurationResponsePtrOutput { +func (o PrivateLinkServiceTypePtrOutput) ToPrivateLinkServiceTypePtrOutputWithContext(ctx context.Context) PrivateLinkServiceTypePtrOutput { return o } -func (o RoutingConfigurationResponsePtrOutput) Elem() RoutingConfigurationResponseOutput { - return o.ApplyT(func(v *RoutingConfigurationResponse) RoutingConfigurationResponse { +func (o PrivateLinkServiceTypePtrOutput) Elem() PrivateLinkServiceTypeOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) PrivateLinkServiceType { if v != nil { return *v } - var ret RoutingConfigurationResponse + var ret PrivateLinkServiceType return ret - }).(RoutingConfigurationResponseOutput) + }).(PrivateLinkServiceTypeOutput) } -// The resource id RouteTable associated with this RoutingConfiguration. -func (o RoutingConfigurationResponsePtrOutput) AssociatedRouteTable() SubResourceResponsePtrOutput { - return o.ApplyT(func(v *RoutingConfigurationResponse) *SubResourceResponse { +// The auto-approval list of the private link service. +func (o PrivateLinkServiceTypePtrOutput) AutoApproval() PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *PrivateLinkServicePropertiesAutoApproval { if v == nil { return nil } - return v.AssociatedRouteTable - }).(SubResourceResponsePtrOutput) + return v.AutoApproval + }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) } -// The list of RouteTables to advertise the routes to. -func (o RoutingConfigurationResponsePtrOutput) PropagatedRouteTables() PropagatedRouteTableResponsePtrOutput { - return o.ApplyT(func(v *RoutingConfigurationResponse) *PropagatedRouteTableResponse { +// Whether the private link service is enabled for proxy protocol or not. +func (o PrivateLinkServiceTypePtrOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *bool { if v == nil { return nil } - return v.PropagatedRouteTables - }).(PropagatedRouteTableResponsePtrOutput) + return v.EnableProxyProtocol + }).(pulumi.BoolPtrOutput) } -// List of routes that control routing from VirtualHub into a virtual network connection. -func (o RoutingConfigurationResponsePtrOutput) VnetRoutes() VnetRouteResponsePtrOutput { - return o.ApplyT(func(v *RoutingConfigurationResponse) *VnetRouteResponse { +// The extended location of the load balancer. +func (o PrivateLinkServiceTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *ExtendedLocation { if v == nil { return nil } - return v.VnetRoutes - }).(VnetRouteResponsePtrOutput) -} - -// The routing policy object used in a RoutingIntent resource. -type RoutingPolicy struct { - // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). - Destinations []string `pulumi:"destinations"` - // The unique name for the routing policy. - Name string `pulumi:"name"` - // The next hop resource id on which this routing policy is applicable to. - NextHop string `pulumi:"nextHop"` -} - -// RoutingPolicyInput is an input type that accepts RoutingPolicyArgs and RoutingPolicyOutput values. -// You can construct a concrete instance of `RoutingPolicyInput` via: -// -// RoutingPolicyArgs{...} -type RoutingPolicyInput interface { - pulumi.Input - - ToRoutingPolicyOutput() RoutingPolicyOutput - ToRoutingPolicyOutputWithContext(context.Context) RoutingPolicyOutput -} - -// The routing policy object used in a RoutingIntent resource. -type RoutingPolicyArgs struct { - // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). - Destinations pulumi.StringArrayInput `pulumi:"destinations"` - // The unique name for the routing policy. - Name pulumi.StringInput `pulumi:"name"` - // The next hop resource id on which this routing policy is applicable to. - NextHop pulumi.StringInput `pulumi:"nextHop"` -} - -func (RoutingPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPolicy)(nil)).Elem() -} - -func (i RoutingPolicyArgs) ToRoutingPolicyOutput() RoutingPolicyOutput { - return i.ToRoutingPolicyOutputWithContext(context.Background()) -} - -func (i RoutingPolicyArgs) ToRoutingPolicyOutputWithContext(ctx context.Context) RoutingPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingPolicyOutput) -} - -// RoutingPolicyArrayInput is an input type that accepts RoutingPolicyArray and RoutingPolicyArrayOutput values. -// You can construct a concrete instance of `RoutingPolicyArrayInput` via: -// -// RoutingPolicyArray{ RoutingPolicyArgs{...} } -type RoutingPolicyArrayInput interface { - pulumi.Input - - ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput - ToRoutingPolicyArrayOutputWithContext(context.Context) RoutingPolicyArrayOutput -} - -type RoutingPolicyArray []RoutingPolicyInput - -func (RoutingPolicyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingPolicy)(nil)).Elem() -} - -func (i RoutingPolicyArray) ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput { - return i.ToRoutingPolicyArrayOutputWithContext(context.Background()) -} - -func (i RoutingPolicyArray) ToRoutingPolicyArrayOutputWithContext(ctx context.Context) RoutingPolicyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingPolicyArrayOutput) -} - -// The routing policy object used in a RoutingIntent resource. -type RoutingPolicyOutput struct{ *pulumi.OutputState } - -func (RoutingPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPolicy)(nil)).Elem() -} - -func (o RoutingPolicyOutput) ToRoutingPolicyOutput() RoutingPolicyOutput { - return o -} - -func (o RoutingPolicyOutput) ToRoutingPolicyOutputWithContext(ctx context.Context) RoutingPolicyOutput { - return o -} - -// List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). -func (o RoutingPolicyOutput) Destinations() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingPolicy) []string { return v.Destinations }).(pulumi.StringArrayOutput) -} - -// The unique name for the routing policy. -func (o RoutingPolicyOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RoutingPolicy) string { return v.Name }).(pulumi.StringOutput) -} - -// The next hop resource id on which this routing policy is applicable to. -func (o RoutingPolicyOutput) NextHop() pulumi.StringOutput { - return o.ApplyT(func(v RoutingPolicy) string { return v.NextHop }).(pulumi.StringOutput) -} - -type RoutingPolicyArrayOutput struct{ *pulumi.OutputState } - -func (RoutingPolicyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingPolicy)(nil)).Elem() -} - -func (o RoutingPolicyArrayOutput) ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput { - return o -} - -func (o RoutingPolicyArrayOutput) ToRoutingPolicyArrayOutputWithContext(ctx context.Context) RoutingPolicyArrayOutput { - return o -} - -func (o RoutingPolicyArrayOutput) Index(i pulumi.IntInput) RoutingPolicyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingPolicy { - return vs[0].([]RoutingPolicy)[vs[1].(int)] - }).(RoutingPolicyOutput) -} - -// The routing policy object used in a RoutingIntent resource. -type RoutingPolicyResponse struct { - // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). - Destinations []string `pulumi:"destinations"` - // The unique name for the routing policy. - Name string `pulumi:"name"` - // The next hop resource id on which this routing policy is applicable to. - NextHop string `pulumi:"nextHop"` -} - -// The routing policy object used in a RoutingIntent resource. -type RoutingPolicyResponseOutput struct{ *pulumi.OutputState } - -func (RoutingPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPolicyResponse)(nil)).Elem() -} - -func (o RoutingPolicyResponseOutput) ToRoutingPolicyResponseOutput() RoutingPolicyResponseOutput { - return o -} - -func (o RoutingPolicyResponseOutput) ToRoutingPolicyResponseOutputWithContext(ctx context.Context) RoutingPolicyResponseOutput { - return o + return v.ExtendedLocation + }).(ExtendedLocationPtrOutput) } -// List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). -func (o RoutingPolicyResponseOutput) Destinations() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingPolicyResponse) []string { return v.Destinations }).(pulumi.StringArrayOutput) +// The list of Fqdn. +func (o PrivateLinkServiceTypePtrOutput) Fqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) []string { + if v == nil { + return nil + } + return v.Fqdns + }).(pulumi.StringArrayOutput) } -// The unique name for the routing policy. -func (o RoutingPolicyResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RoutingPolicyResponse) string { return v.Name }).(pulumi.StringOutput) +// Resource ID. +func (o PrivateLinkServiceTypePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) } -// The next hop resource id on which this routing policy is applicable to. -func (o RoutingPolicyResponseOutput) NextHop() pulumi.StringOutput { - return o.ApplyT(func(v RoutingPolicyResponse) string { return v.NextHop }).(pulumi.StringOutput) +// An array of private link service IP configurations. +func (o PrivateLinkServiceTypePtrOutput) IpConfigurations() PrivateLinkServiceIpConfigurationArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) []PrivateLinkServiceIpConfiguration { + if v == nil { + return nil + } + return v.IpConfigurations + }).(PrivateLinkServiceIpConfigurationArrayOutput) } -type RoutingPolicyResponseArrayOutput struct{ *pulumi.OutputState } - -func (RoutingPolicyResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingPolicyResponse)(nil)).Elem() +// An array of references to the load balancer IP configurations. +func (o PrivateLinkServiceTypePtrOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) []FrontendIPConfiguration { + if v == nil { + return nil + } + return v.LoadBalancerFrontendIpConfigurations + }).(FrontendIPConfigurationArrayOutput) } -func (o RoutingPolicyResponseArrayOutput) ToRoutingPolicyResponseArrayOutput() RoutingPolicyResponseArrayOutput { - return o +// Resource location. +func (o PrivateLinkServiceTypePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -func (o RoutingPolicyResponseArrayOutput) ToRoutingPolicyResponseArrayOutputWithContext(ctx context.Context) RoutingPolicyResponseArrayOutput { - return o +// Resource tags. +func (o PrivateLinkServiceTypePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -func (o RoutingPolicyResponseArrayOutput) Index(i pulumi.IntInput) RoutingPolicyResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingPolicyResponse { - return vs[0].([]RoutingPolicyResponse)[vs[1].(int)] - }).(RoutingPolicyResponseOutput) +// The visibility list of the private link service. +func (o PrivateLinkServiceTypePtrOutput) Visibility() PrivateLinkServicePropertiesVisibilityPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceType) *PrivateLinkServicePropertiesVisibility { + if v == nil { + return nil + } + return v.Visibility + }).(PrivateLinkServicePropertiesVisibilityPtrOutput) } -// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. -type RoutingRule struct { - // Protocol schemes to match for this rule - AcceptedProtocols []string `pulumi:"acceptedProtocols"` - // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' - EnabledState *string `pulumi:"enabledState"` - // Frontend endpoints associated with this rule - FrontendEndpoints []SubResource `pulumi:"frontendEndpoints"` +// PrivateLinkServiceConnection resource. +type PrivateLinkServiceConnection struct { + // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. + GroupIds []string `pulumi:"groupIds"` // Resource ID. Id *string `pulumi:"id"` - // Resource name. + // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // The route patterns of the rule. - PatternsToMatch []string `pulumi:"patternsToMatch"` - // A reference to the routing configuration. - RouteConfiguration interface{} `pulumi:"routeConfiguration"` - // A reference to a specific Rules Engine Configuration to apply to this route. - RulesEngine *SubResource `pulumi:"rulesEngine"` - // Defines the Web Application Firewall policy for each routing rule (if applicable) - WebApplicationFirewallPolicyLink *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink `pulumi:"webApplicationFirewallPolicyLink"` + // A collection of read-only information about the state of the connection to the remote resource. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `pulumi:"privateLinkServiceConnectionState"` + // The resource id of private link service. + PrivateLinkServiceId *string `pulumi:"privateLinkServiceId"` + // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. + RequestMessage *string `pulumi:"requestMessage"` } -// RoutingRuleInput is an input type that accepts RoutingRuleArgs and RoutingRuleOutput values. -// You can construct a concrete instance of `RoutingRuleInput` via: +// PrivateLinkServiceConnectionInput is an input type that accepts PrivateLinkServiceConnectionArgs and PrivateLinkServiceConnectionOutput values. +// You can construct a concrete instance of `PrivateLinkServiceConnectionInput` via: // -// RoutingRuleArgs{...} -type RoutingRuleInput interface { +// PrivateLinkServiceConnectionArgs{...} +type PrivateLinkServiceConnectionInput interface { pulumi.Input - ToRoutingRuleOutput() RoutingRuleOutput - ToRoutingRuleOutputWithContext(context.Context) RoutingRuleOutput + ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput + ToPrivateLinkServiceConnectionOutputWithContext(context.Context) PrivateLinkServiceConnectionOutput } -// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. -type RoutingRuleArgs struct { - // Protocol schemes to match for this rule - AcceptedProtocols pulumi.StringArrayInput `pulumi:"acceptedProtocols"` - // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' - EnabledState pulumi.StringPtrInput `pulumi:"enabledState"` - // Frontend endpoints associated with this rule - FrontendEndpoints SubResourceArrayInput `pulumi:"frontendEndpoints"` +// PrivateLinkServiceConnection resource. +type PrivateLinkServiceConnectionArgs struct { + // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. + GroupIds pulumi.StringArrayInput `pulumi:"groupIds"` // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // Resource name. + // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name pulumi.StringPtrInput `pulumi:"name"` - // The route patterns of the rule. - PatternsToMatch pulumi.StringArrayInput `pulumi:"patternsToMatch"` - // A reference to the routing configuration. - RouteConfiguration pulumi.Input `pulumi:"routeConfiguration"` - // A reference to a specific Rules Engine Configuration to apply to this route. - RulesEngine SubResourcePtrInput `pulumi:"rulesEngine"` - // Defines the Web Application Firewall policy for each routing rule (if applicable) - WebApplicationFirewallPolicyLink RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput `pulumi:"webApplicationFirewallPolicyLink"` + // A collection of read-only information about the state of the connection to the remote resource. + PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStatePtrInput `pulumi:"privateLinkServiceConnectionState"` + // The resource id of private link service. + PrivateLinkServiceId pulumi.StringPtrInput `pulumi:"privateLinkServiceId"` + // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. + RequestMessage pulumi.StringPtrInput `pulumi:"requestMessage"` } -func (RoutingRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRule)(nil)).Elem() +func (PrivateLinkServiceConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnection)(nil)).Elem() } -func (i RoutingRuleArgs) ToRoutingRuleOutput() RoutingRuleOutput { - return i.ToRoutingRuleOutputWithContext(context.Background()) +func (i PrivateLinkServiceConnectionArgs) ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput { + return i.ToPrivateLinkServiceConnectionOutputWithContext(context.Background()) } -func (i RoutingRuleArgs) ToRoutingRuleOutputWithContext(ctx context.Context) RoutingRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleOutput) +func (i PrivateLinkServiceConnectionArgs) ToPrivateLinkServiceConnectionOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionOutput) } -// RoutingRuleArrayInput is an input type that accepts RoutingRuleArray and RoutingRuleArrayOutput values. -// You can construct a concrete instance of `RoutingRuleArrayInput` via: +// PrivateLinkServiceConnectionArrayInput is an input type that accepts PrivateLinkServiceConnectionArray and PrivateLinkServiceConnectionArrayOutput values. +// You can construct a concrete instance of `PrivateLinkServiceConnectionArrayInput` via: // -// RoutingRuleArray{ RoutingRuleArgs{...} } -type RoutingRuleArrayInput interface { +// PrivateLinkServiceConnectionArray{ PrivateLinkServiceConnectionArgs{...} } +type PrivateLinkServiceConnectionArrayInput interface { pulumi.Input - ToRoutingRuleArrayOutput() RoutingRuleArrayOutput - ToRoutingRuleArrayOutputWithContext(context.Context) RoutingRuleArrayOutput + ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput + ToPrivateLinkServiceConnectionArrayOutputWithContext(context.Context) PrivateLinkServiceConnectionArrayOutput } -type RoutingRuleArray []RoutingRuleInput +type PrivateLinkServiceConnectionArray []PrivateLinkServiceConnectionInput -func (RoutingRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingRule)(nil)).Elem() +func (PrivateLinkServiceConnectionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceConnection)(nil)).Elem() } -func (i RoutingRuleArray) ToRoutingRuleArrayOutput() RoutingRuleArrayOutput { - return i.ToRoutingRuleArrayOutputWithContext(context.Background()) +func (i PrivateLinkServiceConnectionArray) ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput { + return i.ToPrivateLinkServiceConnectionArrayOutputWithContext(context.Background()) } -func (i RoutingRuleArray) ToRoutingRuleArrayOutputWithContext(ctx context.Context) RoutingRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleArrayOutput) +func (i PrivateLinkServiceConnectionArray) ToPrivateLinkServiceConnectionArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionArrayOutput) } -// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. -type RoutingRuleOutput struct{ *pulumi.OutputState } +// PrivateLinkServiceConnection resource. +type PrivateLinkServiceConnectionOutput struct{ *pulumi.OutputState } -func (RoutingRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRule)(nil)).Elem() +func (PrivateLinkServiceConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnection)(nil)).Elem() } -func (o RoutingRuleOutput) ToRoutingRuleOutput() RoutingRuleOutput { +func (o PrivateLinkServiceConnectionOutput) ToPrivateLinkServiceConnectionOutput() PrivateLinkServiceConnectionOutput { return o } -func (o RoutingRuleOutput) ToRoutingRuleOutputWithContext(ctx context.Context) RoutingRuleOutput { +func (o PrivateLinkServiceConnectionOutput) ToPrivateLinkServiceConnectionOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionOutput { return o } -// Protocol schemes to match for this rule -func (o RoutingRuleOutput) AcceptedProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingRule) []string { return v.AcceptedProtocols }).(pulumi.StringArrayOutput) -} - -// Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' -func (o RoutingRuleOutput) EnabledState() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRule) *string { return v.EnabledState }).(pulumi.StringPtrOutput) -} - -// Frontend endpoints associated with this rule -func (o RoutingRuleOutput) FrontendEndpoints() SubResourceArrayOutput { - return o.ApplyT(func(v RoutingRule) []SubResource { return v.FrontendEndpoints }).(SubResourceArrayOutput) +// The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. +func (o PrivateLinkServiceConnectionOutput) GroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) []string { return v.GroupIds }).(pulumi.StringArrayOutput) } // Resource ID. -func (o RoutingRuleOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRule) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Resource name. -func (o RoutingRuleOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRule) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The route patterns of the rule. -func (o RoutingRuleOutput) PatternsToMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingRule) []string { return v.PatternsToMatch }).(pulumi.StringArrayOutput) -} - -// A reference to the routing configuration. -func (o RoutingRuleOutput) RouteConfiguration() pulumi.AnyOutput { - return o.ApplyT(func(v RoutingRule) interface{} { return v.RouteConfiguration }).(pulumi.AnyOutput) -} - -// A reference to a specific Rules Engine Configuration to apply to this route. -func (o RoutingRuleOutput) RulesEngine() SubResourcePtrOutput { - return o.ApplyT(func(v RoutingRule) *SubResource { return v.RulesEngine }).(SubResourcePtrOutput) -} - -// Defines the Web Application Firewall policy for each routing rule (if applicable) -func (o RoutingRuleOutput) WebApplicationFirewallPolicyLink() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return o.ApplyT(func(v RoutingRule) *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { - return v.WebApplicationFirewallPolicyLink - }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) -} - -type RoutingRuleArrayOutput struct{ *pulumi.OutputState } - -func (RoutingRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingRule)(nil)).Elem() -} - -func (o RoutingRuleArrayOutput) ToRoutingRuleArrayOutput() RoutingRuleArrayOutput { - return o -} - -func (o RoutingRuleArrayOutput) ToRoutingRuleArrayOutputWithContext(ctx context.Context) RoutingRuleArrayOutput { - return o -} - -func (o RoutingRuleArrayOutput) Index(i pulumi.IntInput) RoutingRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRule { - return vs[0].([]RoutingRule)[vs[1].(int)] - }).(RoutingRuleOutput) -} - -// Defines the Resource ID for a Routing Rule. -type RoutingRuleLinkResponse struct { - // Resource ID. - Id *string `pulumi:"id"` +func (o PrivateLinkServiceConnectionOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Defines the Resource ID for a Routing Rule. -type RoutingRuleLinkResponseOutput struct{ *pulumi.OutputState } - -func (RoutingRuleLinkResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRuleLinkResponse)(nil)).Elem() +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o PrivateLinkServiceConnectionOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o RoutingRuleLinkResponseOutput) ToRoutingRuleLinkResponseOutput() RoutingRuleLinkResponseOutput { - return o +// A collection of read-only information about the state of the connection to the remote resource. +func (o PrivateLinkServiceConnectionOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStatePtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) *PrivateLinkServiceConnectionState { + return v.PrivateLinkServiceConnectionState + }).(PrivateLinkServiceConnectionStatePtrOutput) } -func (o RoutingRuleLinkResponseOutput) ToRoutingRuleLinkResponseOutputWithContext(ctx context.Context) RoutingRuleLinkResponseOutput { - return o +// The resource id of private link service. +func (o PrivateLinkServiceConnectionOutput) PrivateLinkServiceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.PrivateLinkServiceId }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o RoutingRuleLinkResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. +func (o PrivateLinkServiceConnectionOutput) RequestMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnection) *string { return v.RequestMessage }).(pulumi.StringPtrOutput) } -type RoutingRuleLinkResponseArrayOutput struct{ *pulumi.OutputState } +type PrivateLinkServiceConnectionArrayOutput struct{ *pulumi.OutputState } -func (RoutingRuleLinkResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingRuleLinkResponse)(nil)).Elem() +func (PrivateLinkServiceConnectionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceConnection)(nil)).Elem() } -func (o RoutingRuleLinkResponseArrayOutput) ToRoutingRuleLinkResponseArrayOutput() RoutingRuleLinkResponseArrayOutput { +func (o PrivateLinkServiceConnectionArrayOutput) ToPrivateLinkServiceConnectionArrayOutput() PrivateLinkServiceConnectionArrayOutput { return o } -func (o RoutingRuleLinkResponseArrayOutput) ToRoutingRuleLinkResponseArrayOutputWithContext(ctx context.Context) RoutingRuleLinkResponseArrayOutput { +func (o PrivateLinkServiceConnectionArrayOutput) ToPrivateLinkServiceConnectionArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionArrayOutput { return o } -func (o RoutingRuleLinkResponseArrayOutput) Index(i pulumi.IntInput) RoutingRuleLinkResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRuleLinkResponse { - return vs[0].([]RoutingRuleLinkResponse)[vs[1].(int)] - }).(RoutingRuleLinkResponseOutput) +func (o PrivateLinkServiceConnectionArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceConnectionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceConnection { + return vs[0].([]PrivateLinkServiceConnection)[vs[1].(int)] + }).(PrivateLinkServiceConnectionOutput) } -// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. -type RoutingRuleResponse struct { - // Protocol schemes to match for this rule - AcceptedProtocols []string `pulumi:"acceptedProtocols"` - // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' - EnabledState *string `pulumi:"enabledState"` - // Frontend endpoints associated with this rule - FrontendEndpoints []SubResourceResponse `pulumi:"frontendEndpoints"` +// PrivateLinkServiceConnection resource. +type PrivateLinkServiceConnectionResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. + GroupIds []string `pulumi:"groupIds"` // Resource ID. Id *string `pulumi:"id"` - // Resource name. + // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // The route patterns of the rule. - PatternsToMatch []string `pulumi:"patternsToMatch"` - // Resource status. - ResourceState string `pulumi:"resourceState"` - // A reference to the routing configuration. - RouteConfiguration interface{} `pulumi:"routeConfiguration"` - // A reference to a specific Rules Engine Configuration to apply to this route. - RulesEngine *SubResourceResponse `pulumi:"rulesEngine"` - // Resource type. + // A collection of read-only information about the state of the connection to the remote resource. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` + // The resource id of private link service. + PrivateLinkServiceId *string `pulumi:"privateLinkServiceId"` + // The provisioning state of the private link service connection resource. + ProvisioningState string `pulumi:"provisioningState"` + // A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. + RequestMessage *string `pulumi:"requestMessage"` + // The resource type. Type string `pulumi:"type"` - // Defines the Web Application Firewall policy for each routing rule (if applicable) - WebApplicationFirewallPolicyLink *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink `pulumi:"webApplicationFirewallPolicyLink"` } -// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. -type RoutingRuleResponseOutput struct{ *pulumi.OutputState } +// PrivateLinkServiceConnection resource. +type PrivateLinkServiceConnectionResponseOutput struct{ *pulumi.OutputState } -func (RoutingRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRuleResponse)(nil)).Elem() +func (PrivateLinkServiceConnectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionResponse)(nil)).Elem() } -func (o RoutingRuleResponseOutput) ToRoutingRuleResponseOutput() RoutingRuleResponseOutput { +func (o PrivateLinkServiceConnectionResponseOutput) ToPrivateLinkServiceConnectionResponseOutput() PrivateLinkServiceConnectionResponseOutput { return o } -func (o RoutingRuleResponseOutput) ToRoutingRuleResponseOutputWithContext(ctx context.Context) RoutingRuleResponseOutput { +func (o PrivateLinkServiceConnectionResponseOutput) ToPrivateLinkServiceConnectionResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionResponseOutput { return o } -// Protocol schemes to match for this rule -func (o RoutingRuleResponseOutput) AcceptedProtocols() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingRuleResponse) []string { return v.AcceptedProtocols }).(pulumi.StringArrayOutput) -} - -// Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' -func (o RoutingRuleResponseOutput) EnabledState() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleResponse) *string { return v.EnabledState }).(pulumi.StringPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateLinkServiceConnectionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Frontend endpoints associated with this rule -func (o RoutingRuleResponseOutput) FrontendEndpoints() SubResourceResponseArrayOutput { - return o.ApplyT(func(v RoutingRuleResponse) []SubResourceResponse { return v.FrontendEndpoints }).(SubResourceResponseArrayOutput) +// The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. +func (o PrivateLinkServiceConnectionResponseOutput) GroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) []string { return v.GroupIds }).(pulumi.StringArrayOutput) } // Resource ID. -func (o RoutingRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// Resource name. -func (o RoutingRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o PrivateLinkServiceConnectionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The route patterns of the rule. -func (o RoutingRuleResponseOutput) PatternsToMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v RoutingRuleResponse) []string { return v.PatternsToMatch }).(pulumi.StringArrayOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o PrivateLinkServiceConnectionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource status. -func (o RoutingRuleResponseOutput) ResourceState() pulumi.StringOutput { - return o.ApplyT(func(v RoutingRuleResponse) string { return v.ResourceState }).(pulumi.StringOutput) +// A collection of read-only information about the state of the connection to the remote resource. +func (o PrivateLinkServiceConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponsePtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *PrivateLinkServiceConnectionStateResponse { + return v.PrivateLinkServiceConnectionState + }).(PrivateLinkServiceConnectionStateResponsePtrOutput) } -// A reference to the routing configuration. -func (o RoutingRuleResponseOutput) RouteConfiguration() pulumi.AnyOutput { - return o.ApplyT(func(v RoutingRuleResponse) interface{} { return v.RouteConfiguration }).(pulumi.AnyOutput) +// The resource id of private link service. +func (o PrivateLinkServiceConnectionResponseOutput) PrivateLinkServiceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.PrivateLinkServiceId }).(pulumi.StringPtrOutput) } -// A reference to a specific Rules Engine Configuration to apply to this route. -func (o RoutingRuleResponseOutput) RulesEngine() SubResourceResponsePtrOutput { - return o.ApplyT(func(v RoutingRuleResponse) *SubResourceResponse { return v.RulesEngine }).(SubResourceResponsePtrOutput) +// The provisioning state of the private link service connection resource. +func (o PrivateLinkServiceConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Resource type. -func (o RoutingRuleResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v RoutingRuleResponse) string { return v.Type }).(pulumi.StringOutput) +// A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars. +func (o PrivateLinkServiceConnectionResponseOutput) RequestMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) *string { return v.RequestMessage }).(pulumi.StringPtrOutput) } -// Defines the Web Application Firewall policy for each routing rule (if applicable) -func (o RoutingRuleResponseOutput) WebApplicationFirewallPolicyLink() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { - return o.ApplyT(func(v RoutingRuleResponse) *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink { - return v.WebApplicationFirewallPolicyLink - }).(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) +// The resource type. +func (o PrivateLinkServiceConnectionResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionResponse) string { return v.Type }).(pulumi.StringOutput) } -type RoutingRuleResponseArrayOutput struct{ *pulumi.OutputState } +type PrivateLinkServiceConnectionResponseArrayOutput struct{ *pulumi.OutputState } -func (RoutingRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RoutingRuleResponse)(nil)).Elem() +func (PrivateLinkServiceConnectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceConnectionResponse)(nil)).Elem() } -func (o RoutingRuleResponseArrayOutput) ToRoutingRuleResponseArrayOutput() RoutingRuleResponseArrayOutput { +func (o PrivateLinkServiceConnectionResponseArrayOutput) ToPrivateLinkServiceConnectionResponseArrayOutput() PrivateLinkServiceConnectionResponseArrayOutput { return o } -func (o RoutingRuleResponseArrayOutput) ToRoutingRuleResponseArrayOutputWithContext(ctx context.Context) RoutingRuleResponseArrayOutput { +func (o PrivateLinkServiceConnectionResponseArrayOutput) ToPrivateLinkServiceConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionResponseArrayOutput { return o } -func (o RoutingRuleResponseArrayOutput) Index(i pulumi.IntInput) RoutingRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRuleResponse { - return vs[0].([]RoutingRuleResponse)[vs[1].(int)] - }).(RoutingRuleResponseOutput) +func (o PrivateLinkServiceConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceConnectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceConnectionResponse { + return vs[0].([]PrivateLinkServiceConnectionResponse)[vs[1].(int)] + }).(PrivateLinkServiceConnectionResponseOutput) } func init() { @@ -56757,8 +56511,14 @@ func init() { pulumi.RegisterOutputType(AadAuthenticationParametersPtrOutput{}) pulumi.RegisterOutputType(AadAuthenticationParametersResponseOutput{}) pulumi.RegisterOutputType(AadAuthenticationParametersResponsePtrOutput{}) + pulumi.RegisterOutputType(ActionOutput{}) + pulumi.RegisterOutputType(ActionArrayOutput{}) + pulumi.RegisterOutputType(ActionResponseOutput{}) + pulumi.RegisterOutputType(ActionResponseArrayOutput{}) pulumi.RegisterOutputType(ActiveConnectivityConfigurationResponseOutput{}) pulumi.RegisterOutputType(ActiveConnectivityConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(AddressPrefixItemOutput{}) + pulumi.RegisterOutputType(AddressPrefixItemArrayOutput{}) pulumi.RegisterOutputType(AddressPrefixItemResponseOutput{}) pulumi.RegisterOutputType(AddressPrefixItemResponseArrayOutput{}) pulumi.RegisterOutputType(AddressSpaceOutput{}) @@ -56791,6 +56551,10 @@ func init() { pulumi.RegisterOutputType(ApplicationGatewayBackendHttpSettingsResponseOutput{}) pulumi.RegisterOutputType(ApplicationGatewayBackendHttpSettingsResponsePtrOutput{}) pulumi.RegisterOutputType(ApplicationGatewayBackendHttpSettingsResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayBackendSettingsOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayBackendSettingsArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayBackendSettingsResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayBackendSettingsResponseArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayClientAuthConfigurationOutput{}) pulumi.RegisterOutputType(ApplicationGatewayClientAuthConfigurationPtrOutput{}) pulumi.RegisterOutputType(ApplicationGatewayClientAuthConfigurationResponseOutput{}) @@ -56819,6 +56583,10 @@ func init() { pulumi.RegisterOutputType(ApplicationGatewayFrontendPortArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayFrontendPortResponseOutput{}) pulumi.RegisterOutputType(ApplicationGatewayFrontendPortResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayGlobalConfigurationOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayGlobalConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayGlobalConfigurationResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayGlobalConfigurationResponsePtrOutput{}) pulumi.RegisterOutputType(ApplicationGatewayHeaderConfigurationOutput{}) pulumi.RegisterOutputType(ApplicationGatewayHeaderConfigurationArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayHeaderConfigurationResponseOutput{}) @@ -56831,6 +56599,18 @@ func init() { pulumi.RegisterOutputType(ApplicationGatewayIPConfigurationArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayIPConfigurationResponseOutput{}) pulumi.RegisterOutputType(ApplicationGatewayIPConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayListenerOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayListenerArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayListenerResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayListenerResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionPolicyOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionPolicyArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionPolicyResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionPolicyResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionTargetOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionTargetArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionTargetResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayLoadDistributionTargetResponseArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayPathRuleOutput{}) pulumi.RegisterOutputType(ApplicationGatewayPathRuleArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayPathRuleResponseOutput{}) @@ -56879,6 +56659,10 @@ func init() { pulumi.RegisterOutputType(ApplicationGatewayRewriteRuleSetArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewayRewriteRuleSetResponseOutput{}) pulumi.RegisterOutputType(ApplicationGatewayRewriteRuleSetResponseArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayRoutingRuleOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayRoutingRuleArrayOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayRoutingRuleResponseOutput{}) + pulumi.RegisterOutputType(ApplicationGatewayRoutingRuleResponseArrayOutput{}) pulumi.RegisterOutputType(ApplicationGatewaySkuOutput{}) pulumi.RegisterOutputType(ApplicationGatewaySkuPtrOutput{}) pulumi.RegisterOutputType(ApplicationGatewaySkuResponseOutput{}) @@ -57091,6 +56875,12 @@ func init() { pulumi.RegisterOutputType(ContainerNetworkInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(ContainerResponseOutput{}) pulumi.RegisterOutputType(ContainerResponsePtrOutput{}) + pulumi.RegisterOutputType(CriterionOutput{}) + pulumi.RegisterOutputType(CriterionArrayOutput{}) + pulumi.RegisterOutputType(CriterionResponseOutput{}) + pulumi.RegisterOutputType(CriterionResponseArrayOutput{}) + pulumi.RegisterOutputType(CrossTenantScopesResponseOutput{}) + pulumi.RegisterOutputType(CrossTenantScopesResponseArrayOutput{}) pulumi.RegisterOutputType(CustomDnsConfigPropertiesFormatOutput{}) pulumi.RegisterOutputType(CustomDnsConfigPropertiesFormatArrayOutput{}) pulumi.RegisterOutputType(CustomDnsConfigPropertiesFormatResponseOutput{}) @@ -57110,6 +56900,10 @@ func init() { pulumi.RegisterOutputType(DdosSettingsResponsePtrOutput{}) pulumi.RegisterOutputType(DelegationOutput{}) pulumi.RegisterOutputType(DelegationArrayOutput{}) + pulumi.RegisterOutputType(DelegationPropertiesOutput{}) + pulumi.RegisterOutputType(DelegationPropertiesPtrOutput{}) + pulumi.RegisterOutputType(DelegationPropertiesResponseOutput{}) + pulumi.RegisterOutputType(DelegationPropertiesResponsePtrOutput{}) pulumi.RegisterOutputType(DelegationResponseOutput{}) pulumi.RegisterOutputType(DelegationResponseArrayOutput{}) pulumi.RegisterOutputType(DevicePropertiesOutput{}) @@ -57146,10 +56940,30 @@ func init() { pulumi.RegisterOutputType(EndpointPropertiesSubnetsArrayOutput{}) pulumi.RegisterOutputType(EndpointResponseOutput{}) pulumi.RegisterOutputType(EndpointResponseArrayOutput{}) + pulumi.RegisterOutputType(EndpointServiceOutput{}) + pulumi.RegisterOutputType(EndpointServicePtrOutput{}) + pulumi.RegisterOutputType(EndpointServiceResponseOutput{}) + pulumi.RegisterOutputType(EndpointServiceResponsePtrOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleArrayOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleGroupOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleGroupArrayOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleGroupResponseOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleGroupResponseArrayOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleResponseOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleSetOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleSetArrayOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleSetResponseOutput{}) + pulumi.RegisterOutputType(ExclusionManagedRuleSetResponseArrayOutput{}) pulumi.RegisterOutputType(ExperimentEndpointOutput{}) pulumi.RegisterOutputType(ExperimentEndpointPtrOutput{}) pulumi.RegisterOutputType(ExperimentEndpointResponseOutput{}) pulumi.RegisterOutputType(ExperimentEndpointResponsePtrOutput{}) + pulumi.RegisterOutputType(ExplicitProxyOutput{}) + pulumi.RegisterOutputType(ExplicitProxyPtrOutput{}) + pulumi.RegisterOutputType(ExplicitProxyResponseOutput{}) + pulumi.RegisterOutputType(ExplicitProxyResponsePtrOutput{}) pulumi.RegisterOutputType(ExpressRouteCircuitAuthorizationTypeOutput{}) pulumi.RegisterOutputType(ExpressRouteCircuitAuthorizationTypeArrayOutput{}) pulumi.RegisterOutputType(ExpressRouteCircuitAuthorizationResponseOutput{}) @@ -57180,6 +56994,8 @@ func init() { pulumi.RegisterOutputType(ExpressRouteCircuitStatsPtrOutput{}) pulumi.RegisterOutputType(ExpressRouteCircuitStatsResponseOutput{}) pulumi.RegisterOutputType(ExpressRouteCircuitStatsResponsePtrOutput{}) + pulumi.RegisterOutputType(ExpressRouteConnectionTypeOutput{}) + pulumi.RegisterOutputType(ExpressRouteConnectionTypeArrayOutput{}) pulumi.RegisterOutputType(ExpressRouteConnectionIdResponseOutput{}) pulumi.RegisterOutputType(ExpressRouteConnectionIdResponsePtrOutput{}) pulumi.RegisterOutputType(ExpressRouteConnectionResponseOutput{}) @@ -57242,6 +57058,10 @@ func init() { pulumi.RegisterOutputType(FirewallPolicySNATPtrOutput{}) pulumi.RegisterOutputType(FirewallPolicySNATResponseOutput{}) pulumi.RegisterOutputType(FirewallPolicySNATResponsePtrOutput{}) + pulumi.RegisterOutputType(FirewallPolicySQLOutput{}) + pulumi.RegisterOutputType(FirewallPolicySQLPtrOutput{}) + pulumi.RegisterOutputType(FirewallPolicySQLResponseOutput{}) + pulumi.RegisterOutputType(FirewallPolicySQLResponsePtrOutput{}) pulumi.RegisterOutputType(FirewallPolicySkuOutput{}) pulumi.RegisterOutputType(FirewallPolicySkuPtrOutput{}) pulumi.RegisterOutputType(FirewallPolicySkuResponseOutput{}) @@ -57296,10 +57116,24 @@ func init() { pulumi.RegisterOutputType(FrontendIPConfigurationResponseOutput{}) pulumi.RegisterOutputType(FrontendIPConfigurationResponsePtrOutput{}) pulumi.RegisterOutputType(FrontendIPConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(GatewayCustomBgpIpAddressIpConfigurationOutput{}) + pulumi.RegisterOutputType(GatewayCustomBgpIpAddressIpConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GatewayCustomBgpIpAddressIpConfigurationResponseOutput{}) + pulumi.RegisterOutputType(GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(GatewayLoadBalancerTunnelInterfaceOutput{}) + pulumi.RegisterOutputType(GatewayLoadBalancerTunnelInterfaceArrayOutput{}) + pulumi.RegisterOutputType(GatewayLoadBalancerTunnelInterfaceResponseOutput{}) + pulumi.RegisterOutputType(GatewayLoadBalancerTunnelInterfaceResponseArrayOutput{}) pulumi.RegisterOutputType(GatewayRouteResponseOutput{}) pulumi.RegisterOutputType(GatewayRouteResponseArrayOutput{}) - pulumi.RegisterOutputType(GroupMembersItemOutput{}) - pulumi.RegisterOutputType(GroupMembersItemArrayOutput{}) + pulumi.RegisterOutputType(GroupByUserSessionOutput{}) + pulumi.RegisterOutputType(GroupByUserSessionArrayOutput{}) + pulumi.RegisterOutputType(GroupByUserSessionResponseOutput{}) + pulumi.RegisterOutputType(GroupByUserSessionResponseArrayOutput{}) + pulumi.RegisterOutputType(GroupByVariableOutput{}) + pulumi.RegisterOutputType(GroupByVariableArrayOutput{}) + pulumi.RegisterOutputType(GroupByVariableResponseOutput{}) + pulumi.RegisterOutputType(GroupByVariableResponseArrayOutput{}) pulumi.RegisterOutputType(GroupMembersItemResponseOutput{}) pulumi.RegisterOutputType(GroupMembersItemResponseArrayOutput{}) pulumi.RegisterOutputType(HTTPHeaderOutput{}) @@ -57353,6 +57187,9 @@ func init() { pulumi.RegisterOutputType(InboundNatRuleTypeArrayOutput{}) pulumi.RegisterOutputType(InboundNatRuleResponseOutput{}) pulumi.RegisterOutputType(InboundNatRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(InterfaceEndpointResponseOutput{}) + pulumi.RegisterOutputType(InterfaceEndpointResponsePtrOutput{}) + pulumi.RegisterOutputType(InterfaceEndpointResponseArrayOutput{}) pulumi.RegisterOutputType(IpTagOutput{}) pulumi.RegisterOutputType(IpTagArrayOutput{}) pulumi.RegisterOutputType(IpTagResponseOutput{}) @@ -57451,6 +57288,8 @@ func init() { pulumi.RegisterOutputType(NatGatewaySkuPtrOutput{}) pulumi.RegisterOutputType(NatGatewaySkuResponseOutput{}) pulumi.RegisterOutputType(NatGatewaySkuResponsePtrOutput{}) + pulumi.RegisterOutputType(NatRulePortMappingResponseOutput{}) + pulumi.RegisterOutputType(NatRulePortMappingResponseArrayOutput{}) pulumi.RegisterOutputType(NetworkInterfaceDnsSettingsOutput{}) pulumi.RegisterOutputType(NetworkInterfaceDnsSettingsPtrOutput{}) pulumi.RegisterOutputType(NetworkInterfaceDnsSettingsResponseOutput{}) @@ -57470,9 +57309,7 @@ func init() { pulumi.RegisterOutputType(NetworkManagerDeploymentStatusResponseOutput{}) pulumi.RegisterOutputType(NetworkManagerDeploymentStatusResponseArrayOutput{}) pulumi.RegisterOutputType(NetworkManagerPropertiesNetworkManagerScopesOutput{}) - pulumi.RegisterOutputType(NetworkManagerPropertiesNetworkManagerScopesPtrOutput{}) pulumi.RegisterOutputType(NetworkManagerPropertiesResponseNetworkManagerScopesOutput{}) - pulumi.RegisterOutputType(NetworkManagerPropertiesResponseNetworkManagerScopesPtrOutput{}) pulumi.RegisterOutputType(NetworkManagerSecurityGroupItemOutput{}) pulumi.RegisterOutputType(NetworkManagerSecurityGroupItemArrayOutput{}) pulumi.RegisterOutputType(NetworkManagerSecurityGroupItemResponseOutput{}) @@ -57533,24 +57370,40 @@ func init() { pulumi.RegisterOutputType(PacketCaptureFilterArrayOutput{}) pulumi.RegisterOutputType(PacketCaptureFilterResponseOutput{}) pulumi.RegisterOutputType(PacketCaptureFilterResponseArrayOutput{}) + pulumi.RegisterOutputType(PacketCaptureMachineScopeOutput{}) + pulumi.RegisterOutputType(PacketCaptureMachineScopePtrOutput{}) + pulumi.RegisterOutputType(PacketCaptureMachineScopeResponseOutput{}) + pulumi.RegisterOutputType(PacketCaptureMachineScopeResponsePtrOutput{}) pulumi.RegisterOutputType(PacketCaptureStorageLocationOutput{}) pulumi.RegisterOutputType(PacketCaptureStorageLocationResponseOutput{}) + pulumi.RegisterOutputType(ParameterOutput{}) + pulumi.RegisterOutputType(ParameterArrayOutput{}) + pulumi.RegisterOutputType(ParameterResponseOutput{}) + pulumi.RegisterOutputType(ParameterResponseArrayOutput{}) + pulumi.RegisterOutputType(PartnerManagedResourcePropertiesResponseOutput{}) + pulumi.RegisterOutputType(PartnerManagedResourcePropertiesResponsePtrOutput{}) pulumi.RegisterOutputType(PeerExpressRouteCircuitConnectionResponseOutput{}) pulumi.RegisterOutputType(PeerExpressRouteCircuitConnectionResponseArrayOutput{}) - pulumi.RegisterOutputType(PerimeterBasedAccessRuleOutput{}) - pulumi.RegisterOutputType(PerimeterBasedAccessRuleArrayOutput{}) pulumi.RegisterOutputType(PerimeterBasedAccessRuleResponseOutput{}) pulumi.RegisterOutputType(PerimeterBasedAccessRuleResponseArrayOutput{}) pulumi.RegisterOutputType(PolicySettingsOutput{}) pulumi.RegisterOutputType(PolicySettingsPtrOutput{}) + pulumi.RegisterOutputType(PolicySettingsLogScrubbingOutput{}) + pulumi.RegisterOutputType(PolicySettingsLogScrubbingPtrOutput{}) pulumi.RegisterOutputType(PolicySettingsResponseOutput{}) pulumi.RegisterOutputType(PolicySettingsResponsePtrOutput{}) + pulumi.RegisterOutputType(PolicySettingsResponseLogScrubbingOutput{}) + pulumi.RegisterOutputType(PolicySettingsResponseLogScrubbingPtrOutput{}) pulumi.RegisterOutputType(PrivateDnsZoneConfigOutput{}) pulumi.RegisterOutputType(PrivateDnsZoneConfigArrayOutput{}) pulumi.RegisterOutputType(PrivateDnsZoneConfigResponseOutput{}) pulumi.RegisterOutputType(PrivateDnsZoneConfigResponseArrayOutput{}) pulumi.RegisterOutputType(PrivateEndpointConnectionResponseOutput{}) pulumi.RegisterOutputType(PrivateEndpointConnectionResponseArrayOutput{}) + pulumi.RegisterOutputType(PrivateEndpointIPConfigurationOutput{}) + pulumi.RegisterOutputType(PrivateEndpointIPConfigurationArrayOutput{}) + pulumi.RegisterOutputType(PrivateEndpointIPConfigurationResponseOutput{}) + pulumi.RegisterOutputType(PrivateEndpointIPConfigurationResponseArrayOutput{}) pulumi.RegisterOutputType(PrivateEndpointResponseOutput{}) pulumi.RegisterOutputType(PrivateEndpointResponseArrayOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceTypeOutput{}) @@ -57559,102 +57412,4 @@ func init() { pulumi.RegisterOutputType(PrivateLinkServiceConnectionArrayOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionResponseOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionResponseArrayOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceConnectionStatePtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponseOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponsePtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationArrayOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationResponseOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationResponseArrayOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesAutoApprovalOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesAutoApprovalPtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseAutoApprovalOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseVisibilityOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseVisibilityPtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesVisibilityOutput{}) - pulumi.RegisterOutputType(PrivateLinkServicePropertiesVisibilityPtrOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceResponseOutput{}) - pulumi.RegisterOutputType(PrivateLinkServiceResponsePtrOutput{}) - pulumi.RegisterOutputType(ProbeOutput{}) - pulumi.RegisterOutputType(ProbeArrayOutput{}) - pulumi.RegisterOutputType(ProbeResponseOutput{}) - pulumi.RegisterOutputType(ProbeResponseArrayOutput{}) - pulumi.RegisterOutputType(PropagatedRouteTableOutput{}) - pulumi.RegisterOutputType(PropagatedRouteTablePtrOutput{}) - pulumi.RegisterOutputType(PropagatedRouteTableResponseOutput{}) - pulumi.RegisterOutputType(PropagatedRouteTableResponsePtrOutput{}) - pulumi.RegisterOutputType(ProtocolCustomSettingsFormatOutput{}) - pulumi.RegisterOutputType(ProtocolCustomSettingsFormatArrayOutput{}) - pulumi.RegisterOutputType(ProtocolCustomSettingsFormatResponseOutput{}) - pulumi.RegisterOutputType(ProtocolCustomSettingsFormatResponseArrayOutput{}) - pulumi.RegisterOutputType(PtrRecordOutput{}) - pulumi.RegisterOutputType(PtrRecordArrayOutput{}) - pulumi.RegisterOutputType(PtrRecordResponseOutput{}) - pulumi.RegisterOutputType(PtrRecordResponseArrayOutput{}) - pulumi.RegisterOutputType(PublicIPAddressTypeOutput{}) - pulumi.RegisterOutputType(PublicIPAddressTypePtrOutput{}) - pulumi.RegisterOutputType(PublicIPAddressDnsSettingsOutput{}) - pulumi.RegisterOutputType(PublicIPAddressDnsSettingsPtrOutput{}) - pulumi.RegisterOutputType(PublicIPAddressDnsSettingsResponseOutput{}) - pulumi.RegisterOutputType(PublicIPAddressDnsSettingsResponsePtrOutput{}) - pulumi.RegisterOutputType(PublicIPAddressResponseOutput{}) - pulumi.RegisterOutputType(PublicIPAddressResponsePtrOutput{}) - pulumi.RegisterOutputType(PublicIPAddressSkuOutput{}) - pulumi.RegisterOutputType(PublicIPAddressSkuPtrOutput{}) - pulumi.RegisterOutputType(PublicIPAddressSkuResponseOutput{}) - pulumi.RegisterOutputType(PublicIPAddressSkuResponsePtrOutput{}) - pulumi.RegisterOutputType(PublicIPPrefixSkuOutput{}) - pulumi.RegisterOutputType(PublicIPPrefixSkuPtrOutput{}) - pulumi.RegisterOutputType(PublicIPPrefixSkuResponseOutput{}) - pulumi.RegisterOutputType(PublicIPPrefixSkuResponsePtrOutput{}) - pulumi.RegisterOutputType(QosIpRangeOutput{}) - pulumi.RegisterOutputType(QosIpRangeArrayOutput{}) - pulumi.RegisterOutputType(QosIpRangeResponseOutput{}) - pulumi.RegisterOutputType(QosIpRangeResponseArrayOutput{}) - pulumi.RegisterOutputType(QosPortRangeOutput{}) - pulumi.RegisterOutputType(QosPortRangeArrayOutput{}) - pulumi.RegisterOutputType(QosPortRangeResponseOutput{}) - pulumi.RegisterOutputType(QosPortRangeResponseArrayOutput{}) - pulumi.RegisterOutputType(RadiusServerOutput{}) - pulumi.RegisterOutputType(RadiusServerArrayOutput{}) - pulumi.RegisterOutputType(RadiusServerResponseOutput{}) - pulumi.RegisterOutputType(RadiusServerResponseArrayOutput{}) - pulumi.RegisterOutputType(RecordSetResponseOutput{}) - pulumi.RegisterOutputType(RecordSetResponseArrayOutput{}) - pulumi.RegisterOutputType(ReferencedPublicIpAddressResponseOutput{}) - pulumi.RegisterOutputType(ReferencedPublicIpAddressResponseArrayOutput{}) - pulumi.RegisterOutputType(ResourceNavigationLinkResponseOutput{}) - pulumi.RegisterOutputType(ResourceNavigationLinkResponseArrayOutput{}) - pulumi.RegisterOutputType(RetentionPolicyParametersOutput{}) - pulumi.RegisterOutputType(RetentionPolicyParametersPtrOutput{}) - pulumi.RegisterOutputType(RetentionPolicyParametersResponseOutput{}) - pulumi.RegisterOutputType(RetentionPolicyParametersResponsePtrOutput{}) - pulumi.RegisterOutputType(RouteTypeOutput{}) - pulumi.RegisterOutputType(RouteTypeArrayOutput{}) - pulumi.RegisterOutputType(RouteFilterRuleTypeOutput{}) - pulumi.RegisterOutputType(RouteFilterRuleTypeArrayOutput{}) - pulumi.RegisterOutputType(RouteFilterRuleResponseOutput{}) - pulumi.RegisterOutputType(RouteFilterRuleResponseArrayOutput{}) - pulumi.RegisterOutputType(RouteResponseOutput{}) - pulumi.RegisterOutputType(RouteResponseArrayOutput{}) - pulumi.RegisterOutputType(RouteTableTypeOutput{}) - pulumi.RegisterOutputType(RouteTableTypePtrOutput{}) - pulumi.RegisterOutputType(RouteTableResponseOutput{}) - pulumi.RegisterOutputType(RouteTableResponsePtrOutput{}) - pulumi.RegisterOutputType(RoutingConfigurationOutput{}) - pulumi.RegisterOutputType(RoutingConfigurationPtrOutput{}) - pulumi.RegisterOutputType(RoutingConfigurationResponseOutput{}) - pulumi.RegisterOutputType(RoutingConfigurationResponsePtrOutput{}) - pulumi.RegisterOutputType(RoutingPolicyOutput{}) - pulumi.RegisterOutputType(RoutingPolicyArrayOutput{}) - pulumi.RegisterOutputType(RoutingPolicyResponseOutput{}) - pulumi.RegisterOutputType(RoutingPolicyResponseArrayOutput{}) - pulumi.RegisterOutputType(RoutingRuleOutput{}) - pulumi.RegisterOutputType(RoutingRuleArrayOutput{}) - pulumi.RegisterOutputType(RoutingRuleLinkResponseOutput{}) - pulumi.RegisterOutputType(RoutingRuleLinkResponseArrayOutput{}) - pulumi.RegisterOutputType(RoutingRuleResponseOutput{}) - pulumi.RegisterOutputType(RoutingRuleResponseArrayOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes1.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes1.go similarity index 55% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes1.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes1.go index 8075d99f..23f254e0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/pulumiTypes1.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/pulumiTypes1.go @@ -7,7987 +7,17735 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Defines the Web Application Firewall policy for each routing rule (if applicable) -type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink struct { - // Resource ID. - Id *string `pulumi:"id"` +var _ = utilities.GetEnvOrDefault + +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionState struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired *string `pulumi:"actionsRequired"` + // The reason for approval/rejection of the connection. + Description *string `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *string `pulumi:"status"` } -// Defines the Web Application Firewall policy for each routing rule (if applicable) -type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput struct{ *pulumi.OutputState } +// PrivateLinkServiceConnectionStateInput is an input type that accepts PrivateLinkServiceConnectionStateArgs and PrivateLinkServiceConnectionStateOutput values. +// You can construct a concrete instance of `PrivateLinkServiceConnectionStateInput` via: +// +// PrivateLinkServiceConnectionStateArgs{...} +type PrivateLinkServiceConnectionStateInput interface { + pulumi.Input -func (RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink)(nil)).Elem() + ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput + ToPrivateLinkServiceConnectionStateOutputWithContext(context.Context) PrivateLinkServiceConnectionStateOutput } -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { - return o +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateArgs struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired pulumi.StringPtrInput `pulumi:"actionsRequired"` + // The reason for approval/rejection of the connection. + Description pulumi.StringPtrInput `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status pulumi.StringPtrInput `pulumi:"status"` } -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { - return o +func (PrivateLinkServiceConnectionStateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() } -// Resource ID. -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { + return i.ToPrivateLinkServiceConnectionStateOutputWithContext(context.Background()) } -type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput struct{ *pulumi.OutputState } +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput) +} -func (RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink)(nil)).Elem() +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { + return i.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) } -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { - return o +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput).ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx) } -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { - return o +// PrivateLinkServiceConnectionStatePtrInput is an input type that accepts PrivateLinkServiceConnectionStateArgs, PrivateLinkServiceConnectionStatePtr and PrivateLinkServiceConnectionStatePtrOutput values. +// You can construct a concrete instance of `PrivateLinkServiceConnectionStatePtrInput` via: +// +// PrivateLinkServiceConnectionStateArgs{...} +// +// or: +// +// nil +type PrivateLinkServiceConnectionStatePtrInput interface { + pulumi.Input + + ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput + ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Context) PrivateLinkServiceConnectionStatePtrOutput } -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) Elem() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { - return o.ApplyT(func(v *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink { - if v != nil { - return *v - } - var ret RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink - return ret - }).(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) +type privateLinkServiceConnectionStatePtrType PrivateLinkServiceConnectionStateArgs + +func PrivateLinkServiceConnectionStatePtr(v *PrivateLinkServiceConnectionStateArgs) PrivateLinkServiceConnectionStatePtrInput { + return (*privateLinkServiceConnectionStatePtrType)(v) } -// Resource ID. -func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (*privateLinkServiceConnectionStatePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceConnectionState)(nil)).Elem() } -// Defines the Web Application Firewall policy for each routing rule (if applicable) -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink struct { - // Resource ID. - Id *string `pulumi:"id"` +func (i *privateLinkServiceConnectionStatePtrType) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { + return i.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) } -// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput is an input type that accepts RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs and RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput values. -// You can construct a concrete instance of `RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput` via: -// -// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs{...} -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput interface { - pulumi.Input +func (i *privateLinkServiceConnectionStatePtrType) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStatePtrOutput) +} - ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput - ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServiceConnectionStateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() } -// Defines the Web Application Firewall policy for each routing rule (if applicable) -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { + return o } -func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { + return o } -func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { - return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(context.Background()) +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { + return o.ToPrivateLinkServiceConnectionStatePtrOutputWithContext(context.Background()) } -func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServiceConnectionState) *PrivateLinkServiceConnectionState { + return &v + }).(PrivateLinkServiceConnectionStatePtrOutput) } -func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStateOutput) ActionsRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.ActionsRequired }).(pulumi.StringPtrOutput) } -func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput).ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx) +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStateOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Description }).(pulumi.StringPtrOutput) } -// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput is an input type that accepts RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs, RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtr and RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput values. -// You can construct a concrete instance of `RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput` via: -// -// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs{...} -// -// or: -// -// nil -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput interface { - pulumi.Input +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStateOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Status }).(pulumi.StringPtrOutput) +} - ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput - ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput +type PrivateLinkServiceConnectionStatePtrOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServiceConnectionStatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceConnectionState)(nil)).Elem() } -type routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs +func (o PrivateLinkServiceConnectionStatePtrOutput) ToPrivateLinkServiceConnectionStatePtrOutput() PrivateLinkServiceConnectionStatePtrOutput { + return o +} -func RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtr(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput { - return (*routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType)(v) +func (o PrivateLinkServiceConnectionStatePtrOutput) ToPrivateLinkServiceConnectionStatePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStatePtrOutput { + return o } -func (*routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +func (o PrivateLinkServiceConnectionStatePtrOutput) Elem() PrivateLinkServiceConnectionStateOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionState) PrivateLinkServiceConnectionState { + if v != nil { + return *v + } + var ret PrivateLinkServiceConnectionState + return ret + }).(PrivateLinkServiceConnectionStateOutput) } -func (i *routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStatePtrOutput) ActionsRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { + if v == nil { + return nil + } + return v.ActionsRequired + }).(pulumi.StringPtrOutput) } -func (i *routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStatePtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) } -// Defines the Web Application Firewall policy for each routing rule (if applicable) -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput struct{ *pulumi.OutputState } +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStatePtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionState) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} -func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateResponse struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired *string `pulumi:"actionsRequired"` + // The reason for approval/rejection of the connection. + Description *string `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *string `pulumi:"status"` } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateResponseOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServiceConnectionStateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionStateResponse)(nil)).Elem() +} + +func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutput() PrivateLinkServiceConnectionStateResponseOutput { return o } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { +func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponseOutput { return o } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return o.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStateResponseOutput) ActionsRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.ActionsRequired }).(pulumi.StringPtrOutput) } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { - return &v - }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStateResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *string { return v.Id }).(pulumi.StringPtrOutput) +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStateResponseOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Status }).(pulumi.StringPtrOutput) } -type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput struct{ *pulumi.OutputState } +type PrivateLinkServiceConnectionStateResponsePtrOutput struct{ *pulumi.OutputState } -func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +func (PrivateLinkServiceConnectionStateResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceConnectionStateResponse)(nil)).Elem() } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ToPrivateLinkServiceConnectionStateResponsePtrOutput() PrivateLinkServiceConnectionStateResponsePtrOutput { return o } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ToPrivateLinkServiceConnectionStateResponsePtrOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponsePtrOutput { return o } -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) Elem() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { - return o.ApplyT(func(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Elem() PrivateLinkServiceConnectionStateResponseOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) PrivateLinkServiceConnectionStateResponse { if v != nil { return *v } - var ret RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink + var ret PrivateLinkServiceConnectionStateResponse return ret - }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) + }).(PrivateLinkServiceConnectionStateResponseOutput) } -// Resource ID. -func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *string { +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) ActionsRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { if v == nil { return nil } - return v.Id + return v.ActionsRequired }).(pulumi.StringPtrOutput) } -// One or more actions that will execute, modifying the request and/or response. -type RulesEngineAction struct { - // A list of header actions to apply from the request from AFD to the origin. - RequestHeaderActions []HeaderAction `pulumi:"requestHeaderActions"` - // A list of header actions to apply from the response from AFD to the client. - ResponseHeaderActions []HeaderAction `pulumi:"responseHeaderActions"` - // Override the route configuration. - RouteConfigurationOverride interface{} `pulumi:"routeConfigurationOverride"` +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) } -// RulesEngineActionInput is an input type that accepts RulesEngineActionArgs and RulesEngineActionOutput values. -// You can construct a concrete instance of `RulesEngineActionInput` via: +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStateResponsePtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceConnectionStateResponse) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + +// The private link service ip configuration. +type PrivateLinkServiceIpConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // The name of private link service ip configuration. + Name *string `pulumi:"name"` + // Whether the ip configuration is primary or not. + Primary *bool `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress *string `pulumi:"privateIPAddress"` + // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. + PrivateIPAddressVersion *string `pulumi:"privateIPAddressVersion"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // The reference to the subnet resource. + Subnet *SubnetType `pulumi:"subnet"` +} + +// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfiguration +func (val *PrivateLinkServiceIpConfiguration) Defaults() *PrivateLinkServiceIpConfiguration { + if val == nil { + return nil + } + tmp := *val + tmp.Subnet = tmp.Subnet.Defaults() + + return &tmp +} + +// PrivateLinkServiceIpConfigurationInput is an input type that accepts PrivateLinkServiceIpConfigurationArgs and PrivateLinkServiceIpConfigurationOutput values. +// You can construct a concrete instance of `PrivateLinkServiceIpConfigurationInput` via: // -// RulesEngineActionArgs{...} -type RulesEngineActionInput interface { +// PrivateLinkServiceIpConfigurationArgs{...} +type PrivateLinkServiceIpConfigurationInput interface { pulumi.Input - ToRulesEngineActionOutput() RulesEngineActionOutput - ToRulesEngineActionOutputWithContext(context.Context) RulesEngineActionOutput + ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput + ToPrivateLinkServiceIpConfigurationOutputWithContext(context.Context) PrivateLinkServiceIpConfigurationOutput } -// One or more actions that will execute, modifying the request and/or response. -type RulesEngineActionArgs struct { - // A list of header actions to apply from the request from AFD to the origin. - RequestHeaderActions HeaderActionArrayInput `pulumi:"requestHeaderActions"` - // A list of header actions to apply from the response from AFD to the client. - ResponseHeaderActions HeaderActionArrayInput `pulumi:"responseHeaderActions"` - // Override the route configuration. - RouteConfigurationOverride pulumi.Input `pulumi:"routeConfigurationOverride"` +// The private link service ip configuration. +type PrivateLinkServiceIpConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of private link service ip configuration. + Name pulumi.StringPtrInput `pulumi:"name"` + // Whether the ip configuration is primary or not. + Primary pulumi.BoolPtrInput `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress pulumi.StringPtrInput `pulumi:"privateIPAddress"` + // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. + PrivateIPAddressVersion pulumi.StringPtrInput `pulumi:"privateIPAddressVersion"` + // The private IP address allocation method. + PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` + // The reference to the subnet resource. + Subnet SubnetTypePtrInput `pulumi:"subnet"` } -func (RulesEngineActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineAction)(nil)).Elem() +// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfigurationArgs +func (val *PrivateLinkServiceIpConfigurationArgs) Defaults() *PrivateLinkServiceIpConfigurationArgs { + if val == nil { + return nil + } + tmp := *val + + return &tmp +} +func (PrivateLinkServiceIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceIpConfiguration)(nil)).Elem() } -func (i RulesEngineActionArgs) ToRulesEngineActionOutput() RulesEngineActionOutput { - return i.ToRulesEngineActionOutputWithContext(context.Background()) +func (i PrivateLinkServiceIpConfigurationArgs) ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput { + return i.ToPrivateLinkServiceIpConfigurationOutputWithContext(context.Background()) } -func (i RulesEngineActionArgs) ToRulesEngineActionOutputWithContext(ctx context.Context) RulesEngineActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RulesEngineActionOutput) +func (i PrivateLinkServiceIpConfigurationArgs) ToPrivateLinkServiceIpConfigurationOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceIpConfigurationOutput) } -// One or more actions that will execute, modifying the request and/or response. -type RulesEngineActionOutput struct{ *pulumi.OutputState } +// PrivateLinkServiceIpConfigurationArrayInput is an input type that accepts PrivateLinkServiceIpConfigurationArray and PrivateLinkServiceIpConfigurationArrayOutput values. +// You can construct a concrete instance of `PrivateLinkServiceIpConfigurationArrayInput` via: +// +// PrivateLinkServiceIpConfigurationArray{ PrivateLinkServiceIpConfigurationArgs{...} } +type PrivateLinkServiceIpConfigurationArrayInput interface { + pulumi.Input -func (RulesEngineActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineAction)(nil)).Elem() + ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput + ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(context.Context) PrivateLinkServiceIpConfigurationArrayOutput } -func (o RulesEngineActionOutput) ToRulesEngineActionOutput() RulesEngineActionOutput { - return o +type PrivateLinkServiceIpConfigurationArray []PrivateLinkServiceIpConfigurationInput + +func (PrivateLinkServiceIpConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceIpConfiguration)(nil)).Elem() } -func (o RulesEngineActionOutput) ToRulesEngineActionOutputWithContext(ctx context.Context) RulesEngineActionOutput { - return o +func (i PrivateLinkServiceIpConfigurationArray) ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput { + return i.ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(context.Background()) } -// A list of header actions to apply from the request from AFD to the origin. -func (o RulesEngineActionOutput) RequestHeaderActions() HeaderActionArrayOutput { - return o.ApplyT(func(v RulesEngineAction) []HeaderAction { return v.RequestHeaderActions }).(HeaderActionArrayOutput) +func (i PrivateLinkServiceIpConfigurationArray) ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceIpConfigurationArrayOutput) } -// A list of header actions to apply from the response from AFD to the client. -func (o RulesEngineActionOutput) ResponseHeaderActions() HeaderActionArrayOutput { - return o.ApplyT(func(v RulesEngineAction) []HeaderAction { return v.ResponseHeaderActions }).(HeaderActionArrayOutput) +// The private link service ip configuration. +type PrivateLinkServiceIpConfigurationOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServiceIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceIpConfiguration)(nil)).Elem() } -// Override the route configuration. -func (o RulesEngineActionOutput) RouteConfigurationOverride() pulumi.AnyOutput { - return o.ApplyT(func(v RulesEngineAction) interface{} { return v.RouteConfigurationOverride }).(pulumi.AnyOutput) +func (o PrivateLinkServiceIpConfigurationOutput) ToPrivateLinkServiceIpConfigurationOutput() PrivateLinkServiceIpConfigurationOutput { + return o } -// One or more actions that will execute, modifying the request and/or response. -type RulesEngineActionResponse struct { - // A list of header actions to apply from the request from AFD to the origin. - RequestHeaderActions []HeaderActionResponse `pulumi:"requestHeaderActions"` - // A list of header actions to apply from the response from AFD to the client. - ResponseHeaderActions []HeaderActionResponse `pulumi:"responseHeaderActions"` - // Override the route configuration. - RouteConfigurationOverride interface{} `pulumi:"routeConfigurationOverride"` +func (o PrivateLinkServiceIpConfigurationOutput) ToPrivateLinkServiceIpConfigurationOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationOutput { + return o } -// One or more actions that will execute, modifying the request and/or response. -type RulesEngineActionResponseOutput struct{ *pulumi.OutputState } - -func (RulesEngineActionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineActionResponse)(nil)).Elem() +// Resource ID. +func (o PrivateLinkServiceIpConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o RulesEngineActionResponseOutput) ToRulesEngineActionResponseOutput() RulesEngineActionResponseOutput { - return o +// The name of private link service ip configuration. +func (o PrivateLinkServiceIpConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o RulesEngineActionResponseOutput) ToRulesEngineActionResponseOutputWithContext(ctx context.Context) RulesEngineActionResponseOutput { - return o +// Whether the ip configuration is primary or not. +func (o PrivateLinkServiceIpConfigurationOutput) Primary() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *bool { return v.Primary }).(pulumi.BoolPtrOutput) } -// A list of header actions to apply from the request from AFD to the origin. -func (o RulesEngineActionResponseOutput) RequestHeaderActions() HeaderActionResponseArrayOutput { - return o.ApplyT(func(v RulesEngineActionResponse) []HeaderActionResponse { return v.RequestHeaderActions }).(HeaderActionResponseArrayOutput) +// The private IP address of the IP configuration. +func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -// A list of header actions to apply from the response from AFD to the client. -func (o RulesEngineActionResponseOutput) ResponseHeaderActions() HeaderActionResponseArrayOutput { - return o.ApplyT(func(v RulesEngineActionResponse) []HeaderActionResponse { return v.ResponseHeaderActions }).(HeaderActionResponseArrayOutput) +// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. +func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAddressVersion }).(pulumi.StringPtrOutput) } -// Override the route configuration. -func (o RulesEngineActionResponseOutput) RouteConfigurationOverride() pulumi.AnyOutput { - return o.ApplyT(func(v RulesEngineActionResponse) interface{} { return v.RouteConfigurationOverride }).(pulumi.AnyOutput) +// The private IP address allocation method. +func (o PrivateLinkServiceIpConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) } -// Define a match condition -type RulesEngineMatchCondition struct { - // Describes if this is negate condition or not - NegateCondition *bool `pulumi:"negateCondition"` - // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. - RulesEngineMatchValue []string `pulumi:"rulesEngineMatchValue"` - // Match Variable - RulesEngineMatchVariable string `pulumi:"rulesEngineMatchVariable"` - // Describes operator to apply to the match condition. - RulesEngineOperator string `pulumi:"rulesEngineOperator"` - // Name of selector in RequestHeader or RequestBody to be matched - Selector *string `pulumi:"selector"` - // List of transforms - Transforms []string `pulumi:"transforms"` +// The reference to the subnet resource. +func (o PrivateLinkServiceIpConfigurationOutput) Subnet() SubnetTypePtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfiguration) *SubnetType { return v.Subnet }).(SubnetTypePtrOutput) } -// RulesEngineMatchConditionInput is an input type that accepts RulesEngineMatchConditionArgs and RulesEngineMatchConditionOutput values. -// You can construct a concrete instance of `RulesEngineMatchConditionInput` via: -// -// RulesEngineMatchConditionArgs{...} -type RulesEngineMatchConditionInput interface { - pulumi.Input +type PrivateLinkServiceIpConfigurationArrayOutput struct{ *pulumi.OutputState } - ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput - ToRulesEngineMatchConditionOutputWithContext(context.Context) RulesEngineMatchConditionOutput +func (PrivateLinkServiceIpConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceIpConfiguration)(nil)).Elem() } -// Define a match condition -type RulesEngineMatchConditionArgs struct { - // Describes if this is negate condition or not - NegateCondition pulumi.BoolPtrInput `pulumi:"negateCondition"` - // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. - RulesEngineMatchValue pulumi.StringArrayInput `pulumi:"rulesEngineMatchValue"` - // Match Variable - RulesEngineMatchVariable pulumi.StringInput `pulumi:"rulesEngineMatchVariable"` - // Describes operator to apply to the match condition. - RulesEngineOperator pulumi.StringInput `pulumi:"rulesEngineOperator"` - // Name of selector in RequestHeader or RequestBody to be matched - Selector pulumi.StringPtrInput `pulumi:"selector"` - // List of transforms - Transforms pulumi.StringArrayInput `pulumi:"transforms"` +func (o PrivateLinkServiceIpConfigurationArrayOutput) ToPrivateLinkServiceIpConfigurationArrayOutput() PrivateLinkServiceIpConfigurationArrayOutput { + return o } -func (RulesEngineMatchConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineMatchCondition)(nil)).Elem() +func (o PrivateLinkServiceIpConfigurationArrayOutput) ToPrivateLinkServiceIpConfigurationArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationArrayOutput { + return o } -func (i RulesEngineMatchConditionArgs) ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput { - return i.ToRulesEngineMatchConditionOutputWithContext(context.Background()) +func (o PrivateLinkServiceIpConfigurationArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceIpConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceIpConfiguration { + return vs[0].([]PrivateLinkServiceIpConfiguration)[vs[1].(int)] + }).(PrivateLinkServiceIpConfigurationOutput) } -func (i RulesEngineMatchConditionArgs) ToRulesEngineMatchConditionOutputWithContext(ctx context.Context) RulesEngineMatchConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RulesEngineMatchConditionOutput) +// The private link service ip configuration. +type PrivateLinkServiceIpConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of private link service ip configuration. + Name *string `pulumi:"name"` + // Whether the ip configuration is primary or not. + Primary *bool `pulumi:"primary"` + // The private IP address of the IP configuration. + PrivateIPAddress *string `pulumi:"privateIPAddress"` + // Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. + PrivateIPAddressVersion *string `pulumi:"privateIPAddressVersion"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // The provisioning state of the private link service IP configuration resource. + ProvisioningState string `pulumi:"provisioningState"` + // The reference to the subnet resource. + Subnet *SubnetResponse `pulumi:"subnet"` + // The resource type. + Type string `pulumi:"type"` } -// RulesEngineMatchConditionArrayInput is an input type that accepts RulesEngineMatchConditionArray and RulesEngineMatchConditionArrayOutput values. -// You can construct a concrete instance of `RulesEngineMatchConditionArrayInput` via: -// -// RulesEngineMatchConditionArray{ RulesEngineMatchConditionArgs{...} } -type RulesEngineMatchConditionArrayInput interface { - pulumi.Input +// Defaults sets the appropriate defaults for PrivateLinkServiceIpConfigurationResponse +func (val *PrivateLinkServiceIpConfigurationResponse) Defaults() *PrivateLinkServiceIpConfigurationResponse { + if val == nil { + return nil + } + tmp := *val + tmp.Subnet = tmp.Subnet.Defaults() - ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput - ToRulesEngineMatchConditionArrayOutputWithContext(context.Context) RulesEngineMatchConditionArrayOutput + return &tmp } -type RulesEngineMatchConditionArray []RulesEngineMatchConditionInput +// The private link service ip configuration. +type PrivateLinkServiceIpConfigurationResponseOutput struct{ *pulumi.OutputState } -func (RulesEngineMatchConditionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineMatchCondition)(nil)).Elem() +func (PrivateLinkServiceIpConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceIpConfigurationResponse)(nil)).Elem() } -func (i RulesEngineMatchConditionArray) ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput { - return i.ToRulesEngineMatchConditionArrayOutputWithContext(context.Background()) +func (o PrivateLinkServiceIpConfigurationResponseOutput) ToPrivateLinkServiceIpConfigurationResponseOutput() PrivateLinkServiceIpConfigurationResponseOutput { + return o } -func (i RulesEngineMatchConditionArray) ToRulesEngineMatchConditionArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RulesEngineMatchConditionArrayOutput) +func (o PrivateLinkServiceIpConfigurationResponseOutput) ToPrivateLinkServiceIpConfigurationResponseOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationResponseOutput { + return o } -// Define a match condition -type RulesEngineMatchConditionOutput struct{ *pulumi.OutputState } +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +} -func (RulesEngineMatchConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineMatchCondition)(nil)).Elem() +// Resource ID. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o RulesEngineMatchConditionOutput) ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput { - return o +// The name of private link service ip configuration. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o RulesEngineMatchConditionOutput) ToRulesEngineMatchConditionOutputWithContext(ctx context.Context) RulesEngineMatchConditionOutput { - return o +// Whether the ip configuration is primary or not. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Primary() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *bool { return v.Primary }).(pulumi.BoolPtrOutput) } -// Describes if this is negate condition or not -func (o RulesEngineMatchConditionOutput) NegateCondition() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) *bool { return v.NegateCondition }).(pulumi.BoolPtrOutput) +// The private IP address of the IP configuration. +func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAddress }).(pulumi.StringPtrOutput) } -// Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. -func (o RulesEngineMatchConditionOutput) RulesEngineMatchValue() pulumi.StringArrayOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) []string { return v.RulesEngineMatchValue }).(pulumi.StringArrayOutput) +// Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. +func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAddressVersion }).(pulumi.StringPtrOutput) } -// Match Variable -func (o RulesEngineMatchConditionOutput) RulesEngineMatchVariable() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) string { return v.RulesEngineMatchVariable }).(pulumi.StringOutput) +// The private IP address allocation method. +func (o PrivateLinkServiceIpConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) } -// Describes operator to apply to the match condition. -func (o RulesEngineMatchConditionOutput) RulesEngineOperator() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) string { return v.RulesEngineOperator }).(pulumi.StringOutput) +// The provisioning state of the private link service IP configuration resource. +func (o PrivateLinkServiceIpConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Name of selector in RequestHeader or RequestBody to be matched -func (o RulesEngineMatchConditionOutput) Selector() pulumi.StringPtrOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) *string { return v.Selector }).(pulumi.StringPtrOutput) +// The reference to the subnet resource. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Subnet() SubnetResponsePtrOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) *SubnetResponse { return v.Subnet }).(SubnetResponsePtrOutput) } -// List of transforms -func (o RulesEngineMatchConditionOutput) Transforms() pulumi.StringArrayOutput { - return o.ApplyT(func(v RulesEngineMatchCondition) []string { return v.Transforms }).(pulumi.StringArrayOutput) +// The resource type. +func (o PrivateLinkServiceIpConfigurationResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceIpConfigurationResponse) string { return v.Type }).(pulumi.StringOutput) } -type RulesEngineMatchConditionArrayOutput struct{ *pulumi.OutputState } +type PrivateLinkServiceIpConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (RulesEngineMatchConditionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineMatchCondition)(nil)).Elem() +func (PrivateLinkServiceIpConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateLinkServiceIpConfigurationResponse)(nil)).Elem() } -func (o RulesEngineMatchConditionArrayOutput) ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput { +func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) ToPrivateLinkServiceIpConfigurationResponseArrayOutput() PrivateLinkServiceIpConfigurationResponseArrayOutput { return o } -func (o RulesEngineMatchConditionArrayOutput) ToRulesEngineMatchConditionArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionArrayOutput { +func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) ToPrivateLinkServiceIpConfigurationResponseArrayOutputWithContext(ctx context.Context) PrivateLinkServiceIpConfigurationResponseArrayOutput { return o } -func (o RulesEngineMatchConditionArrayOutput) Index(i pulumi.IntInput) RulesEngineMatchConditionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineMatchCondition { - return vs[0].([]RulesEngineMatchCondition)[vs[1].(int)] - }).(RulesEngineMatchConditionOutput) +func (o PrivateLinkServiceIpConfigurationResponseArrayOutput) Index(i pulumi.IntInput) PrivateLinkServiceIpConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateLinkServiceIpConfigurationResponse { + return vs[0].([]PrivateLinkServiceIpConfigurationResponse)[vs[1].(int)] + }).(PrivateLinkServiceIpConfigurationResponseOutput) } -// Define a match condition -type RulesEngineMatchConditionResponse struct { - // Describes if this is negate condition or not - NegateCondition *bool `pulumi:"negateCondition"` - // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. - RulesEngineMatchValue []string `pulumi:"rulesEngineMatchValue"` - // Match Variable - RulesEngineMatchVariable string `pulumi:"rulesEngineMatchVariable"` - // Describes operator to apply to the match condition. - RulesEngineOperator string `pulumi:"rulesEngineOperator"` - // Name of selector in RequestHeader or RequestBody to be matched - Selector *string `pulumi:"selector"` - // List of transforms - Transforms []string `pulumi:"transforms"` +// The auto-approval list of the private link service. +type PrivateLinkServicePropertiesAutoApproval struct { + // The list of subscriptions. + Subscriptions []string `pulumi:"subscriptions"` } -// Define a match condition -type RulesEngineMatchConditionResponseOutput struct{ *pulumi.OutputState } +// PrivateLinkServicePropertiesAutoApprovalInput is an input type that accepts PrivateLinkServicePropertiesAutoApprovalArgs and PrivateLinkServicePropertiesAutoApprovalOutput values. +// You can construct a concrete instance of `PrivateLinkServicePropertiesAutoApprovalInput` via: +// +// PrivateLinkServicePropertiesAutoApprovalArgs{...} +type PrivateLinkServicePropertiesAutoApprovalInput interface { + pulumi.Input -func (RulesEngineMatchConditionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineMatchConditionResponse)(nil)).Elem() + ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput + ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(context.Context) PrivateLinkServicePropertiesAutoApprovalOutput } -func (o RulesEngineMatchConditionResponseOutput) ToRulesEngineMatchConditionResponseOutput() RulesEngineMatchConditionResponseOutput { - return o +// The auto-approval list of the private link service. +type PrivateLinkServicePropertiesAutoApprovalArgs struct { + // The list of subscriptions. + Subscriptions pulumi.StringArrayInput `pulumi:"subscriptions"` } -func (o RulesEngineMatchConditionResponseOutput) ToRulesEngineMatchConditionResponseOutputWithContext(ctx context.Context) RulesEngineMatchConditionResponseOutput { - return o +func (PrivateLinkServicePropertiesAutoApprovalArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() } -// Describes if this is negate condition or not -func (o RulesEngineMatchConditionResponseOutput) NegateCondition() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) *bool { return v.NegateCondition }).(pulumi.BoolPtrOutput) +func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput { + return i.ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(context.Background()) } -// Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. -func (o RulesEngineMatchConditionResponseOutput) RulesEngineMatchValue() pulumi.StringArrayOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) []string { return v.RulesEngineMatchValue }).(pulumi.StringArrayOutput) +func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalOutput) } -// Match Variable -func (o RulesEngineMatchConditionResponseOutput) RulesEngineMatchVariable() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) string { return v.RulesEngineMatchVariable }).(pulumi.StringOutput) +func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return i.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) } -// Describes operator to apply to the match condition. -func (o RulesEngineMatchConditionResponseOutput) RulesEngineOperator() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) string { return v.RulesEngineOperator }).(pulumi.StringOutput) +func (i PrivateLinkServicePropertiesAutoApprovalArgs) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalOutput).ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx) } -// Name of selector in RequestHeader or RequestBody to be matched -func (o RulesEngineMatchConditionResponseOutput) Selector() pulumi.StringPtrOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) *string { return v.Selector }).(pulumi.StringPtrOutput) +// PrivateLinkServicePropertiesAutoApprovalPtrInput is an input type that accepts PrivateLinkServicePropertiesAutoApprovalArgs, PrivateLinkServicePropertiesAutoApprovalPtr and PrivateLinkServicePropertiesAutoApprovalPtrOutput values. +// You can construct a concrete instance of `PrivateLinkServicePropertiesAutoApprovalPtrInput` via: +// +// PrivateLinkServicePropertiesAutoApprovalArgs{...} +// +// or: +// +// nil +type PrivateLinkServicePropertiesAutoApprovalPtrInput interface { + pulumi.Input + + ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput + ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput } -// List of transforms -func (o RulesEngineMatchConditionResponseOutput) Transforms() pulumi.StringArrayOutput { - return o.ApplyT(func(v RulesEngineMatchConditionResponse) []string { return v.Transforms }).(pulumi.StringArrayOutput) +type privateLinkServicePropertiesAutoApprovalPtrType PrivateLinkServicePropertiesAutoApprovalArgs + +func PrivateLinkServicePropertiesAutoApprovalPtr(v *PrivateLinkServicePropertiesAutoApprovalArgs) PrivateLinkServicePropertiesAutoApprovalPtrInput { + return (*privateLinkServicePropertiesAutoApprovalPtrType)(v) } -type RulesEngineMatchConditionResponseArrayOutput struct{ *pulumi.OutputState } +func (*privateLinkServicePropertiesAutoApprovalPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() +} -func (RulesEngineMatchConditionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineMatchConditionResponse)(nil)).Elem() +func (i *privateLinkServicePropertiesAutoApprovalPtrType) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return i.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) } -func (o RulesEngineMatchConditionResponseArrayOutput) ToRulesEngineMatchConditionResponseArrayOutput() RulesEngineMatchConditionResponseArrayOutput { +func (i *privateLinkServicePropertiesAutoApprovalPtrType) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) +} + +// The auto-approval list of the private link service. +type PrivateLinkServicePropertiesAutoApprovalOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesAutoApprovalOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() +} + +func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalOutput() PrivateLinkServicePropertiesAutoApprovalOutput { return o } -func (o RulesEngineMatchConditionResponseArrayOutput) ToRulesEngineMatchConditionResponseArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionResponseArrayOutput { +func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalOutput { return o } -func (o RulesEngineMatchConditionResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineMatchConditionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineMatchConditionResponse { - return vs[0].([]RulesEngineMatchConditionResponse)[vs[1].(int)] - }).(RulesEngineMatchConditionResponseOutput) +func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return o.ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(context.Background()) } -// A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response. -type RulesEngineResponse struct { - // Resource ID. - Id string `pulumi:"id"` - // Resource name. - Name string `pulumi:"name"` - // Resource status. - ResourceState string `pulumi:"resourceState"` - // A list of rules that define a particular Rules Engine Configuration. - Rules []RulesEngineRuleResponse `pulumi:"rules"` - // Resource type. - Type string `pulumi:"type"` +func (o PrivateLinkServicePropertiesAutoApprovalOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServicePropertiesAutoApproval) *PrivateLinkServicePropertiesAutoApproval { + return &v + }).(PrivateLinkServicePropertiesAutoApprovalPtrOutput) } -// A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response. -type RulesEngineResponseOutput struct{ *pulumi.OutputState } +// The list of subscriptions. +func (o PrivateLinkServicePropertiesAutoApprovalOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServicePropertiesAutoApproval) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +} -func (RulesEngineResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineResponse)(nil)).Elem() +type PrivateLinkServicePropertiesAutoApprovalPtrOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesAutoApprovalPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesAutoApproval)(nil)).Elem() } -func (o RulesEngineResponseOutput) ToRulesEngineResponseOutput() RulesEngineResponseOutput { +func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutput() PrivateLinkServicePropertiesAutoApprovalPtrOutput { return o } -func (o RulesEngineResponseOutput) ToRulesEngineResponseOutputWithContext(ctx context.Context) RulesEngineResponseOutput { +func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesAutoApprovalPtrOutput { return o } -// Resource ID. -func (o RulesEngineResponseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineResponse) string { return v.Id }).(pulumi.StringOutput) +func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) Elem() PrivateLinkServicePropertiesAutoApprovalOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesAutoApproval) PrivateLinkServicePropertiesAutoApproval { + if v != nil { + return *v + } + var ret PrivateLinkServicePropertiesAutoApproval + return ret + }).(PrivateLinkServicePropertiesAutoApprovalOutput) } -// Resource name. -func (o RulesEngineResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineResponse) string { return v.Name }).(pulumi.StringOutput) +// The list of subscriptions. +func (o PrivateLinkServicePropertiesAutoApprovalPtrOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesAutoApproval) []string { + if v == nil { + return nil + } + return v.Subscriptions + }).(pulumi.StringArrayOutput) } -// Resource status. -func (o RulesEngineResponseOutput) ResourceState() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineResponse) string { return v.ResourceState }).(pulumi.StringOutput) +// The auto-approval list of the private link service. +type PrivateLinkServicePropertiesResponseAutoApproval struct { + // The list of subscriptions. + Subscriptions []string `pulumi:"subscriptions"` } -// A list of rules that define a particular Rules Engine Configuration. -func (o RulesEngineResponseOutput) Rules() RulesEngineRuleResponseArrayOutput { - return o.ApplyT(func(v RulesEngineResponse) []RulesEngineRuleResponse { return v.Rules }).(RulesEngineRuleResponseArrayOutput) -} +// The auto-approval list of the private link service. +type PrivateLinkServicePropertiesResponseAutoApprovalOutput struct{ *pulumi.OutputState } -// Resource type. -func (o RulesEngineResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineResponse) string { return v.Type }).(pulumi.StringOutput) +func (PrivateLinkServicePropertiesResponseAutoApprovalOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesResponseAutoApproval)(nil)).Elem() } -type RulesEngineResponseArrayOutput struct{ *pulumi.OutputState } - -func (RulesEngineResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineResponse)(nil)).Elem() +func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalOutput() PrivateLinkServicePropertiesResponseAutoApprovalOutput { + return o } -func (o RulesEngineResponseArrayOutput) ToRulesEngineResponseArrayOutput() RulesEngineResponseArrayOutput { +func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseAutoApprovalOutput { return o } -func (o RulesEngineResponseArrayOutput) ToRulesEngineResponseArrayOutputWithContext(ctx context.Context) RulesEngineResponseArrayOutput { - return o +// The list of subscriptions. +func (o PrivateLinkServicePropertiesResponseAutoApprovalOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServicePropertiesResponseAutoApproval) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) } -func (o RulesEngineResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineResponse { - return vs[0].([]RulesEngineResponse)[vs[1].(int)] - }).(RulesEngineResponseOutput) +type PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesResponseAutoApproval)(nil)).Elem() } -// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. -type RulesEngineRule struct { - // Actions to perform on the request and response if all of the match conditions are met. - Action RulesEngineAction `pulumi:"action"` - // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. - MatchConditions []RulesEngineMatchCondition `pulumi:"matchConditions"` - // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. - MatchProcessingBehavior *string `pulumi:"matchProcessingBehavior"` - // A name to refer to this specific rule. - Name string `pulumi:"name"` - // A priority assigned to this rule. - Priority int `pulumi:"priority"` +func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalPtrOutput() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { + return o } -// RulesEngineRuleInput is an input type that accepts RulesEngineRuleArgs and RulesEngineRuleOutput values. -// You can construct a concrete instance of `RulesEngineRuleInput` via: +func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) ToPrivateLinkServicePropertiesResponseAutoApprovalPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { + return o +} + +func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) Elem() PrivateLinkServicePropertiesResponseAutoApprovalOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseAutoApproval) PrivateLinkServicePropertiesResponseAutoApproval { + if v != nil { + return *v + } + var ret PrivateLinkServicePropertiesResponseAutoApproval + return ret + }).(PrivateLinkServicePropertiesResponseAutoApprovalOutput) +} + +// The list of subscriptions. +func (o PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseAutoApproval) []string { + if v == nil { + return nil + } + return v.Subscriptions + }).(pulumi.StringArrayOutput) +} + +// The visibility list of the private link service. +type PrivateLinkServicePropertiesResponseVisibility struct { + // The list of subscriptions. + Subscriptions []string `pulumi:"subscriptions"` +} + +// The visibility list of the private link service. +type PrivateLinkServicePropertiesResponseVisibilityOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesResponseVisibilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesResponseVisibility)(nil)).Elem() +} + +func (o PrivateLinkServicePropertiesResponseVisibilityOutput) ToPrivateLinkServicePropertiesResponseVisibilityOutput() PrivateLinkServicePropertiesResponseVisibilityOutput { + return o +} + +func (o PrivateLinkServicePropertiesResponseVisibilityOutput) ToPrivateLinkServicePropertiesResponseVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseVisibilityOutput { + return o +} + +// The list of subscriptions. +func (o PrivateLinkServicePropertiesResponseVisibilityOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServicePropertiesResponseVisibility) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) +} + +type PrivateLinkServicePropertiesResponseVisibilityPtrOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesResponseVisibility)(nil)).Elem() +} + +func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ToPrivateLinkServicePropertiesResponseVisibilityPtrOutput() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { + return o +} + +func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) ToPrivateLinkServicePropertiesResponseVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesResponseVisibilityPtrOutput { + return o +} + +func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) Elem() PrivateLinkServicePropertiesResponseVisibilityOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseVisibility) PrivateLinkServicePropertiesResponseVisibility { + if v != nil { + return *v + } + var ret PrivateLinkServicePropertiesResponseVisibility + return ret + }).(PrivateLinkServicePropertiesResponseVisibilityOutput) +} + +// The list of subscriptions. +func (o PrivateLinkServicePropertiesResponseVisibilityPtrOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesResponseVisibility) []string { + if v == nil { + return nil + } + return v.Subscriptions + }).(pulumi.StringArrayOutput) +} + +// The visibility list of the private link service. +type PrivateLinkServicePropertiesVisibility struct { + // The list of subscriptions. + Subscriptions []string `pulumi:"subscriptions"` +} + +// PrivateLinkServicePropertiesVisibilityInput is an input type that accepts PrivateLinkServicePropertiesVisibilityArgs and PrivateLinkServicePropertiesVisibilityOutput values. +// You can construct a concrete instance of `PrivateLinkServicePropertiesVisibilityInput` via: // -// RulesEngineRuleArgs{...} -type RulesEngineRuleInput interface { +// PrivateLinkServicePropertiesVisibilityArgs{...} +type PrivateLinkServicePropertiesVisibilityInput interface { pulumi.Input - ToRulesEngineRuleOutput() RulesEngineRuleOutput - ToRulesEngineRuleOutputWithContext(context.Context) RulesEngineRuleOutput + ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput + ToPrivateLinkServicePropertiesVisibilityOutputWithContext(context.Context) PrivateLinkServicePropertiesVisibilityOutput } -// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. -type RulesEngineRuleArgs struct { - // Actions to perform on the request and response if all of the match conditions are met. - Action RulesEngineActionInput `pulumi:"action"` - // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. - MatchConditions RulesEngineMatchConditionArrayInput `pulumi:"matchConditions"` - // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. - MatchProcessingBehavior pulumi.StringPtrInput `pulumi:"matchProcessingBehavior"` - // A name to refer to this specific rule. - Name pulumi.StringInput `pulumi:"name"` - // A priority assigned to this rule. - Priority pulumi.IntInput `pulumi:"priority"` +// The visibility list of the private link service. +type PrivateLinkServicePropertiesVisibilityArgs struct { + // The list of subscriptions. + Subscriptions pulumi.StringArrayInput `pulumi:"subscriptions"` } -func (RulesEngineRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineRule)(nil)).Elem() +func (PrivateLinkServicePropertiesVisibilityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesVisibility)(nil)).Elem() } -func (i RulesEngineRuleArgs) ToRulesEngineRuleOutput() RulesEngineRuleOutput { - return i.ToRulesEngineRuleOutputWithContext(context.Background()) +func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput { + return i.ToPrivateLinkServicePropertiesVisibilityOutputWithContext(context.Background()) } -func (i RulesEngineRuleArgs) ToRulesEngineRuleOutputWithContext(ctx context.Context) RulesEngineRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RulesEngineRuleOutput) +func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityOutput) } -// RulesEngineRuleArrayInput is an input type that accepts RulesEngineRuleArray and RulesEngineRuleArrayOutput values. -// You can construct a concrete instance of `RulesEngineRuleArrayInput` via: +func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { + return i.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) +} + +func (i PrivateLinkServicePropertiesVisibilityArgs) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityOutput).ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx) +} + +// PrivateLinkServicePropertiesVisibilityPtrInput is an input type that accepts PrivateLinkServicePropertiesVisibilityArgs, PrivateLinkServicePropertiesVisibilityPtr and PrivateLinkServicePropertiesVisibilityPtrOutput values. +// You can construct a concrete instance of `PrivateLinkServicePropertiesVisibilityPtrInput` via: // -// RulesEngineRuleArray{ RulesEngineRuleArgs{...} } -type RulesEngineRuleArrayInput interface { +// PrivateLinkServicePropertiesVisibilityArgs{...} +// +// or: +// +// nil +type PrivateLinkServicePropertiesVisibilityPtrInput interface { pulumi.Input - ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput - ToRulesEngineRuleArrayOutputWithContext(context.Context) RulesEngineRuleArrayOutput + ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput + ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput } -type RulesEngineRuleArray []RulesEngineRuleInput +type privateLinkServicePropertiesVisibilityPtrType PrivateLinkServicePropertiesVisibilityArgs -func (RulesEngineRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineRule)(nil)).Elem() +func PrivateLinkServicePropertiesVisibilityPtr(v *PrivateLinkServicePropertiesVisibilityArgs) PrivateLinkServicePropertiesVisibilityPtrInput { + return (*privateLinkServicePropertiesVisibilityPtrType)(v) } -func (i RulesEngineRuleArray) ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput { - return i.ToRulesEngineRuleArrayOutputWithContext(context.Background()) +func (*privateLinkServicePropertiesVisibilityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesVisibility)(nil)).Elem() } -func (i RulesEngineRuleArray) ToRulesEngineRuleArrayOutputWithContext(ctx context.Context) RulesEngineRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RulesEngineRuleArrayOutput) +func (i *privateLinkServicePropertiesVisibilityPtrType) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { + return i.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) } -// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. -type RulesEngineRuleOutput struct{ *pulumi.OutputState } +func (i *privateLinkServicePropertiesVisibilityPtrType) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServicePropertiesVisibilityPtrOutput) +} -func (RulesEngineRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineRule)(nil)).Elem() +// The visibility list of the private link service. +type PrivateLinkServicePropertiesVisibilityOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServicePropertiesVisibilityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServicePropertiesVisibility)(nil)).Elem() } -func (o RulesEngineRuleOutput) ToRulesEngineRuleOutput() RulesEngineRuleOutput { +func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityOutput() PrivateLinkServicePropertiesVisibilityOutput { return o } -func (o RulesEngineRuleOutput) ToRulesEngineRuleOutputWithContext(ctx context.Context) RulesEngineRuleOutput { +func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityOutput { return o } -// Actions to perform on the request and response if all of the match conditions are met. -func (o RulesEngineRuleOutput) Action() RulesEngineActionOutput { - return o.ApplyT(func(v RulesEngineRule) RulesEngineAction { return v.Action }).(RulesEngineActionOutput) +func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { + return o.ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(context.Background()) } -// A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. -func (o RulesEngineRuleOutput) MatchConditions() RulesEngineMatchConditionArrayOutput { - return o.ApplyT(func(v RulesEngineRule) []RulesEngineMatchCondition { return v.MatchConditions }).(RulesEngineMatchConditionArrayOutput) +func (o PrivateLinkServicePropertiesVisibilityOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateLinkServicePropertiesVisibility) *PrivateLinkServicePropertiesVisibility { + return &v + }).(PrivateLinkServicePropertiesVisibilityPtrOutput) } -// If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. -func (o RulesEngineRuleOutput) MatchProcessingBehavior() pulumi.StringPtrOutput { - return o.ApplyT(func(v RulesEngineRule) *string { return v.MatchProcessingBehavior }).(pulumi.StringPtrOutput) +// The list of subscriptions. +func (o PrivateLinkServicePropertiesVisibilityOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServicePropertiesVisibility) []string { return v.Subscriptions }).(pulumi.StringArrayOutput) } -// A name to refer to this specific rule. -func (o RulesEngineRuleOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineRule) string { return v.Name }).(pulumi.StringOutput) -} +type PrivateLinkServicePropertiesVisibilityPtrOutput struct{ *pulumi.OutputState } -// A priority assigned to this rule. -func (o RulesEngineRuleOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RulesEngineRule) int { return v.Priority }).(pulumi.IntOutput) +func (PrivateLinkServicePropertiesVisibilityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServicePropertiesVisibility)(nil)).Elem() } -type RulesEngineRuleArrayOutput struct{ *pulumi.OutputState } - -func (RulesEngineRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineRule)(nil)).Elem() +func (o PrivateLinkServicePropertiesVisibilityPtrOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutput() PrivateLinkServicePropertiesVisibilityPtrOutput { + return o } -func (o RulesEngineRuleArrayOutput) ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput { +func (o PrivateLinkServicePropertiesVisibilityPtrOutput) ToPrivateLinkServicePropertiesVisibilityPtrOutputWithContext(ctx context.Context) PrivateLinkServicePropertiesVisibilityPtrOutput { return o } -func (o RulesEngineRuleArrayOutput) ToRulesEngineRuleArrayOutputWithContext(ctx context.Context) RulesEngineRuleArrayOutput { - return o +func (o PrivateLinkServicePropertiesVisibilityPtrOutput) Elem() PrivateLinkServicePropertiesVisibilityOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesVisibility) PrivateLinkServicePropertiesVisibility { + if v != nil { + return *v + } + var ret PrivateLinkServicePropertiesVisibility + return ret + }).(PrivateLinkServicePropertiesVisibilityOutput) } -func (o RulesEngineRuleArrayOutput) Index(i pulumi.IntInput) RulesEngineRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineRule { - return vs[0].([]RulesEngineRule)[vs[1].(int)] - }).(RulesEngineRuleOutput) +// The list of subscriptions. +func (o PrivateLinkServicePropertiesVisibilityPtrOutput) Subscriptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServicePropertiesVisibility) []string { + if v == nil { + return nil + } + return v.Subscriptions + }).(pulumi.StringArrayOutput) } -// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. -type RulesEngineRuleResponse struct { - // Actions to perform on the request and response if all of the match conditions are met. - Action RulesEngineActionResponse `pulumi:"action"` - // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. - MatchConditions []RulesEngineMatchConditionResponse `pulumi:"matchConditions"` - // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. - MatchProcessingBehavior *string `pulumi:"matchProcessingBehavior"` - // A name to refer to this specific rule. +// Private link service resource. +type PrivateLinkServiceResponse struct { + // The alias of the private link service. + Alias string `pulumi:"alias"` + // The auto-approval list of the private link service. + AutoApproval *PrivateLinkServicePropertiesResponseAutoApproval `pulumi:"autoApproval"` + // Whether the private link service is enabled for proxy protocol or not. + EnableProxyProtocol *bool `pulumi:"enableProxyProtocol"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The extended location of the load balancer. + ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` + // The list of Fqdn. + Fqdns []string `pulumi:"fqdns"` + // Resource ID. + Id *string `pulumi:"id"` + // An array of private link service IP configurations. + IpConfigurations []PrivateLinkServiceIpConfigurationResponse `pulumi:"ipConfigurations"` + // An array of references to the load balancer IP configurations. + LoadBalancerFrontendIpConfigurations []FrontendIPConfigurationResponse `pulumi:"loadBalancerFrontendIpConfigurations"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. Name string `pulumi:"name"` - // A priority assigned to this rule. - Priority int `pulumi:"priority"` + // An array of references to the network interfaces created for this private link service. + NetworkInterfaces []NetworkInterfaceResponse `pulumi:"networkInterfaces"` + // An array of list about connections to the private endpoint. + PrivateEndpointConnections []PrivateEndpointConnectionResponse `pulumi:"privateEndpointConnections"` + // The provisioning state of the private link service resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` + // The visibility list of the private link service. + Visibility *PrivateLinkServicePropertiesResponseVisibility `pulumi:"visibility"` } -// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. -type RulesEngineRuleResponseOutput struct{ *pulumi.OutputState } +// Private link service resource. +type PrivateLinkServiceResponseOutput struct{ *pulumi.OutputState } -func (RulesEngineRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RulesEngineRuleResponse)(nil)).Elem() +func (PrivateLinkServiceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceResponse)(nil)).Elem() } -func (o RulesEngineRuleResponseOutput) ToRulesEngineRuleResponseOutput() RulesEngineRuleResponseOutput { +func (o PrivateLinkServiceResponseOutput) ToPrivateLinkServiceResponseOutput() PrivateLinkServiceResponseOutput { return o } -func (o RulesEngineRuleResponseOutput) ToRulesEngineRuleResponseOutputWithContext(ctx context.Context) RulesEngineRuleResponseOutput { +func (o PrivateLinkServiceResponseOutput) ToPrivateLinkServiceResponseOutputWithContext(ctx context.Context) PrivateLinkServiceResponseOutput { return o } -// Actions to perform on the request and response if all of the match conditions are met. -func (o RulesEngineRuleResponseOutput) Action() RulesEngineActionResponseOutput { - return o.ApplyT(func(v RulesEngineRuleResponse) RulesEngineActionResponse { return v.Action }).(RulesEngineActionResponseOutput) +// The alias of the private link service. +func (o PrivateLinkServiceResponseOutput) Alias() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Alias }).(pulumi.StringOutput) } -// A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. -func (o RulesEngineRuleResponseOutput) MatchConditions() RulesEngineMatchConditionResponseArrayOutput { - return o.ApplyT(func(v RulesEngineRuleResponse) []RulesEngineMatchConditionResponse { return v.MatchConditions }).(RulesEngineMatchConditionResponseArrayOutput) +// The auto-approval list of the private link service. +func (o PrivateLinkServiceResponseOutput) AutoApproval() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseAutoApproval { + return v.AutoApproval + }).(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) } -// If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. -func (o RulesEngineRuleResponseOutput) MatchProcessingBehavior() pulumi.StringPtrOutput { - return o.ApplyT(func(v RulesEngineRuleResponse) *string { return v.MatchProcessingBehavior }).(pulumi.StringPtrOutput) +// Whether the private link service is enabled for proxy protocol or not. +func (o PrivateLinkServiceResponseOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *bool { return v.EnableProxyProtocol }).(pulumi.BoolPtrOutput) } -// A name to refer to this specific rule. -func (o RulesEngineRuleResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RulesEngineRuleResponse) string { return v.Name }).(pulumi.StringOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateLinkServiceResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Etag }).(pulumi.StringOutput) } -// A priority assigned to this rule. -func (o RulesEngineRuleResponseOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RulesEngineRuleResponse) int { return v.Priority }).(pulumi.IntOutput) +// The extended location of the load balancer. +func (o PrivateLinkServiceResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -type RulesEngineRuleResponseArrayOutput struct{ *pulumi.OutputState } +// The list of Fqdn. +func (o PrivateLinkServiceResponseOutput) Fqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) []string { return v.Fqdns }).(pulumi.StringArrayOutput) +} -func (RulesEngineRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RulesEngineRuleResponse)(nil)).Elem() +// Resource ID. +func (o PrivateLinkServiceResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o RulesEngineRuleResponseArrayOutput) ToRulesEngineRuleResponseArrayOutput() RulesEngineRuleResponseArrayOutput { - return o +// An array of private link service IP configurations. +func (o PrivateLinkServiceResponseOutput) IpConfigurations() PrivateLinkServiceIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) []PrivateLinkServiceIpConfigurationResponse { + return v.IpConfigurations + }).(PrivateLinkServiceIpConfigurationResponseArrayOutput) } -func (o RulesEngineRuleResponseArrayOutput) ToRulesEngineRuleResponseArrayOutputWithContext(ctx context.Context) RulesEngineRuleResponseArrayOutput { - return o +// An array of references to the load balancer IP configurations. +func (o PrivateLinkServiceResponseOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) []FrontendIPConfigurationResponse { + return v.LoadBalancerFrontendIpConfigurations + }).(FrontendIPConfigurationResponseArrayOutput) } -func (o RulesEngineRuleResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineRuleResponse { - return vs[0].([]RulesEngineRuleResponse)[vs[1].(int)] - }).(RulesEngineRuleResponseOutput) +// Resource location. +func (o PrivateLinkServiceResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Defines the Resource ID for a Security Policy. -type SecurityPolicyLinkResponse struct { - // Resource ID. - Id *string `pulumi:"id"` +// Resource name. +func (o PrivateLinkServiceResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Name }).(pulumi.StringOutput) } -// Defines the Resource ID for a Security Policy. -type SecurityPolicyLinkResponseOutput struct{ *pulumi.OutputState } +// An array of references to the network interfaces created for this private link service. +func (o PrivateLinkServiceResponseOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) []NetworkInterfaceResponse { return v.NetworkInterfaces }).(NetworkInterfaceResponseArrayOutput) +} -func (SecurityPolicyLinkResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyLinkResponse)(nil)).Elem() +// An array of list about connections to the private endpoint. +func (o PrivateLinkServiceResponseOutput) PrivateEndpointConnections() PrivateEndpointConnectionResponseArrayOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) []PrivateEndpointConnectionResponse { + return v.PrivateEndpointConnections + }).(PrivateEndpointConnectionResponseArrayOutput) } -func (o SecurityPolicyLinkResponseOutput) ToSecurityPolicyLinkResponseOutput() SecurityPolicyLinkResponseOutput { - return o +// The provisioning state of the private link service resource. +func (o PrivateLinkServiceResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (o SecurityPolicyLinkResponseOutput) ToSecurityPolicyLinkResponseOutputWithContext(ctx context.Context) SecurityPolicyLinkResponseOutput { - return o +// Resource tags. +func (o PrivateLinkServiceResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// Resource ID. -func (o SecurityPolicyLinkResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// Resource type. +func (o PrivateLinkServiceResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) string { return v.Type }).(pulumi.StringOutput) } -type SecurityPolicyLinkResponseArrayOutput struct{ *pulumi.OutputState } +// The visibility list of the private link service. +func (o PrivateLinkServiceResponseOutput) Visibility() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseVisibility { + return v.Visibility + }).(PrivateLinkServicePropertiesResponseVisibilityPtrOutput) +} -func (SecurityPolicyLinkResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyLinkResponse)(nil)).Elem() +type PrivateLinkServiceResponsePtrOutput struct{ *pulumi.OutputState } + +func (PrivateLinkServiceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateLinkServiceResponse)(nil)).Elem() } -func (o SecurityPolicyLinkResponseArrayOutput) ToSecurityPolicyLinkResponseArrayOutput() SecurityPolicyLinkResponseArrayOutput { +func (o PrivateLinkServiceResponsePtrOutput) ToPrivateLinkServiceResponsePtrOutput() PrivateLinkServiceResponsePtrOutput { return o } -func (o SecurityPolicyLinkResponseArrayOutput) ToSecurityPolicyLinkResponseArrayOutputWithContext(ctx context.Context) SecurityPolicyLinkResponseArrayOutput { +func (o PrivateLinkServiceResponsePtrOutput) ToPrivateLinkServiceResponsePtrOutputWithContext(ctx context.Context) PrivateLinkServiceResponsePtrOutput { return o } -func (o SecurityPolicyLinkResponseArrayOutput) Index(i pulumi.IntInput) SecurityPolicyLinkResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyLinkResponse { - return vs[0].([]SecurityPolicyLinkResponse)[vs[1].(int)] - }).(SecurityPolicyLinkResponseOutput) +func (o PrivateLinkServiceResponsePtrOutput) Elem() PrivateLinkServiceResponseOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) PrivateLinkServiceResponse { + if v != nil { + return *v + } + var ret PrivateLinkServiceResponse + return ret + }).(PrivateLinkServiceResponseOutput) } -// Network security rule. -type SecurityRuleType struct { - // The network traffic is allowed or denied. - Access string `pulumi:"access"` - // A description for this rule. Restricted to 140 chars. - Description *string `pulumi:"description"` - // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. - DestinationAddressPrefix *string `pulumi:"destinationAddressPrefix"` - // The destination address prefixes. CIDR or destination IP ranges. - DestinationAddressPrefixes []string `pulumi:"destinationAddressPrefixes"` - // The application security group specified as destination. - DestinationApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"destinationApplicationSecurityGroups"` - // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - DestinationPortRange *string `pulumi:"destinationPortRange"` - // The destination port ranges. - DestinationPortRanges []string `pulumi:"destinationPortRanges"` - // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. - Direction string `pulumi:"direction"` +// The alias of the private link service. +func (o PrivateLinkServiceResponsePtrOutput) Alias() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return &v.Alias + }).(pulumi.StringPtrOutput) +} + +// The auto-approval list of the private link service. +func (o PrivateLinkServiceResponsePtrOutput) AutoApproval() PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseAutoApproval { + if v == nil { + return nil + } + return v.AutoApproval + }).(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput) +} + +// Whether the private link service is enabled for proxy protocol or not. +func (o PrivateLinkServiceResponsePtrOutput) EnableProxyProtocol() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *bool { + if v == nil { + return nil + } + return v.EnableProxyProtocol + }).(pulumi.BoolPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o PrivateLinkServiceResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return &v.Etag + }).(pulumi.StringPtrOutput) +} + +// The extended location of the load balancer. +func (o PrivateLinkServiceResponsePtrOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *ExtendedLocationResponse { + if v == nil { + return nil + } + return v.ExtendedLocation + }).(ExtendedLocationResponsePtrOutput) +} + +// The list of Fqdn. +func (o PrivateLinkServiceResponsePtrOutput) Fqdns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) []string { + if v == nil { + return nil + } + return v.Fqdns + }).(pulumi.StringArrayOutput) +} + +// Resource ID. +func (o PrivateLinkServiceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// An array of private link service IP configurations. +func (o PrivateLinkServiceResponsePtrOutput) IpConfigurations() PrivateLinkServiceIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) []PrivateLinkServiceIpConfigurationResponse { + if v == nil { + return nil + } + return v.IpConfigurations + }).(PrivateLinkServiceIpConfigurationResponseArrayOutput) +} + +// An array of references to the load balancer IP configurations. +func (o PrivateLinkServiceResponsePtrOutput) LoadBalancerFrontendIpConfigurations() FrontendIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) []FrontendIPConfigurationResponse { + if v == nil { + return nil + } + return v.LoadBalancerFrontendIpConfigurations + }).(FrontendIPConfigurationResponseArrayOutput) +} + +// Resource location. +func (o PrivateLinkServiceResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o PrivateLinkServiceResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// An array of references to the network interfaces created for this private link service. +func (o PrivateLinkServiceResponsePtrOutput) NetworkInterfaces() NetworkInterfaceResponseArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) []NetworkInterfaceResponse { + if v == nil { + return nil + } + return v.NetworkInterfaces + }).(NetworkInterfaceResponseArrayOutput) +} + +// An array of list about connections to the private endpoint. +func (o PrivateLinkServiceResponsePtrOutput) PrivateEndpointConnections() PrivateEndpointConnectionResponseArrayOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) []PrivateEndpointConnectionResponse { + if v == nil { + return nil + } + return v.PrivateEndpointConnections + }).(PrivateEndpointConnectionResponseArrayOutput) +} + +// The provisioning state of the private link service resource. +func (o PrivateLinkServiceResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// Resource tags. +func (o PrivateLinkServiceResponsePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o PrivateLinkServiceResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// The visibility list of the private link service. +func (o PrivateLinkServiceResponsePtrOutput) Visibility() PrivateLinkServicePropertiesResponseVisibilityPtrOutput { + return o.ApplyT(func(v *PrivateLinkServiceResponse) *PrivateLinkServicePropertiesResponseVisibility { + if v == nil { + return nil + } + return v.Visibility + }).(PrivateLinkServicePropertiesResponseVisibilityPtrOutput) +} + +// A load balancer probe. +type Probe struct { // Resource ID. Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. + // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. + IntervalInSeconds *int `pulumi:"intervalInSeconds"` + // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. Name *string `pulumi:"name"` - // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` - // Network protocol this rule applies to. + // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. + NumberOfProbes *int `pulumi:"numberOfProbes"` + // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. + Port int `pulumi:"port"` + // The number of consecutive successful or failed probes in order to allow or deny traffic from being delivered to this endpoint. After failing the number of consecutive probes equal to this value, the endpoint will be taken out of rotation and require the same number of successful consecutive probes to be placed back in rotation. + ProbeThreshold *int `pulumi:"probeThreshold"` + // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. Protocol string `pulumi:"protocol"` - // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. - SourceAddressPrefix *string `pulumi:"sourceAddressPrefix"` - // The CIDR or source IP ranges. - SourceAddressPrefixes []string `pulumi:"sourceAddressPrefixes"` - // The application security group specified as source. - SourceApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"sourceApplicationSecurityGroups"` - // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - SourcePortRange *string `pulumi:"sourcePortRange"` - // The source port ranges. - SourcePortRanges []string `pulumi:"sourcePortRanges"` - // The type of the resource. - Type *string `pulumi:"type"` + // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. + RequestPath *string `pulumi:"requestPath"` } -// SecurityRuleTypeInput is an input type that accepts SecurityRuleTypeArgs and SecurityRuleTypeOutput values. -// You can construct a concrete instance of `SecurityRuleTypeInput` via: +// ProbeInput is an input type that accepts ProbeArgs and ProbeOutput values. +// You can construct a concrete instance of `ProbeInput` via: // -// SecurityRuleTypeArgs{...} -type SecurityRuleTypeInput interface { +// ProbeArgs{...} +type ProbeInput interface { pulumi.Input - ToSecurityRuleTypeOutput() SecurityRuleTypeOutput - ToSecurityRuleTypeOutputWithContext(context.Context) SecurityRuleTypeOutput + ToProbeOutput() ProbeOutput + ToProbeOutputWithContext(context.Context) ProbeOutput } -// Network security rule. -type SecurityRuleTypeArgs struct { - // The network traffic is allowed or denied. - Access pulumi.StringInput `pulumi:"access"` - // A description for this rule. Restricted to 140 chars. - Description pulumi.StringPtrInput `pulumi:"description"` - // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. - DestinationAddressPrefix pulumi.StringPtrInput `pulumi:"destinationAddressPrefix"` - // The destination address prefixes. CIDR or destination IP ranges. - DestinationAddressPrefixes pulumi.StringArrayInput `pulumi:"destinationAddressPrefixes"` - // The application security group specified as destination. - DestinationApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput `pulumi:"destinationApplicationSecurityGroups"` - // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - DestinationPortRange pulumi.StringPtrInput `pulumi:"destinationPortRange"` - // The destination port ranges. - DestinationPortRanges pulumi.StringArrayInput `pulumi:"destinationPortRanges"` - // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. - Direction pulumi.StringInput `pulumi:"direction"` +// A load balancer probe. +type ProbeArgs struct { // Resource ID. Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. + // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. + IntervalInSeconds pulumi.IntPtrInput `pulumi:"intervalInSeconds"` + // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. Name pulumi.StringPtrInput `pulumi:"name"` - // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority pulumi.IntPtrInput `pulumi:"priority"` - // Network protocol this rule applies to. + // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. + NumberOfProbes pulumi.IntPtrInput `pulumi:"numberOfProbes"` + // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. + Port pulumi.IntInput `pulumi:"port"` + // The number of consecutive successful or failed probes in order to allow or deny traffic from being delivered to this endpoint. After failing the number of consecutive probes equal to this value, the endpoint will be taken out of rotation and require the same number of successful consecutive probes to be placed back in rotation. + ProbeThreshold pulumi.IntPtrInput `pulumi:"probeThreshold"` + // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. Protocol pulumi.StringInput `pulumi:"protocol"` - // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. - SourceAddressPrefix pulumi.StringPtrInput `pulumi:"sourceAddressPrefix"` - // The CIDR or source IP ranges. - SourceAddressPrefixes pulumi.StringArrayInput `pulumi:"sourceAddressPrefixes"` - // The application security group specified as source. - SourceApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput `pulumi:"sourceApplicationSecurityGroups"` - // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - SourcePortRange pulumi.StringPtrInput `pulumi:"sourcePortRange"` - // The source port ranges. - SourcePortRanges pulumi.StringArrayInput `pulumi:"sourcePortRanges"` - // The type of the resource. - Type pulumi.StringPtrInput `pulumi:"type"` + // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. + RequestPath pulumi.StringPtrInput `pulumi:"requestPath"` } -func (SecurityRuleTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityRuleType)(nil)).Elem() +func (ProbeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Probe)(nil)).Elem() } -func (i SecurityRuleTypeArgs) ToSecurityRuleTypeOutput() SecurityRuleTypeOutput { - return i.ToSecurityRuleTypeOutputWithContext(context.Background()) +func (i ProbeArgs) ToProbeOutput() ProbeOutput { + return i.ToProbeOutputWithContext(context.Background()) } -func (i SecurityRuleTypeArgs) ToSecurityRuleTypeOutputWithContext(ctx context.Context) SecurityRuleTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityRuleTypeOutput) +func (i ProbeArgs) ToProbeOutputWithContext(ctx context.Context) ProbeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProbeOutput) } -// SecurityRuleTypeArrayInput is an input type that accepts SecurityRuleTypeArray and SecurityRuleTypeArrayOutput values. -// You can construct a concrete instance of `SecurityRuleTypeArrayInput` via: +// ProbeArrayInput is an input type that accepts ProbeArray and ProbeArrayOutput values. +// You can construct a concrete instance of `ProbeArrayInput` via: // -// SecurityRuleTypeArray{ SecurityRuleTypeArgs{...} } -type SecurityRuleTypeArrayInput interface { +// ProbeArray{ ProbeArgs{...} } +type ProbeArrayInput interface { pulumi.Input - ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput - ToSecurityRuleTypeArrayOutputWithContext(context.Context) SecurityRuleTypeArrayOutput + ToProbeArrayOutput() ProbeArrayOutput + ToProbeArrayOutputWithContext(context.Context) ProbeArrayOutput } -type SecurityRuleTypeArray []SecurityRuleTypeInput +type ProbeArray []ProbeInput -func (SecurityRuleTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityRuleType)(nil)).Elem() +func (ProbeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Probe)(nil)).Elem() } -func (i SecurityRuleTypeArray) ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput { - return i.ToSecurityRuleTypeArrayOutputWithContext(context.Background()) +func (i ProbeArray) ToProbeArrayOutput() ProbeArrayOutput { + return i.ToProbeArrayOutputWithContext(context.Background()) } -func (i SecurityRuleTypeArray) ToSecurityRuleTypeArrayOutputWithContext(ctx context.Context) SecurityRuleTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityRuleTypeArrayOutput) +func (i ProbeArray) ToProbeArrayOutputWithContext(ctx context.Context) ProbeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProbeArrayOutput) } -// Network security rule. -type SecurityRuleTypeOutput struct{ *pulumi.OutputState } +// A load balancer probe. +type ProbeOutput struct{ *pulumi.OutputState } -func (SecurityRuleTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityRuleType)(nil)).Elem() +func (ProbeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Probe)(nil)).Elem() } -func (o SecurityRuleTypeOutput) ToSecurityRuleTypeOutput() SecurityRuleTypeOutput { +func (o ProbeOutput) ToProbeOutput() ProbeOutput { return o } -func (o SecurityRuleTypeOutput) ToSecurityRuleTypeOutputWithContext(ctx context.Context) SecurityRuleTypeOutput { +func (o ProbeOutput) ToProbeOutputWithContext(ctx context.Context) ProbeOutput { return o } -// The network traffic is allowed or denied. -func (o SecurityRuleTypeOutput) Access() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleType) string { return v.Access }).(pulumi.StringOutput) -} - -// A description for this rule. Restricted to 140 chars. -func (o SecurityRuleTypeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) +// Resource ID. +func (o ProbeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v Probe) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. -func (o SecurityRuleTypeOutput) DestinationAddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.DestinationAddressPrefix }).(pulumi.StringPtrOutput) +// The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. +func (o ProbeOutput) IntervalInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v Probe) *int { return v.IntervalInSeconds }).(pulumi.IntPtrOutput) } -// The destination address prefixes. CIDR or destination IP ranges. -func (o SecurityRuleTypeOutput) DestinationAddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []string { return v.DestinationAddressPrefixes }).(pulumi.StringArrayOutput) +// The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. +func (o ProbeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v Probe) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The application security group specified as destination. -func (o SecurityRuleTypeOutput) DestinationApplicationSecurityGroups() ApplicationSecurityGroupTypeArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []ApplicationSecurityGroupType { return v.DestinationApplicationSecurityGroups }).(ApplicationSecurityGroupTypeArrayOutput) +// The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. +func (o ProbeOutput) NumberOfProbes() pulumi.IntPtrOutput { + return o.ApplyT(func(v Probe) *int { return v.NumberOfProbes }).(pulumi.IntPtrOutput) } -// The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. -func (o SecurityRuleTypeOutput) DestinationPortRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.DestinationPortRange }).(pulumi.StringPtrOutput) +// The port for communicating the probe. Possible values range from 1 to 65535, inclusive. +func (o ProbeOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v Probe) int { return v.Port }).(pulumi.IntOutput) } -// The destination port ranges. -func (o SecurityRuleTypeOutput) DestinationPortRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +// The number of consecutive successful or failed probes in order to allow or deny traffic from being delivered to this endpoint. After failing the number of consecutive probes equal to this value, the endpoint will be taken out of rotation and require the same number of successful consecutive probes to be placed back in rotation. +func (o ProbeOutput) ProbeThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v Probe) *int { return v.ProbeThreshold }).(pulumi.IntPtrOutput) } -// The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. -func (o SecurityRuleTypeOutput) Direction() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleType) string { return v.Direction }).(pulumi.StringOutput) +// The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. +func (o ProbeOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v Probe) string { return v.Protocol }).(pulumi.StringOutput) } -// Resource ID. -func (o SecurityRuleTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) +// The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. +func (o ProbeOutput) RequestPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v Probe) *string { return v.RequestPath }).(pulumi.StringPtrOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SecurityRuleTypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.Name }).(pulumi.StringPtrOutput) -} +type ProbeArrayOutput struct{ *pulumi.OutputState } -// The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. -func (o SecurityRuleTypeOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (ProbeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Probe)(nil)).Elem() } -// Network protocol this rule applies to. -func (o SecurityRuleTypeOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleType) string { return v.Protocol }).(pulumi.StringOutput) +func (o ProbeArrayOutput) ToProbeArrayOutput() ProbeArrayOutput { + return o } -// The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. -func (o SecurityRuleTypeOutput) SourceAddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.SourceAddressPrefix }).(pulumi.StringPtrOutput) +func (o ProbeArrayOutput) ToProbeArrayOutputWithContext(ctx context.Context) ProbeArrayOutput { + return o } -// The CIDR or source IP ranges. -func (o SecurityRuleTypeOutput) SourceAddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []string { return v.SourceAddressPrefixes }).(pulumi.StringArrayOutput) +func (o ProbeArrayOutput) Index(i pulumi.IntInput) ProbeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Probe { + return vs[0].([]Probe)[vs[1].(int)] + }).(ProbeOutput) } -// The application security group specified as source. -func (o SecurityRuleTypeOutput) SourceApplicationSecurityGroups() ApplicationSecurityGroupTypeArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []ApplicationSecurityGroupType { return v.SourceApplicationSecurityGroups }).(ApplicationSecurityGroupTypeArrayOutput) +// A load balancer probe. +type ProbeResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. + IntervalInSeconds *int `pulumi:"intervalInSeconds"` + // The load balancer rules that use this probe. + LoadBalancingRules []SubResourceResponse `pulumi:"loadBalancingRules"` + // The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. + NumberOfProbes *int `pulumi:"numberOfProbes"` + // The port for communicating the probe. Possible values range from 1 to 65535, inclusive. + Port int `pulumi:"port"` + // The number of consecutive successful or failed probes in order to allow or deny traffic from being delivered to this endpoint. After failing the number of consecutive probes equal to this value, the endpoint will be taken out of rotation and require the same number of successful consecutive probes to be placed back in rotation. + ProbeThreshold *int `pulumi:"probeThreshold"` + // The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. + Protocol string `pulumi:"protocol"` + // The provisioning state of the probe resource. + ProvisioningState string `pulumi:"provisioningState"` + // The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. + RequestPath *string `pulumi:"requestPath"` + // Type of the resource. + Type string `pulumi:"type"` } -// The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. -func (o SecurityRuleTypeOutput) SourcePortRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.SourcePortRange }).(pulumi.StringPtrOutput) -} +// A load balancer probe. +type ProbeResponseOutput struct{ *pulumi.OutputState } -// The source port ranges. -func (o SecurityRuleTypeOutput) SourcePortRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleType) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +func (ProbeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProbeResponse)(nil)).Elem() } -// The type of the resource. -func (o SecurityRuleTypeOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleType) *string { return v.Type }).(pulumi.StringPtrOutput) +func (o ProbeResponseOutput) ToProbeResponseOutput() ProbeResponseOutput { + return o } -type SecurityRuleTypeArrayOutput struct{ *pulumi.OutputState } +func (o ProbeResponseOutput) ToProbeResponseOutputWithContext(ctx context.Context) ProbeResponseOutput { + return o +} -func (SecurityRuleTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityRuleType)(nil)).Elem() +// A unique read-only string that changes whenever the resource is updated. +func (o ProbeResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ProbeResponse) string { return v.Etag }).(pulumi.StringOutput) } -func (o SecurityRuleTypeArrayOutput) ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput { - return o +// Resource ID. +func (o ProbeResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProbeResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o SecurityRuleTypeArrayOutput) ToSecurityRuleTypeArrayOutputWithContext(ctx context.Context) SecurityRuleTypeArrayOutput { - return o +// The interval, in seconds, for how frequently to probe the endpoint for health status. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5. +func (o ProbeResponseOutput) IntervalInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v ProbeResponse) *int { return v.IntervalInSeconds }).(pulumi.IntPtrOutput) } -func (o SecurityRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityRuleTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityRuleType { - return vs[0].([]SecurityRuleType)[vs[1].(int)] - }).(SecurityRuleTypeOutput) +// The load balancer rules that use this probe. +func (o ProbeResponseOutput) LoadBalancingRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v ProbeResponse) []SubResourceResponse { return v.LoadBalancingRules }).(SubResourceResponseArrayOutput) } -// Network security rule. -type SecurityRuleResponse struct { - // The network traffic is allowed or denied. - Access string `pulumi:"access"` - // A description for this rule. Restricted to 140 chars. - Description *string `pulumi:"description"` - // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. - DestinationAddressPrefix *string `pulumi:"destinationAddressPrefix"` - // The destination address prefixes. CIDR or destination IP ranges. - DestinationAddressPrefixes []string `pulumi:"destinationAddressPrefixes"` - // The application security group specified as destination. - DestinationApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"destinationApplicationSecurityGroups"` - // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - DestinationPortRange *string `pulumi:"destinationPortRange"` - // The destination port ranges. - DestinationPortRanges []string `pulumi:"destinationPortRanges"` - // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. - Direction string `pulumi:"direction"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` - // Network protocol this rule applies to. - Protocol string `pulumi:"protocol"` - // The provisioning state of the security rule resource. - ProvisioningState string `pulumi:"provisioningState"` - // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. - SourceAddressPrefix *string `pulumi:"sourceAddressPrefix"` - // The CIDR or source IP ranges. - SourceAddressPrefixes []string `pulumi:"sourceAddressPrefixes"` - // The application security group specified as source. - SourceApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"sourceApplicationSecurityGroups"` - // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. - SourcePortRange *string `pulumi:"sourcePortRange"` - // The source port ranges. - SourcePortRanges []string `pulumi:"sourcePortRanges"` - // The type of the resource. - Type *string `pulumi:"type"` +// The name of the resource that is unique within the set of probes used by the load balancer. This name can be used to access the resource. +func (o ProbeResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProbeResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Network security rule. -type SecurityRuleResponseOutput struct{ *pulumi.OutputState } +// The number of probes where if no response, will result in stopping further traffic from being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower than the typical times used in Azure. +func (o ProbeResponseOutput) NumberOfProbes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ProbeResponse) *int { return v.NumberOfProbes }).(pulumi.IntPtrOutput) +} -func (SecurityRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityRuleResponse)(nil)).Elem() +// The port for communicating the probe. Possible values range from 1 to 65535, inclusive. +func (o ProbeResponseOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v ProbeResponse) int { return v.Port }).(pulumi.IntOutput) } -func (o SecurityRuleResponseOutput) ToSecurityRuleResponseOutput() SecurityRuleResponseOutput { - return o +// The number of consecutive successful or failed probes in order to allow or deny traffic from being delivered to this endpoint. After failing the number of consecutive probes equal to this value, the endpoint will be taken out of rotation and require the same number of successful consecutive probes to be placed back in rotation. +func (o ProbeResponseOutput) ProbeThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v ProbeResponse) *int { return v.ProbeThreshold }).(pulumi.IntPtrOutput) } -func (o SecurityRuleResponseOutput) ToSecurityRuleResponseOutputWithContext(ctx context.Context) SecurityRuleResponseOutput { - return o +// The protocol of the end point. If 'Tcp' is specified, a received ACK is required for the probe to be successful. If 'Http' or 'Https' is specified, a 200 OK response from the specifies URI is required for the probe to be successful. +func (o ProbeResponseOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v ProbeResponse) string { return v.Protocol }).(pulumi.StringOutput) } -// The network traffic is allowed or denied. -func (o SecurityRuleResponseOutput) Access() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleResponse) string { return v.Access }).(pulumi.StringOutput) +// The provisioning state of the probe resource. +func (o ProbeResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ProbeResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// A description for this rule. Restricted to 140 chars. -func (o SecurityRuleResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +// The URI used for requesting health status from the VM. Path is required if a protocol is set to http. Otherwise, it is not allowed. There is no default value. +func (o ProbeResponseOutput) RequestPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProbeResponse) *string { return v.RequestPath }).(pulumi.StringPtrOutput) } -// The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. -func (o SecurityRuleResponseOutput) DestinationAddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.DestinationAddressPrefix }).(pulumi.StringPtrOutput) +// Type of the resource. +func (o ProbeResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ProbeResponse) string { return v.Type }).(pulumi.StringOutput) } -// The destination address prefixes. CIDR or destination IP ranges. -func (o SecurityRuleResponseOutput) DestinationAddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []string { return v.DestinationAddressPrefixes }).(pulumi.StringArrayOutput) +type ProbeResponseArrayOutput struct{ *pulumi.OutputState } + +func (ProbeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ProbeResponse)(nil)).Elem() } -// The application security group specified as destination. -func (o SecurityRuleResponseOutput) DestinationApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []ApplicationSecurityGroupResponse { - return v.DestinationApplicationSecurityGroups - }).(ApplicationSecurityGroupResponseArrayOutput) +func (o ProbeResponseArrayOutput) ToProbeResponseArrayOutput() ProbeResponseArrayOutput { + return o } -// The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. -func (o SecurityRuleResponseOutput) DestinationPortRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.DestinationPortRange }).(pulumi.StringPtrOutput) +func (o ProbeResponseArrayOutput) ToProbeResponseArrayOutputWithContext(ctx context.Context) ProbeResponseArrayOutput { + return o } -// The destination port ranges. -func (o SecurityRuleResponseOutput) DestinationPortRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +func (o ProbeResponseArrayOutput) Index(i pulumi.IntInput) ProbeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProbeResponse { + return vs[0].([]ProbeResponse)[vs[1].(int)] + }).(ProbeResponseOutput) } -// The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. -func (o SecurityRuleResponseOutput) Direction() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleResponse) string { return v.Direction }).(pulumi.StringOutput) +// The list of RouteTables to advertise the routes to. +type PropagatedRouteTable struct { + // The list of resource ids of all the RouteTables. + Ids []SubResource `pulumi:"ids"` + // The list of labels. + Labels []string `pulumi:"labels"` } -// A unique read-only string that changes whenever the resource is updated. -func (o SecurityRuleResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +// PropagatedRouteTableInput is an input type that accepts PropagatedRouteTableArgs and PropagatedRouteTableOutput values. +// You can construct a concrete instance of `PropagatedRouteTableInput` via: +// +// PropagatedRouteTableArgs{...} +type PropagatedRouteTableInput interface { + pulumi.Input + + ToPropagatedRouteTableOutput() PropagatedRouteTableOutput + ToPropagatedRouteTableOutputWithContext(context.Context) PropagatedRouteTableOutput } -// Resource ID. -func (o SecurityRuleResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// The list of RouteTables to advertise the routes to. +type PropagatedRouteTableArgs struct { + // The list of resource ids of all the RouteTables. + Ids SubResourceArrayInput `pulumi:"ids"` + // The list of labels. + Labels pulumi.StringArrayInput `pulumi:"labels"` } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SecurityRuleResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +func (PropagatedRouteTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTable)(nil)).Elem() } -// The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. -func (o SecurityRuleResponseOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (i PropagatedRouteTableArgs) ToPropagatedRouteTableOutput() PropagatedRouteTableOutput { + return i.ToPropagatedRouteTableOutputWithContext(context.Background()) } -// Network protocol this rule applies to. -func (o SecurityRuleResponseOutput) Protocol() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleResponse) string { return v.Protocol }).(pulumi.StringOutput) +func (i PropagatedRouteTableArgs) ToPropagatedRouteTableOutputWithContext(ctx context.Context) PropagatedRouteTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableOutput) } -// The provisioning state of the security rule resource. -func (o SecurityRuleResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v SecurityRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (i PropagatedRouteTableArgs) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { + return i.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) } -// The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. -func (o SecurityRuleResponseOutput) SourceAddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.SourceAddressPrefix }).(pulumi.StringPtrOutput) +func (i PropagatedRouteTableArgs) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableOutput).ToPropagatedRouteTablePtrOutputWithContext(ctx) } -// The CIDR or source IP ranges. -func (o SecurityRuleResponseOutput) SourceAddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []string { return v.SourceAddressPrefixes }).(pulumi.StringArrayOutput) +// PropagatedRouteTablePtrInput is an input type that accepts PropagatedRouteTableArgs, PropagatedRouteTablePtr and PropagatedRouteTablePtrOutput values. +// You can construct a concrete instance of `PropagatedRouteTablePtrInput` via: +// +// PropagatedRouteTableArgs{...} +// +// or: +// +// nil +type PropagatedRouteTablePtrInput interface { + pulumi.Input + + ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput + ToPropagatedRouteTablePtrOutputWithContext(context.Context) PropagatedRouteTablePtrOutput } -// The application security group specified as source. -func (o SecurityRuleResponseOutput) SourceApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []ApplicationSecurityGroupResponse { - return v.SourceApplicationSecurityGroups - }).(ApplicationSecurityGroupResponseArrayOutput) +type propagatedRouteTablePtrType PropagatedRouteTableArgs + +func PropagatedRouteTablePtr(v *PropagatedRouteTableArgs) PropagatedRouteTablePtrInput { + return (*propagatedRouteTablePtrType)(v) } -// The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. -func (o SecurityRuleResponseOutput) SourcePortRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.SourcePortRange }).(pulumi.StringPtrOutput) +func (*propagatedRouteTablePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTable)(nil)).Elem() } -// The source port ranges. -func (o SecurityRuleResponseOutput) SourcePortRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityRuleResponse) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +func (i *propagatedRouteTablePtrType) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { + return i.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) } -// The type of the resource. -func (o SecurityRuleResponseOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +func (i *propagatedRouteTablePtrType) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTablePtrOutput) } -type SecurityRuleResponseArrayOutput struct{ *pulumi.OutputState } +// The list of RouteTables to advertise the routes to. +type PropagatedRouteTableOutput struct{ *pulumi.OutputState } -func (SecurityRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityRuleResponse)(nil)).Elem() +func (PropagatedRouteTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTable)(nil)).Elem() } -func (o SecurityRuleResponseArrayOutput) ToSecurityRuleResponseArrayOutput() SecurityRuleResponseArrayOutput { +func (o PropagatedRouteTableOutput) ToPropagatedRouteTableOutput() PropagatedRouteTableOutput { return o } -func (o SecurityRuleResponseArrayOutput) ToSecurityRuleResponseArrayOutputWithContext(ctx context.Context) SecurityRuleResponseArrayOutput { +func (o PropagatedRouteTableOutput) ToPropagatedRouteTableOutputWithContext(ctx context.Context) PropagatedRouteTableOutput { return o } -func (o SecurityRuleResponseArrayOutput) Index(i pulumi.IntInput) SecurityRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityRuleResponse { - return vs[0].([]SecurityRuleResponse)[vs[1].(int)] - }).(SecurityRuleResponseOutput) +func (o PropagatedRouteTableOutput) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { + return o.ToPropagatedRouteTablePtrOutputWithContext(context.Background()) } -// ServiceAssociationLink resource. -type ServiceAssociationLinkResponse struct { - // If true, the resource can be deleted. - AllowDelete *bool `pulumi:"allowDelete"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Link to the external resource. - Link *string `pulumi:"link"` - // Resource type of the linked resource. - LinkedResourceType *string `pulumi:"linkedResourceType"` - // A list of locations. - Locations []string `pulumi:"locations"` - // Name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the service association link resource. - ProvisioningState string `pulumi:"provisioningState"` - // Resource type. - Type string `pulumi:"type"` +func (o PropagatedRouteTableOutput) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PropagatedRouteTable) *PropagatedRouteTable { + return &v + }).(PropagatedRouteTablePtrOutput) } -// ServiceAssociationLink resource. -type ServiceAssociationLinkResponseOutput struct{ *pulumi.OutputState } +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableOutput) Ids() SubResourceArrayOutput { + return o.ApplyT(func(v PropagatedRouteTable) []SubResource { return v.Ids }).(SubResourceArrayOutput) +} -func (ServiceAssociationLinkResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceAssociationLinkResponse)(nil)).Elem() +// The list of labels. +func (o PropagatedRouteTableOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v PropagatedRouteTable) []string { return v.Labels }).(pulumi.StringArrayOutput) } -func (o ServiceAssociationLinkResponseOutput) ToServiceAssociationLinkResponseOutput() ServiceAssociationLinkResponseOutput { - return o +type PropagatedRouteTablePtrOutput struct{ *pulumi.OutputState } + +func (PropagatedRouteTablePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTable)(nil)).Elem() } -func (o ServiceAssociationLinkResponseOutput) ToServiceAssociationLinkResponseOutputWithContext(ctx context.Context) ServiceAssociationLinkResponseOutput { +func (o PropagatedRouteTablePtrOutput) ToPropagatedRouteTablePtrOutput() PropagatedRouteTablePtrOutput { return o } -// If true, the resource can be deleted. -func (o ServiceAssociationLinkResponseOutput) AllowDelete() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) *bool { return v.AllowDelete }).(pulumi.BoolPtrOutput) +func (o PropagatedRouteTablePtrOutput) ToPropagatedRouteTablePtrOutputWithContext(ctx context.Context) PropagatedRouteTablePtrOutput { + return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ServiceAssociationLinkResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o PropagatedRouteTablePtrOutput) Elem() PropagatedRouteTableOutput { + return o.ApplyT(func(v *PropagatedRouteTable) PropagatedRouteTable { + if v != nil { + return *v + } + var ret PropagatedRouteTable + return ret + }).(PropagatedRouteTableOutput) } -// Resource ID. -func (o ServiceAssociationLinkResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTablePtrOutput) Ids() SubResourceArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTable) []SubResource { + if v == nil { + return nil + } + return v.Ids + }).(SubResourceArrayOutput) } -// Link to the external resource. -func (o ServiceAssociationLinkResponseOutput) Link() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Link }).(pulumi.StringPtrOutput) +// The list of labels. +func (o PropagatedRouteTablePtrOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTable) []string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringArrayOutput) } -// Resource type of the linked resource. -func (o ServiceAssociationLinkResponseOutput) LinkedResourceType() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) +// Nfv version of the list of RouteTables to advertise the routes to. +type PropagatedRouteTableNfv struct { + // The list of resource ids of all the RouteTables. + Ids []RoutingConfigurationNfvSubResource `pulumi:"ids"` + // The list of labels. + Labels []string `pulumi:"labels"` } -// A list of locations. -func (o ServiceAssociationLinkResponseOutput) Locations() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) []string { return v.Locations }).(pulumi.StringArrayOutput) -} +// PropagatedRouteTableNfvInput is an input type that accepts PropagatedRouteTableNfvArgs and PropagatedRouteTableNfvOutput values. +// You can construct a concrete instance of `PropagatedRouteTableNfvInput` via: +// +// PropagatedRouteTableNfvArgs{...} +type PropagatedRouteTableNfvInput interface { + pulumi.Input -// Name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o ServiceAssociationLinkResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Name }).(pulumi.StringPtrOutput) + ToPropagatedRouteTableNfvOutput() PropagatedRouteTableNfvOutput + ToPropagatedRouteTableNfvOutputWithContext(context.Context) PropagatedRouteTableNfvOutput } -// The provisioning state of the service association link resource. -func (o ServiceAssociationLinkResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Nfv version of the list of RouteTables to advertise the routes to. +type PropagatedRouteTableNfvArgs struct { + // The list of resource ids of all the RouteTables. + Ids RoutingConfigurationNfvSubResourceArrayInput `pulumi:"ids"` + // The list of labels. + Labels pulumi.StringArrayInput `pulumi:"labels"` } -// Resource type. -func (o ServiceAssociationLinkResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.Type }).(pulumi.StringOutput) +func (PropagatedRouteTableNfvArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTableNfv)(nil)).Elem() } -type ServiceAssociationLinkResponseArrayOutput struct{ *pulumi.OutputState } +func (i PropagatedRouteTableNfvArgs) ToPropagatedRouteTableNfvOutput() PropagatedRouteTableNfvOutput { + return i.ToPropagatedRouteTableNfvOutputWithContext(context.Background()) +} -func (ServiceAssociationLinkResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceAssociationLinkResponse)(nil)).Elem() +func (i PropagatedRouteTableNfvArgs) ToPropagatedRouteTableNfvOutputWithContext(ctx context.Context) PropagatedRouteTableNfvOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableNfvOutput) } -func (o ServiceAssociationLinkResponseArrayOutput) ToServiceAssociationLinkResponseArrayOutput() ServiceAssociationLinkResponseArrayOutput { - return o +func (i PropagatedRouteTableNfvArgs) ToPropagatedRouteTableNfvPtrOutput() PropagatedRouteTableNfvPtrOutput { + return i.ToPropagatedRouteTableNfvPtrOutputWithContext(context.Background()) } -func (o ServiceAssociationLinkResponseArrayOutput) ToServiceAssociationLinkResponseArrayOutputWithContext(ctx context.Context) ServiceAssociationLinkResponseArrayOutput { - return o +func (i PropagatedRouteTableNfvArgs) ToPropagatedRouteTableNfvPtrOutputWithContext(ctx context.Context) PropagatedRouteTableNfvPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableNfvOutput).ToPropagatedRouteTableNfvPtrOutputWithContext(ctx) } -func (o ServiceAssociationLinkResponseArrayOutput) Index(i pulumi.IntInput) ServiceAssociationLinkResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAssociationLinkResponse { - return vs[0].([]ServiceAssociationLinkResponse)[vs[1].(int)] - }).(ServiceAssociationLinkResponseOutput) -} +// PropagatedRouteTableNfvPtrInput is an input type that accepts PropagatedRouteTableNfvArgs, PropagatedRouteTableNfvPtr and PropagatedRouteTableNfvPtrOutput values. +// You can construct a concrete instance of `PropagatedRouteTableNfvPtrInput` via: +// +// PropagatedRouteTableNfvArgs{...} +// +// or: +// +// nil +type PropagatedRouteTableNfvPtrInput interface { + pulumi.Input -// Service End point policy resource. -type ServiceEndpointPolicyType struct { - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // A collection of service endpoint policy definitions of the service endpoint policy. - ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionType `pulumi:"serviceEndpointPolicyDefinitions"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` + ToPropagatedRouteTableNfvPtrOutput() PropagatedRouteTableNfvPtrOutput + ToPropagatedRouteTableNfvPtrOutputWithContext(context.Context) PropagatedRouteTableNfvPtrOutput } -// ServiceEndpointPolicyTypeInput is an input type that accepts ServiceEndpointPolicyTypeArgs and ServiceEndpointPolicyTypeOutput values. -// You can construct a concrete instance of `ServiceEndpointPolicyTypeInput` via: -// -// ServiceEndpointPolicyTypeArgs{...} -type ServiceEndpointPolicyTypeInput interface { - pulumi.Input +type propagatedRouteTableNfvPtrType PropagatedRouteTableNfvArgs - ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput - ToServiceEndpointPolicyTypeOutputWithContext(context.Context) ServiceEndpointPolicyTypeOutput +func PropagatedRouteTableNfvPtr(v *PropagatedRouteTableNfvArgs) PropagatedRouteTableNfvPtrInput { + return (*propagatedRouteTableNfvPtrType)(v) } -// Service End point policy resource. -type ServiceEndpointPolicyTypeArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // A collection of service endpoint policy definitions of the service endpoint policy. - ServiceEndpointPolicyDefinitions ServiceEndpointPolicyDefinitionTypeArrayInput `pulumi:"serviceEndpointPolicyDefinitions"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` +func (*propagatedRouteTableNfvPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTableNfv)(nil)).Elem() } -func (ServiceEndpointPolicyTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyType)(nil)).Elem() +func (i *propagatedRouteTableNfvPtrType) ToPropagatedRouteTableNfvPtrOutput() PropagatedRouteTableNfvPtrOutput { + return i.ToPropagatedRouteTableNfvPtrOutputWithContext(context.Background()) } -func (i ServiceEndpointPolicyTypeArgs) ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput { - return i.ToServiceEndpointPolicyTypeOutputWithContext(context.Background()) +func (i *propagatedRouteTableNfvPtrType) ToPropagatedRouteTableNfvPtrOutputWithContext(ctx context.Context) PropagatedRouteTableNfvPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PropagatedRouteTableNfvPtrOutput) } -func (i ServiceEndpointPolicyTypeArgs) ToServiceEndpointPolicyTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyTypeOutput) +// Nfv version of the list of RouteTables to advertise the routes to. +type PropagatedRouteTableNfvOutput struct{ *pulumi.OutputState } + +func (PropagatedRouteTableNfvOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTableNfv)(nil)).Elem() } -// ServiceEndpointPolicyTypeArrayInput is an input type that accepts ServiceEndpointPolicyTypeArray and ServiceEndpointPolicyTypeArrayOutput values. -// You can construct a concrete instance of `ServiceEndpointPolicyTypeArrayInput` via: -// -// ServiceEndpointPolicyTypeArray{ ServiceEndpointPolicyTypeArgs{...} } -type ServiceEndpointPolicyTypeArrayInput interface { - pulumi.Input +func (o PropagatedRouteTableNfvOutput) ToPropagatedRouteTableNfvOutput() PropagatedRouteTableNfvOutput { + return o +} - ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput - ToServiceEndpointPolicyTypeArrayOutputWithContext(context.Context) ServiceEndpointPolicyTypeArrayOutput +func (o PropagatedRouteTableNfvOutput) ToPropagatedRouteTableNfvOutputWithContext(ctx context.Context) PropagatedRouteTableNfvOutput { + return o } -type ServiceEndpointPolicyTypeArray []ServiceEndpointPolicyTypeInput +func (o PropagatedRouteTableNfvOutput) ToPropagatedRouteTableNfvPtrOutput() PropagatedRouteTableNfvPtrOutput { + return o.ToPropagatedRouteTableNfvPtrOutputWithContext(context.Background()) +} -func (ServiceEndpointPolicyTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyType)(nil)).Elem() +func (o PropagatedRouteTableNfvOutput) ToPropagatedRouteTableNfvPtrOutputWithContext(ctx context.Context) PropagatedRouteTableNfvPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PropagatedRouteTableNfv) *PropagatedRouteTableNfv { + return &v + }).(PropagatedRouteTableNfvPtrOutput) } -func (i ServiceEndpointPolicyTypeArray) ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput { - return i.ToServiceEndpointPolicyTypeArrayOutputWithContext(context.Background()) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableNfvOutput) Ids() RoutingConfigurationNfvSubResourceArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableNfv) []RoutingConfigurationNfvSubResource { return v.Ids }).(RoutingConfigurationNfvSubResourceArrayOutput) } -func (i ServiceEndpointPolicyTypeArray) ToServiceEndpointPolicyTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyTypeArrayOutput) +// The list of labels. +func (o PropagatedRouteTableNfvOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableNfv) []string { return v.Labels }).(pulumi.StringArrayOutput) } -// Service End point policy resource. -type ServiceEndpointPolicyTypeOutput struct{ *pulumi.OutputState } +type PropagatedRouteTableNfvPtrOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPolicyTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyType)(nil)).Elem() +func (PropagatedRouteTableNfvPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTableNfv)(nil)).Elem() } -func (o ServiceEndpointPolicyTypeOutput) ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput { +func (o PropagatedRouteTableNfvPtrOutput) ToPropagatedRouteTableNfvPtrOutput() PropagatedRouteTableNfvPtrOutput { return o } -func (o ServiceEndpointPolicyTypeOutput) ToServiceEndpointPolicyTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeOutput { +func (o PropagatedRouteTableNfvPtrOutput) ToPropagatedRouteTableNfvPtrOutputWithContext(ctx context.Context) PropagatedRouteTableNfvPtrOutput { return o } -// Resource ID. -func (o ServiceEndpointPolicyTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o PropagatedRouteTableNfvPtrOutput) Elem() PropagatedRouteTableNfvOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfv) PropagatedRouteTableNfv { + if v != nil { + return *v + } + var ret PropagatedRouteTableNfv + return ret + }).(PropagatedRouteTableNfvOutput) } -// Resource location. -func (o ServiceEndpointPolicyTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.Location }).(pulumi.StringPtrOutput) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableNfvPtrOutput) Ids() RoutingConfigurationNfvSubResourceArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfv) []RoutingConfigurationNfvSubResource { + if v == nil { + return nil + } + return v.Ids + }).(RoutingConfigurationNfvSubResourceArrayOutput) } -// A collection of service endpoint policy definitions of the service endpoint policy. -func (o ServiceEndpointPolicyTypeOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionTypeArrayOutput { - return o.ApplyT(func(v ServiceEndpointPolicyType) []ServiceEndpointPolicyDefinitionType { - return v.ServiceEndpointPolicyDefinitions - }).(ServiceEndpointPolicyDefinitionTypeArrayOutput) +// The list of labels. +func (o PropagatedRouteTableNfvPtrOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfv) []string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringArrayOutput) } -// Resource tags. -func (o ServiceEndpointPolicyTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v ServiceEndpointPolicyType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// Nfv version of the list of RouteTables to advertise the routes to. +type PropagatedRouteTableNfvResponse struct { + // The list of resource ids of all the RouteTables. + Ids []RoutingConfigurationNfvSubResourceResponse `pulumi:"ids"` + // The list of labels. + Labels []string `pulumi:"labels"` } -type ServiceEndpointPolicyTypeArrayOutput struct{ *pulumi.OutputState } +// Nfv version of the list of RouteTables to advertise the routes to. +type PropagatedRouteTableNfvResponseOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPolicyTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyType)(nil)).Elem() +func (PropagatedRouteTableNfvResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTableNfvResponse)(nil)).Elem() } -func (o ServiceEndpointPolicyTypeArrayOutput) ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput { +func (o PropagatedRouteTableNfvResponseOutput) ToPropagatedRouteTableNfvResponseOutput() PropagatedRouteTableNfvResponseOutput { return o } -func (o ServiceEndpointPolicyTypeArrayOutput) ToServiceEndpointPolicyTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeArrayOutput { +func (o PropagatedRouteTableNfvResponseOutput) ToPropagatedRouteTableNfvResponseOutputWithContext(ctx context.Context) PropagatedRouteTableNfvResponseOutput { return o } -func (o ServiceEndpointPolicyTypeArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyType { - return vs[0].([]ServiceEndpointPolicyType)[vs[1].(int)] - }).(ServiceEndpointPolicyTypeOutput) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableNfvResponseOutput) Ids() RoutingConfigurationNfvSubResourceResponseArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableNfvResponse) []RoutingConfigurationNfvSubResourceResponse { return v.Ids }).(RoutingConfigurationNfvSubResourceResponseArrayOutput) } -// Service Endpoint policy definitions. -type ServiceEndpointPolicyDefinitionType struct { - // A description for this rule. Restricted to 140 chars. - Description *string `pulumi:"description"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Service endpoint name. - Service *string `pulumi:"service"` - // A list of service resources. - ServiceResources []string `pulumi:"serviceResources"` +// The list of labels. +func (o PropagatedRouteTableNfvResponseOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableNfvResponse) []string { return v.Labels }).(pulumi.StringArrayOutput) } -// ServiceEndpointPolicyDefinitionTypeInput is an input type that accepts ServiceEndpointPolicyDefinitionTypeArgs and ServiceEndpointPolicyDefinitionTypeOutput values. -// You can construct a concrete instance of `ServiceEndpointPolicyDefinitionTypeInput` via: -// -// ServiceEndpointPolicyDefinitionTypeArgs{...} -type ServiceEndpointPolicyDefinitionTypeInput interface { - pulumi.Input +type PropagatedRouteTableNfvResponsePtrOutput struct{ *pulumi.OutputState } - ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput - ToServiceEndpointPolicyDefinitionTypeOutputWithContext(context.Context) ServiceEndpointPolicyDefinitionTypeOutput +func (PropagatedRouteTableNfvResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTableNfvResponse)(nil)).Elem() } -// Service Endpoint policy definitions. -type ServiceEndpointPolicyDefinitionTypeArgs struct { - // A description for this rule. Restricted to 140 chars. - Description pulumi.StringPtrInput `pulumi:"description"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // Service endpoint name. - Service pulumi.StringPtrInput `pulumi:"service"` - // A list of service resources. - ServiceResources pulumi.StringArrayInput `pulumi:"serviceResources"` +func (o PropagatedRouteTableNfvResponsePtrOutput) ToPropagatedRouteTableNfvResponsePtrOutput() PropagatedRouteTableNfvResponsePtrOutput { + return o } -func (ServiceEndpointPolicyDefinitionTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyDefinitionType)(nil)).Elem() +func (o PropagatedRouteTableNfvResponsePtrOutput) ToPropagatedRouteTableNfvResponsePtrOutputWithContext(ctx context.Context) PropagatedRouteTableNfvResponsePtrOutput { + return o } -func (i ServiceEndpointPolicyDefinitionTypeArgs) ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput { - return i.ToServiceEndpointPolicyDefinitionTypeOutputWithContext(context.Background()) +func (o PropagatedRouteTableNfvResponsePtrOutput) Elem() PropagatedRouteTableNfvResponseOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfvResponse) PropagatedRouteTableNfvResponse { + if v != nil { + return *v + } + var ret PropagatedRouteTableNfvResponse + return ret + }).(PropagatedRouteTableNfvResponseOutput) } -func (i ServiceEndpointPolicyDefinitionTypeArgs) ToServiceEndpointPolicyDefinitionTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyDefinitionTypeOutput) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableNfvResponsePtrOutput) Ids() RoutingConfigurationNfvSubResourceResponseArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfvResponse) []RoutingConfigurationNfvSubResourceResponse { + if v == nil { + return nil + } + return v.Ids + }).(RoutingConfigurationNfvSubResourceResponseArrayOutput) } -// ServiceEndpointPolicyDefinitionTypeArrayInput is an input type that accepts ServiceEndpointPolicyDefinitionTypeArray and ServiceEndpointPolicyDefinitionTypeArrayOutput values. -// You can construct a concrete instance of `ServiceEndpointPolicyDefinitionTypeArrayInput` via: -// -// ServiceEndpointPolicyDefinitionTypeArray{ ServiceEndpointPolicyDefinitionTypeArgs{...} } -type ServiceEndpointPolicyDefinitionTypeArrayInput interface { - pulumi.Input +// The list of labels. +func (o PropagatedRouteTableNfvResponsePtrOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableNfvResponse) []string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringArrayOutput) +} - ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput - ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput +// The list of RouteTables to advertise the routes to. +type PropagatedRouteTableResponse struct { + // The list of resource ids of all the RouteTables. + Ids []SubResourceResponse `pulumi:"ids"` + // The list of labels. + Labels []string `pulumi:"labels"` } -type ServiceEndpointPolicyDefinitionTypeArray []ServiceEndpointPolicyDefinitionTypeInput +// The list of RouteTables to advertise the routes to. +type PropagatedRouteTableResponseOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPolicyDefinitionTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionType)(nil)).Elem() +func (PropagatedRouteTableResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PropagatedRouteTableResponse)(nil)).Elem() } -func (i ServiceEndpointPolicyDefinitionTypeArray) ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput { - return i.ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(context.Background()) +func (o PropagatedRouteTableResponseOutput) ToPropagatedRouteTableResponseOutput() PropagatedRouteTableResponseOutput { + return o } -func (i ServiceEndpointPolicyDefinitionTypeArray) ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyDefinitionTypeArrayOutput) +func (o PropagatedRouteTableResponseOutput) ToPropagatedRouteTableResponseOutputWithContext(ctx context.Context) PropagatedRouteTableResponseOutput { + return o } -// Service Endpoint policy definitions. -type ServiceEndpointPolicyDefinitionTypeOutput struct{ *pulumi.OutputState } +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableResponseOutput) Ids() SubResourceResponseArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableResponse) []SubResourceResponse { return v.Ids }).(SubResourceResponseArrayOutput) +} -func (ServiceEndpointPolicyDefinitionTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyDefinitionType)(nil)).Elem() +// The list of labels. +func (o PropagatedRouteTableResponseOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v PropagatedRouteTableResponse) []string { return v.Labels }).(pulumi.StringArrayOutput) } -func (o ServiceEndpointPolicyDefinitionTypeOutput) ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput { - return o +type PropagatedRouteTableResponsePtrOutput struct{ *pulumi.OutputState } + +func (PropagatedRouteTableResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PropagatedRouteTableResponse)(nil)).Elem() } -func (o ServiceEndpointPolicyDefinitionTypeOutput) ToServiceEndpointPolicyDefinitionTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeOutput { +func (o PropagatedRouteTableResponsePtrOutput) ToPropagatedRouteTableResponsePtrOutput() PropagatedRouteTableResponsePtrOutput { return o } -// A description for this rule. Restricted to 140 chars. -func (o ServiceEndpointPolicyDefinitionTypeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o PropagatedRouteTableResponsePtrOutput) ToPropagatedRouteTableResponsePtrOutputWithContext(ctx context.Context) PropagatedRouteTableResponsePtrOutput { + return o } -// Resource ID. -func (o ServiceEndpointPolicyDefinitionTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o PropagatedRouteTableResponsePtrOutput) Elem() PropagatedRouteTableResponseOutput { + return o.ApplyT(func(v *PropagatedRouteTableResponse) PropagatedRouteTableResponse { + if v != nil { + return *v + } + var ret PropagatedRouteTableResponse + return ret + }).(PropagatedRouteTableResponseOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o ServiceEndpointPolicyDefinitionTypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Name }).(pulumi.StringPtrOutput) +// The list of resource ids of all the RouteTables. +func (o PropagatedRouteTableResponsePtrOutput) Ids() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableResponse) []SubResourceResponse { + if v == nil { + return nil + } + return v.Ids + }).(SubResourceResponseArrayOutput) } -// Service endpoint name. -func (o ServiceEndpointPolicyDefinitionTypeOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Service }).(pulumi.StringPtrOutput) +// The list of labels. +func (o PropagatedRouteTableResponsePtrOutput) Labels() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PropagatedRouteTableResponse) []string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringArrayOutput) } -// A list of service resources. -func (o ServiceEndpointPolicyDefinitionTypeOutput) ServiceResources() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) []string { return v.ServiceResources }).(pulumi.StringArrayOutput) +// A PTR record. +type PtrRecord struct { + // The PTR target domain name for this PTR record. + Ptrdname *string `pulumi:"ptrdname"` } -type ServiceEndpointPolicyDefinitionTypeArrayOutput struct{ *pulumi.OutputState } +// PtrRecordInput is an input type that accepts PtrRecordArgs and PtrRecordOutput values. +// You can construct a concrete instance of `PtrRecordInput` via: +// +// PtrRecordArgs{...} +type PtrRecordInput interface { + pulumi.Input -func (ServiceEndpointPolicyDefinitionTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionType)(nil)).Elem() + ToPtrRecordOutput() PtrRecordOutput + ToPtrRecordOutputWithContext(context.Context) PtrRecordOutput } -func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput { - return o +// A PTR record. +type PtrRecordArgs struct { + // The PTR target domain name for this PTR record. + Ptrdname pulumi.StringPtrInput `pulumi:"ptrdname"` } -func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput { - return o +func (PtrRecordArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PtrRecord)(nil)).Elem() } -func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyDefinitionTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyDefinitionType { - return vs[0].([]ServiceEndpointPolicyDefinitionType)[vs[1].(int)] - }).(ServiceEndpointPolicyDefinitionTypeOutput) +func (i PtrRecordArgs) ToPtrRecordOutput() PtrRecordOutput { + return i.ToPtrRecordOutputWithContext(context.Background()) } -// Service Endpoint policy definitions. -type ServiceEndpointPolicyDefinitionResponse struct { - // A description for this rule. Restricted to 140 chars. - Description *string `pulumi:"description"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the service endpoint policy definition resource. - ProvisioningState string `pulumi:"provisioningState"` - // Service endpoint name. - Service *string `pulumi:"service"` - // A list of service resources. - ServiceResources []string `pulumi:"serviceResources"` +func (i PtrRecordArgs) ToPtrRecordOutputWithContext(ctx context.Context) PtrRecordOutput { + return pulumi.ToOutputWithContext(ctx, i).(PtrRecordOutput) } -// Service Endpoint policy definitions. -type ServiceEndpointPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } +// PtrRecordArrayInput is an input type that accepts PtrRecordArray and PtrRecordArrayOutput values. +// You can construct a concrete instance of `PtrRecordArrayInput` via: +// +// PtrRecordArray{ PtrRecordArgs{...} } +type PtrRecordArrayInput interface { + pulumi.Input -func (ServiceEndpointPolicyDefinitionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyDefinitionResponse)(nil)).Elem() + ToPtrRecordArrayOutput() PtrRecordArrayOutput + ToPtrRecordArrayOutputWithContext(context.Context) PtrRecordArrayOutput } -func (o ServiceEndpointPolicyDefinitionResponseOutput) ToServiceEndpointPolicyDefinitionResponseOutput() ServiceEndpointPolicyDefinitionResponseOutput { - return o +type PtrRecordArray []PtrRecordInput + +func (PtrRecordArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PtrRecord)(nil)).Elem() } -func (o ServiceEndpointPolicyDefinitionResponseOutput) ToServiceEndpointPolicyDefinitionResponseOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionResponseOutput { - return o +func (i PtrRecordArray) ToPtrRecordArrayOutput() PtrRecordArrayOutput { + return i.ToPtrRecordArrayOutputWithContext(context.Background()) } -// A description for this rule. Restricted to 140 chars. -func (o ServiceEndpointPolicyDefinitionResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +func (i PtrRecordArray) ToPtrRecordArrayOutputWithContext(ctx context.Context) PtrRecordArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PtrRecordArrayOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o ServiceEndpointPolicyDefinitionResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) string { return v.Etag }).(pulumi.StringOutput) +// A PTR record. +type PtrRecordOutput struct{ *pulumi.OutputState } + +func (PtrRecordOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PtrRecord)(nil)).Elem() } -// Resource ID. -func (o ServiceEndpointPolicyDefinitionResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o ServiceEndpointPolicyDefinitionResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} - -// The provisioning state of the service endpoint policy definition resource. -func (o ServiceEndpointPolicyDefinitionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o PtrRecordOutput) ToPtrRecordOutput() PtrRecordOutput { + return o } -// Service endpoint name. -func (o ServiceEndpointPolicyDefinitionResponseOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Service }).(pulumi.StringPtrOutput) +func (o PtrRecordOutput) ToPtrRecordOutputWithContext(ctx context.Context) PtrRecordOutput { + return o } -// A list of service resources. -func (o ServiceEndpointPolicyDefinitionResponseOutput) ServiceResources() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) []string { return v.ServiceResources }).(pulumi.StringArrayOutput) +// The PTR target domain name for this PTR record. +func (o PtrRecordOutput) Ptrdname() pulumi.StringPtrOutput { + return o.ApplyT(func(v PtrRecord) *string { return v.Ptrdname }).(pulumi.StringPtrOutput) } -type ServiceEndpointPolicyDefinitionResponseArrayOutput struct{ *pulumi.OutputState } +type PtrRecordArrayOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPolicyDefinitionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionResponse)(nil)).Elem() +func (PtrRecordArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PtrRecord)(nil)).Elem() } -func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) ToServiceEndpointPolicyDefinitionResponseArrayOutput() ServiceEndpointPolicyDefinitionResponseArrayOutput { +func (o PtrRecordArrayOutput) ToPtrRecordArrayOutput() PtrRecordArrayOutput { return o } -func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) ToServiceEndpointPolicyDefinitionResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionResponseArrayOutput { +func (o PtrRecordArrayOutput) ToPtrRecordArrayOutputWithContext(ctx context.Context) PtrRecordArrayOutput { return o } -func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyDefinitionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyDefinitionResponse { - return vs[0].([]ServiceEndpointPolicyDefinitionResponse)[vs[1].(int)] - }).(ServiceEndpointPolicyDefinitionResponseOutput) +func (o PtrRecordArrayOutput) Index(i pulumi.IntInput) PtrRecordOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PtrRecord { + return vs[0].([]PtrRecord)[vs[1].(int)] + }).(PtrRecordOutput) } -// Service End point policy resource. -type ServiceEndpointPolicyResponse struct { - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Kind of service endpoint policy. This is metadata used for the Azure portal experience. - Kind string `pulumi:"kind"` - // Resource location. - Location *string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // The provisioning state of the service endpoint policy resource. - ProvisioningState string `pulumi:"provisioningState"` - // The resource GUID property of the service endpoint policy resource. - ResourceGuid string `pulumi:"resourceGuid"` - // A collection of service endpoint policy definitions of the service endpoint policy. - ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionResponse `pulumi:"serviceEndpointPolicyDefinitions"` - // A collection of references to subnets. - Subnets []SubnetResponse `pulumi:"subnets"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` +// A PTR record. +type PtrRecordResponse struct { + // The PTR target domain name for this PTR record. + Ptrdname *string `pulumi:"ptrdname"` } -// Service End point policy resource. -type ServiceEndpointPolicyResponseOutput struct{ *pulumi.OutputState } +// A PTR record. +type PtrRecordResponseOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPolicyResponse)(nil)).Elem() +func (PtrRecordResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PtrRecordResponse)(nil)).Elem() } -func (o ServiceEndpointPolicyResponseOutput) ToServiceEndpointPolicyResponseOutput() ServiceEndpointPolicyResponseOutput { +func (o PtrRecordResponseOutput) ToPtrRecordResponseOutput() PtrRecordResponseOutput { return o } -func (o ServiceEndpointPolicyResponseOutput) ToServiceEndpointPolicyResponseOutputWithContext(ctx context.Context) ServiceEndpointPolicyResponseOutput { +func (o PtrRecordResponseOutput) ToPtrRecordResponseOutputWithContext(ctx context.Context) PtrRecordResponseOutput { return o } -// A unique read-only string that changes whenever the resource is updated. -func (o ServiceEndpointPolicyResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// Resource ID. -func (o ServiceEndpointPolicyResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +// The PTR target domain name for this PTR record. +func (o PtrRecordResponseOutput) Ptrdname() pulumi.StringPtrOutput { + return o.ApplyT(func(v PtrRecordResponse) *string { return v.Ptrdname }).(pulumi.StringPtrOutput) } -// Kind of service endpoint policy. This is metadata used for the Azure portal experience. -func (o ServiceEndpointPolicyResponseOutput) Kind() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Kind }).(pulumi.StringOutput) -} +type PtrRecordResponseArrayOutput struct{ *pulumi.OutputState } -// Resource location. -func (o ServiceEndpointPolicyResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +func (PtrRecordResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PtrRecordResponse)(nil)).Elem() } -// Resource name. -func (o ServiceEndpointPolicyResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Name }).(pulumi.StringOutput) +func (o PtrRecordResponseArrayOutput) ToPtrRecordResponseArrayOutput() PtrRecordResponseArrayOutput { + return o } -// The provisioning state of the service endpoint policy resource. -func (o ServiceEndpointPolicyResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o PtrRecordResponseArrayOutput) ToPtrRecordResponseArrayOutputWithContext(ctx context.Context) PtrRecordResponseArrayOutput { + return o } -// The resource GUID property of the service endpoint policy resource. -func (o ServiceEndpointPolicyResponseOutput) ResourceGuid() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +func (o PtrRecordResponseArrayOutput) Index(i pulumi.IntInput) PtrRecordResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PtrRecordResponse { + return vs[0].([]PtrRecordResponse)[vs[1].(int)] + }).(PtrRecordResponseOutput) } -// A collection of service endpoint policy definitions of the service endpoint policy. -func (o ServiceEndpointPolicyResponseOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionResponseArrayOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) []ServiceEndpointPolicyDefinitionResponse { - return v.ServiceEndpointPolicyDefinitions - }).(ServiceEndpointPolicyDefinitionResponseArrayOutput) +// Public IP address resource. +type PublicIPAddressType struct { + // The DDoS protection custom policy associated with the public IP address. + DdosSettings *DdosSettings `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption *string `pulumi:"deleteOption"` + // The FQDN of the DNS record associated with the public IP address. + DnsSettings *PublicIPAddressDnsSettings `pulumi:"dnsSettings"` + // The extended location of the public ip address. + ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` + // Resource ID. + Id *string `pulumi:"id"` + // The idle timeout of the public IP address. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // The IP address associated with the public IP address resource. + IpAddress *string `pulumi:"ipAddress"` + // The list of tags associated with the public IP address. + IpTags []IpTag `pulumi:"ipTags"` + // The linked public IP address of the public IP address resource. + LinkedPublicIPAddress *PublicIPAddressType `pulumi:"linkedPublicIPAddress"` + // Resource location. + Location *string `pulumi:"location"` + // Migration phase of Public IP Address. + MigrationPhase *string `pulumi:"migrationPhase"` + // The NatGateway for the Public IP address. + NatGateway *NatGatewayType `pulumi:"natGateway"` + // The public IP address version. + PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` + // The public IP address allocation method. + PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` + // The Public IP Prefix this Public IP Address should be allocated from. + PublicIPPrefix *SubResource `pulumi:"publicIPPrefix"` + // The service public IP address of the public IP address resource. + ServicePublicIPAddress *PublicIPAddressType `pulumi:"servicePublicIPAddress"` + // The public IP address SKU. + Sku *PublicIPAddressSku `pulumi:"sku"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // A list of availability zones denoting the IP allocated for the resource needs to come from. + Zones []string `pulumi:"zones"` } -// A collection of references to subnets. -func (o ServiceEndpointPolicyResponseOutput) Subnets() SubnetResponseArrayOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) -} +// PublicIPAddressTypeInput is an input type that accepts PublicIPAddressTypeArgs and PublicIPAddressTypeOutput values. +// You can construct a concrete instance of `PublicIPAddressTypeInput` via: +// +// PublicIPAddressTypeArgs{...} +type PublicIPAddressTypeInput interface { + pulumi.Input -// Resource tags. -func (o ServiceEndpointPolicyResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) + ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput + ToPublicIPAddressTypeOutputWithContext(context.Context) PublicIPAddressTypeOutput } -// Resource type. -func (o ServiceEndpointPolicyResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Type }).(pulumi.StringOutput) +// Public IP address resource. +type PublicIPAddressTypeArgs struct { + // The DDoS protection custom policy associated with the public IP address. + DdosSettings DdosSettingsPtrInput `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption pulumi.StringPtrInput `pulumi:"deleteOption"` + // The FQDN of the DNS record associated with the public IP address. + DnsSettings PublicIPAddressDnsSettingsPtrInput `pulumi:"dnsSettings"` + // The extended location of the public ip address. + ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The idle timeout of the public IP address. + IdleTimeoutInMinutes pulumi.IntPtrInput `pulumi:"idleTimeoutInMinutes"` + // The IP address associated with the public IP address resource. + IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` + // The list of tags associated with the public IP address. + IpTags IpTagArrayInput `pulumi:"ipTags"` + // The linked public IP address of the public IP address resource. + LinkedPublicIPAddress PublicIPAddressTypePtrInput `pulumi:"linkedPublicIPAddress"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // Migration phase of Public IP Address. + MigrationPhase pulumi.StringPtrInput `pulumi:"migrationPhase"` + // The NatGateway for the Public IP address. + NatGateway NatGatewayTypePtrInput `pulumi:"natGateway"` + // The public IP address version. + PublicIPAddressVersion pulumi.StringPtrInput `pulumi:"publicIPAddressVersion"` + // The public IP address allocation method. + PublicIPAllocationMethod pulumi.StringPtrInput `pulumi:"publicIPAllocationMethod"` + // The Public IP Prefix this Public IP Address should be allocated from. + PublicIPPrefix SubResourcePtrInput `pulumi:"publicIPPrefix"` + // The service public IP address of the public IP address resource. + ServicePublicIPAddress PublicIPAddressTypePtrInput `pulumi:"servicePublicIPAddress"` + // The public IP address SKU. + Sku PublicIPAddressSkuPtrInput `pulumi:"sku"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` + // A list of availability zones denoting the IP allocated for the resource needs to come from. + Zones pulumi.StringArrayInput `pulumi:"zones"` } -type ServiceEndpointPolicyResponseArrayOutput struct{ *pulumi.OutputState } - -func (ServiceEndpointPolicyResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPolicyResponse)(nil)).Elem() +func (PublicIPAddressTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressType)(nil)).Elem() } -func (o ServiceEndpointPolicyResponseArrayOutput) ToServiceEndpointPolicyResponseArrayOutput() ServiceEndpointPolicyResponseArrayOutput { - return o +func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput { + return i.ToPublicIPAddressTypeOutputWithContext(context.Background()) } -func (o ServiceEndpointPolicyResponseArrayOutput) ToServiceEndpointPolicyResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyResponseArrayOutput { - return o +func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypeOutputWithContext(ctx context.Context) PublicIPAddressTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypeOutput) } -func (o ServiceEndpointPolicyResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyResponse { - return vs[0].([]ServiceEndpointPolicyResponse)[vs[1].(int)] - }).(ServiceEndpointPolicyResponseOutput) +func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { + return i.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) } -// The service endpoint properties. -type ServiceEndpointPropertiesFormat struct { - // A list of locations. - Locations []string `pulumi:"locations"` - // The type of the endpoint service. - Service *string `pulumi:"service"` +func (i PublicIPAddressTypeArgs) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypeOutput).ToPublicIPAddressTypePtrOutputWithContext(ctx) } -// ServiceEndpointPropertiesFormatInput is an input type that accepts ServiceEndpointPropertiesFormatArgs and ServiceEndpointPropertiesFormatOutput values. -// You can construct a concrete instance of `ServiceEndpointPropertiesFormatInput` via: +// PublicIPAddressTypePtrInput is an input type that accepts PublicIPAddressTypeArgs, PublicIPAddressTypePtr and PublicIPAddressTypePtrOutput values. +// You can construct a concrete instance of `PublicIPAddressTypePtrInput` via: // -// ServiceEndpointPropertiesFormatArgs{...} -type ServiceEndpointPropertiesFormatInput interface { +// PublicIPAddressTypeArgs{...} +// +// or: +// +// nil +type PublicIPAddressTypePtrInput interface { pulumi.Input - ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput - ToServiceEndpointPropertiesFormatOutputWithContext(context.Context) ServiceEndpointPropertiesFormatOutput + ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput + ToPublicIPAddressTypePtrOutputWithContext(context.Context) PublicIPAddressTypePtrOutput } -// The service endpoint properties. -type ServiceEndpointPropertiesFormatArgs struct { - // A list of locations. - Locations pulumi.StringArrayInput `pulumi:"locations"` - // The type of the endpoint service. - Service pulumi.StringPtrInput `pulumi:"service"` +type publicIPAddressTypePtrType PublicIPAddressTypeArgs + +func PublicIPAddressTypePtr(v *PublicIPAddressTypeArgs) PublicIPAddressTypePtrInput { + return (*publicIPAddressTypePtrType)(v) } -func (ServiceEndpointPropertiesFormatArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPropertiesFormat)(nil)).Elem() +func (*publicIPAddressTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressType)(nil)).Elem() } -func (i ServiceEndpointPropertiesFormatArgs) ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput { - return i.ToServiceEndpointPropertiesFormatOutputWithContext(context.Background()) +func (i *publicIPAddressTypePtrType) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { + return i.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) } -func (i ServiceEndpointPropertiesFormatArgs) ToServiceEndpointPropertiesFormatOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPropertiesFormatOutput) +func (i *publicIPAddressTypePtrType) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressTypePtrOutput) } -// ServiceEndpointPropertiesFormatArrayInput is an input type that accepts ServiceEndpointPropertiesFormatArray and ServiceEndpointPropertiesFormatArrayOutput values. -// You can construct a concrete instance of `ServiceEndpointPropertiesFormatArrayInput` via: -// -// ServiceEndpointPropertiesFormatArray{ ServiceEndpointPropertiesFormatArgs{...} } -type ServiceEndpointPropertiesFormatArrayInput interface { - pulumi.Input +// Public IP address resource. +type PublicIPAddressTypeOutput struct{ *pulumi.OutputState } - ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput - ToServiceEndpointPropertiesFormatArrayOutputWithContext(context.Context) ServiceEndpointPropertiesFormatArrayOutput +func (PublicIPAddressTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressType)(nil)).Elem() } -type ServiceEndpointPropertiesFormatArray []ServiceEndpointPropertiesFormatInput +func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypeOutput() PublicIPAddressTypeOutput { + return o +} -func (ServiceEndpointPropertiesFormatArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPropertiesFormat)(nil)).Elem() +func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypeOutputWithContext(ctx context.Context) PublicIPAddressTypeOutput { + return o } -func (i ServiceEndpointPropertiesFormatArray) ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput { - return i.ToServiceEndpointPropertiesFormatArrayOutputWithContext(context.Background()) +func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { + return o.ToPublicIPAddressTypePtrOutputWithContext(context.Background()) } -func (i ServiceEndpointPropertiesFormatArray) ToServiceEndpointPropertiesFormatArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPropertiesFormatArrayOutput) +func (o PublicIPAddressTypeOutput) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressType) *PublicIPAddressType { + return &v + }).(PublicIPAddressTypePtrOutput) } -// The service endpoint properties. -type ServiceEndpointPropertiesFormatOutput struct{ *pulumi.OutputState } +// The DDoS protection custom policy associated with the public IP address. +func (o PublicIPAddressTypeOutput) DdosSettings() DdosSettingsPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *DdosSettings { return v.DdosSettings }).(DdosSettingsPtrOutput) +} -func (ServiceEndpointPropertiesFormatOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPropertiesFormat)(nil)).Elem() +// Specify what happens to the public IP address when the VM using it is deleted +func (o PublicIPAddressTypeOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) } -func (o ServiceEndpointPropertiesFormatOutput) ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput { - return o +// The FQDN of the DNS record associated with the public IP address. +func (o PublicIPAddressTypeOutput) DnsSettings() PublicIPAddressDnsSettingsPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressDnsSettings { return v.DnsSettings }).(PublicIPAddressDnsSettingsPtrOutput) } -func (o ServiceEndpointPropertiesFormatOutput) ToServiceEndpointPropertiesFormatOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatOutput { - return o +// The extended location of the public ip address. +func (o PublicIPAddressTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) } -// A list of locations. -func (o ServiceEndpointPropertiesFormatOutput) Locations() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServiceEndpointPropertiesFormat) []string { return v.Locations }).(pulumi.StringArrayOutput) +// Resource ID. +func (o PublicIPAddressTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The type of the endpoint service. -func (o ServiceEndpointPropertiesFormatOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPropertiesFormat) *string { return v.Service }).(pulumi.StringPtrOutput) +// The idle timeout of the public IP address. +func (o PublicIPAddressTypeOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) } -type ServiceEndpointPropertiesFormatArrayOutput struct{ *pulumi.OutputState } +// The IP address associated with the public IP address resource. +func (o PublicIPAddressTypeOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +} -func (ServiceEndpointPropertiesFormatArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPropertiesFormat)(nil)).Elem() +// The list of tags associated with the public IP address. +func (o PublicIPAddressTypeOutput) IpTags() IpTagArrayOutput { + return o.ApplyT(func(v PublicIPAddressType) []IpTag { return v.IpTags }).(IpTagArrayOutput) } -func (o ServiceEndpointPropertiesFormatArrayOutput) ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput { - return o +// The linked public IP address of the public IP address resource. +func (o PublicIPAddressTypeOutput) LinkedPublicIPAddress() PublicIPAddressTypePtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressType { return v.LinkedPublicIPAddress }).(PublicIPAddressTypePtrOutput) } -func (o ServiceEndpointPropertiesFormatArrayOutput) ToServiceEndpointPropertiesFormatArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatArrayOutput { - return o +// Resource location. +func (o PublicIPAddressTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o ServiceEndpointPropertiesFormatArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPropertiesFormatOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPropertiesFormat { - return vs[0].([]ServiceEndpointPropertiesFormat)[vs[1].(int)] - }).(ServiceEndpointPropertiesFormatOutput) +// Migration phase of Public IP Address. +func (o PublicIPAddressTypeOutput) MigrationPhase() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.MigrationPhase }).(pulumi.StringPtrOutput) } -// The service endpoint properties. -type ServiceEndpointPropertiesFormatResponse struct { - // A list of locations. - Locations []string `pulumi:"locations"` - // The provisioning state of the service endpoint resource. - ProvisioningState string `pulumi:"provisioningState"` - // The type of the endpoint service. - Service *string `pulumi:"service"` +// The NatGateway for the Public IP address. +func (o PublicIPAddressTypeOutput) NatGateway() NatGatewayTypePtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *NatGatewayType { return v.NatGateway }).(NatGatewayTypePtrOutput) } -// The service endpoint properties. -type ServiceEndpointPropertiesFormatResponseOutput struct{ *pulumi.OutputState } +// The public IP address version. +func (o PublicIPAddressTypeOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.PublicIPAddressVersion }).(pulumi.StringPtrOutput) +} -func (ServiceEndpointPropertiesFormatResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceEndpointPropertiesFormatResponse)(nil)).Elem() +// The public IP address allocation method. +func (o PublicIPAddressTypeOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *string { return v.PublicIPAllocationMethod }).(pulumi.StringPtrOutput) } -func (o ServiceEndpointPropertiesFormatResponseOutput) ToServiceEndpointPropertiesFormatResponseOutput() ServiceEndpointPropertiesFormatResponseOutput { - return o +// The Public IP Prefix this Public IP Address should be allocated from. +func (o PublicIPAddressTypeOutput) PublicIPPrefix() SubResourcePtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *SubResource { return v.PublicIPPrefix }).(SubResourcePtrOutput) } -func (o ServiceEndpointPropertiesFormatResponseOutput) ToServiceEndpointPropertiesFormatResponseOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatResponseOutput { - return o +// The service public IP address of the public IP address resource. +func (o PublicIPAddressTypeOutput) ServicePublicIPAddress() PublicIPAddressTypePtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressType { return v.ServicePublicIPAddress }).(PublicIPAddressTypePtrOutput) } -// A list of locations. -func (o ServiceEndpointPropertiesFormatResponseOutput) Locations() pulumi.StringArrayOutput { - return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) []string { return v.Locations }).(pulumi.StringArrayOutput) +// The public IP address SKU. +func (o PublicIPAddressTypeOutput) Sku() PublicIPAddressSkuPtrOutput { + return o.ApplyT(func(v PublicIPAddressType) *PublicIPAddressSku { return v.Sku }).(PublicIPAddressSkuPtrOutput) } -// The provisioning state of the service endpoint resource. -func (o ServiceEndpointPropertiesFormatResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Resource tags. +func (o PublicIPAddressTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v PublicIPAddressType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -// The type of the endpoint service. -func (o ServiceEndpointPropertiesFormatResponseOutput) Service() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) *string { return v.Service }).(pulumi.StringPtrOutput) +// A list of availability zones denoting the IP allocated for the resource needs to come from. +func (o PublicIPAddressTypeOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v PublicIPAddressType) []string { return v.Zones }).(pulumi.StringArrayOutput) } -type ServiceEndpointPropertiesFormatResponseArrayOutput struct{ *pulumi.OutputState } +type PublicIPAddressTypePtrOutput struct{ *pulumi.OutputState } -func (ServiceEndpointPropertiesFormatResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceEndpointPropertiesFormatResponse)(nil)).Elem() +func (PublicIPAddressTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressType)(nil)).Elem() } -func (o ServiceEndpointPropertiesFormatResponseArrayOutput) ToServiceEndpointPropertiesFormatResponseArrayOutput() ServiceEndpointPropertiesFormatResponseArrayOutput { +func (o PublicIPAddressTypePtrOutput) ToPublicIPAddressTypePtrOutput() PublicIPAddressTypePtrOutput { return o } -func (o ServiceEndpointPropertiesFormatResponseArrayOutput) ToServiceEndpointPropertiesFormatResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatResponseArrayOutput { +func (o PublicIPAddressTypePtrOutput) ToPublicIPAddressTypePtrOutputWithContext(ctx context.Context) PublicIPAddressTypePtrOutput { return o } -func (o ServiceEndpointPropertiesFormatResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPropertiesFormatResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPropertiesFormatResponse { - return vs[0].([]ServiceEndpointPropertiesFormatResponse)[vs[1].(int)] - }).(ServiceEndpointPropertiesFormatResponseOutput) +func (o PublicIPAddressTypePtrOutput) Elem() PublicIPAddressTypeOutput { + return o.ApplyT(func(v *PublicIPAddressType) PublicIPAddressType { + if v != nil { + return *v + } + var ret PublicIPAddressType + return ret + }).(PublicIPAddressTypeOutput) } -type SingleQueryResultResponse struct { - // Describes what is the signature enforces - Description *string `pulumi:"description"` - // Describes the list of destination ports related to this signature - DestinationPorts []string `pulumi:"destinationPorts"` - // Describes in which direction signature is being enforced: 0 - Inbound, 1 - OutBound, 2 - Bidirectional - Direction *int `pulumi:"direction"` - // Describes the groups the signature belongs to - Group *string `pulumi:"group"` - // Describes if this override is inherited from base policy or not - InheritedFromParentPolicy *bool `pulumi:"inheritedFromParentPolicy"` - // Describes the last updated time of the signature (provided from 3rd party vendor) - LastUpdated *string `pulumi:"lastUpdated"` - // The current mode enforced, 0 - Disabled, 1 - Alert, 2 -Deny - Mode *int `pulumi:"mode"` - // Describes the protocol the signatures is being enforced in - Protocol *string `pulumi:"protocol"` - // Describes the severity of signature: 1 - Low, 2 - Medium, 3 - High - Severity *int `pulumi:"severity"` - // The ID of the signature - SignatureId *int `pulumi:"signatureId"` - // Describes the list of source ports related to this signature - SourcePorts []string `pulumi:"sourcePorts"` +// The DDoS protection custom policy associated with the public IP address. +func (o PublicIPAddressTypePtrOutput) DdosSettings() DdosSettingsPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *DdosSettings { + if v == nil { + return nil + } + return v.DdosSettings + }).(DdosSettingsPtrOutput) } -type SingleQueryResultResponseOutput struct{ *pulumi.OutputState } - -func (SingleQueryResultResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SingleQueryResultResponse)(nil)).Elem() +// Specify what happens to the public IP address when the VM using it is deleted +func (o PublicIPAddressTypePtrOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.DeleteOption + }).(pulumi.StringPtrOutput) } -func (o SingleQueryResultResponseOutput) ToSingleQueryResultResponseOutput() SingleQueryResultResponseOutput { - return o +// The FQDN of the DNS record associated with the public IP address. +func (o PublicIPAddressTypePtrOutput) DnsSettings() PublicIPAddressDnsSettingsPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressDnsSettings { + if v == nil { + return nil + } + return v.DnsSettings + }).(PublicIPAddressDnsSettingsPtrOutput) } -func (o SingleQueryResultResponseOutput) ToSingleQueryResultResponseOutputWithContext(ctx context.Context) SingleQueryResultResponseOutput { - return o +// The extended location of the public ip address. +func (o PublicIPAddressTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *ExtendedLocation { + if v == nil { + return nil + } + return v.ExtendedLocation + }).(ExtendedLocationPtrOutput) } -// Describes what is the signature enforces -func (o SingleQueryResultResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +// Resource ID. +func (o PublicIPAddressTypePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) } -// Describes the list of destination ports related to this signature -func (o SingleQueryResultResponseOutput) DestinationPorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v SingleQueryResultResponse) []string { return v.DestinationPorts }).(pulumi.StringArrayOutput) +// The idle timeout of the public IP address. +func (o PublicIPAddressTypePtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *int { + if v == nil { + return nil + } + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -// Describes in which direction signature is being enforced: 0 - Inbound, 1 - OutBound, 2 - Bidirectional -func (o SingleQueryResultResponseOutput) Direction() pulumi.IntPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Direction }).(pulumi.IntPtrOutput) +// The IP address associated with the public IP address resource. +func (o PublicIPAddressTypePtrOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.IpAddress + }).(pulumi.StringPtrOutput) } -// Describes the groups the signature belongs to -func (o SingleQueryResultResponseOutput) Group() pulumi.StringPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Group }).(pulumi.StringPtrOutput) +// The list of tags associated with the public IP address. +func (o PublicIPAddressTypePtrOutput) IpTags() IpTagArrayOutput { + return o.ApplyT(func(v *PublicIPAddressType) []IpTag { + if v == nil { + return nil + } + return v.IpTags + }).(IpTagArrayOutput) } -// Describes if this override is inherited from base policy or not -func (o SingleQueryResultResponseOutput) InheritedFromParentPolicy() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *bool { return v.InheritedFromParentPolicy }).(pulumi.BoolPtrOutput) +// The linked public IP address of the public IP address resource. +func (o PublicIPAddressTypePtrOutput) LinkedPublicIPAddress() PublicIPAddressTypePtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressType { + if v == nil { + return nil + } + return v.LinkedPublicIPAddress + }).(PublicIPAddressTypePtrOutput) } -// Describes the last updated time of the signature (provided from 3rd party vendor) -func (o SingleQueryResultResponseOutput) LastUpdated() pulumi.StringPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.LastUpdated }).(pulumi.StringPtrOutput) +// Resource location. +func (o PublicIPAddressTypePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -// The current mode enforced, 0 - Disabled, 1 - Alert, 2 -Deny -func (o SingleQueryResultResponseOutput) Mode() pulumi.IntPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Mode }).(pulumi.IntPtrOutput) +// Migration phase of Public IP Address. +func (o PublicIPAddressTypePtrOutput) MigrationPhase() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.MigrationPhase + }).(pulumi.StringPtrOutput) } -// Describes the protocol the signatures is being enforced in -func (o SingleQueryResultResponseOutput) Protocol() pulumi.StringPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +// The NatGateway for the Public IP address. +func (o PublicIPAddressTypePtrOutput) NatGateway() NatGatewayTypePtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *NatGatewayType { + if v == nil { + return nil + } + return v.NatGateway + }).(NatGatewayTypePtrOutput) } -// Describes the severity of signature: 1 - Low, 2 - Medium, 3 - High -func (o SingleQueryResultResponseOutput) Severity() pulumi.IntPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Severity }).(pulumi.IntPtrOutput) +// The public IP address version. +func (o PublicIPAddressTypePtrOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.PublicIPAddressVersion + }).(pulumi.StringPtrOutput) } -// The ID of the signature -func (o SingleQueryResultResponseOutput) SignatureId() pulumi.IntPtrOutput { - return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.SignatureId }).(pulumi.IntPtrOutput) +// The public IP address allocation method. +func (o PublicIPAddressTypePtrOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *string { + if v == nil { + return nil + } + return v.PublicIPAllocationMethod + }).(pulumi.StringPtrOutput) } -// Describes the list of source ports related to this signature -func (o SingleQueryResultResponseOutput) SourcePorts() pulumi.StringArrayOutput { - return o.ApplyT(func(v SingleQueryResultResponse) []string { return v.SourcePorts }).(pulumi.StringArrayOutput) +// The Public IP Prefix this Public IP Address should be allocated from. +func (o PublicIPAddressTypePtrOutput) PublicIPPrefix() SubResourcePtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *SubResource { + if v == nil { + return nil + } + return v.PublicIPPrefix + }).(SubResourcePtrOutput) } -type SingleQueryResultResponseArrayOutput struct{ *pulumi.OutputState } - -func (SingleQueryResultResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SingleQueryResultResponse)(nil)).Elem() +// The service public IP address of the public IP address resource. +func (o PublicIPAddressTypePtrOutput) ServicePublicIPAddress() PublicIPAddressTypePtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressType { + if v == nil { + return nil + } + return v.ServicePublicIPAddress + }).(PublicIPAddressTypePtrOutput) } -func (o SingleQueryResultResponseArrayOutput) ToSingleQueryResultResponseArrayOutput() SingleQueryResultResponseArrayOutput { - return o +// The public IP address SKU. +func (o PublicIPAddressTypePtrOutput) Sku() PublicIPAddressSkuPtrOutput { + return o.ApplyT(func(v *PublicIPAddressType) *PublicIPAddressSku { + if v == nil { + return nil + } + return v.Sku + }).(PublicIPAddressSkuPtrOutput) } -func (o SingleQueryResultResponseArrayOutput) ToSingleQueryResultResponseArrayOutputWithContext(ctx context.Context) SingleQueryResultResponseArrayOutput { - return o +// Resource tags. +func (o PublicIPAddressTypePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *PublicIPAddressType) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -func (o SingleQueryResultResponseArrayOutput) Index(i pulumi.IntInput) SingleQueryResultResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SingleQueryResultResponse { - return vs[0].([]SingleQueryResultResponse)[vs[1].(int)] - }).(SingleQueryResultResponseOutput) +// A list of availability zones denoting the IP allocated for the resource needs to come from. +func (o PublicIPAddressTypePtrOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PublicIPAddressType) []string { + if v == nil { + return nil + } + return v.Zones + }).(pulumi.StringArrayOutput) } -// The pricing tier of the web application firewall policy. -type Sku struct { - // Name of the pricing tier. - Name *string `pulumi:"name"` +// Contains FQDN of the DNS record associated with the public IP address. +type PublicIPAddressDnsSettings struct { + // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. + DomainNameLabel *string `pulumi:"domainNameLabel"` + // The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. + DomainNameLabelScope *PublicIpAddressDnsSettingsDomainNameLabelScope `pulumi:"domainNameLabelScope"` + // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. + Fqdn *string `pulumi:"fqdn"` + // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. + ReverseFqdn *string `pulumi:"reverseFqdn"` } -// SkuInput is an input type that accepts SkuArgs and SkuOutput values. -// You can construct a concrete instance of `SkuInput` via: +// PublicIPAddressDnsSettingsInput is an input type that accepts PublicIPAddressDnsSettingsArgs and PublicIPAddressDnsSettingsOutput values. +// You can construct a concrete instance of `PublicIPAddressDnsSettingsInput` via: // -// SkuArgs{...} -type SkuInput interface { +// PublicIPAddressDnsSettingsArgs{...} +type PublicIPAddressDnsSettingsInput interface { pulumi.Input - ToSkuOutput() SkuOutput - ToSkuOutputWithContext(context.Context) SkuOutput + ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput + ToPublicIPAddressDnsSettingsOutputWithContext(context.Context) PublicIPAddressDnsSettingsOutput } -// The pricing tier of the web application firewall policy. -type SkuArgs struct { - // Name of the pricing tier. - Name pulumi.StringPtrInput `pulumi:"name"` +// Contains FQDN of the DNS record associated with the public IP address. +type PublicIPAddressDnsSettingsArgs struct { + // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. + DomainNameLabel pulumi.StringPtrInput `pulumi:"domainNameLabel"` + // The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. + DomainNameLabelScope PublicIpAddressDnsSettingsDomainNameLabelScopePtrInput `pulumi:"domainNameLabelScope"` + // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. + Fqdn pulumi.StringPtrInput `pulumi:"fqdn"` + // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. + ReverseFqdn pulumi.StringPtrInput `pulumi:"reverseFqdn"` } -func (SkuArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Sku)(nil)).Elem() +func (PublicIPAddressDnsSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressDnsSettings)(nil)).Elem() } -func (i SkuArgs) ToSkuOutput() SkuOutput { - return i.ToSkuOutputWithContext(context.Background()) +func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput { + return i.ToPublicIPAddressDnsSettingsOutputWithContext(context.Background()) } -func (i SkuArgs) ToSkuOutputWithContext(ctx context.Context) SkuOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkuOutput) +func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsOutput) } -func (i SkuArgs) ToSkuPtrOutput() SkuPtrOutput { - return i.ToSkuPtrOutputWithContext(context.Background()) +func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { + return i.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) } -func (i SkuArgs) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkuOutput).ToSkuPtrOutputWithContext(ctx) +func (i PublicIPAddressDnsSettingsArgs) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsOutput).ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx) } -// SkuPtrInput is an input type that accepts SkuArgs, SkuPtr and SkuPtrOutput values. -// You can construct a concrete instance of `SkuPtrInput` via: +// PublicIPAddressDnsSettingsPtrInput is an input type that accepts PublicIPAddressDnsSettingsArgs, PublicIPAddressDnsSettingsPtr and PublicIPAddressDnsSettingsPtrOutput values. +// You can construct a concrete instance of `PublicIPAddressDnsSettingsPtrInput` via: // -// SkuArgs{...} +// PublicIPAddressDnsSettingsArgs{...} // // or: // // nil -type SkuPtrInput interface { +type PublicIPAddressDnsSettingsPtrInput interface { pulumi.Input - ToSkuPtrOutput() SkuPtrOutput - ToSkuPtrOutputWithContext(context.Context) SkuPtrOutput + ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput + ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Context) PublicIPAddressDnsSettingsPtrOutput } -type skuPtrType SkuArgs +type publicIPAddressDnsSettingsPtrType PublicIPAddressDnsSettingsArgs -func SkuPtr(v *SkuArgs) SkuPtrInput { - return (*skuPtrType)(v) +func PublicIPAddressDnsSettingsPtr(v *PublicIPAddressDnsSettingsArgs) PublicIPAddressDnsSettingsPtrInput { + return (*publicIPAddressDnsSettingsPtrType)(v) } -func (*skuPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**Sku)(nil)).Elem() +func (*publicIPAddressDnsSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressDnsSettings)(nil)).Elem() } -func (i *skuPtrType) ToSkuPtrOutput() SkuPtrOutput { - return i.ToSkuPtrOutputWithContext(context.Background()) +func (i *publicIPAddressDnsSettingsPtrType) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { + return i.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) } -func (i *skuPtrType) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkuPtrOutput) +func (i *publicIPAddressDnsSettingsPtrType) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressDnsSettingsPtrOutput) } -// The pricing tier of the web application firewall policy. -type SkuOutput struct{ *pulumi.OutputState } +// Contains FQDN of the DNS record associated with the public IP address. +type PublicIPAddressDnsSettingsOutput struct{ *pulumi.OutputState } -func (SkuOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Sku)(nil)).Elem() +func (PublicIPAddressDnsSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressDnsSettings)(nil)).Elem() } -func (o SkuOutput) ToSkuOutput() SkuOutput { +func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsOutput() PublicIPAddressDnsSettingsOutput { return o } -func (o SkuOutput) ToSkuOutputWithContext(ctx context.Context) SkuOutput { +func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsOutput { return o } -func (o SkuOutput) ToSkuPtrOutput() SkuPtrOutput { - return o.ToSkuPtrOutputWithContext(context.Background()) +func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { + return o.ToPublicIPAddressDnsSettingsPtrOutputWithContext(context.Background()) } -func (o SkuOutput) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v Sku) *Sku { +func (o PublicIPAddressDnsSettingsOutput) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressDnsSettings) *PublicIPAddressDnsSettings { return &v - }).(SkuPtrOutput) + }).(PublicIPAddressDnsSettingsPtrOutput) } -// Name of the pricing tier. -func (o SkuOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v Sku) *string { return v.Name }).(pulumi.StringPtrOutput) +// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. +func (o PublicIPAddressDnsSettingsOutput) DomainNameLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.DomainNameLabel }).(pulumi.StringPtrOutput) } -type SkuPtrOutput struct{ *pulumi.OutputState } +// The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. +func (o PublicIPAddressDnsSettingsOutput) DomainNameLabelScope() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettings) *PublicIpAddressDnsSettingsDomainNameLabelScope { + return v.DomainNameLabelScope + }).(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) +} -func (SkuPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Sku)(nil)).Elem() +// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. +func (o PublicIPAddressDnsSettingsOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.Fqdn }).(pulumi.StringPtrOutput) } -func (o SkuPtrOutput) ToSkuPtrOutput() SkuPtrOutput { +// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. +func (o PublicIPAddressDnsSettingsOutput) ReverseFqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettings) *string { return v.ReverseFqdn }).(pulumi.StringPtrOutput) +} + +type PublicIPAddressDnsSettingsPtrOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressDnsSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressDnsSettings)(nil)).Elem() +} + +func (o PublicIPAddressDnsSettingsPtrOutput) ToPublicIPAddressDnsSettingsPtrOutput() PublicIPAddressDnsSettingsPtrOutput { return o } -func (o SkuPtrOutput) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { +func (o PublicIPAddressDnsSettingsPtrOutput) ToPublicIPAddressDnsSettingsPtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsPtrOutput { return o } -func (o SkuPtrOutput) Elem() SkuOutput { - return o.ApplyT(func(v *Sku) Sku { +func (o PublicIPAddressDnsSettingsPtrOutput) Elem() PublicIPAddressDnsSettingsOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettings) PublicIPAddressDnsSettings { if v != nil { return *v } - var ret Sku + var ret PublicIPAddressDnsSettings return ret - }).(SkuOutput) + }).(PublicIPAddressDnsSettingsOutput) } -// Name of the pricing tier. -func (o SkuPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Sku) *string { +// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. +func (o PublicIPAddressDnsSettingsPtrOutput) DomainNameLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { if v == nil { return nil } - return v.Name + return v.DomainNameLabel }).(pulumi.StringPtrOutput) } -// The pricing tier of the web application firewall policy. -type SkuResponse struct { - // Name of the pricing tier. - Name *string `pulumi:"name"` -} - -// The pricing tier of the web application firewall policy. -type SkuResponseOutput struct{ *pulumi.OutputState } - -func (SkuResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkuResponse)(nil)).Elem() +// The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. +func (o PublicIPAddressDnsSettingsPtrOutput) DomainNameLabelScope() PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettings) *PublicIpAddressDnsSettingsDomainNameLabelScope { + if v == nil { + return nil + } + return v.DomainNameLabelScope + }).(PublicIpAddressDnsSettingsDomainNameLabelScopePtrOutput) } -func (o SkuResponseOutput) ToSkuResponseOutput() SkuResponseOutput { - return o +// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. +func (o PublicIPAddressDnsSettingsPtrOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { + if v == nil { + return nil + } + return v.Fqdn + }).(pulumi.StringPtrOutput) } -func (o SkuResponseOutput) ToSkuResponseOutputWithContext(ctx context.Context) SkuResponseOutput { - return o +// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. +func (o PublicIPAddressDnsSettingsPtrOutput) ReverseFqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettings) *string { + if v == nil { + return nil + } + return v.ReverseFqdn + }).(pulumi.StringPtrOutput) } -// Name of the pricing tier. -func (o SkuResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Contains FQDN of the DNS record associated with the public IP address. +type PublicIPAddressDnsSettingsResponse struct { + // The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. + DomainNameLabel *string `pulumi:"domainNameLabel"` + // The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. + DomainNameLabelScope *string `pulumi:"domainNameLabelScope"` + // The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. + Fqdn *string `pulumi:"fqdn"` + // The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. + ReverseFqdn *string `pulumi:"reverseFqdn"` } -type SkuResponsePtrOutput struct{ *pulumi.OutputState } +// Contains FQDN of the DNS record associated with the public IP address. +type PublicIPAddressDnsSettingsResponseOutput struct{ *pulumi.OutputState } -func (SkuResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SkuResponse)(nil)).Elem() +func (PublicIPAddressDnsSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressDnsSettingsResponse)(nil)).Elem() } -func (o SkuResponsePtrOutput) ToSkuResponsePtrOutput() SkuResponsePtrOutput { +func (o PublicIPAddressDnsSettingsResponseOutput) ToPublicIPAddressDnsSettingsResponseOutput() PublicIPAddressDnsSettingsResponseOutput { return o } -func (o SkuResponsePtrOutput) ToSkuResponsePtrOutputWithContext(ctx context.Context) SkuResponsePtrOutput { +func (o PublicIPAddressDnsSettingsResponseOutput) ToPublicIPAddressDnsSettingsResponseOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsResponseOutput { return o } -func (o SkuResponsePtrOutput) Elem() SkuResponseOutput { - return o.ApplyT(func(v *SkuResponse) SkuResponse { +// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. +func (o PublicIPAddressDnsSettingsResponseOutput) DomainNameLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.DomainNameLabel }).(pulumi.StringPtrOutput) +} + +// The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. +func (o PublicIPAddressDnsSettingsResponseOutput) DomainNameLabelScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.DomainNameLabelScope }).(pulumi.StringPtrOutput) +} + +// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. +func (o PublicIPAddressDnsSettingsResponseOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.Fqdn }).(pulumi.StringPtrOutput) +} + +// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. +func (o PublicIPAddressDnsSettingsResponseOutput) ReverseFqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressDnsSettingsResponse) *string { return v.ReverseFqdn }).(pulumi.StringPtrOutput) +} + +type PublicIPAddressDnsSettingsResponsePtrOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressDnsSettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressDnsSettingsResponse)(nil)).Elem() +} + +func (o PublicIPAddressDnsSettingsResponsePtrOutput) ToPublicIPAddressDnsSettingsResponsePtrOutput() PublicIPAddressDnsSettingsResponsePtrOutput { + return o +} + +func (o PublicIPAddressDnsSettingsResponsePtrOutput) ToPublicIPAddressDnsSettingsResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressDnsSettingsResponsePtrOutput { + return o +} + +func (o PublicIPAddressDnsSettingsResponsePtrOutput) Elem() PublicIPAddressDnsSettingsResponseOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) PublicIPAddressDnsSettingsResponse { if v != nil { return *v } - var ret SkuResponse + var ret PublicIPAddressDnsSettingsResponse return ret - }).(SkuResponseOutput) + }).(PublicIPAddressDnsSettingsResponseOutput) } -// Name of the pricing tier. -func (o SkuResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SkuResponse) *string { +// The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system. +func (o PublicIPAddressDnsSettingsResponsePtrOutput) DomainNameLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { if v == nil { return nil } - return v.Name + return v.DomainNameLabel }).(pulumi.StringPtrOutput) } -// An SOA record. -type SoaRecord struct { - // The email contact for this SOA record. - Email *string `pulumi:"email"` - // The expire time for this SOA record. - ExpireTime *float64 `pulumi:"expireTime"` - // The domain name of the authoritative name server for this SOA record. - Host *string `pulumi:"host"` - // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. - MinimumTtl *float64 `pulumi:"minimumTtl"` - // The refresh value for this SOA record. - RefreshTime *float64 `pulumi:"refreshTime"` - // The retry time for this SOA record. - RetryTime *float64 `pulumi:"retryTime"` - // The serial number for this SOA record. - SerialNumber *float64 `pulumi:"serialNumber"` +// The domain name label scope. If a domain name label and a domain name label scope are specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. +func (o PublicIPAddressDnsSettingsResponsePtrOutput) DomainNameLabelScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { + if v == nil { + return nil + } + return v.DomainNameLabelScope + }).(pulumi.StringPtrOutput) } -// SoaRecordInput is an input type that accepts SoaRecordArgs and SoaRecordOutput values. -// You can construct a concrete instance of `SoaRecordInput` via: -// -// SoaRecordArgs{...} -type SoaRecordInput interface { - pulumi.Input +// The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone. +func (o PublicIPAddressDnsSettingsResponsePtrOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { + if v == nil { + return nil + } + return v.Fqdn + }).(pulumi.StringPtrOutput) +} - ToSoaRecordOutput() SoaRecordOutput - ToSoaRecordOutputWithContext(context.Context) SoaRecordOutput +// The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN. +func (o PublicIPAddressDnsSettingsResponsePtrOutput) ReverseFqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressDnsSettingsResponse) *string { + if v == nil { + return nil + } + return v.ReverseFqdn + }).(pulumi.StringPtrOutput) } -// An SOA record. -type SoaRecordArgs struct { - // The email contact for this SOA record. - Email pulumi.StringPtrInput `pulumi:"email"` - // The expire time for this SOA record. - ExpireTime pulumi.Float64PtrInput `pulumi:"expireTime"` - // The domain name of the authoritative name server for this SOA record. - Host pulumi.StringPtrInput `pulumi:"host"` - // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. - MinimumTtl pulumi.Float64PtrInput `pulumi:"minimumTtl"` - // The refresh value for this SOA record. - RefreshTime pulumi.Float64PtrInput `pulumi:"refreshTime"` - // The retry time for this SOA record. - RetryTime pulumi.Float64PtrInput `pulumi:"retryTime"` - // The serial number for this SOA record. - SerialNumber pulumi.Float64PtrInput `pulumi:"serialNumber"` +// Public IP address resource. +type PublicIPAddressResponse struct { + // The DDoS protection custom policy associated with the public IP address. + DdosSettings *DdosSettingsResponse `pulumi:"ddosSettings"` + // Specify what happens to the public IP address when the VM using it is deleted + DeleteOption *string `pulumi:"deleteOption"` + // The FQDN of the DNS record associated with the public IP address. + DnsSettings *PublicIPAddressDnsSettingsResponse `pulumi:"dnsSettings"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The extended location of the public ip address. + ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` + // Resource ID. + Id *string `pulumi:"id"` + // The idle timeout of the public IP address. + IdleTimeoutInMinutes *int `pulumi:"idleTimeoutInMinutes"` + // The IP address associated with the public IP address resource. + IpAddress *string `pulumi:"ipAddress"` + // The IP configuration associated with the public IP address. + IpConfiguration IPConfigurationResponse `pulumi:"ipConfiguration"` + // The list of tags associated with the public IP address. + IpTags []IpTagResponse `pulumi:"ipTags"` + // The linked public IP address of the public IP address resource. + LinkedPublicIPAddress *PublicIPAddressResponse `pulumi:"linkedPublicIPAddress"` + // Resource location. + Location *string `pulumi:"location"` + // Migration phase of Public IP Address. + MigrationPhase *string `pulumi:"migrationPhase"` + // Resource name. + Name string `pulumi:"name"` + // The NatGateway for the Public IP address. + NatGateway *NatGatewayResponse `pulumi:"natGateway"` + // The provisioning state of the public IP address resource. + ProvisioningState string `pulumi:"provisioningState"` + // The public IP address version. + PublicIPAddressVersion *string `pulumi:"publicIPAddressVersion"` + // The public IP address allocation method. + PublicIPAllocationMethod *string `pulumi:"publicIPAllocationMethod"` + // The Public IP Prefix this Public IP Address should be allocated from. + PublicIPPrefix *SubResourceResponse `pulumi:"publicIPPrefix"` + // The resource GUID property of the public IP address resource. + ResourceGuid string `pulumi:"resourceGuid"` + // The service public IP address of the public IP address resource. + ServicePublicIPAddress *PublicIPAddressResponse `pulumi:"servicePublicIPAddress"` + // The public IP address SKU. + Sku *PublicIPAddressSkuResponse `pulumi:"sku"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` + // A list of availability zones denoting the IP allocated for the resource needs to come from. + Zones []string `pulumi:"zones"` } -func (SoaRecordArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SoaRecord)(nil)).Elem() +// Defaults sets the appropriate defaults for PublicIPAddressResponse +func (val *PublicIPAddressResponse) Defaults() *PublicIPAddressResponse { + if val == nil { + return nil + } + tmp := *val + tmp.IpConfiguration = *tmp.IpConfiguration.Defaults() + + tmp.LinkedPublicIPAddress = tmp.LinkedPublicIPAddress.Defaults() + + tmp.ServicePublicIPAddress = tmp.ServicePublicIPAddress.Defaults() + + return &tmp } -func (i SoaRecordArgs) ToSoaRecordOutput() SoaRecordOutput { - return i.ToSoaRecordOutputWithContext(context.Background()) +// Public IP address resource. +type PublicIPAddressResponseOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressResponse)(nil)).Elem() } -func (i SoaRecordArgs) ToSoaRecordOutputWithContext(ctx context.Context) SoaRecordOutput { - return pulumi.ToOutputWithContext(ctx, i).(SoaRecordOutput) +func (o PublicIPAddressResponseOutput) ToPublicIPAddressResponseOutput() PublicIPAddressResponseOutput { + return o } -func (i SoaRecordArgs) ToSoaRecordPtrOutput() SoaRecordPtrOutput { - return i.ToSoaRecordPtrOutputWithContext(context.Background()) +func (o PublicIPAddressResponseOutput) ToPublicIPAddressResponseOutputWithContext(ctx context.Context) PublicIPAddressResponseOutput { + return o } -func (i SoaRecordArgs) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SoaRecordOutput).ToSoaRecordPtrOutputWithContext(ctx) +// The DDoS protection custom policy associated with the public IP address. +func (o PublicIPAddressResponseOutput) DdosSettings() DdosSettingsResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *DdosSettingsResponse { return v.DdosSettings }).(DdosSettingsResponsePtrOutput) } -// SoaRecordPtrInput is an input type that accepts SoaRecordArgs, SoaRecordPtr and SoaRecordPtrOutput values. -// You can construct a concrete instance of `SoaRecordPtrInput` via: -// -// SoaRecordArgs{...} -// -// or: -// -// nil -type SoaRecordPtrInput interface { - pulumi.Input +// Specify what happens to the public IP address when the VM using it is deleted +func (o PublicIPAddressResponseOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.DeleteOption }).(pulumi.StringPtrOutput) +} - ToSoaRecordPtrOutput() SoaRecordPtrOutput - ToSoaRecordPtrOutputWithContext(context.Context) SoaRecordPtrOutput +// The FQDN of the DNS record associated with the public IP address. +func (o PublicIPAddressResponseOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressDnsSettingsResponse { return v.DnsSettings }).(PublicIPAddressDnsSettingsResponsePtrOutput) } -type soaRecordPtrType SoaRecordArgs +// A unique read-only string that changes whenever the resource is updated. +func (o PublicIPAddressResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Etag }).(pulumi.StringOutput) +} -func SoaRecordPtr(v *SoaRecordArgs) SoaRecordPtrInput { - return (*soaRecordPtrType)(v) +// The extended location of the public ip address. +func (o PublicIPAddressResponseOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } -func (*soaRecordPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SoaRecord)(nil)).Elem() +// Resource ID. +func (o PublicIPAddressResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (i *soaRecordPtrType) ToSoaRecordPtrOutput() SoaRecordPtrOutput { - return i.ToSoaRecordPtrOutputWithContext(context.Background()) +// The idle timeout of the public IP address. +func (o PublicIPAddressResponseOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *int { return v.IdleTimeoutInMinutes }).(pulumi.IntPtrOutput) } -func (i *soaRecordPtrType) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SoaRecordPtrOutput) +// The IP address associated with the public IP address resource. +func (o PublicIPAddressResponseOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.IpAddress }).(pulumi.StringPtrOutput) } -// An SOA record. -type SoaRecordOutput struct{ *pulumi.OutputState } +// The IP configuration associated with the public IP address. +func (o PublicIPAddressResponseOutput) IpConfiguration() IPConfigurationResponseOutput { + return o.ApplyT(func(v PublicIPAddressResponse) IPConfigurationResponse { return v.IpConfiguration }).(IPConfigurationResponseOutput) +} -func (SoaRecordOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SoaRecord)(nil)).Elem() +// The list of tags associated with the public IP address. +func (o PublicIPAddressResponseOutput) IpTags() IpTagResponseArrayOutput { + return o.ApplyT(func(v PublicIPAddressResponse) []IpTagResponse { return v.IpTags }).(IpTagResponseArrayOutput) } -func (o SoaRecordOutput) ToSoaRecordOutput() SoaRecordOutput { - return o +// The linked public IP address of the public IP address resource. +func (o PublicIPAddressResponseOutput) LinkedPublicIPAddress() PublicIPAddressResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressResponse { return v.LinkedPublicIPAddress }).(PublicIPAddressResponsePtrOutput) } -func (o SoaRecordOutput) ToSoaRecordOutputWithContext(ctx context.Context) SoaRecordOutput { - return o +// Resource location. +func (o PublicIPAddressResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o SoaRecordOutput) ToSoaRecordPtrOutput() SoaRecordPtrOutput { - return o.ToSoaRecordPtrOutputWithContext(context.Background()) +// Migration phase of Public IP Address. +func (o PublicIPAddressResponseOutput) MigrationPhase() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.MigrationPhase }).(pulumi.StringPtrOutput) } -func (o SoaRecordOutput) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SoaRecord) *SoaRecord { - return &v - }).(SoaRecordPtrOutput) +// Resource name. +func (o PublicIPAddressResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Name }).(pulumi.StringOutput) } -// The email contact for this SOA record. -func (o SoaRecordOutput) Email() pulumi.StringPtrOutput { - return o.ApplyT(func(v SoaRecord) *string { return v.Email }).(pulumi.StringPtrOutput) +// The NatGateway for the Public IP address. +func (o PublicIPAddressResponseOutput) NatGateway() NatGatewayResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *NatGatewayResponse { return v.NatGateway }).(NatGatewayResponsePtrOutput) } -// The expire time for this SOA record. -func (o SoaRecordOutput) ExpireTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecord) *float64 { return v.ExpireTime }).(pulumi.Float64PtrOutput) +// The provisioning state of the public IP address resource. +func (o PublicIPAddressResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PublicIPAddressResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The domain name of the authoritative name server for this SOA record. -func (o SoaRecordOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v SoaRecord) *string { return v.Host }).(pulumi.StringPtrOutput) +// The public IP address version. +func (o PublicIPAddressResponseOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.PublicIPAddressVersion }).(pulumi.StringPtrOutput) } -// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. -func (o SoaRecordOutput) MinimumTtl() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecord) *float64 { return v.MinimumTtl }).(pulumi.Float64PtrOutput) +// The public IP address allocation method. +func (o PublicIPAddressResponseOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *string { return v.PublicIPAllocationMethod }).(pulumi.StringPtrOutput) } -// The refresh value for this SOA record. -func (o SoaRecordOutput) RefreshTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecord) *float64 { return v.RefreshTime }).(pulumi.Float64PtrOutput) +// The Public IP Prefix this Public IP Address should be allocated from. +func (o PublicIPAddressResponseOutput) PublicIPPrefix() SubResourceResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *SubResourceResponse { return v.PublicIPPrefix }).(SubResourceResponsePtrOutput) } -// The retry time for this SOA record. -func (o SoaRecordOutput) RetryTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecord) *float64 { return v.RetryTime }).(pulumi.Float64PtrOutput) +// The resource GUID property of the public IP address resource. +func (o PublicIPAddressResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v PublicIPAddressResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) } -// The serial number for this SOA record. -func (o SoaRecordOutput) SerialNumber() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecord) *float64 { return v.SerialNumber }).(pulumi.Float64PtrOutput) +// The service public IP address of the public IP address resource. +func (o PublicIPAddressResponseOutput) ServicePublicIPAddress() PublicIPAddressResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressResponse { return v.ServicePublicIPAddress }).(PublicIPAddressResponsePtrOutput) } -type SoaRecordPtrOutput struct{ *pulumi.OutputState } +// The public IP address SKU. +func (o PublicIPAddressResponseOutput) Sku() PublicIPAddressSkuResponsePtrOutput { + return o.ApplyT(func(v PublicIPAddressResponse) *PublicIPAddressSkuResponse { return v.Sku }).(PublicIPAddressSkuResponsePtrOutput) +} -func (SoaRecordPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SoaRecord)(nil)).Elem() +// Resource tags. +func (o PublicIPAddressResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v PublicIPAddressResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -func (o SoaRecordPtrOutput) ToSoaRecordPtrOutput() SoaRecordPtrOutput { +// Resource type. +func (o PublicIPAddressResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PublicIPAddressResponse) string { return v.Type }).(pulumi.StringOutput) +} + +// A list of availability zones denoting the IP allocated for the resource needs to come from. +func (o PublicIPAddressResponseOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v PublicIPAddressResponse) []string { return v.Zones }).(pulumi.StringArrayOutput) +} + +type PublicIPAddressResponsePtrOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressResponse)(nil)).Elem() +} + +func (o PublicIPAddressResponsePtrOutput) ToPublicIPAddressResponsePtrOutput() PublicIPAddressResponsePtrOutput { return o } -func (o SoaRecordPtrOutput) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { +func (o PublicIPAddressResponsePtrOutput) ToPublicIPAddressResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressResponsePtrOutput { return o } -func (o SoaRecordPtrOutput) Elem() SoaRecordOutput { - return o.ApplyT(func(v *SoaRecord) SoaRecord { +func (o PublicIPAddressResponsePtrOutput) Elem() PublicIPAddressResponseOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) PublicIPAddressResponse { if v != nil { return *v } - var ret SoaRecord + var ret PublicIPAddressResponse return ret - }).(SoaRecordOutput) + }).(PublicIPAddressResponseOutput) } -// The email contact for this SOA record. -func (o SoaRecordPtrOutput) Email() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SoaRecord) *string { +// The DDoS protection custom policy associated with the public IP address. +func (o PublicIPAddressResponsePtrOutput) DdosSettings() DdosSettingsResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *DdosSettingsResponse { if v == nil { return nil } - return v.Email + return v.DdosSettings + }).(DdosSettingsResponsePtrOutput) +} + +// Specify what happens to the public IP address when the VM using it is deleted +func (o PublicIPAddressResponsePtrOutput) DeleteOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil + } + return v.DeleteOption }).(pulumi.StringPtrOutput) } -// The expire time for this SOA record. -func (o SoaRecordPtrOutput) ExpireTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecord) *float64 { +// The FQDN of the DNS record associated with the public IP address. +func (o PublicIPAddressResponsePtrOutput) DnsSettings() PublicIPAddressDnsSettingsResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressDnsSettingsResponse { if v == nil { return nil } - return v.ExpireTime - }).(pulumi.Float64PtrOutput) + return v.DnsSettings + }).(PublicIPAddressDnsSettingsResponsePtrOutput) } -// The domain name of the authoritative name server for this SOA record. -func (o SoaRecordPtrOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SoaRecord) *string { +// A unique read-only string that changes whenever the resource is updated. +func (o PublicIPAddressResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.Host + return &v.Etag }).(pulumi.StringPtrOutput) } -// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. -func (o SoaRecordPtrOutput) MinimumTtl() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecord) *float64 { +// The extended location of the public ip address. +func (o PublicIPAddressResponsePtrOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *ExtendedLocationResponse { if v == nil { return nil } - return v.MinimumTtl - }).(pulumi.Float64PtrOutput) + return v.ExtendedLocation + }).(ExtendedLocationResponsePtrOutput) } -// The refresh value for this SOA record. -func (o SoaRecordPtrOutput) RefreshTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecord) *float64 { +// Resource ID. +func (o PublicIPAddressResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.RefreshTime - }).(pulumi.Float64PtrOutput) + return v.Id + }).(pulumi.StringPtrOutput) } -// The retry time for this SOA record. -func (o SoaRecordPtrOutput) RetryTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecord) *float64 { +// The idle timeout of the public IP address. +func (o PublicIPAddressResponsePtrOutput) IdleTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *int { if v == nil { return nil } - return v.RetryTime - }).(pulumi.Float64PtrOutput) + return v.IdleTimeoutInMinutes + }).(pulumi.IntPtrOutput) } -// The serial number for this SOA record. -func (o SoaRecordPtrOutput) SerialNumber() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecord) *float64 { +// The IP address associated with the public IP address resource. +func (o PublicIPAddressResponsePtrOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.SerialNumber - }).(pulumi.Float64PtrOutput) + return v.IpAddress + }).(pulumi.StringPtrOutput) } -// An SOA record. -type SoaRecordResponse struct { - // The email contact for this SOA record. - Email *string `pulumi:"email"` - // The expire time for this SOA record. - ExpireTime *float64 `pulumi:"expireTime"` - // The domain name of the authoritative name server for this SOA record. - Host *string `pulumi:"host"` - // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. - MinimumTtl *float64 `pulumi:"minimumTtl"` - // The refresh value for this SOA record. - RefreshTime *float64 `pulumi:"refreshTime"` - // The retry time for this SOA record. - RetryTime *float64 `pulumi:"retryTime"` - // The serial number for this SOA record. - SerialNumber *float64 `pulumi:"serialNumber"` -} - -// An SOA record. -type SoaRecordResponseOutput struct{ *pulumi.OutputState } - -func (SoaRecordResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SoaRecordResponse)(nil)).Elem() -} - -func (o SoaRecordResponseOutput) ToSoaRecordResponseOutput() SoaRecordResponseOutput { - return o -} - -func (o SoaRecordResponseOutput) ToSoaRecordResponseOutputWithContext(ctx context.Context) SoaRecordResponseOutput { - return o -} - -// The email contact for this SOA record. -func (o SoaRecordResponseOutput) Email() pulumi.StringPtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *string { return v.Email }).(pulumi.StringPtrOutput) -} - -// The expire time for this SOA record. -func (o SoaRecordResponseOutput) ExpireTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.ExpireTime }).(pulumi.Float64PtrOutput) -} - -// The domain name of the authoritative name server for this SOA record. -func (o SoaRecordResponseOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *string { return v.Host }).(pulumi.StringPtrOutput) +// The IP configuration associated with the public IP address. +func (o PublicIPAddressResponsePtrOutput) IpConfiguration() IPConfigurationResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *IPConfigurationResponse { + if v == nil { + return nil + } + return &v.IpConfiguration + }).(IPConfigurationResponsePtrOutput) } -// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. -func (o SoaRecordResponseOutput) MinimumTtl() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.MinimumTtl }).(pulumi.Float64PtrOutput) +// The list of tags associated with the public IP address. +func (o PublicIPAddressResponsePtrOutput) IpTags() IpTagResponseArrayOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) []IpTagResponse { + if v == nil { + return nil + } + return v.IpTags + }).(IpTagResponseArrayOutput) } -// The refresh value for this SOA record. -func (o SoaRecordResponseOutput) RefreshTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.RefreshTime }).(pulumi.Float64PtrOutput) +// The linked public IP address of the public IP address resource. +func (o PublicIPAddressResponsePtrOutput) LinkedPublicIPAddress() PublicIPAddressResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressResponse { + if v == nil { + return nil + } + return v.LinkedPublicIPAddress + }).(PublicIPAddressResponsePtrOutput) } -// The retry time for this SOA record. -func (o SoaRecordResponseOutput) RetryTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.RetryTime }).(pulumi.Float64PtrOutput) +// Resource location. +func (o PublicIPAddressResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -// The serial number for this SOA record. -func (o SoaRecordResponseOutput) SerialNumber() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.SerialNumber }).(pulumi.Float64PtrOutput) +// Migration phase of Public IP Address. +func (o PublicIPAddressResponsePtrOutput) MigrationPhase() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil + } + return v.MigrationPhase + }).(pulumi.StringPtrOutput) } -type SoaRecordResponsePtrOutput struct{ *pulumi.OutputState } - -func (SoaRecordResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SoaRecordResponse)(nil)).Elem() +// Resource name. +func (o PublicIPAddressResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) } -func (o SoaRecordResponsePtrOutput) ToSoaRecordResponsePtrOutput() SoaRecordResponsePtrOutput { - return o +// The NatGateway for the Public IP address. +func (o PublicIPAddressResponsePtrOutput) NatGateway() NatGatewayResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *NatGatewayResponse { + if v == nil { + return nil + } + return v.NatGateway + }).(NatGatewayResponsePtrOutput) } -func (o SoaRecordResponsePtrOutput) ToSoaRecordResponsePtrOutputWithContext(ctx context.Context) SoaRecordResponsePtrOutput { - return o +// The provisioning state of the public IP address resource. +func (o PublicIPAddressResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) } -func (o SoaRecordResponsePtrOutput) Elem() SoaRecordResponseOutput { - return o.ApplyT(func(v *SoaRecordResponse) SoaRecordResponse { - if v != nil { - return *v +// The public IP address version. +func (o PublicIPAddressResponsePtrOutput) PublicIPAddressVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { + if v == nil { + return nil } - var ret SoaRecordResponse - return ret - }).(SoaRecordResponseOutput) + return v.PublicIPAddressVersion + }).(pulumi.StringPtrOutput) } -// The email contact for this SOA record. -func (o SoaRecordResponsePtrOutput) Email() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *string { +// The public IP address allocation method. +func (o PublicIPAddressResponsePtrOutput) PublicIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.Email + return v.PublicIPAllocationMethod }).(pulumi.StringPtrOutput) } -// The expire time for this SOA record. -func (o SoaRecordResponsePtrOutput) ExpireTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *float64 { +// The Public IP Prefix this Public IP Address should be allocated from. +func (o PublicIPAddressResponsePtrOutput) PublicIPPrefix() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *SubResourceResponse { if v == nil { return nil } - return v.ExpireTime - }).(pulumi.Float64PtrOutput) + return v.PublicIPPrefix + }).(SubResourceResponsePtrOutput) } -// The domain name of the authoritative name server for this SOA record. -func (o SoaRecordResponsePtrOutput) Host() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *string { +// The resource GUID property of the public IP address resource. +func (o PublicIPAddressResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.Host + return &v.ResourceGuid }).(pulumi.StringPtrOutput) } -// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. -func (o SoaRecordResponsePtrOutput) MinimumTtl() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *float64 { +// The service public IP address of the public IP address resource. +func (o PublicIPAddressResponsePtrOutput) ServicePublicIPAddress() PublicIPAddressResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressResponse { if v == nil { return nil } - return v.MinimumTtl - }).(pulumi.Float64PtrOutput) + return v.ServicePublicIPAddress + }).(PublicIPAddressResponsePtrOutput) } -// The refresh value for this SOA record. -func (o SoaRecordResponsePtrOutput) RefreshTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *float64 { +// The public IP address SKU. +func (o PublicIPAddressResponsePtrOutput) Sku() PublicIPAddressSkuResponsePtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *PublicIPAddressSkuResponse { if v == nil { return nil } - return v.RefreshTime - }).(pulumi.Float64PtrOutput) + return v.Sku + }).(PublicIPAddressSkuResponsePtrOutput) } -// The retry time for this SOA record. -func (o SoaRecordResponsePtrOutput) RetryTime() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *float64 { +// Resource tags. +func (o PublicIPAddressResponsePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) map[string]string { if v == nil { return nil } - return v.RetryTime - }).(pulumi.Float64PtrOutput) + return v.Tags + }).(pulumi.StringMapOutput) } -// The serial number for this SOA record. -func (o SoaRecordResponsePtrOutput) SerialNumber() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SoaRecordResponse) *float64 { +// Resource type. +func (o PublicIPAddressResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) *string { if v == nil { return nil } - return v.SerialNumber - }).(pulumi.Float64PtrOutput) + return &v.Type + }).(pulumi.StringPtrOutput) } -// An SRV record. -type SrvRecord struct { - // The port value for this SRV record. - Port *int `pulumi:"port"` - // The priority value for this SRV record. - Priority *int `pulumi:"priority"` - // The target domain name for this SRV record. - Target *string `pulumi:"target"` - // The weight value for this SRV record. - Weight *int `pulumi:"weight"` +// A list of availability zones denoting the IP allocated for the resource needs to come from. +func (o PublicIPAddressResponsePtrOutput) Zones() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PublicIPAddressResponse) []string { + if v == nil { + return nil + } + return v.Zones + }).(pulumi.StringArrayOutput) } -// SrvRecordInput is an input type that accepts SrvRecordArgs and SrvRecordOutput values. -// You can construct a concrete instance of `SrvRecordInput` via: +// SKU of a public IP address. +type PublicIPAddressSku struct { + // Name of a public IP address SKU. + Name *string `pulumi:"name"` + // Tier of a public IP address SKU. + Tier *string `pulumi:"tier"` +} + +// PublicIPAddressSkuInput is an input type that accepts PublicIPAddressSkuArgs and PublicIPAddressSkuOutput values. +// You can construct a concrete instance of `PublicIPAddressSkuInput` via: // -// SrvRecordArgs{...} -type SrvRecordInput interface { +// PublicIPAddressSkuArgs{...} +type PublicIPAddressSkuInput interface { pulumi.Input - ToSrvRecordOutput() SrvRecordOutput - ToSrvRecordOutputWithContext(context.Context) SrvRecordOutput + ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput + ToPublicIPAddressSkuOutputWithContext(context.Context) PublicIPAddressSkuOutput } -// An SRV record. -type SrvRecordArgs struct { - // The port value for this SRV record. - Port pulumi.IntPtrInput `pulumi:"port"` - // The priority value for this SRV record. - Priority pulumi.IntPtrInput `pulumi:"priority"` - // The target domain name for this SRV record. - Target pulumi.StringPtrInput `pulumi:"target"` - // The weight value for this SRV record. - Weight pulumi.IntPtrInput `pulumi:"weight"` +// SKU of a public IP address. +type PublicIPAddressSkuArgs struct { + // Name of a public IP address SKU. + Name pulumi.StringPtrInput `pulumi:"name"` + // Tier of a public IP address SKU. + Tier pulumi.StringPtrInput `pulumi:"tier"` } -func (SrvRecordArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SrvRecord)(nil)).Elem() +func (PublicIPAddressSkuArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressSku)(nil)).Elem() } -func (i SrvRecordArgs) ToSrvRecordOutput() SrvRecordOutput { - return i.ToSrvRecordOutputWithContext(context.Background()) +func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput { + return i.ToPublicIPAddressSkuOutputWithContext(context.Background()) } -func (i SrvRecordArgs) ToSrvRecordOutputWithContext(ctx context.Context) SrvRecordOutput { - return pulumi.ToOutputWithContext(ctx, i).(SrvRecordOutput) +func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuOutputWithContext(ctx context.Context) PublicIPAddressSkuOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuOutput) } -// SrvRecordArrayInput is an input type that accepts SrvRecordArray and SrvRecordArrayOutput values. -// You can construct a concrete instance of `SrvRecordArrayInput` via: +func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { + return i.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) +} + +func (i PublicIPAddressSkuArgs) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuOutput).ToPublicIPAddressSkuPtrOutputWithContext(ctx) +} + +// PublicIPAddressSkuPtrInput is an input type that accepts PublicIPAddressSkuArgs, PublicIPAddressSkuPtr and PublicIPAddressSkuPtrOutput values. +// You can construct a concrete instance of `PublicIPAddressSkuPtrInput` via: // -// SrvRecordArray{ SrvRecordArgs{...} } -type SrvRecordArrayInput interface { +// PublicIPAddressSkuArgs{...} +// +// or: +// +// nil +type PublicIPAddressSkuPtrInput interface { pulumi.Input - ToSrvRecordArrayOutput() SrvRecordArrayOutput - ToSrvRecordArrayOutputWithContext(context.Context) SrvRecordArrayOutput + ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput + ToPublicIPAddressSkuPtrOutputWithContext(context.Context) PublicIPAddressSkuPtrOutput } -type SrvRecordArray []SrvRecordInput +type publicIPAddressSkuPtrType PublicIPAddressSkuArgs -func (SrvRecordArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SrvRecord)(nil)).Elem() +func PublicIPAddressSkuPtr(v *PublicIPAddressSkuArgs) PublicIPAddressSkuPtrInput { + return (*publicIPAddressSkuPtrType)(v) } -func (i SrvRecordArray) ToSrvRecordArrayOutput() SrvRecordArrayOutput { - return i.ToSrvRecordArrayOutputWithContext(context.Background()) +func (*publicIPAddressSkuPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressSku)(nil)).Elem() } -func (i SrvRecordArray) ToSrvRecordArrayOutputWithContext(ctx context.Context) SrvRecordArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SrvRecordArrayOutput) +func (i *publicIPAddressSkuPtrType) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { + return i.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) } -// An SRV record. -type SrvRecordOutput struct{ *pulumi.OutputState } +func (i *publicIPAddressSkuPtrType) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPAddressSkuPtrOutput) +} -func (SrvRecordOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SrvRecord)(nil)).Elem() +// SKU of a public IP address. +type PublicIPAddressSkuOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressSkuOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressSku)(nil)).Elem() } -func (o SrvRecordOutput) ToSrvRecordOutput() SrvRecordOutput { +func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuOutput() PublicIPAddressSkuOutput { return o } -func (o SrvRecordOutput) ToSrvRecordOutputWithContext(ctx context.Context) SrvRecordOutput { +func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuOutputWithContext(ctx context.Context) PublicIPAddressSkuOutput { return o } -// The port value for this SRV record. -func (o SrvRecordOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecord) *int { return v.Port }).(pulumi.IntPtrOutput) +func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { + return o.ToPublicIPAddressSkuPtrOutputWithContext(context.Background()) } -// The priority value for this SRV record. -func (o SrvRecordOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecord) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (o PublicIPAddressSkuOutput) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPAddressSku) *PublicIPAddressSku { + return &v + }).(PublicIPAddressSkuPtrOutput) } -// The target domain name for this SRV record. -func (o SrvRecordOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SrvRecord) *string { return v.Target }).(pulumi.StringPtrOutput) +// Name of a public IP address SKU. +func (o PublicIPAddressSkuOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressSku) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The weight value for this SRV record. -func (o SrvRecordOutput) Weight() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecord) *int { return v.Weight }).(pulumi.IntPtrOutput) +// Tier of a public IP address SKU. +func (o PublicIPAddressSkuOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressSku) *string { return v.Tier }).(pulumi.StringPtrOutput) } -type SrvRecordArrayOutput struct{ *pulumi.OutputState } +type PublicIPAddressSkuPtrOutput struct{ *pulumi.OutputState } -func (SrvRecordArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SrvRecord)(nil)).Elem() +func (PublicIPAddressSkuPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressSku)(nil)).Elem() } -func (o SrvRecordArrayOutput) ToSrvRecordArrayOutput() SrvRecordArrayOutput { +func (o PublicIPAddressSkuPtrOutput) ToPublicIPAddressSkuPtrOutput() PublicIPAddressSkuPtrOutput { return o } -func (o SrvRecordArrayOutput) ToSrvRecordArrayOutputWithContext(ctx context.Context) SrvRecordArrayOutput { +func (o PublicIPAddressSkuPtrOutput) ToPublicIPAddressSkuPtrOutputWithContext(ctx context.Context) PublicIPAddressSkuPtrOutput { return o } -func (o SrvRecordArrayOutput) Index(i pulumi.IntInput) SrvRecordOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SrvRecord { - return vs[0].([]SrvRecord)[vs[1].(int)] - }).(SrvRecordOutput) +func (o PublicIPAddressSkuPtrOutput) Elem() PublicIPAddressSkuOutput { + return o.ApplyT(func(v *PublicIPAddressSku) PublicIPAddressSku { + if v != nil { + return *v + } + var ret PublicIPAddressSku + return ret + }).(PublicIPAddressSkuOutput) } -// An SRV record. -type SrvRecordResponse struct { - // The port value for this SRV record. - Port *int `pulumi:"port"` - // The priority value for this SRV record. - Priority *int `pulumi:"priority"` - // The target domain name for this SRV record. - Target *string `pulumi:"target"` - // The weight value for this SRV record. - Weight *int `pulumi:"weight"` +// Name of a public IP address SKU. +func (o PublicIPAddressSkuPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressSku) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -// An SRV record. -type SrvRecordResponseOutput struct{ *pulumi.OutputState } - -func (SrvRecordResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SrvRecordResponse)(nil)).Elem() +// Tier of a public IP address SKU. +func (o PublicIPAddressSkuPtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressSku) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) } -func (o SrvRecordResponseOutput) ToSrvRecordResponseOutput() SrvRecordResponseOutput { - return o +// SKU of a public IP address. +type PublicIPAddressSkuResponse struct { + // Name of a public IP address SKU. + Name *string `pulumi:"name"` + // Tier of a public IP address SKU. + Tier *string `pulumi:"tier"` } -func (o SrvRecordResponseOutput) ToSrvRecordResponseOutputWithContext(ctx context.Context) SrvRecordResponseOutput { - return o +// SKU of a public IP address. +type PublicIPAddressSkuResponseOutput struct{ *pulumi.OutputState } + +func (PublicIPAddressSkuResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPAddressSkuResponse)(nil)).Elem() } -// The port value for this SRV record. -func (o SrvRecordResponseOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecordResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +func (o PublicIPAddressSkuResponseOutput) ToPublicIPAddressSkuResponseOutput() PublicIPAddressSkuResponseOutput { + return o } -// The priority value for this SRV record. -func (o SrvRecordResponseOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecordResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (o PublicIPAddressSkuResponseOutput) ToPublicIPAddressSkuResponseOutputWithContext(ctx context.Context) PublicIPAddressSkuResponseOutput { + return o } -// The target domain name for this SRV record. -func (o SrvRecordResponseOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SrvRecordResponse) *string { return v.Target }).(pulumi.StringPtrOutput) +// Name of a public IP address SKU. +func (o PublicIPAddressSkuResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressSkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The weight value for this SRV record. -func (o SrvRecordResponseOutput) Weight() pulumi.IntPtrOutput { - return o.ApplyT(func(v SrvRecordResponse) *int { return v.Weight }).(pulumi.IntPtrOutput) +// Tier of a public IP address SKU. +func (o PublicIPAddressSkuResponseOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPAddressSkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) } -type SrvRecordResponseArrayOutput struct{ *pulumi.OutputState } +type PublicIPAddressSkuResponsePtrOutput struct{ *pulumi.OutputState } -func (SrvRecordResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SrvRecordResponse)(nil)).Elem() +func (PublicIPAddressSkuResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPAddressSkuResponse)(nil)).Elem() } -func (o SrvRecordResponseArrayOutput) ToSrvRecordResponseArrayOutput() SrvRecordResponseArrayOutput { +func (o PublicIPAddressSkuResponsePtrOutput) ToPublicIPAddressSkuResponsePtrOutput() PublicIPAddressSkuResponsePtrOutput { return o } -func (o SrvRecordResponseArrayOutput) ToSrvRecordResponseArrayOutputWithContext(ctx context.Context) SrvRecordResponseArrayOutput { +func (o PublicIPAddressSkuResponsePtrOutput) ToPublicIPAddressSkuResponsePtrOutputWithContext(ctx context.Context) PublicIPAddressSkuResponsePtrOutput { return o } -func (o SrvRecordResponseArrayOutput) Index(i pulumi.IntInput) SrvRecordResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SrvRecordResponse { - return vs[0].([]SrvRecordResponse)[vs[1].(int)] - }).(SrvRecordResponseOutput) +func (o PublicIPAddressSkuResponsePtrOutput) Elem() PublicIPAddressSkuResponseOutput { + return o.ApplyT(func(v *PublicIPAddressSkuResponse) PublicIPAddressSkuResponse { + if v != nil { + return *v + } + var ret PublicIPAddressSkuResponse + return ret + }).(PublicIPAddressSkuResponseOutput) } -// List of all Static Routes. -type StaticRoute struct { - // List of all address prefixes. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // The name of the StaticRoute that is unique within a VnetRoute. +// Name of a public IP address SKU. +func (o PublicIPAddressSkuResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressSkuResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Tier of a public IP address SKU. +func (o PublicIPAddressSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPAddressSkuResponse) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) +} + +// SKU of a public IP prefix. +type PublicIPPrefixSku struct { + // Name of a public IP prefix SKU. Name *string `pulumi:"name"` - // The ip address of the next hop. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` + // Tier of a public IP prefix SKU. + Tier *string `pulumi:"tier"` } -// StaticRouteInput is an input type that accepts StaticRouteArgs and StaticRouteOutput values. -// You can construct a concrete instance of `StaticRouteInput` via: +// PublicIPPrefixSkuInput is an input type that accepts PublicIPPrefixSkuArgs and PublicIPPrefixSkuOutput values. +// You can construct a concrete instance of `PublicIPPrefixSkuInput` via: // -// StaticRouteArgs{...} -type StaticRouteInput interface { +// PublicIPPrefixSkuArgs{...} +type PublicIPPrefixSkuInput interface { pulumi.Input - ToStaticRouteOutput() StaticRouteOutput - ToStaticRouteOutputWithContext(context.Context) StaticRouteOutput + ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput + ToPublicIPPrefixSkuOutputWithContext(context.Context) PublicIPPrefixSkuOutput } -// List of all Static Routes. -type StaticRouteArgs struct { - // List of all address prefixes. - AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` - // The name of the StaticRoute that is unique within a VnetRoute. +// SKU of a public IP prefix. +type PublicIPPrefixSkuArgs struct { + // Name of a public IP prefix SKU. Name pulumi.StringPtrInput `pulumi:"name"` - // The ip address of the next hop. - NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` + // Tier of a public IP prefix SKU. + Tier pulumi.StringPtrInput `pulumi:"tier"` } -func (StaticRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*StaticRoute)(nil)).Elem() +func (PublicIPPrefixSkuArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPPrefixSku)(nil)).Elem() } -func (i StaticRouteArgs) ToStaticRouteOutput() StaticRouteOutput { - return i.ToStaticRouteOutputWithContext(context.Background()) +func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput { + return i.ToPublicIPPrefixSkuOutputWithContext(context.Background()) } -func (i StaticRouteArgs) ToStaticRouteOutputWithContext(ctx context.Context) StaticRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(StaticRouteOutput) +func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuOutputWithContext(ctx context.Context) PublicIPPrefixSkuOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuOutput) } -// StaticRouteArrayInput is an input type that accepts StaticRouteArray and StaticRouteArrayOutput values. -// You can construct a concrete instance of `StaticRouteArrayInput` via: +func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { + return i.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) +} + +func (i PublicIPPrefixSkuArgs) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuOutput).ToPublicIPPrefixSkuPtrOutputWithContext(ctx) +} + +// PublicIPPrefixSkuPtrInput is an input type that accepts PublicIPPrefixSkuArgs, PublicIPPrefixSkuPtr and PublicIPPrefixSkuPtrOutput values. +// You can construct a concrete instance of `PublicIPPrefixSkuPtrInput` via: // -// StaticRouteArray{ StaticRouteArgs{...} } -type StaticRouteArrayInput interface { +// PublicIPPrefixSkuArgs{...} +// +// or: +// +// nil +type PublicIPPrefixSkuPtrInput interface { pulumi.Input - ToStaticRouteArrayOutput() StaticRouteArrayOutput - ToStaticRouteArrayOutputWithContext(context.Context) StaticRouteArrayOutput + ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput + ToPublicIPPrefixSkuPtrOutputWithContext(context.Context) PublicIPPrefixSkuPtrOutput } -type StaticRouteArray []StaticRouteInput +type publicIPPrefixSkuPtrType PublicIPPrefixSkuArgs -func (StaticRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]StaticRoute)(nil)).Elem() +func PublicIPPrefixSkuPtr(v *PublicIPPrefixSkuArgs) PublicIPPrefixSkuPtrInput { + return (*publicIPPrefixSkuPtrType)(v) } -func (i StaticRouteArray) ToStaticRouteArrayOutput() StaticRouteArrayOutput { - return i.ToStaticRouteArrayOutputWithContext(context.Background()) +func (*publicIPPrefixSkuPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPPrefixSku)(nil)).Elem() } -func (i StaticRouteArray) ToStaticRouteArrayOutputWithContext(ctx context.Context) StaticRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(StaticRouteArrayOutput) +func (i *publicIPPrefixSkuPtrType) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { + return i.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) } -// List of all Static Routes. -type StaticRouteOutput struct{ *pulumi.OutputState } +func (i *publicIPPrefixSkuPtrType) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PublicIPPrefixSkuPtrOutput) +} -func (StaticRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StaticRoute)(nil)).Elem() +// SKU of a public IP prefix. +type PublicIPPrefixSkuOutput struct{ *pulumi.OutputState } + +func (PublicIPPrefixSkuOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPPrefixSku)(nil)).Elem() } -func (o StaticRouteOutput) ToStaticRouteOutput() StaticRouteOutput { +func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuOutput() PublicIPPrefixSkuOutput { return o } -func (o StaticRouteOutput) ToStaticRouteOutputWithContext(ctx context.Context) StaticRouteOutput { +func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuOutputWithContext(ctx context.Context) PublicIPPrefixSkuOutput { return o } -// List of all address prefixes. -func (o StaticRouteOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v StaticRoute) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { + return o.ToPublicIPPrefixSkuPtrOutputWithContext(context.Background()) } -// The name of the StaticRoute that is unique within a VnetRoute. -func (o StaticRouteOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v StaticRoute) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o PublicIPPrefixSkuOutput) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PublicIPPrefixSku) *PublicIPPrefixSku { + return &v + }).(PublicIPPrefixSkuPtrOutput) } -// The ip address of the next hop. -func (o StaticRouteOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v StaticRoute) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +// Name of a public IP prefix SKU. +func (o PublicIPPrefixSkuOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPPrefixSku) *string { return v.Name }).(pulumi.StringPtrOutput) } -type StaticRouteArrayOutput struct{ *pulumi.OutputState } +// Tier of a public IP prefix SKU. +func (o PublicIPPrefixSkuOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPPrefixSku) *string { return v.Tier }).(pulumi.StringPtrOutput) +} -func (StaticRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StaticRoute)(nil)).Elem() +type PublicIPPrefixSkuPtrOutput struct{ *pulumi.OutputState } + +func (PublicIPPrefixSkuPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPPrefixSku)(nil)).Elem() } -func (o StaticRouteArrayOutput) ToStaticRouteArrayOutput() StaticRouteArrayOutput { +func (o PublicIPPrefixSkuPtrOutput) ToPublicIPPrefixSkuPtrOutput() PublicIPPrefixSkuPtrOutput { return o } -func (o StaticRouteArrayOutput) ToStaticRouteArrayOutputWithContext(ctx context.Context) StaticRouteArrayOutput { +func (o PublicIPPrefixSkuPtrOutput) ToPublicIPPrefixSkuPtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuPtrOutput { return o } -func (o StaticRouteArrayOutput) Index(i pulumi.IntInput) StaticRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StaticRoute { - return vs[0].([]StaticRoute)[vs[1].(int)] - }).(StaticRouteOutput) +func (o PublicIPPrefixSkuPtrOutput) Elem() PublicIPPrefixSkuOutput { + return o.ApplyT(func(v *PublicIPPrefixSku) PublicIPPrefixSku { + if v != nil { + return *v + } + var ret PublicIPPrefixSku + return ret + }).(PublicIPPrefixSkuOutput) } -// List of all Static Routes. -type StaticRouteResponse struct { - // List of all address prefixes. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // The name of the StaticRoute that is unique within a VnetRoute. - Name *string `pulumi:"name"` - // The ip address of the next hop. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +// Name of a public IP prefix SKU. +func (o PublicIPPrefixSkuPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPPrefixSku) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -// List of all Static Routes. -type StaticRouteResponseOutput struct{ *pulumi.OutputState } +// Tier of a public IP prefix SKU. +func (o PublicIPPrefixSkuPtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPPrefixSku) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) +} -func (StaticRouteResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StaticRouteResponse)(nil)).Elem() +// SKU of a public IP prefix. +type PublicIPPrefixSkuResponse struct { + // Name of a public IP prefix SKU. + Name *string `pulumi:"name"` + // Tier of a public IP prefix SKU. + Tier *string `pulumi:"tier"` } -func (o StaticRouteResponseOutput) ToStaticRouteResponseOutput() StaticRouteResponseOutput { - return o +// SKU of a public IP prefix. +type PublicIPPrefixSkuResponseOutput struct{ *pulumi.OutputState } + +func (PublicIPPrefixSkuResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PublicIPPrefixSkuResponse)(nil)).Elem() } -func (o StaticRouteResponseOutput) ToStaticRouteResponseOutputWithContext(ctx context.Context) StaticRouteResponseOutput { +func (o PublicIPPrefixSkuResponseOutput) ToPublicIPPrefixSkuResponseOutput() PublicIPPrefixSkuResponseOutput { return o } -// List of all address prefixes. -func (o StaticRouteResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v StaticRouteResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +func (o PublicIPPrefixSkuResponseOutput) ToPublicIPPrefixSkuResponseOutputWithContext(ctx context.Context) PublicIPPrefixSkuResponseOutput { + return o } -// The name of the StaticRoute that is unique within a VnetRoute. -func (o StaticRouteResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v StaticRouteResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Name of a public IP prefix SKU. +func (o PublicIPPrefixSkuResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPPrefixSkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The ip address of the next hop. -func (o StaticRouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v StaticRouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +// Tier of a public IP prefix SKU. +func (o PublicIPPrefixSkuResponseOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v PublicIPPrefixSkuResponse) *string { return v.Tier }).(pulumi.StringPtrOutput) } -type StaticRouteResponseArrayOutput struct{ *pulumi.OutputState } +type PublicIPPrefixSkuResponsePtrOutput struct{ *pulumi.OutputState } -func (StaticRouteResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StaticRouteResponse)(nil)).Elem() +func (PublicIPPrefixSkuResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PublicIPPrefixSkuResponse)(nil)).Elem() } -func (o StaticRouteResponseArrayOutput) ToStaticRouteResponseArrayOutput() StaticRouteResponseArrayOutput { +func (o PublicIPPrefixSkuResponsePtrOutput) ToPublicIPPrefixSkuResponsePtrOutput() PublicIPPrefixSkuResponsePtrOutput { return o } -func (o StaticRouteResponseArrayOutput) ToStaticRouteResponseArrayOutputWithContext(ctx context.Context) StaticRouteResponseArrayOutput { +func (o PublicIPPrefixSkuResponsePtrOutput) ToPublicIPPrefixSkuResponsePtrOutputWithContext(ctx context.Context) PublicIPPrefixSkuResponsePtrOutput { return o } -func (o StaticRouteResponseArrayOutput) Index(i pulumi.IntInput) StaticRouteResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StaticRouteResponse { - return vs[0].([]StaticRouteResponse)[vs[1].(int)] - }).(StaticRouteResponseOutput) +func (o PublicIPPrefixSkuResponsePtrOutput) Elem() PublicIPPrefixSkuResponseOutput { + return o.ApplyT(func(v *PublicIPPrefixSkuResponse) PublicIPPrefixSkuResponse { + if v != nil { + return *v + } + var ret PublicIPPrefixSkuResponse + return ret + }).(PublicIPPrefixSkuResponseOutput) } -// A reference to a another resource -type SubResource struct { - // Resource Id. - Id *string `pulumi:"id"` +// Name of a public IP prefix SKU. +func (o PublicIPPrefixSkuResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPPrefixSkuResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -// SubResourceInput is an input type that accepts SubResourceArgs and SubResourceOutput values. -// You can construct a concrete instance of `SubResourceInput` via: -// -// SubResourceArgs{...} -type SubResourceInput interface { - pulumi.Input - - ToSubResourceOutput() SubResourceOutput - ToSubResourceOutputWithContext(context.Context) SubResourceOutput +// Tier of a public IP prefix SKU. +func (o PublicIPPrefixSkuResponsePtrOutput) Tier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIPPrefixSkuResponse) *string { + if v == nil { + return nil + } + return v.Tier + }).(pulumi.StringPtrOutput) } -// A reference to a another resource -type SubResourceArgs struct { - // Resource Id. - Id pulumi.StringPtrInput `pulumi:"id"` +// Quality of Service defines the traffic configuration between endpoints. Mandatory to have one marking. +type QosDefinition struct { + // Destination IP ranges. + DestinationIpRanges []QosIpRange `pulumi:"destinationIpRanges"` + // Destination port ranges. + DestinationPortRanges []QosPortRange `pulumi:"destinationPortRanges"` + // List of markings to be used in the configuration. + Markings []int `pulumi:"markings"` + // RNM supported protocol types. + Protocol *string `pulumi:"protocol"` + // Source IP ranges. + SourceIpRanges []QosIpRange `pulumi:"sourceIpRanges"` + // Sources port ranges. + SourcePortRanges []QosPortRange `pulumi:"sourcePortRanges"` } -func (SubResourceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubResource)(nil)).Elem() +// QosDefinitionInput is an input type that accepts QosDefinitionArgs and QosDefinitionOutput values. +// You can construct a concrete instance of `QosDefinitionInput` via: +// +// QosDefinitionArgs{...} +type QosDefinitionInput interface { + pulumi.Input + + ToQosDefinitionOutput() QosDefinitionOutput + ToQosDefinitionOutputWithContext(context.Context) QosDefinitionOutput } -func (i SubResourceArgs) ToSubResourceOutput() SubResourceOutput { - return i.ToSubResourceOutputWithContext(context.Background()) +// Quality of Service defines the traffic configuration between endpoints. Mandatory to have one marking. +type QosDefinitionArgs struct { + // Destination IP ranges. + DestinationIpRanges QosIpRangeArrayInput `pulumi:"destinationIpRanges"` + // Destination port ranges. + DestinationPortRanges QosPortRangeArrayInput `pulumi:"destinationPortRanges"` + // List of markings to be used in the configuration. + Markings pulumi.IntArrayInput `pulumi:"markings"` + // RNM supported protocol types. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Source IP ranges. + SourceIpRanges QosIpRangeArrayInput `pulumi:"sourceIpRanges"` + // Sources port ranges. + SourcePortRanges QosPortRangeArrayInput `pulumi:"sourcePortRanges"` } -func (i SubResourceArgs) ToSubResourceOutputWithContext(ctx context.Context) SubResourceOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubResourceOutput) +func (QosDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QosDefinition)(nil)).Elem() } -func (i SubResourceArgs) ToSubResourcePtrOutput() SubResourcePtrOutput { - return i.ToSubResourcePtrOutputWithContext(context.Background()) +func (i QosDefinitionArgs) ToQosDefinitionOutput() QosDefinitionOutput { + return i.ToQosDefinitionOutputWithContext(context.Background()) } -func (i SubResourceArgs) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubResourceOutput).ToSubResourcePtrOutputWithContext(ctx) +func (i QosDefinitionArgs) ToQosDefinitionOutputWithContext(ctx context.Context) QosDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosDefinitionOutput) } -// SubResourcePtrInput is an input type that accepts SubResourceArgs, SubResourcePtr and SubResourcePtrOutput values. -// You can construct a concrete instance of `SubResourcePtrInput` via: -// -// SubResourceArgs{...} -// -// or: +// QosDefinitionArrayInput is an input type that accepts QosDefinitionArray and QosDefinitionArrayOutput values. +// You can construct a concrete instance of `QosDefinitionArrayInput` via: // -// nil -type SubResourcePtrInput interface { +// QosDefinitionArray{ QosDefinitionArgs{...} } +type QosDefinitionArrayInput interface { pulumi.Input - ToSubResourcePtrOutput() SubResourcePtrOutput - ToSubResourcePtrOutputWithContext(context.Context) SubResourcePtrOutput + ToQosDefinitionArrayOutput() QosDefinitionArrayOutput + ToQosDefinitionArrayOutputWithContext(context.Context) QosDefinitionArrayOutput } -type subResourcePtrType SubResourceArgs +type QosDefinitionArray []QosDefinitionInput -func SubResourcePtr(v *SubResourceArgs) SubResourcePtrInput { - return (*subResourcePtrType)(v) +func (QosDefinitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosDefinition)(nil)).Elem() } -func (*subResourcePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SubResource)(nil)).Elem() +func (i QosDefinitionArray) ToQosDefinitionArrayOutput() QosDefinitionArrayOutput { + return i.ToQosDefinitionArrayOutputWithContext(context.Background()) } -func (i *subResourcePtrType) ToSubResourcePtrOutput() SubResourcePtrOutput { - return i.ToSubResourcePtrOutputWithContext(context.Background()) +func (i QosDefinitionArray) ToQosDefinitionArrayOutputWithContext(ctx context.Context) QosDefinitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosDefinitionArrayOutput) } -func (i *subResourcePtrType) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubResourcePtrOutput) -} +// Quality of Service defines the traffic configuration between endpoints. Mandatory to have one marking. +type QosDefinitionOutput struct{ *pulumi.OutputState } -// SubResourceArrayInput is an input type that accepts SubResourceArray and SubResourceArrayOutput values. -// You can construct a concrete instance of `SubResourceArrayInput` via: -// -// SubResourceArray{ SubResourceArgs{...} } -type SubResourceArrayInput interface { - pulumi.Input +func (QosDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosDefinition)(nil)).Elem() +} - ToSubResourceArrayOutput() SubResourceArrayOutput - ToSubResourceArrayOutputWithContext(context.Context) SubResourceArrayOutput +func (o QosDefinitionOutput) ToQosDefinitionOutput() QosDefinitionOutput { + return o } -type SubResourceArray []SubResourceInput +func (o QosDefinitionOutput) ToQosDefinitionOutputWithContext(ctx context.Context) QosDefinitionOutput { + return o +} -func (SubResourceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubResource)(nil)).Elem() +// Destination IP ranges. +func (o QosDefinitionOutput) DestinationIpRanges() QosIpRangeArrayOutput { + return o.ApplyT(func(v QosDefinition) []QosIpRange { return v.DestinationIpRanges }).(QosIpRangeArrayOutput) } -func (i SubResourceArray) ToSubResourceArrayOutput() SubResourceArrayOutput { - return i.ToSubResourceArrayOutputWithContext(context.Background()) +// Destination port ranges. +func (o QosDefinitionOutput) DestinationPortRanges() QosPortRangeArrayOutput { + return o.ApplyT(func(v QosDefinition) []QosPortRange { return v.DestinationPortRanges }).(QosPortRangeArrayOutput) } -func (i SubResourceArray) ToSubResourceArrayOutputWithContext(ctx context.Context) SubResourceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubResourceArrayOutput) +// List of markings to be used in the configuration. +func (o QosDefinitionOutput) Markings() pulumi.IntArrayOutput { + return o.ApplyT(func(v QosDefinition) []int { return v.Markings }).(pulumi.IntArrayOutput) } -// A reference to a another resource -type SubResourceOutput struct{ *pulumi.OutputState } +// RNM supported protocol types. +func (o QosDefinitionOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosDefinition) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} -func (SubResourceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubResource)(nil)).Elem() +// Source IP ranges. +func (o QosDefinitionOutput) SourceIpRanges() QosIpRangeArrayOutput { + return o.ApplyT(func(v QosDefinition) []QosIpRange { return v.SourceIpRanges }).(QosIpRangeArrayOutput) } -func (o SubResourceOutput) ToSubResourceOutput() SubResourceOutput { - return o +// Sources port ranges. +func (o QosDefinitionOutput) SourcePortRanges() QosPortRangeArrayOutput { + return o.ApplyT(func(v QosDefinition) []QosPortRange { return v.SourcePortRanges }).(QosPortRangeArrayOutput) } -func (o SubResourceOutput) ToSubResourceOutputWithContext(ctx context.Context) SubResourceOutput { +type QosDefinitionArrayOutput struct{ *pulumi.OutputState } + +func (QosDefinitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosDefinition)(nil)).Elem() +} + +func (o QosDefinitionArrayOutput) ToQosDefinitionArrayOutput() QosDefinitionArrayOutput { return o } -func (o SubResourceOutput) ToSubResourcePtrOutput() SubResourcePtrOutput { - return o.ToSubResourcePtrOutputWithContext(context.Background()) +func (o QosDefinitionArrayOutput) ToQosDefinitionArrayOutputWithContext(ctx context.Context) QosDefinitionArrayOutput { + return o } -func (o SubResourceOutput) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SubResource) *SubResource { - return &v - }).(SubResourcePtrOutput) +func (o QosDefinitionArrayOutput) Index(i pulumi.IntInput) QosDefinitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosDefinition { + return vs[0].([]QosDefinition)[vs[1].(int)] + }).(QosDefinitionOutput) } -// Resource Id. -func (o SubResourceOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubResource) *string { return v.Id }).(pulumi.StringPtrOutput) +// Quality of Service defines the traffic configuration between endpoints. Mandatory to have one marking. +type QosDefinitionResponse struct { + // Destination IP ranges. + DestinationIpRanges []QosIpRangeResponse `pulumi:"destinationIpRanges"` + // Destination port ranges. + DestinationPortRanges []QosPortRangeResponse `pulumi:"destinationPortRanges"` + // List of markings to be used in the configuration. + Markings []int `pulumi:"markings"` + // RNM supported protocol types. + Protocol *string `pulumi:"protocol"` + // Source IP ranges. + SourceIpRanges []QosIpRangeResponse `pulumi:"sourceIpRanges"` + // Sources port ranges. + SourcePortRanges []QosPortRangeResponse `pulumi:"sourcePortRanges"` } -type SubResourcePtrOutput struct{ *pulumi.OutputState } +// Quality of Service defines the traffic configuration between endpoints. Mandatory to have one marking. +type QosDefinitionResponseOutput struct{ *pulumi.OutputState } -func (SubResourcePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubResource)(nil)).Elem() +func (QosDefinitionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosDefinitionResponse)(nil)).Elem() } -func (o SubResourcePtrOutput) ToSubResourcePtrOutput() SubResourcePtrOutput { +func (o QosDefinitionResponseOutput) ToQosDefinitionResponseOutput() QosDefinitionResponseOutput { return o } -func (o SubResourcePtrOutput) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { +func (o QosDefinitionResponseOutput) ToQosDefinitionResponseOutputWithContext(ctx context.Context) QosDefinitionResponseOutput { return o } -func (o SubResourcePtrOutput) Elem() SubResourceOutput { - return o.ApplyT(func(v *SubResource) SubResource { - if v != nil { - return *v - } - var ret SubResource - return ret - }).(SubResourceOutput) +// Destination IP ranges. +func (o QosDefinitionResponseOutput) DestinationIpRanges() QosIpRangeResponseArrayOutput { + return o.ApplyT(func(v QosDefinitionResponse) []QosIpRangeResponse { return v.DestinationIpRanges }).(QosIpRangeResponseArrayOutput) } -// Resource Id. -func (o SubResourcePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubResource) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +// Destination port ranges. +func (o QosDefinitionResponseOutput) DestinationPortRanges() QosPortRangeResponseArrayOutput { + return o.ApplyT(func(v QosDefinitionResponse) []QosPortRangeResponse { return v.DestinationPortRanges }).(QosPortRangeResponseArrayOutput) } -type SubResourceArrayOutput struct{ *pulumi.OutputState } +// List of markings to be used in the configuration. +func (o QosDefinitionResponseOutput) Markings() pulumi.IntArrayOutput { + return o.ApplyT(func(v QosDefinitionResponse) []int { return v.Markings }).(pulumi.IntArrayOutput) +} -func (SubResourceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubResource)(nil)).Elem() +// RNM supported protocol types. +func (o QosDefinitionResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosDefinitionResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) } -func (o SubResourceArrayOutput) ToSubResourceArrayOutput() SubResourceArrayOutput { +// Source IP ranges. +func (o QosDefinitionResponseOutput) SourceIpRanges() QosIpRangeResponseArrayOutput { + return o.ApplyT(func(v QosDefinitionResponse) []QosIpRangeResponse { return v.SourceIpRanges }).(QosIpRangeResponseArrayOutput) +} + +// Sources port ranges. +func (o QosDefinitionResponseOutput) SourcePortRanges() QosPortRangeResponseArrayOutput { + return o.ApplyT(func(v QosDefinitionResponse) []QosPortRangeResponse { return v.SourcePortRanges }).(QosPortRangeResponseArrayOutput) +} + +type QosDefinitionResponseArrayOutput struct{ *pulumi.OutputState } + +func (QosDefinitionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosDefinitionResponse)(nil)).Elem() +} + +func (o QosDefinitionResponseArrayOutput) ToQosDefinitionResponseArrayOutput() QosDefinitionResponseArrayOutput { return o } -func (o SubResourceArrayOutput) ToSubResourceArrayOutputWithContext(ctx context.Context) SubResourceArrayOutput { +func (o QosDefinitionResponseArrayOutput) ToQosDefinitionResponseArrayOutputWithContext(ctx context.Context) QosDefinitionResponseArrayOutput { return o } -func (o SubResourceArrayOutput) Index(i pulumi.IntInput) SubResourceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubResource { - return vs[0].([]SubResource)[vs[1].(int)] - }).(SubResourceOutput) +func (o QosDefinitionResponseArrayOutput) Index(i pulumi.IntInput) QosDefinitionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosDefinitionResponse { + return vs[0].([]QosDefinitionResponse)[vs[1].(int)] + }).(QosDefinitionResponseOutput) } -// Reference to another ARM resource. -type SubResourceResponse struct { - // Resource ID. - Id *string `pulumi:"id"` +// Qos Traffic Profiler IP Range properties. +type QosIpRange struct { + // End IP Address. + EndIP *string `pulumi:"endIP"` + // Start IP Address. + StartIP *string `pulumi:"startIP"` } -// Reference to another ARM resource. -type SubResourceResponseOutput struct{ *pulumi.OutputState } +// QosIpRangeInput is an input type that accepts QosIpRangeArgs and QosIpRangeOutput values. +// You can construct a concrete instance of `QosIpRangeInput` via: +// +// QosIpRangeArgs{...} +type QosIpRangeInput interface { + pulumi.Input -func (SubResourceResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubResourceResponse)(nil)).Elem() + ToQosIpRangeOutput() QosIpRangeOutput + ToQosIpRangeOutputWithContext(context.Context) QosIpRangeOutput } -func (o SubResourceResponseOutput) ToSubResourceResponseOutput() SubResourceResponseOutput { - return o +// Qos Traffic Profiler IP Range properties. +type QosIpRangeArgs struct { + // End IP Address. + EndIP pulumi.StringPtrInput `pulumi:"endIP"` + // Start IP Address. + StartIP pulumi.StringPtrInput `pulumi:"startIP"` } -func (o SubResourceResponseOutput) ToSubResourceResponseOutputWithContext(ctx context.Context) SubResourceResponseOutput { - return o +func (QosIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QosIpRange)(nil)).Elem() } -// Resource ID. -func (o SubResourceResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubResourceResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i QosIpRangeArgs) ToQosIpRangeOutput() QosIpRangeOutput { + return i.ToQosIpRangeOutputWithContext(context.Background()) } -type SubResourceResponsePtrOutput struct{ *pulumi.OutputState } +func (i QosIpRangeArgs) ToQosIpRangeOutputWithContext(ctx context.Context) QosIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosIpRangeOutput) +} -func (SubResourceResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubResourceResponse)(nil)).Elem() +// QosIpRangeArrayInput is an input type that accepts QosIpRangeArray and QosIpRangeArrayOutput values. +// You can construct a concrete instance of `QosIpRangeArrayInput` via: +// +// QosIpRangeArray{ QosIpRangeArgs{...} } +type QosIpRangeArrayInput interface { + pulumi.Input + + ToQosIpRangeArrayOutput() QosIpRangeArrayOutput + ToQosIpRangeArrayOutputWithContext(context.Context) QosIpRangeArrayOutput } -func (o SubResourceResponsePtrOutput) ToSubResourceResponsePtrOutput() SubResourceResponsePtrOutput { +type QosIpRangeArray []QosIpRangeInput + +func (QosIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosIpRange)(nil)).Elem() +} + +func (i QosIpRangeArray) ToQosIpRangeArrayOutput() QosIpRangeArrayOutput { + return i.ToQosIpRangeArrayOutputWithContext(context.Background()) +} + +func (i QosIpRangeArray) ToQosIpRangeArrayOutputWithContext(ctx context.Context) QosIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosIpRangeArrayOutput) +} + +// Qos Traffic Profiler IP Range properties. +type QosIpRangeOutput struct{ *pulumi.OutputState } + +func (QosIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosIpRange)(nil)).Elem() +} + +func (o QosIpRangeOutput) ToQosIpRangeOutput() QosIpRangeOutput { return o } -func (o SubResourceResponsePtrOutput) ToSubResourceResponsePtrOutputWithContext(ctx context.Context) SubResourceResponsePtrOutput { +func (o QosIpRangeOutput) ToQosIpRangeOutputWithContext(ctx context.Context) QosIpRangeOutput { return o } -func (o SubResourceResponsePtrOutput) Elem() SubResourceResponseOutput { - return o.ApplyT(func(v *SubResourceResponse) SubResourceResponse { - if v != nil { - return *v - } - var ret SubResourceResponse - return ret - }).(SubResourceResponseOutput) +// End IP Address. +func (o QosIpRangeOutput) EndIP() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosIpRange) *string { return v.EndIP }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o SubResourceResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubResourceResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +// Start IP Address. +func (o QosIpRangeOutput) StartIP() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosIpRange) *string { return v.StartIP }).(pulumi.StringPtrOutput) } -type SubResourceResponseArrayOutput struct{ *pulumi.OutputState } +type QosIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SubResourceResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubResourceResponse)(nil)).Elem() +func (QosIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosIpRange)(nil)).Elem() } -func (o SubResourceResponseArrayOutput) ToSubResourceResponseArrayOutput() SubResourceResponseArrayOutput { +func (o QosIpRangeArrayOutput) ToQosIpRangeArrayOutput() QosIpRangeArrayOutput { return o } -func (o SubResourceResponseArrayOutput) ToSubResourceResponseArrayOutputWithContext(ctx context.Context) SubResourceResponseArrayOutput { +func (o QosIpRangeArrayOutput) ToQosIpRangeArrayOutputWithContext(ctx context.Context) QosIpRangeArrayOutput { return o } -func (o SubResourceResponseArrayOutput) Index(i pulumi.IntInput) SubResourceResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubResourceResponse { - return vs[0].([]SubResourceResponse)[vs[1].(int)] - }).(SubResourceResponseOutput) +func (o QosIpRangeArrayOutput) Index(i pulumi.IntInput) QosIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosIpRange { + return vs[0].([]QosIpRange)[vs[1].(int)] + }).(QosIpRangeOutput) } -// Subnet in a virtual network resource. -type SubnetType struct { - // The address prefix for the subnet. - AddressPrefix *string `pulumi:"addressPrefix"` - // List of address prefixes for the subnet. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations []ApplicationGatewayIPConfiguration `pulumi:"applicationGatewayIpConfigurations"` - // An array of references to the delegations on the subnet. - Delegations []Delegation `pulumi:"delegations"` - // Resource ID. - Id *string `pulumi:"id"` - // Array of IpAllocation which reference this subnet. - IpAllocations []SubResource `pulumi:"ipAllocations"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Nat gateway associated with this subnet. - NatGateway *SubResource `pulumi:"natGateway"` - // The reference to the NetworkSecurityGroup resource. - NetworkSecurityGroup *NetworkSecurityGroupType `pulumi:"networkSecurityGroup"` - // Enable or Disable apply network policies on private end point in the subnet. - PrivateEndpointNetworkPolicies *string `pulumi:"privateEndpointNetworkPolicies"` - // Enable or Disable apply network policies on private link service in the subnet. - PrivateLinkServiceNetworkPolicies *string `pulumi:"privateLinkServiceNetworkPolicies"` - // The reference to the RouteTable resource. - RouteTable *RouteTableType `pulumi:"routeTable"` - // An array of service endpoint policies. - ServiceEndpointPolicies []ServiceEndpointPolicyType `pulumi:"serviceEndpointPolicies"` - // An array of service endpoints. - ServiceEndpoints []ServiceEndpointPropertiesFormat `pulumi:"serviceEndpoints"` - // Resource type. - Type *string `pulumi:"type"` +// Qos Traffic Profiler IP Range properties. +type QosIpRangeResponse struct { + // End IP Address. + EndIP *string `pulumi:"endIP"` + // Start IP Address. + StartIP *string `pulumi:"startIP"` } -// Defaults sets the appropriate defaults for SubnetType -func (val *SubnetType) Defaults() *SubnetType { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.PrivateEndpointNetworkPolicies) { - privateEndpointNetworkPolicies_ := "Enabled" - tmp.PrivateEndpointNetworkPolicies = &privateEndpointNetworkPolicies_ - } - if isZero(tmp.PrivateLinkServiceNetworkPolicies) { - privateLinkServiceNetworkPolicies_ := "Enabled" - tmp.PrivateLinkServiceNetworkPolicies = &privateLinkServiceNetworkPolicies_ - } - return &tmp +// Qos Traffic Profiler IP Range properties. +type QosIpRangeResponseOutput struct{ *pulumi.OutputState } + +func (QosIpRangeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosIpRangeResponse)(nil)).Elem() } -// SubnetTypeInput is an input type that accepts SubnetTypeArgs and SubnetTypeOutput values. -// You can construct a concrete instance of `SubnetTypeInput` via: -// -// SubnetTypeArgs{...} -type SubnetTypeInput interface { - pulumi.Input +func (o QosIpRangeResponseOutput) ToQosIpRangeResponseOutput() QosIpRangeResponseOutput { + return o +} - ToSubnetTypeOutput() SubnetTypeOutput - ToSubnetTypeOutputWithContext(context.Context) SubnetTypeOutput +func (o QosIpRangeResponseOutput) ToQosIpRangeResponseOutputWithContext(ctx context.Context) QosIpRangeResponseOutput { + return o } -// Subnet in a virtual network resource. -type SubnetTypeArgs struct { - // The address prefix for the subnet. - AddressPrefix pulumi.StringPtrInput `pulumi:"addressPrefix"` - // List of address prefixes for the subnet. - AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` - // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations ApplicationGatewayIPConfigurationArrayInput `pulumi:"applicationGatewayIpConfigurations"` - // An array of references to the delegations on the subnet. - Delegations DelegationArrayInput `pulumi:"delegations"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Array of IpAllocation which reference this subnet. - IpAllocations SubResourceArrayInput `pulumi:"ipAllocations"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // Nat gateway associated with this subnet. - NatGateway SubResourcePtrInput `pulumi:"natGateway"` - // The reference to the NetworkSecurityGroup resource. - NetworkSecurityGroup NetworkSecurityGroupTypePtrInput `pulumi:"networkSecurityGroup"` - // Enable or Disable apply network policies on private end point in the subnet. - PrivateEndpointNetworkPolicies pulumi.StringPtrInput `pulumi:"privateEndpointNetworkPolicies"` - // Enable or Disable apply network policies on private link service in the subnet. - PrivateLinkServiceNetworkPolicies pulumi.StringPtrInput `pulumi:"privateLinkServiceNetworkPolicies"` - // The reference to the RouteTable resource. - RouteTable RouteTableTypePtrInput `pulumi:"routeTable"` - // An array of service endpoint policies. - ServiceEndpointPolicies ServiceEndpointPolicyTypeArrayInput `pulumi:"serviceEndpointPolicies"` - // An array of service endpoints. - ServiceEndpoints ServiceEndpointPropertiesFormatArrayInput `pulumi:"serviceEndpoints"` - // Resource type. - Type pulumi.StringPtrInput `pulumi:"type"` +// End IP Address. +func (o QosIpRangeResponseOutput) EndIP() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosIpRangeResponse) *string { return v.EndIP }).(pulumi.StringPtrOutput) } -// Defaults sets the appropriate defaults for SubnetTypeArgs -func (val *SubnetTypeArgs) Defaults() *SubnetTypeArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.PrivateEndpointNetworkPolicies) { - tmp.PrivateEndpointNetworkPolicies = pulumi.StringPtr("Enabled") - } - if isZero(tmp.PrivateLinkServiceNetworkPolicies) { - tmp.PrivateLinkServiceNetworkPolicies = pulumi.StringPtr("Enabled") - } - return &tmp +// Start IP Address. +func (o QosIpRangeResponseOutput) StartIP() pulumi.StringPtrOutput { + return o.ApplyT(func(v QosIpRangeResponse) *string { return v.StartIP }).(pulumi.StringPtrOutput) } -func (SubnetTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetType)(nil)).Elem() + +type QosIpRangeResponseArrayOutput struct{ *pulumi.OutputState } + +func (QosIpRangeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosIpRangeResponse)(nil)).Elem() } -func (i SubnetTypeArgs) ToSubnetTypeOutput() SubnetTypeOutput { - return i.ToSubnetTypeOutputWithContext(context.Background()) +func (o QosIpRangeResponseArrayOutput) ToQosIpRangeResponseArrayOutput() QosIpRangeResponseArrayOutput { + return o } -func (i SubnetTypeArgs) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeOutput) +func (o QosIpRangeResponseArrayOutput) ToQosIpRangeResponseArrayOutputWithContext(ctx context.Context) QosIpRangeResponseArrayOutput { + return o } -func (i SubnetTypeArgs) ToSubnetTypePtrOutput() SubnetTypePtrOutput { - return i.ToSubnetTypePtrOutputWithContext(context.Background()) +func (o QosIpRangeResponseArrayOutput) Index(i pulumi.IntInput) QosIpRangeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosIpRangeResponse { + return vs[0].([]QosIpRangeResponse)[vs[1].(int)] + }).(QosIpRangeResponseOutput) } -func (i SubnetTypeArgs) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeOutput).ToSubnetTypePtrOutputWithContext(ctx) +// Qos Traffic Profiler Port range properties. +type QosPortRange struct { + // Qos Port Range end. + End *int `pulumi:"end"` + // Qos Port Range start. + Start *int `pulumi:"start"` } -// SubnetTypePtrInput is an input type that accepts SubnetTypeArgs, SubnetTypePtr and SubnetTypePtrOutput values. -// You can construct a concrete instance of `SubnetTypePtrInput` via: -// -// SubnetTypeArgs{...} +// QosPortRangeInput is an input type that accepts QosPortRangeArgs and QosPortRangeOutput values. +// You can construct a concrete instance of `QosPortRangeInput` via: // -// or: -// -// nil -type SubnetTypePtrInput interface { +// QosPortRangeArgs{...} +type QosPortRangeInput interface { pulumi.Input - ToSubnetTypePtrOutput() SubnetTypePtrOutput - ToSubnetTypePtrOutputWithContext(context.Context) SubnetTypePtrOutput + ToQosPortRangeOutput() QosPortRangeOutput + ToQosPortRangeOutputWithContext(context.Context) QosPortRangeOutput } -type subnetTypePtrType SubnetTypeArgs - -func SubnetTypePtr(v *SubnetTypeArgs) SubnetTypePtrInput { - return (*subnetTypePtrType)(v) +// Qos Traffic Profiler Port range properties. +type QosPortRangeArgs struct { + // Qos Port Range end. + End pulumi.IntPtrInput `pulumi:"end"` + // Qos Port Range start. + Start pulumi.IntPtrInput `pulumi:"start"` } -func (*subnetTypePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetType)(nil)).Elem() +func (QosPortRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*QosPortRange)(nil)).Elem() } -func (i *subnetTypePtrType) ToSubnetTypePtrOutput() SubnetTypePtrOutput { - return i.ToSubnetTypePtrOutputWithContext(context.Background()) +func (i QosPortRangeArgs) ToQosPortRangeOutput() QosPortRangeOutput { + return i.ToQosPortRangeOutputWithContext(context.Background()) } -func (i *subnetTypePtrType) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetTypePtrOutput) +func (i QosPortRangeArgs) ToQosPortRangeOutputWithContext(ctx context.Context) QosPortRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosPortRangeOutput) } -// SubnetTypeArrayInput is an input type that accepts SubnetTypeArray and SubnetTypeArrayOutput values. -// You can construct a concrete instance of `SubnetTypeArrayInput` via: +// QosPortRangeArrayInput is an input type that accepts QosPortRangeArray and QosPortRangeArrayOutput values. +// You can construct a concrete instance of `QosPortRangeArrayInput` via: // -// SubnetTypeArray{ SubnetTypeArgs{...} } -type SubnetTypeArrayInput interface { +// QosPortRangeArray{ QosPortRangeArgs{...} } +type QosPortRangeArrayInput interface { pulumi.Input - ToSubnetTypeArrayOutput() SubnetTypeArrayOutput - ToSubnetTypeArrayOutputWithContext(context.Context) SubnetTypeArrayOutput + ToQosPortRangeArrayOutput() QosPortRangeArrayOutput + ToQosPortRangeArrayOutputWithContext(context.Context) QosPortRangeArrayOutput } -type SubnetTypeArray []SubnetTypeInput +type QosPortRangeArray []QosPortRangeInput -func (SubnetTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetType)(nil)).Elem() +func (QosPortRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosPortRange)(nil)).Elem() } -func (i SubnetTypeArray) ToSubnetTypeArrayOutput() SubnetTypeArrayOutput { - return i.ToSubnetTypeArrayOutputWithContext(context.Background()) +func (i QosPortRangeArray) ToQosPortRangeArrayOutput() QosPortRangeArrayOutput { + return i.ToQosPortRangeArrayOutputWithContext(context.Background()) } -func (i SubnetTypeArray) ToSubnetTypeArrayOutputWithContext(ctx context.Context) SubnetTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeArrayOutput) +func (i QosPortRangeArray) ToQosPortRangeArrayOutputWithContext(ctx context.Context) QosPortRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(QosPortRangeArrayOutput) } -// Subnet in a virtual network resource. -type SubnetTypeOutput struct{ *pulumi.OutputState } +// Qos Traffic Profiler Port range properties. +type QosPortRangeOutput struct{ *pulumi.OutputState } -func (SubnetTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetType)(nil)).Elem() +func (QosPortRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosPortRange)(nil)).Elem() } -func (o SubnetTypeOutput) ToSubnetTypeOutput() SubnetTypeOutput { +func (o QosPortRangeOutput) ToQosPortRangeOutput() QosPortRangeOutput { return o } -func (o SubnetTypeOutput) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput { +func (o QosPortRangeOutput) ToQosPortRangeOutputWithContext(ctx context.Context) QosPortRangeOutput { return o } -func (o SubnetTypeOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput { - return o.ToSubnetTypePtrOutputWithContext(context.Background()) +// Qos Port Range end. +func (o QosPortRangeOutput) End() pulumi.IntPtrOutput { + return o.ApplyT(func(v QosPortRange) *int { return v.End }).(pulumi.IntPtrOutput) } -func (o SubnetTypeOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetType) *SubnetType { - return &v - }).(SubnetTypePtrOutput) +// Qos Port Range start. +func (o QosPortRangeOutput) Start() pulumi.IntPtrOutput { + return o.ApplyT(func(v QosPortRange) *int { return v.Start }).(pulumi.IntPtrOutput) } -// The address prefix for the subnet. -func (o SubnetTypeOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +type QosPortRangeArrayOutput struct{ *pulumi.OutputState } + +func (QosPortRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosPortRange)(nil)).Elem() } -// List of address prefixes for the subnet. -func (o SubnetTypeOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SubnetType) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +func (o QosPortRangeArrayOutput) ToQosPortRangeArrayOutput() QosPortRangeArrayOutput { + return o } -// Application gateway IP configurations of virtual network resource. -func (o SubnetTypeOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationArrayOutput { - return o.ApplyT(func(v SubnetType) []ApplicationGatewayIPConfiguration { return v.ApplicationGatewayIpConfigurations }).(ApplicationGatewayIPConfigurationArrayOutput) +func (o QosPortRangeArrayOutput) ToQosPortRangeArrayOutputWithContext(ctx context.Context) QosPortRangeArrayOutput { + return o } -// An array of references to the delegations on the subnet. -func (o SubnetTypeOutput) Delegations() DelegationArrayOutput { - return o.ApplyT(func(v SubnetType) []Delegation { return v.Delegations }).(DelegationArrayOutput) +func (o QosPortRangeArrayOutput) Index(i pulumi.IntInput) QosPortRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosPortRange { + return vs[0].([]QosPortRange)[vs[1].(int)] + }).(QosPortRangeOutput) } -// Resource ID. -func (o SubnetTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.Id }).(pulumi.StringPtrOutput) +// Qos Traffic Profiler Port range properties. +type QosPortRangeResponse struct { + // Qos Port Range end. + End *int `pulumi:"end"` + // Qos Port Range start. + Start *int `pulumi:"start"` } -// Array of IpAllocation which reference this subnet. -func (o SubnetTypeOutput) IpAllocations() SubResourceArrayOutput { - return o.ApplyT(func(v SubnetType) []SubResource { return v.IpAllocations }).(SubResourceArrayOutput) +// Qos Traffic Profiler Port range properties. +type QosPortRangeResponseOutput struct{ *pulumi.OutputState } + +func (QosPortRangeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*QosPortRangeResponse)(nil)).Elem() } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SubnetTypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.Name }).(pulumi.StringPtrOutput) +func (o QosPortRangeResponseOutput) ToQosPortRangeResponseOutput() QosPortRangeResponseOutput { + return o } -// Nat gateway associated with this subnet. -func (o SubnetTypeOutput) NatGateway() SubResourcePtrOutput { - return o.ApplyT(func(v SubnetType) *SubResource { return v.NatGateway }).(SubResourcePtrOutput) +func (o QosPortRangeResponseOutput) ToQosPortRangeResponseOutputWithContext(ctx context.Context) QosPortRangeResponseOutput { + return o } -// The reference to the NetworkSecurityGroup resource. -func (o SubnetTypeOutput) NetworkSecurityGroup() NetworkSecurityGroupTypePtrOutput { - return o.ApplyT(func(v SubnetType) *NetworkSecurityGroupType { return v.NetworkSecurityGroup }).(NetworkSecurityGroupTypePtrOutput) +// Qos Port Range end. +func (o QosPortRangeResponseOutput) End() pulumi.IntPtrOutput { + return o.ApplyT(func(v QosPortRangeResponse) *int { return v.End }).(pulumi.IntPtrOutput) } -// Enable or Disable apply network policies on private end point in the subnet. -func (o SubnetTypeOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.PrivateEndpointNetworkPolicies }).(pulumi.StringPtrOutput) +// Qos Port Range start. +func (o QosPortRangeResponseOutput) Start() pulumi.IntPtrOutput { + return o.ApplyT(func(v QosPortRangeResponse) *int { return v.Start }).(pulumi.IntPtrOutput) } -// Enable or Disable apply network policies on private link service in the subnet. -func (o SubnetTypeOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.PrivateLinkServiceNetworkPolicies }).(pulumi.StringPtrOutput) +type QosPortRangeResponseArrayOutput struct{ *pulumi.OutputState } + +func (QosPortRangeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]QosPortRangeResponse)(nil)).Elem() } -// The reference to the RouteTable resource. -func (o SubnetTypeOutput) RouteTable() RouteTableTypePtrOutput { - return o.ApplyT(func(v SubnetType) *RouteTableType { return v.RouteTable }).(RouteTableTypePtrOutput) +func (o QosPortRangeResponseArrayOutput) ToQosPortRangeResponseArrayOutput() QosPortRangeResponseArrayOutput { + return o } -// An array of service endpoint policies. -func (o SubnetTypeOutput) ServiceEndpointPolicies() ServiceEndpointPolicyTypeArrayOutput { - return o.ApplyT(func(v SubnetType) []ServiceEndpointPolicyType { return v.ServiceEndpointPolicies }).(ServiceEndpointPolicyTypeArrayOutput) +func (o QosPortRangeResponseArrayOutput) ToQosPortRangeResponseArrayOutputWithContext(ctx context.Context) QosPortRangeResponseArrayOutput { + return o } -// An array of service endpoints. -func (o SubnetTypeOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatArrayOutput { - return o.ApplyT(func(v SubnetType) []ServiceEndpointPropertiesFormat { return v.ServiceEndpoints }).(ServiceEndpointPropertiesFormatArrayOutput) +func (o QosPortRangeResponseArrayOutput) Index(i pulumi.IntInput) QosPortRangeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) QosPortRangeResponse { + return vs[0].([]QosPortRangeResponse)[vs[1].(int)] + }).(QosPortRangeResponseOutput) } -// Resource type. -func (o SubnetTypeOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetType) *string { return v.Type }).(pulumi.StringPtrOutput) +// Radius Server Settings. +type RadiusServer struct { + // The address of this radius server. + RadiusServerAddress string `pulumi:"radiusServerAddress"` + // The initial score assigned to this radius server. + RadiusServerScore *float64 `pulumi:"radiusServerScore"` + // The secret used for this radius server. + RadiusServerSecret *string `pulumi:"radiusServerSecret"` } -type SubnetTypePtrOutput struct{ *pulumi.OutputState } +// RadiusServerInput is an input type that accepts RadiusServerArgs and RadiusServerOutput values. +// You can construct a concrete instance of `RadiusServerInput` via: +// +// RadiusServerArgs{...} +type RadiusServerInput interface { + pulumi.Input -func (SubnetTypePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetType)(nil)).Elem() + ToRadiusServerOutput() RadiusServerOutput + ToRadiusServerOutputWithContext(context.Context) RadiusServerOutput } -func (o SubnetTypePtrOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput { - return o +// Radius Server Settings. +type RadiusServerArgs struct { + // The address of this radius server. + RadiusServerAddress pulumi.StringInput `pulumi:"radiusServerAddress"` + // The initial score assigned to this radius server. + RadiusServerScore pulumi.Float64PtrInput `pulumi:"radiusServerScore"` + // The secret used for this radius server. + RadiusServerSecret pulumi.StringPtrInput `pulumi:"radiusServerSecret"` } -func (o SubnetTypePtrOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { - return o +func (RadiusServerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RadiusServer)(nil)).Elem() } -func (o SubnetTypePtrOutput) Elem() SubnetTypeOutput { - return o.ApplyT(func(v *SubnetType) SubnetType { - if v != nil { - return *v - } - var ret SubnetType - return ret - }).(SubnetTypeOutput) +func (i RadiusServerArgs) ToRadiusServerOutput() RadiusServerOutput { + return i.ToRadiusServerOutputWithContext(context.Background()) } -// The address prefix for the subnet. -func (o SubnetTypePtrOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.AddressPrefix - }).(pulumi.StringPtrOutput) +func (i RadiusServerArgs) ToRadiusServerOutputWithContext(ctx context.Context) RadiusServerOutput { + return pulumi.ToOutputWithContext(ctx, i).(RadiusServerOutput) } -// List of address prefixes for the subnet. -func (o SubnetTypePtrOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SubnetType) []string { - if v == nil { - return nil - } - return v.AddressPrefixes - }).(pulumi.StringArrayOutput) +// RadiusServerArrayInput is an input type that accepts RadiusServerArray and RadiusServerArrayOutput values. +// You can construct a concrete instance of `RadiusServerArrayInput` via: +// +// RadiusServerArray{ RadiusServerArgs{...} } +type RadiusServerArrayInput interface { + pulumi.Input + + ToRadiusServerArrayOutput() RadiusServerArrayOutput + ToRadiusServerArrayOutputWithContext(context.Context) RadiusServerArrayOutput } -// Application gateway IP configurations of virtual network resource. -func (o SubnetTypePtrOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationArrayOutput { - return o.ApplyT(func(v *SubnetType) []ApplicationGatewayIPConfiguration { - if v == nil { - return nil - } - return v.ApplicationGatewayIpConfigurations - }).(ApplicationGatewayIPConfigurationArrayOutput) +type RadiusServerArray []RadiusServerInput + +func (RadiusServerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RadiusServer)(nil)).Elem() } -// An array of references to the delegations on the subnet. -func (o SubnetTypePtrOutput) Delegations() DelegationArrayOutput { - return o.ApplyT(func(v *SubnetType) []Delegation { - if v == nil { - return nil - } - return v.Delegations - }).(DelegationArrayOutput) +func (i RadiusServerArray) ToRadiusServerArrayOutput() RadiusServerArrayOutput { + return i.ToRadiusServerArrayOutputWithContext(context.Background()) } -// Resource ID. -func (o SubnetTypePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (i RadiusServerArray) ToRadiusServerArrayOutputWithContext(ctx context.Context) RadiusServerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RadiusServerArrayOutput) } -// Array of IpAllocation which reference this subnet. -func (o SubnetTypePtrOutput) IpAllocations() SubResourceArrayOutput { - return o.ApplyT(func(v *SubnetType) []SubResource { - if v == nil { - return nil - } - return v.IpAllocations - }).(SubResourceArrayOutput) +// Radius Server Settings. +type RadiusServerOutput struct{ *pulumi.OutputState } + +func (RadiusServerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RadiusServer)(nil)).Elem() } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SubnetTypePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +func (o RadiusServerOutput) ToRadiusServerOutput() RadiusServerOutput { + return o } -// Nat gateway associated with this subnet. -func (o SubnetTypePtrOutput) NatGateway() SubResourcePtrOutput { - return o.ApplyT(func(v *SubnetType) *SubResource { - if v == nil { - return nil - } - return v.NatGateway - }).(SubResourcePtrOutput) +func (o RadiusServerOutput) ToRadiusServerOutputWithContext(ctx context.Context) RadiusServerOutput { + return o } -// The reference to the NetworkSecurityGroup resource. -func (o SubnetTypePtrOutput) NetworkSecurityGroup() NetworkSecurityGroupTypePtrOutput { - return o.ApplyT(func(v *SubnetType) *NetworkSecurityGroupType { - if v == nil { - return nil - } - return v.NetworkSecurityGroup - }).(NetworkSecurityGroupTypePtrOutput) +// The address of this radius server. +func (o RadiusServerOutput) RadiusServerAddress() pulumi.StringOutput { + return o.ApplyT(func(v RadiusServer) string { return v.RadiusServerAddress }).(pulumi.StringOutput) } -// Enable or Disable apply network policies on private end point in the subnet. -func (o SubnetTypePtrOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.PrivateEndpointNetworkPolicies - }).(pulumi.StringPtrOutput) +// The initial score assigned to this radius server. +func (o RadiusServerOutput) RadiusServerScore() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RadiusServer) *float64 { return v.RadiusServerScore }).(pulumi.Float64PtrOutput) } -// Enable or Disable apply network policies on private link service in the subnet. -func (o SubnetTypePtrOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.PrivateLinkServiceNetworkPolicies - }).(pulumi.StringPtrOutput) +// The secret used for this radius server. +func (o RadiusServerOutput) RadiusServerSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v RadiusServer) *string { return v.RadiusServerSecret }).(pulumi.StringPtrOutput) } -// The reference to the RouteTable resource. -func (o SubnetTypePtrOutput) RouteTable() RouteTableTypePtrOutput { - return o.ApplyT(func(v *SubnetType) *RouteTableType { - if v == nil { - return nil - } - return v.RouteTable - }).(RouteTableTypePtrOutput) +type RadiusServerArrayOutput struct{ *pulumi.OutputState } + +func (RadiusServerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RadiusServer)(nil)).Elem() } -// An array of service endpoint policies. -func (o SubnetTypePtrOutput) ServiceEndpointPolicies() ServiceEndpointPolicyTypeArrayOutput { - return o.ApplyT(func(v *SubnetType) []ServiceEndpointPolicyType { - if v == nil { - return nil - } - return v.ServiceEndpointPolicies - }).(ServiceEndpointPolicyTypeArrayOutput) +func (o RadiusServerArrayOutput) ToRadiusServerArrayOutput() RadiusServerArrayOutput { + return o } -// An array of service endpoints. -func (o SubnetTypePtrOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatArrayOutput { - return o.ApplyT(func(v *SubnetType) []ServiceEndpointPropertiesFormat { - if v == nil { - return nil - } - return v.ServiceEndpoints - }).(ServiceEndpointPropertiesFormatArrayOutput) +func (o RadiusServerArrayOutput) ToRadiusServerArrayOutputWithContext(ctx context.Context) RadiusServerArrayOutput { + return o } -// Resource type. -func (o SubnetTypePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetType) *string { - if v == nil { - return nil - } - return v.Type - }).(pulumi.StringPtrOutput) +func (o RadiusServerArrayOutput) Index(i pulumi.IntInput) RadiusServerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RadiusServer { + return vs[0].([]RadiusServer)[vs[1].(int)] + }).(RadiusServerOutput) } -type SubnetTypeArrayOutput struct{ *pulumi.OutputState } +// Radius Server Settings. +type RadiusServerResponse struct { + // The address of this radius server. + RadiusServerAddress string `pulumi:"radiusServerAddress"` + // The initial score assigned to this radius server. + RadiusServerScore *float64 `pulumi:"radiusServerScore"` + // The secret used for this radius server. + RadiusServerSecret *string `pulumi:"radiusServerSecret"` +} -func (SubnetTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetType)(nil)).Elem() +// Radius Server Settings. +type RadiusServerResponseOutput struct{ *pulumi.OutputState } + +func (RadiusServerResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RadiusServerResponse)(nil)).Elem() } -func (o SubnetTypeArrayOutput) ToSubnetTypeArrayOutput() SubnetTypeArrayOutput { +func (o RadiusServerResponseOutput) ToRadiusServerResponseOutput() RadiusServerResponseOutput { return o } -func (o SubnetTypeArrayOutput) ToSubnetTypeArrayOutputWithContext(ctx context.Context) SubnetTypeArrayOutput { +func (o RadiusServerResponseOutput) ToRadiusServerResponseOutputWithContext(ctx context.Context) RadiusServerResponseOutput { return o } -func (o SubnetTypeArrayOutput) Index(i pulumi.IntInput) SubnetTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetType { - return vs[0].([]SubnetType)[vs[1].(int)] - }).(SubnetTypeOutput) +// The address of this radius server. +func (o RadiusServerResponseOutput) RadiusServerAddress() pulumi.StringOutput { + return o.ApplyT(func(v RadiusServerResponse) string { return v.RadiusServerAddress }).(pulumi.StringOutput) } -// Subnet in a virtual network resource. -type SubnetResponse struct { - // The address prefix for the subnet. - AddressPrefix *string `pulumi:"addressPrefix"` - // List of address prefixes for the subnet. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"applicationGatewayIpConfigurations"` - // An array of references to the delegations on the subnet. - Delegations []DelegationResponse `pulumi:"delegations"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // Array of IpAllocation which reference this subnet. - IpAllocations []SubResourceResponse `pulumi:"ipAllocations"` - // Array of IP configuration profiles which reference this subnet. - IpConfigurationProfiles []IPConfigurationProfileResponse `pulumi:"ipConfigurationProfiles"` - // An array of references to the network interface IP configurations using subnet. - IpConfigurations []IPConfigurationResponse `pulumi:"ipConfigurations"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // Nat gateway associated with this subnet. - NatGateway *SubResourceResponse `pulumi:"natGateway"` - // The reference to the NetworkSecurityGroup resource. - NetworkSecurityGroup *NetworkSecurityGroupResponse `pulumi:"networkSecurityGroup"` - // Enable or Disable apply network policies on private end point in the subnet. - PrivateEndpointNetworkPolicies *string `pulumi:"privateEndpointNetworkPolicies"` - // An array of references to private endpoints. - PrivateEndpoints []PrivateEndpointResponse `pulumi:"privateEndpoints"` - // Enable or Disable apply network policies on private link service in the subnet. - PrivateLinkServiceNetworkPolicies *string `pulumi:"privateLinkServiceNetworkPolicies"` - // The provisioning state of the subnet resource. - ProvisioningState string `pulumi:"provisioningState"` - // A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. - Purpose string `pulumi:"purpose"` - // An array of references to the external resources using subnet. - ResourceNavigationLinks []ResourceNavigationLinkResponse `pulumi:"resourceNavigationLinks"` - // The reference to the RouteTable resource. - RouteTable *RouteTableResponse `pulumi:"routeTable"` - // An array of references to services injecting into this subnet. - ServiceAssociationLinks []ServiceAssociationLinkResponse `pulumi:"serviceAssociationLinks"` - // An array of service endpoint policies. - ServiceEndpointPolicies []ServiceEndpointPolicyResponse `pulumi:"serviceEndpointPolicies"` - // An array of service endpoints. - ServiceEndpoints []ServiceEndpointPropertiesFormatResponse `pulumi:"serviceEndpoints"` - // Resource type. - Type *string `pulumi:"type"` +// The initial score assigned to this radius server. +func (o RadiusServerResponseOutput) RadiusServerScore() pulumi.Float64PtrOutput { + return o.ApplyT(func(v RadiusServerResponse) *float64 { return v.RadiusServerScore }).(pulumi.Float64PtrOutput) } -// Defaults sets the appropriate defaults for SubnetResponse -func (val *SubnetResponse) Defaults() *SubnetResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.PrivateEndpointNetworkPolicies) { - privateEndpointNetworkPolicies_ := "Enabled" - tmp.PrivateEndpointNetworkPolicies = &privateEndpointNetworkPolicies_ - } - if isZero(tmp.PrivateLinkServiceNetworkPolicies) { - privateLinkServiceNetworkPolicies_ := "Enabled" - tmp.PrivateLinkServiceNetworkPolicies = &privateLinkServiceNetworkPolicies_ - } - return &tmp +// The secret used for this radius server. +func (o RadiusServerResponseOutput) RadiusServerSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v RadiusServerResponse) *string { return v.RadiusServerSecret }).(pulumi.StringPtrOutput) } -// Subnet in a virtual network resource. -type SubnetResponseOutput struct{ *pulumi.OutputState } +type RadiusServerResponseArrayOutput struct{ *pulumi.OutputState } -func (SubnetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetResponse)(nil)).Elem() +func (RadiusServerResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RadiusServerResponse)(nil)).Elem() } -func (o SubnetResponseOutput) ToSubnetResponseOutput() SubnetResponseOutput { +func (o RadiusServerResponseArrayOutput) ToRadiusServerResponseArrayOutput() RadiusServerResponseArrayOutput { return o } -func (o SubnetResponseOutput) ToSubnetResponseOutputWithContext(ctx context.Context) SubnetResponseOutput { +func (o RadiusServerResponseArrayOutput) ToRadiusServerResponseArrayOutputWithContext(ctx context.Context) RadiusServerResponseArrayOutput { return o } -// The address prefix for the subnet. -func (o SubnetResponseOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +func (o RadiusServerResponseArrayOutput) Index(i pulumi.IntInput) RadiusServerResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RadiusServerResponse { + return vs[0].([]RadiusServerResponse)[vs[1].(int)] + }).(RadiusServerResponseOutput) } -// List of address prefixes for the subnet. -func (o SubnetResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SubnetResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +// A collective group of information about the record set information. +type RecordSetResponse struct { + // Fqdn that resolves to private endpoint ip address. + Fqdn *string `pulumi:"fqdn"` + // The private ip address of the private endpoint. + IpAddresses []string `pulumi:"ipAddresses"` + // The provisioning state of the recordset. + ProvisioningState string `pulumi:"provisioningState"` + // Recordset name. + RecordSetName *string `pulumi:"recordSetName"` + // Resource record type. + RecordType *string `pulumi:"recordType"` + // Recordset time to live. + Ttl *int `pulumi:"ttl"` } -// Application gateway IP configurations of virtual network resource. -func (o SubnetResponseOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []ApplicationGatewayIPConfigurationResponse { - return v.ApplicationGatewayIpConfigurations - }).(ApplicationGatewayIPConfigurationResponseArrayOutput) -} +// A collective group of information about the record set information. +type RecordSetResponseOutput struct{ *pulumi.OutputState } -// An array of references to the delegations on the subnet. -func (o SubnetResponseOutput) Delegations() DelegationResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []DelegationResponse { return v.Delegations }).(DelegationResponseArrayOutput) +func (RecordSetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RecordSetResponse)(nil)).Elem() } -// A unique read-only string that changes whenever the resource is updated. -func (o SubnetResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v SubnetResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o RecordSetResponseOutput) ToRecordSetResponseOutput() RecordSetResponseOutput { + return o } -// Resource ID. -func (o SubnetResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o RecordSetResponseOutput) ToRecordSetResponseOutputWithContext(ctx context.Context) RecordSetResponseOutput { + return o } -// Array of IpAllocation which reference this subnet. -func (o SubnetResponseOutput) IpAllocations() SubResourceResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []SubResourceResponse { return v.IpAllocations }).(SubResourceResponseArrayOutput) +// Fqdn that resolves to private endpoint ip address. +func (o RecordSetResponseOutput) Fqdn() pulumi.StringPtrOutput { + return o.ApplyT(func(v RecordSetResponse) *string { return v.Fqdn }).(pulumi.StringPtrOutput) } -// Array of IP configuration profiles which reference this subnet. -func (o SubnetResponseOutput) IpConfigurationProfiles() IPConfigurationProfileResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []IPConfigurationProfileResponse { return v.IpConfigurationProfiles }).(IPConfigurationProfileResponseArrayOutput) +// The private ip address of the private endpoint. +func (o RecordSetResponseOutput) IpAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v RecordSetResponse) []string { return v.IpAddresses }).(pulumi.StringArrayOutput) } -// An array of references to the network interface IP configurations using subnet. -func (o SubnetResponseOutput) IpConfigurations() IPConfigurationResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []IPConfigurationResponse { return v.IpConfigurations }).(IPConfigurationResponseArrayOutput) +// The provisioning state of the recordset. +func (o RecordSetResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v RecordSetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SubnetResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Recordset name. +func (o RecordSetResponseOutput) RecordSetName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RecordSetResponse) *string { return v.RecordSetName }).(pulumi.StringPtrOutput) } -// Nat gateway associated with this subnet. -func (o SubnetResponseOutput) NatGateway() SubResourceResponsePtrOutput { - return o.ApplyT(func(v SubnetResponse) *SubResourceResponse { return v.NatGateway }).(SubResourceResponsePtrOutput) +// Resource record type. +func (o RecordSetResponseOutput) RecordType() pulumi.StringPtrOutput { + return o.ApplyT(func(v RecordSetResponse) *string { return v.RecordType }).(pulumi.StringPtrOutput) } -// The reference to the NetworkSecurityGroup resource. -func (o SubnetResponseOutput) NetworkSecurityGroup() NetworkSecurityGroupResponsePtrOutput { - return o.ApplyT(func(v SubnetResponse) *NetworkSecurityGroupResponse { return v.NetworkSecurityGroup }).(NetworkSecurityGroupResponsePtrOutput) +// Recordset time to live. +func (o RecordSetResponseOutput) Ttl() pulumi.IntPtrOutput { + return o.ApplyT(func(v RecordSetResponse) *int { return v.Ttl }).(pulumi.IntPtrOutput) } -// Enable or Disable apply network policies on private end point in the subnet. -func (o SubnetResponseOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.PrivateEndpointNetworkPolicies }).(pulumi.StringPtrOutput) +type RecordSetResponseArrayOutput struct{ *pulumi.OutputState } + +func (RecordSetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RecordSetResponse)(nil)).Elem() } -// An array of references to private endpoints. -func (o SubnetResponseOutput) PrivateEndpoints() PrivateEndpointResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []PrivateEndpointResponse { return v.PrivateEndpoints }).(PrivateEndpointResponseArrayOutput) +func (o RecordSetResponseArrayOutput) ToRecordSetResponseArrayOutput() RecordSetResponseArrayOutput { + return o } -// Enable or Disable apply network policies on private link service in the subnet. -func (o SubnetResponseOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.PrivateLinkServiceNetworkPolicies }).(pulumi.StringPtrOutput) +func (o RecordSetResponseArrayOutput) ToRecordSetResponseArrayOutputWithContext(ctx context.Context) RecordSetResponseArrayOutput { + return o } -// The provisioning state of the subnet resource. -func (o SubnetResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v SubnetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o RecordSetResponseArrayOutput) Index(i pulumi.IntInput) RecordSetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RecordSetResponse { + return vs[0].([]RecordSetResponse)[vs[1].(int)] + }).(RecordSetResponseOutput) } -// A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. -func (o SubnetResponseOutput) Purpose() pulumi.StringOutput { - return o.ApplyT(func(v SubnetResponse) string { return v.Purpose }).(pulumi.StringOutput) +// Describes Redirect Route. +type RedirectConfiguration struct { + // Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. + CustomFragment *string `pulumi:"customFragment"` + // Host to redirect. Leave empty to use the incoming host as the destination host. + CustomHost *string `pulumi:"customHost"` + // The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. + CustomPath *string `pulumi:"customPath"` + // The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in = format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. + CustomQueryString *string `pulumi:"customQueryString"` + // Expected value is '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'. + OdataType string `pulumi:"odataType"` + // The protocol of the destination to where the traffic is redirected + RedirectProtocol *string `pulumi:"redirectProtocol"` + // The redirect type the rule will use when redirecting traffic. + RedirectType *string `pulumi:"redirectType"` } -// An array of references to the external resources using subnet. -func (o SubnetResponseOutput) ResourceNavigationLinks() ResourceNavigationLinkResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []ResourceNavigationLinkResponse { return v.ResourceNavigationLinks }).(ResourceNavigationLinkResponseArrayOutput) +// Describes Redirect Route. +type RedirectConfigurationResponse struct { + // Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. + CustomFragment *string `pulumi:"customFragment"` + // Host to redirect. Leave empty to use the incoming host as the destination host. + CustomHost *string `pulumi:"customHost"` + // The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. + CustomPath *string `pulumi:"customPath"` + // The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in = format. The first ? and & will be added automatically so do not include them in the front, but do separate multiple query strings with &. + CustomQueryString *string `pulumi:"customQueryString"` + // Expected value is '#Microsoft.Azure.FrontDoor.Models.FrontdoorRedirectConfiguration'. + OdataType string `pulumi:"odataType"` + // The protocol of the destination to where the traffic is redirected + RedirectProtocol *string `pulumi:"redirectProtocol"` + // The redirect type the rule will use when redirecting traffic. + RedirectType *string `pulumi:"redirectType"` } -// The reference to the RouteTable resource. -func (o SubnetResponseOutput) RouteTable() RouteTableResponsePtrOutput { - return o.ApplyT(func(v SubnetResponse) *RouteTableResponse { return v.RouteTable }).(RouteTableResponsePtrOutput) +// Reference to a public IP address. +type ReferencedPublicIpAddressResponse struct { + // The PublicIPAddress Reference. + Id *string `pulumi:"id"` } -// An array of references to services injecting into this subnet. -func (o SubnetResponseOutput) ServiceAssociationLinks() ServiceAssociationLinkResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []ServiceAssociationLinkResponse { return v.ServiceAssociationLinks }).(ServiceAssociationLinkResponseArrayOutput) +// Reference to a public IP address. +type ReferencedPublicIpAddressResponseOutput struct{ *pulumi.OutputState } + +func (ReferencedPublicIpAddressResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ReferencedPublicIpAddressResponse)(nil)).Elem() } -// An array of service endpoint policies. -func (o SubnetResponseOutput) ServiceEndpointPolicies() ServiceEndpointPolicyResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []ServiceEndpointPolicyResponse { return v.ServiceEndpointPolicies }).(ServiceEndpointPolicyResponseArrayOutput) +func (o ReferencedPublicIpAddressResponseOutput) ToReferencedPublicIpAddressResponseOutput() ReferencedPublicIpAddressResponseOutput { + return o } -// An array of service endpoints. -func (o SubnetResponseOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatResponseArrayOutput { - return o.ApplyT(func(v SubnetResponse) []ServiceEndpointPropertiesFormatResponse { return v.ServiceEndpoints }).(ServiceEndpointPropertiesFormatResponseArrayOutput) +func (o ReferencedPublicIpAddressResponseOutput) ToReferencedPublicIpAddressResponseOutputWithContext(ctx context.Context) ReferencedPublicIpAddressResponseOutput { + return o } -// Resource type. -func (o SubnetResponseOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +// The PublicIPAddress Reference. +func (o ReferencedPublicIpAddressResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ReferencedPublicIpAddressResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -type SubnetResponsePtrOutput struct{ *pulumi.OutputState } +type ReferencedPublicIpAddressResponseArrayOutput struct{ *pulumi.OutputState } -func (SubnetResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetResponse)(nil)).Elem() +func (ReferencedPublicIpAddressResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ReferencedPublicIpAddressResponse)(nil)).Elem() } -func (o SubnetResponsePtrOutput) ToSubnetResponsePtrOutput() SubnetResponsePtrOutput { +func (o ReferencedPublicIpAddressResponseArrayOutput) ToReferencedPublicIpAddressResponseArrayOutput() ReferencedPublicIpAddressResponseArrayOutput { return o } -func (o SubnetResponsePtrOutput) ToSubnetResponsePtrOutputWithContext(ctx context.Context) SubnetResponsePtrOutput { +func (o ReferencedPublicIpAddressResponseArrayOutput) ToReferencedPublicIpAddressResponseArrayOutputWithContext(ctx context.Context) ReferencedPublicIpAddressResponseArrayOutput { return o } -func (o SubnetResponsePtrOutput) Elem() SubnetResponseOutput { - return o.ApplyT(func(v *SubnetResponse) SubnetResponse { - if v != nil { - return *v - } - var ret SubnetResponse - return ret - }).(SubnetResponseOutput) +func (o ReferencedPublicIpAddressResponseArrayOutput) Index(i pulumi.IntInput) ReferencedPublicIpAddressResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ReferencedPublicIpAddressResponse { + return vs[0].([]ReferencedPublicIpAddressResponse)[vs[1].(int)] + }).(ReferencedPublicIpAddressResponseOutput) } -// The address prefix for the subnet. -func (o SubnetResponsePtrOutput) AddressPrefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.AddressPrefix - }).(pulumi.StringPtrOutput) +// ResourceNavigationLink resource. +type ResourceNavigationLink struct { + // Resource ID. + Id *string `pulumi:"id"` + // Link to the external resource + Link *string `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType *string `pulumi:"linkedResourceType"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` } -// List of address prefixes for the subnet. -func (o SubnetResponsePtrOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []string { - if v == nil { - return nil - } - return v.AddressPrefixes - }).(pulumi.StringArrayOutput) +// ResourceNavigationLinkInput is an input type that accepts ResourceNavigationLinkArgs and ResourceNavigationLinkOutput values. +// You can construct a concrete instance of `ResourceNavigationLinkInput` via: +// +// ResourceNavigationLinkArgs{...} +type ResourceNavigationLinkInput interface { + pulumi.Input + + ToResourceNavigationLinkOutput() ResourceNavigationLinkOutput + ToResourceNavigationLinkOutputWithContext(context.Context) ResourceNavigationLinkOutput } -// Application gateway IP configurations of virtual network resource. -func (o SubnetResponsePtrOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []ApplicationGatewayIPConfigurationResponse { - if v == nil { - return nil - } - return v.ApplicationGatewayIpConfigurations - }).(ApplicationGatewayIPConfigurationResponseArrayOutput) +// ResourceNavigationLink resource. +type ResourceNavigationLinkArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Link to the external resource + Link pulumi.StringPtrInput `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType pulumi.StringPtrInput `pulumi:"linkedResourceType"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` } -// An array of references to the delegations on the subnet. -func (o SubnetResponsePtrOutput) Delegations() DelegationResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []DelegationResponse { - if v == nil { - return nil - } - return v.Delegations - }).(DelegationResponseArrayOutput) +func (ResourceNavigationLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceNavigationLink)(nil)).Elem() } -// A unique read-only string that changes whenever the resource is updated. -func (o SubnetResponsePtrOutput) Etag() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return &v.Etag - }).(pulumi.StringPtrOutput) +func (i ResourceNavigationLinkArgs) ToResourceNavigationLinkOutput() ResourceNavigationLinkOutput { + return i.ToResourceNavigationLinkOutputWithContext(context.Background()) } -// Resource ID. -func (o SubnetResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (i ResourceNavigationLinkArgs) ToResourceNavigationLinkOutputWithContext(ctx context.Context) ResourceNavigationLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceNavigationLinkOutput) } -// Array of IpAllocation which reference this subnet. -func (o SubnetResponsePtrOutput) IpAllocations() SubResourceResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []SubResourceResponse { - if v == nil { - return nil - } - return v.IpAllocations - }).(SubResourceResponseArrayOutput) +// ResourceNavigationLinkArrayInput is an input type that accepts ResourceNavigationLinkArray and ResourceNavigationLinkArrayOutput values. +// You can construct a concrete instance of `ResourceNavigationLinkArrayInput` via: +// +// ResourceNavigationLinkArray{ ResourceNavigationLinkArgs{...} } +type ResourceNavigationLinkArrayInput interface { + pulumi.Input + + ToResourceNavigationLinkArrayOutput() ResourceNavigationLinkArrayOutput + ToResourceNavigationLinkArrayOutputWithContext(context.Context) ResourceNavigationLinkArrayOutput } -// Array of IP configuration profiles which reference this subnet. -func (o SubnetResponsePtrOutput) IpConfigurationProfiles() IPConfigurationProfileResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []IPConfigurationProfileResponse { - if v == nil { - return nil - } - return v.IpConfigurationProfiles - }).(IPConfigurationProfileResponseArrayOutput) +type ResourceNavigationLinkArray []ResourceNavigationLinkInput + +func (ResourceNavigationLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceNavigationLink)(nil)).Elem() } -// An array of references to the network interface IP configurations using subnet. -func (o SubnetResponsePtrOutput) IpConfigurations() IPConfigurationResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []IPConfigurationResponse { - if v == nil { - return nil - } - return v.IpConfigurations - }).(IPConfigurationResponseArrayOutput) +func (i ResourceNavigationLinkArray) ToResourceNavigationLinkArrayOutput() ResourceNavigationLinkArrayOutput { + return i.ToResourceNavigationLinkArrayOutputWithContext(context.Background()) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o SubnetResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +func (i ResourceNavigationLinkArray) ToResourceNavigationLinkArrayOutputWithContext(ctx context.Context) ResourceNavigationLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceNavigationLinkArrayOutput) } -// Nat gateway associated with this subnet. -func (o SubnetResponsePtrOutput) NatGateway() SubResourceResponsePtrOutput { - return o.ApplyT(func(v *SubnetResponse) *SubResourceResponse { - if v == nil { - return nil - } - return v.NatGateway - }).(SubResourceResponsePtrOutput) +// ResourceNavigationLink resource. +type ResourceNavigationLinkOutput struct{ *pulumi.OutputState } + +func (ResourceNavigationLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceNavigationLink)(nil)).Elem() } -// The reference to the NetworkSecurityGroup resource. -func (o SubnetResponsePtrOutput) NetworkSecurityGroup() NetworkSecurityGroupResponsePtrOutput { - return o.ApplyT(func(v *SubnetResponse) *NetworkSecurityGroupResponse { - if v == nil { - return nil - } - return v.NetworkSecurityGroup - }).(NetworkSecurityGroupResponsePtrOutput) +func (o ResourceNavigationLinkOutput) ToResourceNavigationLinkOutput() ResourceNavigationLinkOutput { + return o } -// Enable or Disable apply network policies on private end point in the subnet. -func (o SubnetResponsePtrOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.PrivateEndpointNetworkPolicies - }).(pulumi.StringPtrOutput) +func (o ResourceNavigationLinkOutput) ToResourceNavigationLinkOutputWithContext(ctx context.Context) ResourceNavigationLinkOutput { + return o } -// An array of references to private endpoints. -func (o SubnetResponsePtrOutput) PrivateEndpoints() PrivateEndpointResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []PrivateEndpointResponse { - if v == nil { - return nil - } - return v.PrivateEndpoints - }).(PrivateEndpointResponseArrayOutput) +// Resource ID. +func (o ResourceNavigationLinkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLink) *string { return v.Id }).(pulumi.StringPtrOutput) } -// Enable or Disable apply network policies on private link service in the subnet. -func (o SubnetResponsePtrOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.PrivateLinkServiceNetworkPolicies - }).(pulumi.StringPtrOutput) +// Link to the external resource +func (o ResourceNavigationLinkOutput) Link() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLink) *string { return v.Link }).(pulumi.StringPtrOutput) } -// The provisioning state of the subnet resource. -func (o SubnetResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return &v.ProvisioningState - }).(pulumi.StringPtrOutput) +// Resource type of the linked resource. +func (o ResourceNavigationLinkOutput) LinkedResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLink) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) } -// A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. -func (o SubnetResponsePtrOutput) Purpose() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return &v.Purpose - }).(pulumi.StringPtrOutput) +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ResourceNavigationLinkOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLink) *string { return v.Name }).(pulumi.StringPtrOutput) } -// An array of references to the external resources using subnet. -func (o SubnetResponsePtrOutput) ResourceNavigationLinks() ResourceNavigationLinkResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []ResourceNavigationLinkResponse { - if v == nil { - return nil - } - return v.ResourceNavigationLinks - }).(ResourceNavigationLinkResponseArrayOutput) -} +type ResourceNavigationLinkArrayOutput struct{ *pulumi.OutputState } -// The reference to the RouteTable resource. -func (o SubnetResponsePtrOutput) RouteTable() RouteTableResponsePtrOutput { - return o.ApplyT(func(v *SubnetResponse) *RouteTableResponse { - if v == nil { - return nil - } - return v.RouteTable - }).(RouteTableResponsePtrOutput) +func (ResourceNavigationLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceNavigationLink)(nil)).Elem() } -// An array of references to services injecting into this subnet. -func (o SubnetResponsePtrOutput) ServiceAssociationLinks() ServiceAssociationLinkResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []ServiceAssociationLinkResponse { - if v == nil { - return nil - } - return v.ServiceAssociationLinks - }).(ServiceAssociationLinkResponseArrayOutput) +func (o ResourceNavigationLinkArrayOutput) ToResourceNavigationLinkArrayOutput() ResourceNavigationLinkArrayOutput { + return o } -// An array of service endpoint policies. -func (o SubnetResponsePtrOutput) ServiceEndpointPolicies() ServiceEndpointPolicyResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []ServiceEndpointPolicyResponse { - if v == nil { - return nil - } - return v.ServiceEndpointPolicies - }).(ServiceEndpointPolicyResponseArrayOutput) +func (o ResourceNavigationLinkArrayOutput) ToResourceNavigationLinkArrayOutputWithContext(ctx context.Context) ResourceNavigationLinkArrayOutput { + return o } -// An array of service endpoints. -func (o SubnetResponsePtrOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatResponseArrayOutput { - return o.ApplyT(func(v *SubnetResponse) []ServiceEndpointPropertiesFormatResponse { - if v == nil { - return nil - } - return v.ServiceEndpoints - }).(ServiceEndpointPropertiesFormatResponseArrayOutput) +func (o ResourceNavigationLinkArrayOutput) Index(i pulumi.IntInput) ResourceNavigationLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceNavigationLink { + return vs[0].([]ResourceNavigationLink)[vs[1].(int)] + }).(ResourceNavigationLinkOutput) } -// Resource type. -func (o SubnetResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetResponse) *string { - if v == nil { - return nil - } - return v.Type - }).(pulumi.StringPtrOutput) +// ResourceNavigationLink resource. +type ResourceNavigationLinkResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id string `pulumi:"id"` + // Link to the external resource. + Link *string `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType *string `pulumi:"linkedResourceType"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the resource navigation link resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource type. + Type string `pulumi:"type"` } -type SubnetResponseArrayOutput struct{ *pulumi.OutputState } +// ResourceNavigationLink resource. +type ResourceNavigationLinkResponseOutput struct{ *pulumi.OutputState } -func (SubnetResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetResponse)(nil)).Elem() +func (ResourceNavigationLinkResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceNavigationLinkResponse)(nil)).Elem() } -func (o SubnetResponseArrayOutput) ToSubnetResponseArrayOutput() SubnetResponseArrayOutput { +func (o ResourceNavigationLinkResponseOutput) ToResourceNavigationLinkResponseOutput() ResourceNavigationLinkResponseOutput { return o } -func (o SubnetResponseArrayOutput) ToSubnetResponseArrayOutputWithContext(ctx context.Context) SubnetResponseArrayOutput { +func (o ResourceNavigationLinkResponseOutput) ToResourceNavigationLinkResponseOutputWithContext(ctx context.Context) ResourceNavigationLinkResponseOutput { return o } -func (o SubnetResponseArrayOutput) Index(i pulumi.IntInput) SubnetResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetResponse { - return vs[0].([]SubnetResponse)[vs[1].(int)] - }).(SubnetResponseOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o ResourceNavigationLinkResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Etag }).(pulumi.StringOutput) } -type SubscriptionId struct { - // Subscription id in the ARM id format. - Id *string `pulumi:"id"` +// Resource ID. +func (o ResourceNavigationLinkResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Id }).(pulumi.StringOutput) } -// SubscriptionIdInput is an input type that accepts SubscriptionIdArgs and SubscriptionIdOutput values. -// You can construct a concrete instance of `SubscriptionIdInput` via: -// -// SubscriptionIdArgs{...} -type SubscriptionIdInput interface { - pulumi.Input - - ToSubscriptionIdOutput() SubscriptionIdOutput - ToSubscriptionIdOutputWithContext(context.Context) SubscriptionIdOutput +// Link to the external resource. +func (o ResourceNavigationLinkResponseOutput) Link() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.Link }).(pulumi.StringPtrOutput) } -type SubscriptionIdArgs struct { - // Subscription id in the ARM id format. - Id pulumi.StringPtrInput `pulumi:"id"` +// Resource type of the linked resource. +func (o ResourceNavigationLinkResponseOutput) LinkedResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) } -func (SubscriptionIdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubscriptionId)(nil)).Elem() +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ResourceNavigationLinkResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i SubscriptionIdArgs) ToSubscriptionIdOutput() SubscriptionIdOutput { - return i.ToSubscriptionIdOutputWithContext(context.Background()) +// The provisioning state of the resource navigation link resource. +func (o ResourceNavigationLinkResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i SubscriptionIdArgs) ToSubscriptionIdOutputWithContext(ctx context.Context) SubscriptionIdOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubscriptionIdOutput) +// Resource type. +func (o ResourceNavigationLinkResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ResourceNavigationLinkResponse) string { return v.Type }).(pulumi.StringOutput) } -// SubscriptionIdArrayInput is an input type that accepts SubscriptionIdArray and SubscriptionIdArrayOutput values. -// You can construct a concrete instance of `SubscriptionIdArrayInput` via: -// -// SubscriptionIdArray{ SubscriptionIdArgs{...} } -type SubscriptionIdArrayInput interface { - pulumi.Input +type ResourceNavigationLinkResponseArrayOutput struct{ *pulumi.OutputState } - ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput - ToSubscriptionIdArrayOutputWithContext(context.Context) SubscriptionIdArrayOutput +func (ResourceNavigationLinkResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceNavigationLinkResponse)(nil)).Elem() } -type SubscriptionIdArray []SubscriptionIdInput - -func (SubscriptionIdArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubscriptionId)(nil)).Elem() +func (o ResourceNavigationLinkResponseArrayOutput) ToResourceNavigationLinkResponseArrayOutput() ResourceNavigationLinkResponseArrayOutput { + return o } -func (i SubscriptionIdArray) ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput { - return i.ToSubscriptionIdArrayOutputWithContext(context.Background()) +func (o ResourceNavigationLinkResponseArrayOutput) ToResourceNavigationLinkResponseArrayOutputWithContext(ctx context.Context) ResourceNavigationLinkResponseArrayOutput { + return o } -func (i SubscriptionIdArray) ToSubscriptionIdArrayOutputWithContext(ctx context.Context) SubscriptionIdArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubscriptionIdArrayOutput) +func (o ResourceNavigationLinkResponseArrayOutput) Index(i pulumi.IntInput) ResourceNavigationLinkResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceNavigationLinkResponse { + return vs[0].([]ResourceNavigationLinkResponse)[vs[1].(int)] + }).(ResourceNavigationLinkResponseOutput) } -type SubscriptionIdOutput struct{ *pulumi.OutputState } - -func (SubscriptionIdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubscriptionId)(nil)).Elem() +// Parameters that define the retention policy for flow log. +type RetentionPolicyParameters struct { + // Number of days to retain flow log records. + Days *int `pulumi:"days"` + // Flag to enable/disable retention. + Enabled *bool `pulumi:"enabled"` } -func (o SubscriptionIdOutput) ToSubscriptionIdOutput() SubscriptionIdOutput { - return o +// Defaults sets the appropriate defaults for RetentionPolicyParameters +func (val *RetentionPolicyParameters) Defaults() *RetentionPolicyParameters { + if val == nil { + return nil + } + tmp := *val + if tmp.Days == nil { + days_ := 0 + tmp.Days = &days_ + } + if tmp.Enabled == nil { + enabled_ := false + tmp.Enabled = &enabled_ + } + return &tmp } -func (o SubscriptionIdOutput) ToSubscriptionIdOutputWithContext(ctx context.Context) SubscriptionIdOutput { - return o +// RetentionPolicyParametersInput is an input type that accepts RetentionPolicyParametersArgs and RetentionPolicyParametersOutput values. +// You can construct a concrete instance of `RetentionPolicyParametersInput` via: +// +// RetentionPolicyParametersArgs{...} +type RetentionPolicyParametersInput interface { + pulumi.Input + + ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput + ToRetentionPolicyParametersOutputWithContext(context.Context) RetentionPolicyParametersOutput } -// Subscription id in the ARM id format. -func (o SubscriptionIdOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubscriptionId) *string { return v.Id }).(pulumi.StringPtrOutput) +// Parameters that define the retention policy for flow log. +type RetentionPolicyParametersArgs struct { + // Number of days to retain flow log records. + Days pulumi.IntPtrInput `pulumi:"days"` + // Flag to enable/disable retention. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } -type SubscriptionIdArrayOutput struct{ *pulumi.OutputState } +// Defaults sets the appropriate defaults for RetentionPolicyParametersArgs +func (val *RetentionPolicyParametersArgs) Defaults() *RetentionPolicyParametersArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Days == nil { + tmp.Days = pulumi.IntPtr(0) + } + if tmp.Enabled == nil { + tmp.Enabled = pulumi.BoolPtr(false) + } + return &tmp +} +func (RetentionPolicyParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RetentionPolicyParameters)(nil)).Elem() +} -func (SubscriptionIdArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubscriptionId)(nil)).Elem() +func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput { + return i.ToRetentionPolicyParametersOutputWithContext(context.Background()) } -func (o SubscriptionIdArrayOutput) ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput { - return o +func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersOutputWithContext(ctx context.Context) RetentionPolicyParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersOutput) } -func (o SubscriptionIdArrayOutput) ToSubscriptionIdArrayOutputWithContext(ctx context.Context) SubscriptionIdArrayOutput { - return o +func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { + return i.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) } -func (o SubscriptionIdArrayOutput) Index(i pulumi.IntInput) SubscriptionIdOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubscriptionId { - return vs[0].([]SubscriptionId)[vs[1].(int)] - }).(SubscriptionIdOutput) +func (i RetentionPolicyParametersArgs) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersOutput).ToRetentionPolicyParametersPtrOutputWithContext(ctx) } -type SubscriptionIdResponse struct { - // Subscription id in the ARM id format. - Id *string `pulumi:"id"` +// RetentionPolicyParametersPtrInput is an input type that accepts RetentionPolicyParametersArgs, RetentionPolicyParametersPtr and RetentionPolicyParametersPtrOutput values. +// You can construct a concrete instance of `RetentionPolicyParametersPtrInput` via: +// +// RetentionPolicyParametersArgs{...} +// +// or: +// +// nil +type RetentionPolicyParametersPtrInput interface { + pulumi.Input + + ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput + ToRetentionPolicyParametersPtrOutputWithContext(context.Context) RetentionPolicyParametersPtrOutput } -type SubscriptionIdResponseOutput struct{ *pulumi.OutputState } +type retentionPolicyParametersPtrType RetentionPolicyParametersArgs -func (SubscriptionIdResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubscriptionIdResponse)(nil)).Elem() +func RetentionPolicyParametersPtr(v *RetentionPolicyParametersArgs) RetentionPolicyParametersPtrInput { + return (*retentionPolicyParametersPtrType)(v) } -func (o SubscriptionIdResponseOutput) ToSubscriptionIdResponseOutput() SubscriptionIdResponseOutput { - return o +func (*retentionPolicyParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RetentionPolicyParameters)(nil)).Elem() } -func (o SubscriptionIdResponseOutput) ToSubscriptionIdResponseOutputWithContext(ctx context.Context) SubscriptionIdResponseOutput { - return o +func (i *retentionPolicyParametersPtrType) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { + return i.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) } -// Subscription id in the ARM id format. -func (o SubscriptionIdResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubscriptionIdResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i *retentionPolicyParametersPtrType) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RetentionPolicyParametersPtrOutput) } -type SubscriptionIdResponseArrayOutput struct{ *pulumi.OutputState } +// Parameters that define the retention policy for flow log. +type RetentionPolicyParametersOutput struct{ *pulumi.OutputState } -func (SubscriptionIdResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubscriptionIdResponse)(nil)).Elem() +func (RetentionPolicyParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RetentionPolicyParameters)(nil)).Elem() } -func (o SubscriptionIdResponseArrayOutput) ToSubscriptionIdResponseArrayOutput() SubscriptionIdResponseArrayOutput { +func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersOutput() RetentionPolicyParametersOutput { return o } -func (o SubscriptionIdResponseArrayOutput) ToSubscriptionIdResponseArrayOutputWithContext(ctx context.Context) SubscriptionIdResponseArrayOutput { +func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersOutputWithContext(ctx context.Context) RetentionPolicyParametersOutput { return o } -func (o SubscriptionIdResponseArrayOutput) Index(i pulumi.IntInput) SubscriptionIdResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubscriptionIdResponse { - return vs[0].([]SubscriptionIdResponse)[vs[1].(int)] - }).(SubscriptionIdResponseOutput) +func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { + return o.ToRetentionPolicyParametersPtrOutputWithContext(context.Background()) } -// Metadata pertaining to creation and last modification of the resource. -type SystemDataResponse struct { - // The timestamp of resource creation (UTC). - CreatedAt *string `pulumi:"createdAt"` - // The identity that created the resource. - CreatedBy *string `pulumi:"createdBy"` - // The type of identity that created the resource. - CreatedByType *string `pulumi:"createdByType"` - // The type of identity that last modified the resource. - LastModifiedAt *string `pulumi:"lastModifiedAt"` - // The identity that last modified the resource. - LastModifiedBy *string `pulumi:"lastModifiedBy"` - // The type of identity that last modified the resource. - LastModifiedByType *string `pulumi:"lastModifiedByType"` +func (o RetentionPolicyParametersOutput) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RetentionPolicyParameters) *RetentionPolicyParameters { + return &v + }).(RetentionPolicyParametersPtrOutput) } -// Metadata pertaining to creation and last modification of the resource. -type SystemDataResponseOutput struct{ *pulumi.OutputState } +// Number of days to retain flow log records. +func (o RetentionPolicyParametersOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v RetentionPolicyParameters) *int { return v.Days }).(pulumi.IntPtrOutput) +} -func (SystemDataResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SystemDataResponse)(nil)).Elem() +// Flag to enable/disable retention. +func (o RetentionPolicyParametersOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RetentionPolicyParameters) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -func (o SystemDataResponseOutput) ToSystemDataResponseOutput() SystemDataResponseOutput { - return o +type RetentionPolicyParametersPtrOutput struct{ *pulumi.OutputState } + +func (RetentionPolicyParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RetentionPolicyParameters)(nil)).Elem() } -func (o SystemDataResponseOutput) ToSystemDataResponseOutputWithContext(ctx context.Context) SystemDataResponseOutput { +func (o RetentionPolicyParametersPtrOutput) ToRetentionPolicyParametersPtrOutput() RetentionPolicyParametersPtrOutput { return o } -// The timestamp of resource creation (UTC). -func (o SystemDataResponseOutput) CreatedAt() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) -} - -// The identity that created the resource. -func (o SystemDataResponseOutput) CreatedBy() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedBy }).(pulumi.StringPtrOutput) -} - -// The type of identity that created the resource. -func (o SystemDataResponseOutput) CreatedByType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedByType }).(pulumi.StringPtrOutput) +func (o RetentionPolicyParametersPtrOutput) ToRetentionPolicyParametersPtrOutputWithContext(ctx context.Context) RetentionPolicyParametersPtrOutput { + return o } -// The type of identity that last modified the resource. -func (o SystemDataResponseOutput) LastModifiedAt() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedAt }).(pulumi.StringPtrOutput) +func (o RetentionPolicyParametersPtrOutput) Elem() RetentionPolicyParametersOutput { + return o.ApplyT(func(v *RetentionPolicyParameters) RetentionPolicyParameters { + if v != nil { + return *v + } + var ret RetentionPolicyParameters + return ret + }).(RetentionPolicyParametersOutput) } -// The identity that last modified the resource. -func (o SystemDataResponseOutput) LastModifiedBy() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedBy }).(pulumi.StringPtrOutput) +// Number of days to retain flow log records. +func (o RetentionPolicyParametersPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RetentionPolicyParameters) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) } -// The type of identity that last modified the resource. -func (o SystemDataResponseOutput) LastModifiedByType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedByType }).(pulumi.StringPtrOutput) +// Flag to enable/disable retention. +func (o RetentionPolicyParametersPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RetentionPolicyParameters) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// Describes a server to forward the DNS queries to. -type TargetDnsServer struct { - // DNS server IP address. - IpAddress *string `pulumi:"ipAddress"` - // DNS server port. - Port *int `pulumi:"port"` +// Parameters that define the retention policy for flow log. +type RetentionPolicyParametersResponse struct { + // Number of days to retain flow log records. + Days *int `pulumi:"days"` + // Flag to enable/disable retention. + Enabled *bool `pulumi:"enabled"` } -// Defaults sets the appropriate defaults for TargetDnsServer -func (val *TargetDnsServer) Defaults() *TargetDnsServer { +// Defaults sets the appropriate defaults for RetentionPolicyParametersResponse +func (val *RetentionPolicyParametersResponse) Defaults() *RetentionPolicyParametersResponse { if val == nil { return nil } tmp := *val - if isZero(tmp.Port) { - port_ := 53 - tmp.Port = &port_ + if tmp.Days == nil { + days_ := 0 + tmp.Days = &days_ + } + if tmp.Enabled == nil { + enabled_ := false + tmp.Enabled = &enabled_ } return &tmp } -// TargetDnsServerInput is an input type that accepts TargetDnsServerArgs and TargetDnsServerOutput values. -// You can construct a concrete instance of `TargetDnsServerInput` via: -// -// TargetDnsServerArgs{...} -type TargetDnsServerInput interface { - pulumi.Input +// Parameters that define the retention policy for flow log. +type RetentionPolicyParametersResponseOutput struct{ *pulumi.OutputState } - ToTargetDnsServerOutput() TargetDnsServerOutput - ToTargetDnsServerOutputWithContext(context.Context) TargetDnsServerOutput +func (RetentionPolicyParametersResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RetentionPolicyParametersResponse)(nil)).Elem() } -// Describes a server to forward the DNS queries to. -type TargetDnsServerArgs struct { - // DNS server IP address. - IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` - // DNS server port. - Port pulumi.IntPtrInput `pulumi:"port"` +func (o RetentionPolicyParametersResponseOutput) ToRetentionPolicyParametersResponseOutput() RetentionPolicyParametersResponseOutput { + return o } -// Defaults sets the appropriate defaults for TargetDnsServerArgs -func (val *TargetDnsServerArgs) Defaults() *TargetDnsServerArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Port) { - tmp.Port = pulumi.IntPtr(53) - } - return &tmp +func (o RetentionPolicyParametersResponseOutput) ToRetentionPolicyParametersResponseOutputWithContext(ctx context.Context) RetentionPolicyParametersResponseOutput { + return o } -func (TargetDnsServerArgs) ElementType() reflect.Type { - return reflect.TypeOf((*TargetDnsServer)(nil)).Elem() + +// Number of days to retain flow log records. +func (o RetentionPolicyParametersResponseOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v RetentionPolicyParametersResponse) *int { return v.Days }).(pulumi.IntPtrOutput) } -func (i TargetDnsServerArgs) ToTargetDnsServerOutput() TargetDnsServerOutput { - return i.ToTargetDnsServerOutputWithContext(context.Background()) +// Flag to enable/disable retention. +func (o RetentionPolicyParametersResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RetentionPolicyParametersResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -func (i TargetDnsServerArgs) ToTargetDnsServerOutputWithContext(ctx context.Context) TargetDnsServerOutput { - return pulumi.ToOutputWithContext(ctx, i).(TargetDnsServerOutput) +type RetentionPolicyParametersResponsePtrOutput struct{ *pulumi.OutputState } + +func (RetentionPolicyParametersResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RetentionPolicyParametersResponse)(nil)).Elem() } -// TargetDnsServerArrayInput is an input type that accepts TargetDnsServerArray and TargetDnsServerArrayOutput values. -// You can construct a concrete instance of `TargetDnsServerArrayInput` via: +func (o RetentionPolicyParametersResponsePtrOutput) ToRetentionPolicyParametersResponsePtrOutput() RetentionPolicyParametersResponsePtrOutput { + return o +} + +func (o RetentionPolicyParametersResponsePtrOutput) ToRetentionPolicyParametersResponsePtrOutputWithContext(ctx context.Context) RetentionPolicyParametersResponsePtrOutput { + return o +} + +func (o RetentionPolicyParametersResponsePtrOutput) Elem() RetentionPolicyParametersResponseOutput { + return o.ApplyT(func(v *RetentionPolicyParametersResponse) RetentionPolicyParametersResponse { + if v != nil { + return *v + } + var ret RetentionPolicyParametersResponse + return ret + }).(RetentionPolicyParametersResponseOutput) +} + +// Number of days to retain flow log records. +func (o RetentionPolicyParametersResponsePtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RetentionPolicyParametersResponse) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// Flag to enable/disable retention. +func (o RetentionPolicyParametersResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RetentionPolicyParametersResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Route resource. +type RouteType struct { + // The destination CIDR to which the route applies. + AddressPrefix *string `pulumi:"addressPrefix"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. + HasBgpOverride *bool `pulumi:"hasBgpOverride"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` + // The type of Azure hop the packet should be sent to. + NextHopType string `pulumi:"nextHopType"` + // The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState *string `pulumi:"provisioningState"` + // The type of the resource. + Type *string `pulumi:"type"` +} + +// RouteTypeInput is an input type that accepts RouteTypeArgs and RouteTypeOutput values. +// You can construct a concrete instance of `RouteTypeInput` via: // -// TargetDnsServerArray{ TargetDnsServerArgs{...} } -type TargetDnsServerArrayInput interface { +// RouteTypeArgs{...} +type RouteTypeInput interface { pulumi.Input - ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput - ToTargetDnsServerArrayOutputWithContext(context.Context) TargetDnsServerArrayOutput + ToRouteTypeOutput() RouteTypeOutput + ToRouteTypeOutputWithContext(context.Context) RouteTypeOutput } -type TargetDnsServerArray []TargetDnsServerInput +// Route resource. +type RouteTypeArgs struct { + // The destination CIDR to which the route applies. + AddressPrefix pulumi.StringPtrInput `pulumi:"addressPrefix"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. + HasBgpOverride pulumi.BoolPtrInput `pulumi:"hasBgpOverride"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. + NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` + // The type of Azure hop the packet should be sent to. + NextHopType pulumi.StringInput `pulumi:"nextHopType"` + // The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // The type of the resource. + Type pulumi.StringPtrInput `pulumi:"type"` +} -func (TargetDnsServerArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]TargetDnsServer)(nil)).Elem() +func (RouteTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteType)(nil)).Elem() } -func (i TargetDnsServerArray) ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput { - return i.ToTargetDnsServerArrayOutputWithContext(context.Background()) +func (i RouteTypeArgs) ToRouteTypeOutput() RouteTypeOutput { + return i.ToRouteTypeOutputWithContext(context.Background()) } -func (i TargetDnsServerArray) ToTargetDnsServerArrayOutputWithContext(ctx context.Context) TargetDnsServerArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(TargetDnsServerArrayOutput) +func (i RouteTypeArgs) ToRouteTypeOutputWithContext(ctx context.Context) RouteTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteTypeOutput) } -// Describes a server to forward the DNS queries to. -type TargetDnsServerOutput struct{ *pulumi.OutputState } +// RouteTypeArrayInput is an input type that accepts RouteTypeArray and RouteTypeArrayOutput values. +// You can construct a concrete instance of `RouteTypeArrayInput` via: +// +// RouteTypeArray{ RouteTypeArgs{...} } +type RouteTypeArrayInput interface { + pulumi.Input -func (TargetDnsServerOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TargetDnsServer)(nil)).Elem() + ToRouteTypeArrayOutput() RouteTypeArrayOutput + ToRouteTypeArrayOutputWithContext(context.Context) RouteTypeArrayOutput } -func (o TargetDnsServerOutput) ToTargetDnsServerOutput() TargetDnsServerOutput { - return o -} +type RouteTypeArray []RouteTypeInput -func (o TargetDnsServerOutput) ToTargetDnsServerOutputWithContext(ctx context.Context) TargetDnsServerOutput { - return o +func (RouteTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteType)(nil)).Elem() } -// DNS server IP address. -func (o TargetDnsServerOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v TargetDnsServer) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +func (i RouteTypeArray) ToRouteTypeArrayOutput() RouteTypeArrayOutput { + return i.ToRouteTypeArrayOutputWithContext(context.Background()) } -// DNS server port. -func (o TargetDnsServerOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v TargetDnsServer) *int { return v.Port }).(pulumi.IntPtrOutput) +func (i RouteTypeArray) ToRouteTypeArrayOutputWithContext(ctx context.Context) RouteTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteTypeArrayOutput) } -type TargetDnsServerArrayOutput struct{ *pulumi.OutputState } +// Route resource. +type RouteTypeOutput struct{ *pulumi.OutputState } -func (TargetDnsServerArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TargetDnsServer)(nil)).Elem() +func (RouteTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteType)(nil)).Elem() } -func (o TargetDnsServerArrayOutput) ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput { +func (o RouteTypeOutput) ToRouteTypeOutput() RouteTypeOutput { return o } -func (o TargetDnsServerArrayOutput) ToTargetDnsServerArrayOutputWithContext(ctx context.Context) TargetDnsServerArrayOutput { +func (o RouteTypeOutput) ToRouteTypeOutputWithContext(ctx context.Context) RouteTypeOutput { return o } -func (o TargetDnsServerArrayOutput) Index(i pulumi.IntInput) TargetDnsServerOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TargetDnsServer { - return vs[0].([]TargetDnsServer)[vs[1].(int)] - }).(TargetDnsServerOutput) +// The destination CIDR to which the route applies. +func (o RouteTypeOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) } -// Describes a server to forward the DNS queries to. -type TargetDnsServerResponse struct { - // DNS server IP address. - IpAddress *string `pulumi:"ipAddress"` - // DNS server port. - Port *int `pulumi:"port"` +// A unique read-only string that changes whenever the resource is updated. +func (o RouteTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.Etag }).(pulumi.StringPtrOutput) } -// Defaults sets the appropriate defaults for TargetDnsServerResponse -func (val *TargetDnsServerResponse) Defaults() *TargetDnsServerResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Port) { - port_ := 53 - tmp.Port = &port_ - } - return &tmp +// A value indicating whether this route overrides overlapping BGP routes regardless of LPM. +func (o RouteTypeOutput) HasBgpOverride() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteType) *bool { return v.HasBgpOverride }).(pulumi.BoolPtrOutput) } -// Describes a server to forward the DNS queries to. -type TargetDnsServerResponseOutput struct{ *pulumi.OutputState } +// Resource ID. +func (o RouteTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.Id }).(pulumi.StringPtrOutput) +} -func (TargetDnsServerResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TargetDnsServerResponse)(nil)).Elem() +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o RouteTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o TargetDnsServerResponseOutput) ToTargetDnsServerResponseOutput() TargetDnsServerResponseOutput { - return o +// The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. +func (o RouteTypeOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) } -func (o TargetDnsServerResponseOutput) ToTargetDnsServerResponseOutputWithContext(ctx context.Context) TargetDnsServerResponseOutput { - return o +// The type of Azure hop the packet should be sent to. +func (o RouteTypeOutput) NextHopType() pulumi.StringOutput { + return o.ApplyT(func(v RouteType) string { return v.NextHopType }).(pulumi.StringOutput) } -// DNS server IP address. -func (o TargetDnsServerResponseOutput) IpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v TargetDnsServerResponse) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +// The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o RouteTypeOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) } -// DNS server port. -func (o TargetDnsServerResponseOutput) Port() pulumi.IntPtrOutput { - return o.ApplyT(func(v TargetDnsServerResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +// The type of the resource. +func (o RouteTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteType) *string { return v.Type }).(pulumi.StringPtrOutput) } -type TargetDnsServerResponseArrayOutput struct{ *pulumi.OutputState } +type RouteTypeArrayOutput struct{ *pulumi.OutputState } -func (TargetDnsServerResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TargetDnsServerResponse)(nil)).Elem() +func (RouteTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteType)(nil)).Elem() } -func (o TargetDnsServerResponseArrayOutput) ToTargetDnsServerResponseArrayOutput() TargetDnsServerResponseArrayOutput { +func (o RouteTypeArrayOutput) ToRouteTypeArrayOutput() RouteTypeArrayOutput { return o } -func (o TargetDnsServerResponseArrayOutput) ToTargetDnsServerResponseArrayOutputWithContext(ctx context.Context) TargetDnsServerResponseArrayOutput { +func (o RouteTypeArrayOutput) ToRouteTypeArrayOutputWithContext(ctx context.Context) RouteTypeArrayOutput { return o } -func (o TargetDnsServerResponseArrayOutput) Index(i pulumi.IntInput) TargetDnsServerResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TargetDnsServerResponse { - return vs[0].([]TargetDnsServerResponse)[vs[1].(int)] - }).(TargetDnsServerResponseOutput) +func (o RouteTypeArrayOutput) Index(i pulumi.IntInput) RouteTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteType { + return vs[0].([]RouteType)[vs[1].(int)] + }).(RouteTypeOutput) } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsConfigurationProperties struct { - // Flag to enable/disable traffic analytics. - Enabled *bool `pulumi:"enabled"` - // The interval in minutes which would decide how frequently TA service should do flow analytics. - TrafficAnalyticsInterval *int `pulumi:"trafficAnalyticsInterval"` - // The resource guid of the attached workspace. - WorkspaceId *string `pulumi:"workspaceId"` - // The location of the attached workspace. - WorkspaceRegion *string `pulumi:"workspaceRegion"` - // Resource Id of the attached workspace. - WorkspaceResourceId *string `pulumi:"workspaceResourceId"` +// Route Filter Rule Resource. +type RouteFilterRuleType struct { + // The access type of the rule. + Access string `pulumi:"access"` + // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. + Communities []string `pulumi:"communities"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The rule type of the rule. + RouteFilterRuleType string `pulumi:"routeFilterRuleType"` } -// TrafficAnalyticsConfigurationPropertiesInput is an input type that accepts TrafficAnalyticsConfigurationPropertiesArgs and TrafficAnalyticsConfigurationPropertiesOutput values. -// You can construct a concrete instance of `TrafficAnalyticsConfigurationPropertiesInput` via: +// RouteFilterRuleTypeInput is an input type that accepts RouteFilterRuleTypeArgs and RouteFilterRuleTypeOutput values. +// You can construct a concrete instance of `RouteFilterRuleTypeInput` via: // -// TrafficAnalyticsConfigurationPropertiesArgs{...} -type TrafficAnalyticsConfigurationPropertiesInput interface { +// RouteFilterRuleTypeArgs{...} +type RouteFilterRuleTypeInput interface { pulumi.Input - ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput - ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(context.Context) TrafficAnalyticsConfigurationPropertiesOutput + ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput + ToRouteFilterRuleTypeOutputWithContext(context.Context) RouteFilterRuleTypeOutput } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsConfigurationPropertiesArgs struct { - // Flag to enable/disable traffic analytics. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // The interval in minutes which would decide how frequently TA service should do flow analytics. - TrafficAnalyticsInterval pulumi.IntPtrInput `pulumi:"trafficAnalyticsInterval"` - // The resource guid of the attached workspace. - WorkspaceId pulumi.StringPtrInput `pulumi:"workspaceId"` - // The location of the attached workspace. - WorkspaceRegion pulumi.StringPtrInput `pulumi:"workspaceRegion"` - // Resource Id of the attached workspace. - WorkspaceResourceId pulumi.StringPtrInput `pulumi:"workspaceResourceId"` +// Route Filter Rule Resource. +type RouteFilterRuleTypeArgs struct { + // The access type of the rule. + Access pulumi.StringInput `pulumi:"access"` + // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. + Communities pulumi.StringArrayInput `pulumi:"communities"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The rule type of the rule. + RouteFilterRuleType pulumi.StringInput `pulumi:"routeFilterRuleType"` } -func (TrafficAnalyticsConfigurationPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsConfigurationProperties)(nil)).Elem() +func (RouteFilterRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteFilterRuleType)(nil)).Elem() } -func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput { - return i.ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(context.Background()) +func (i RouteFilterRuleTypeArgs) ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput { + return i.ToRouteFilterRuleTypeOutputWithContext(context.Background()) } -func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesOutput) +func (i RouteFilterRuleTypeArgs) ToRouteFilterRuleTypeOutputWithContext(ctx context.Context) RouteFilterRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteFilterRuleTypeOutput) } -func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { - return i.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) -} - -func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesOutput).ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx) -} - -// TrafficAnalyticsConfigurationPropertiesPtrInput is an input type that accepts TrafficAnalyticsConfigurationPropertiesArgs, TrafficAnalyticsConfigurationPropertiesPtr and TrafficAnalyticsConfigurationPropertiesPtrOutput values. -// You can construct a concrete instance of `TrafficAnalyticsConfigurationPropertiesPtrInput` via: -// -// TrafficAnalyticsConfigurationPropertiesArgs{...} +// RouteFilterRuleTypeArrayInput is an input type that accepts RouteFilterRuleTypeArray and RouteFilterRuleTypeArrayOutput values. +// You can construct a concrete instance of `RouteFilterRuleTypeArrayInput` via: // -// or: -// -// nil -type TrafficAnalyticsConfigurationPropertiesPtrInput interface { +// RouteFilterRuleTypeArray{ RouteFilterRuleTypeArgs{...} } +type RouteFilterRuleTypeArrayInput interface { pulumi.Input - ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput - ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput + ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput + ToRouteFilterRuleTypeArrayOutputWithContext(context.Context) RouteFilterRuleTypeArrayOutput } -type trafficAnalyticsConfigurationPropertiesPtrType TrafficAnalyticsConfigurationPropertiesArgs - -func TrafficAnalyticsConfigurationPropertiesPtr(v *TrafficAnalyticsConfigurationPropertiesArgs) TrafficAnalyticsConfigurationPropertiesPtrInput { - return (*trafficAnalyticsConfigurationPropertiesPtrType)(v) -} +type RouteFilterRuleTypeArray []RouteFilterRuleTypeInput -func (*trafficAnalyticsConfigurationPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsConfigurationProperties)(nil)).Elem() +func (RouteFilterRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteFilterRuleType)(nil)).Elem() } -func (i *trafficAnalyticsConfigurationPropertiesPtrType) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { - return i.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) +func (i RouteFilterRuleTypeArray) ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput { + return i.ToRouteFilterRuleTypeArrayOutputWithContext(context.Background()) } -func (i *trafficAnalyticsConfigurationPropertiesPtrType) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +func (i RouteFilterRuleTypeArray) ToRouteFilterRuleTypeArrayOutputWithContext(ctx context.Context) RouteFilterRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteFilterRuleTypeArrayOutput) } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsConfigurationPropertiesOutput struct{ *pulumi.OutputState } +// Route Filter Rule Resource. +type RouteFilterRuleTypeOutput struct{ *pulumi.OutputState } -func (TrafficAnalyticsConfigurationPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsConfigurationProperties)(nil)).Elem() +func (RouteFilterRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteFilterRuleType)(nil)).Elem() } -func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput { +func (o RouteFilterRuleTypeOutput) ToRouteFilterRuleTypeOutput() RouteFilterRuleTypeOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesOutput { +func (o RouteFilterRuleTypeOutput) ToRouteFilterRuleTypeOutputWithContext(ctx context.Context) RouteFilterRuleTypeOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { - return o.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) -} - -func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v TrafficAnalyticsConfigurationProperties) *TrafficAnalyticsConfigurationProperties { - return &v - }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +// The access type of the rule. +func (o RouteFilterRuleTypeOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleType) string { return v.Access }).(pulumi.StringOutput) } -// Flag to enable/disable traffic analytics. -func (o TrafficAnalyticsConfigurationPropertiesOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. +func (o RouteFilterRuleTypeOutput) Communities() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteFilterRuleType) []string { return v.Communities }).(pulumi.StringArrayOutput) } -// The interval in minutes which would decide how frequently TA service should do flow analytics. -func (o TrafficAnalyticsConfigurationPropertiesOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *int { return v.TrafficAnalyticsInterval }).(pulumi.IntPtrOutput) +// Resource ID. +func (o RouteFilterRuleTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The resource guid of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceId }).(pulumi.StringPtrOutput) +// Resource location. +func (o RouteFilterRuleTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Location }).(pulumi.StringPtrOutput) } -// The location of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceRegion() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceRegion }).(pulumi.StringPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o RouteFilterRuleTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleType) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource Id of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceResourceId }).(pulumi.StringPtrOutput) +// The rule type of the rule. +func (o RouteFilterRuleTypeOutput) RouteFilterRuleType() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleType) string { return v.RouteFilterRuleType }).(pulumi.StringOutput) } -type TrafficAnalyticsConfigurationPropertiesPtrOutput struct{ *pulumi.OutputState } +type RouteFilterRuleTypeArrayOutput struct{ *pulumi.OutputState } -func (TrafficAnalyticsConfigurationPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsConfigurationProperties)(nil)).Elem() +func (RouteFilterRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteFilterRuleType)(nil)).Elem() } -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { +func (o RouteFilterRuleTypeArrayOutput) ToRouteFilterRuleTypeArrayOutput() RouteFilterRuleTypeArrayOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { +func (o RouteFilterRuleTypeArrayOutput) ToRouteFilterRuleTypeArrayOutputWithContext(ctx context.Context) RouteFilterRuleTypeArrayOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) Elem() TrafficAnalyticsConfigurationPropertiesOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) TrafficAnalyticsConfigurationProperties { - if v != nil { - return *v - } - var ret TrafficAnalyticsConfigurationProperties - return ret - }).(TrafficAnalyticsConfigurationPropertiesOutput) -} - -// Flag to enable/disable traffic analytics. -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *bool { - if v == nil { - return nil - } - return v.Enabled - }).(pulumi.BoolPtrOutput) +func (o RouteFilterRuleTypeArrayOutput) Index(i pulumi.IntInput) RouteFilterRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteFilterRuleType { + return vs[0].([]RouteFilterRuleType)[vs[1].(int)] + }).(RouteFilterRuleTypeOutput) } -// The interval in minutes which would decide how frequently TA service should do flow analytics. -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *int { - if v == nil { - return nil - } - return v.TrafficAnalyticsInterval - }).(pulumi.IntPtrOutput) +// Route Filter Rule Resource. +type RouteFilterRuleResponse struct { + // The access type of the rule. + Access string `pulumi:"access"` + // The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. + Communities []string `pulumi:"communities"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the route filter rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // The rule type of the rule. + RouteFilterRuleType string `pulumi:"routeFilterRuleType"` } -// The resource guid of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { - if v == nil { - return nil - } - return v.WorkspaceId - }).(pulumi.StringPtrOutput) -} +// Route Filter Rule Resource. +type RouteFilterRuleResponseOutput struct{ *pulumi.OutputState } -// The location of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceRegion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { - if v == nil { - return nil - } - return v.WorkspaceRegion - }).(pulumi.StringPtrOutput) +func (RouteFilterRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteFilterRuleResponse)(nil)).Elem() } -// Resource Id of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { - if v == nil { - return nil - } - return v.WorkspaceResourceId - }).(pulumi.StringPtrOutput) +func (o RouteFilterRuleResponseOutput) ToRouteFilterRuleResponseOutput() RouteFilterRuleResponseOutput { + return o } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsConfigurationPropertiesResponse struct { - // Flag to enable/disable traffic analytics. - Enabled *bool `pulumi:"enabled"` - // The interval in minutes which would decide how frequently TA service should do flow analytics. - TrafficAnalyticsInterval *int `pulumi:"trafficAnalyticsInterval"` - // The resource guid of the attached workspace. - WorkspaceId *string `pulumi:"workspaceId"` - // The location of the attached workspace. - WorkspaceRegion *string `pulumi:"workspaceRegion"` - // Resource Id of the attached workspace. - WorkspaceResourceId *string `pulumi:"workspaceResourceId"` +func (o RouteFilterRuleResponseOutput) ToRouteFilterRuleResponseOutputWithContext(ctx context.Context) RouteFilterRuleResponseOutput { + return o } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsConfigurationPropertiesResponseOutput struct{ *pulumi.OutputState } - -func (TrafficAnalyticsConfigurationPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsConfigurationPropertiesResponse)(nil)).Elem() +// The access type of the rule. +func (o RouteFilterRuleResponseOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.Access }).(pulumi.StringOutput) } -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) ToTrafficAnalyticsConfigurationPropertiesResponseOutput() TrafficAnalyticsConfigurationPropertiesResponseOutput { - return o +// The collection for bgp community values to filter on. e.g. ['12076:5010','12076:5020']. +func (o RouteFilterRuleResponseOutput) Communities() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) []string { return v.Communities }).(pulumi.StringArrayOutput) } -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) ToTrafficAnalyticsConfigurationPropertiesResponseOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesResponseOutput { - return o +// A unique read-only string that changes whenever the resource is updated. +func (o RouteFilterRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Flag to enable/disable traffic analytics. -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// Resource ID. +func (o RouteFilterRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The interval in minutes which would decide how frequently TA service should do flow analytics. -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *int { return v.TrafficAnalyticsInterval }).(pulumi.IntPtrOutput) +// Resource location. +func (o RouteFilterRuleResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -// The resource guid of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceId }).(pulumi.StringPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o RouteFilterRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The location of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceRegion() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceRegion }).(pulumi.StringPtrOutput) +// The provisioning state of the route filter rule resource. +func (o RouteFilterRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Resource Id of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceResourceId }).(pulumi.StringPtrOutput) +// The rule type of the rule. +func (o RouteFilterRuleResponseOutput) RouteFilterRuleType() pulumi.StringOutput { + return o.ApplyT(func(v RouteFilterRuleResponse) string { return v.RouteFilterRuleType }).(pulumi.StringOutput) } -type TrafficAnalyticsConfigurationPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +type RouteFilterRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsConfigurationPropertiesResponse)(nil)).Elem() +func (RouteFilterRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteFilterRuleResponse)(nil)).Elem() } -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ToTrafficAnalyticsConfigurationPropertiesResponsePtrOutput() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { +func (o RouteFilterRuleResponseArrayOutput) ToRouteFilterRuleResponseArrayOutput() RouteFilterRuleResponseArrayOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ToTrafficAnalyticsConfigurationPropertiesResponsePtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { +func (o RouteFilterRuleResponseArrayOutput) ToRouteFilterRuleResponseArrayOutputWithContext(ctx context.Context) RouteFilterRuleResponseArrayOutput { return o } -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) Elem() TrafficAnalyticsConfigurationPropertiesResponseOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) TrafficAnalyticsConfigurationPropertiesResponse { - if v != nil { - return *v - } - var ret TrafficAnalyticsConfigurationPropertiesResponse - return ret - }).(TrafficAnalyticsConfigurationPropertiesResponseOutput) +func (o RouteFilterRuleResponseArrayOutput) Index(i pulumi.IntInput) RouteFilterRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteFilterRuleResponse { + return vs[0].([]RouteFilterRuleResponse)[vs[1].(int)] + }).(RouteFilterRuleResponseOutput) } -// Flag to enable/disable traffic analytics. -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *bool { - if v == nil { - return nil - } - return v.Enabled - }).(pulumi.BoolPtrOutput) +// A RouteMap Rule. +type RouteMapRule struct { + // List of actions which will be applied on a match. + Actions []Action `pulumi:"actions"` + // List of matching criterion which will be applied to traffic. + MatchCriteria []Criterion `pulumi:"matchCriteria"` + // The unique name for the rule. + Name *string `pulumi:"name"` + // Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. + NextStepIfMatched *string `pulumi:"nextStepIfMatched"` } -// The interval in minutes which would decide how frequently TA service should do flow analytics. -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *int { - if v == nil { - return nil - } - return v.TrafficAnalyticsInterval - }).(pulumi.IntPtrOutput) +// RouteMapRuleInput is an input type that accepts RouteMapRuleArgs and RouteMapRuleOutput values. +// You can construct a concrete instance of `RouteMapRuleInput` via: +// +// RouteMapRuleArgs{...} +type RouteMapRuleInput interface { + pulumi.Input + + ToRouteMapRuleOutput() RouteMapRuleOutput + ToRouteMapRuleOutputWithContext(context.Context) RouteMapRuleOutput } -// The resource guid of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { - if v == nil { - return nil - } - return v.WorkspaceId - }).(pulumi.StringPtrOutput) +// A RouteMap Rule. +type RouteMapRuleArgs struct { + // List of actions which will be applied on a match. + Actions ActionArrayInput `pulumi:"actions"` + // List of matching criterion which will be applied to traffic. + MatchCriteria CriterionArrayInput `pulumi:"matchCriteria"` + // The unique name for the rule. + Name pulumi.StringPtrInput `pulumi:"name"` + // Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. + NextStepIfMatched pulumi.StringPtrInput `pulumi:"nextStepIfMatched"` } -// The location of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceRegion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { - if v == nil { - return nil - } - return v.WorkspaceRegion - }).(pulumi.StringPtrOutput) +func (RouteMapRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteMapRule)(nil)).Elem() } -// Resource Id of the attached workspace. -func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { - if v == nil { - return nil - } - return v.WorkspaceResourceId - }).(pulumi.StringPtrOutput) +func (i RouteMapRuleArgs) ToRouteMapRuleOutput() RouteMapRuleOutput { + return i.ToRouteMapRuleOutputWithContext(context.Background()) } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsProperties struct { - // Parameters that define the configuration of traffic analytics. - NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationProperties `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +func (i RouteMapRuleArgs) ToRouteMapRuleOutputWithContext(ctx context.Context) RouteMapRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteMapRuleOutput) } -// TrafficAnalyticsPropertiesInput is an input type that accepts TrafficAnalyticsPropertiesArgs and TrafficAnalyticsPropertiesOutput values. -// You can construct a concrete instance of `TrafficAnalyticsPropertiesInput` via: +// RouteMapRuleArrayInput is an input type that accepts RouteMapRuleArray and RouteMapRuleArrayOutput values. +// You can construct a concrete instance of `RouteMapRuleArrayInput` via: // -// TrafficAnalyticsPropertiesArgs{...} -type TrafficAnalyticsPropertiesInput interface { +// RouteMapRuleArray{ RouteMapRuleArgs{...} } +type RouteMapRuleArrayInput interface { pulumi.Input - ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput - ToTrafficAnalyticsPropertiesOutputWithContext(context.Context) TrafficAnalyticsPropertiesOutput + ToRouteMapRuleArrayOutput() RouteMapRuleArrayOutput + ToRouteMapRuleArrayOutputWithContext(context.Context) RouteMapRuleArrayOutput } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsPropertiesArgs struct { - // Parameters that define the configuration of traffic analytics. - NetworkWatcherFlowAnalyticsConfiguration TrafficAnalyticsConfigurationPropertiesPtrInput `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +type RouteMapRuleArray []RouteMapRuleInput + +func (RouteMapRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteMapRule)(nil)).Elem() } -func (TrafficAnalyticsPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsProperties)(nil)).Elem() +func (i RouteMapRuleArray) ToRouteMapRuleArrayOutput() RouteMapRuleArrayOutput { + return i.ToRouteMapRuleArrayOutputWithContext(context.Background()) } -func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput { - return i.ToTrafficAnalyticsPropertiesOutputWithContext(context.Background()) +func (i RouteMapRuleArray) ToRouteMapRuleArrayOutputWithContext(ctx context.Context) RouteMapRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteMapRuleArrayOutput) } -func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesOutput) +// A RouteMap Rule. +type RouteMapRuleOutput struct{ *pulumi.OutputState } + +func (RouteMapRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteMapRule)(nil)).Elem() } -func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { - return i.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +func (o RouteMapRuleOutput) ToRouteMapRuleOutput() RouteMapRuleOutput { + return o } -func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesOutput).ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx) +func (o RouteMapRuleOutput) ToRouteMapRuleOutputWithContext(ctx context.Context) RouteMapRuleOutput { + return o } -// TrafficAnalyticsPropertiesPtrInput is an input type that accepts TrafficAnalyticsPropertiesArgs, TrafficAnalyticsPropertiesPtr and TrafficAnalyticsPropertiesPtrOutput values. -// You can construct a concrete instance of `TrafficAnalyticsPropertiesPtrInput` via: -// -// TrafficAnalyticsPropertiesArgs{...} -// -// or: -// -// nil -type TrafficAnalyticsPropertiesPtrInput interface { - pulumi.Input +// List of actions which will be applied on a match. +func (o RouteMapRuleOutput) Actions() ActionArrayOutput { + return o.ApplyT(func(v RouteMapRule) []Action { return v.Actions }).(ActionArrayOutput) +} - ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput - ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Context) TrafficAnalyticsPropertiesPtrOutput +// List of matching criterion which will be applied to traffic. +func (o RouteMapRuleOutput) MatchCriteria() CriterionArrayOutput { + return o.ApplyT(func(v RouteMapRule) []Criterion { return v.MatchCriteria }).(CriterionArrayOutput) } -type trafficAnalyticsPropertiesPtrType TrafficAnalyticsPropertiesArgs +// The unique name for the rule. +func (o RouteMapRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteMapRule) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func TrafficAnalyticsPropertiesPtr(v *TrafficAnalyticsPropertiesArgs) TrafficAnalyticsPropertiesPtrInput { - return (*trafficAnalyticsPropertiesPtrType)(v) +// Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. +func (o RouteMapRuleOutput) NextStepIfMatched() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteMapRule) *string { return v.NextStepIfMatched }).(pulumi.StringPtrOutput) } -func (*trafficAnalyticsPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsProperties)(nil)).Elem() +type RouteMapRuleArrayOutput struct{ *pulumi.OutputState } + +func (RouteMapRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteMapRule)(nil)).Elem() } -func (i *trafficAnalyticsPropertiesPtrType) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { - return i.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +func (o RouteMapRuleArrayOutput) ToRouteMapRuleArrayOutput() RouteMapRuleArrayOutput { + return o } -func (i *trafficAnalyticsPropertiesPtrType) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesPtrOutput) +func (o RouteMapRuleArrayOutput) ToRouteMapRuleArrayOutputWithContext(ctx context.Context) RouteMapRuleArrayOutput { + return o } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsPropertiesOutput struct{ *pulumi.OutputState } +func (o RouteMapRuleArrayOutput) Index(i pulumi.IntInput) RouteMapRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteMapRule { + return vs[0].([]RouteMapRule)[vs[1].(int)] + }).(RouteMapRuleOutput) +} -func (TrafficAnalyticsPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsProperties)(nil)).Elem() +// A RouteMap Rule. +type RouteMapRuleResponse struct { + // List of actions which will be applied on a match. + Actions []ActionResponse `pulumi:"actions"` + // List of matching criterion which will be applied to traffic. + MatchCriteria []CriterionResponse `pulumi:"matchCriteria"` + // The unique name for the rule. + Name *string `pulumi:"name"` + // Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. + NextStepIfMatched *string `pulumi:"nextStepIfMatched"` } -func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput { - return o +// A RouteMap Rule. +type RouteMapRuleResponseOutput struct{ *pulumi.OutputState } + +func (RouteMapRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteMapRuleResponse)(nil)).Elem() } -func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesOutput { +func (o RouteMapRuleResponseOutput) ToRouteMapRuleResponseOutput() RouteMapRuleResponseOutput { return o } -func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { - return o.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +func (o RouteMapRuleResponseOutput) ToRouteMapRuleResponseOutputWithContext(ctx context.Context) RouteMapRuleResponseOutput { + return o } -func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v TrafficAnalyticsProperties) *TrafficAnalyticsProperties { - return &v - }).(TrafficAnalyticsPropertiesPtrOutput) +// List of actions which will be applied on a match. +func (o RouteMapRuleResponseOutput) Actions() ActionResponseArrayOutput { + return o.ApplyT(func(v RouteMapRuleResponse) []ActionResponse { return v.Actions }).(ActionResponseArrayOutput) } -// Parameters that define the configuration of traffic analytics. -func (o TrafficAnalyticsPropertiesOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesPtrOutput { - return o.ApplyT(func(v TrafficAnalyticsProperties) *TrafficAnalyticsConfigurationProperties { - return v.NetworkWatcherFlowAnalyticsConfiguration - }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +// List of matching criterion which will be applied to traffic. +func (o RouteMapRuleResponseOutput) MatchCriteria() CriterionResponseArrayOutput { + return o.ApplyT(func(v RouteMapRuleResponse) []CriterionResponse { return v.MatchCriteria }).(CriterionResponseArrayOutput) } -type TrafficAnalyticsPropertiesPtrOutput struct{ *pulumi.OutputState } +// The unique name for the rule. +func (o RouteMapRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteMapRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func (TrafficAnalyticsPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsProperties)(nil)).Elem() +// Next step after rule is evaluated. Current supported behaviors are 'Continue'(to next rule) and 'Terminate'. +func (o RouteMapRuleResponseOutput) NextStepIfMatched() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteMapRuleResponse) *string { return v.NextStepIfMatched }).(pulumi.StringPtrOutput) } -func (o TrafficAnalyticsPropertiesPtrOutput) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { - return o +type RouteMapRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (RouteMapRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteMapRuleResponse)(nil)).Elem() } -func (o TrafficAnalyticsPropertiesPtrOutput) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { +func (o RouteMapRuleResponseArrayOutput) ToRouteMapRuleResponseArrayOutput() RouteMapRuleResponseArrayOutput { return o } -func (o TrafficAnalyticsPropertiesPtrOutput) Elem() TrafficAnalyticsPropertiesOutput { - return o.ApplyT(func(v *TrafficAnalyticsProperties) TrafficAnalyticsProperties { - if v != nil { - return *v - } - var ret TrafficAnalyticsProperties - return ret - }).(TrafficAnalyticsPropertiesOutput) +func (o RouteMapRuleResponseArrayOutput) ToRouteMapRuleResponseArrayOutputWithContext(ctx context.Context) RouteMapRuleResponseArrayOutput { + return o } -// Parameters that define the configuration of traffic analytics. -func (o TrafficAnalyticsPropertiesPtrOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesPtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsProperties) *TrafficAnalyticsConfigurationProperties { - if v == nil { - return nil - } - return v.NetworkWatcherFlowAnalyticsConfiguration - }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +func (o RouteMapRuleResponseArrayOutput) Index(i pulumi.IntInput) RouteMapRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteMapRuleResponse { + return vs[0].([]RouteMapRuleResponse)[vs[1].(int)] + }).(RouteMapRuleResponseOutput) } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsPropertiesResponse struct { - // Parameters that define the configuration of traffic analytics. - NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationPropertiesResponse `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +// Route resource. +type RouteResponse struct { + // The destination CIDR to which the route applies. + AddressPrefix *string `pulumi:"addressPrefix"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // A value indicating whether this route overrides overlapping BGP routes regardless of LPM. + HasBgpOverride *bool `pulumi:"hasBgpOverride"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` + // The type of Azure hop the packet should be sent to. + NextHopType string `pulumi:"nextHopType"` + // The provisioning state of the route resource. + ProvisioningState string `pulumi:"provisioningState"` + // The type of the resource. + Type *string `pulumi:"type"` } -// Parameters that define the configuration of traffic analytics. -type TrafficAnalyticsPropertiesResponseOutput struct{ *pulumi.OutputState } +// Route resource. +type RouteResponseOutput struct{ *pulumi.OutputState } -func (TrafficAnalyticsPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficAnalyticsPropertiesResponse)(nil)).Elem() +func (RouteResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteResponse)(nil)).Elem() } -func (o TrafficAnalyticsPropertiesResponseOutput) ToTrafficAnalyticsPropertiesResponseOutput() TrafficAnalyticsPropertiesResponseOutput { +func (o RouteResponseOutput) ToRouteResponseOutput() RouteResponseOutput { return o } -func (o TrafficAnalyticsPropertiesResponseOutput) ToTrafficAnalyticsPropertiesResponseOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesResponseOutput { +func (o RouteResponseOutput) ToRouteResponseOutputWithContext(ctx context.Context) RouteResponseOutput { return o } -// Parameters that define the configuration of traffic analytics. -func (o TrafficAnalyticsPropertiesResponseOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { - return o.ApplyT(func(v TrafficAnalyticsPropertiesResponse) *TrafficAnalyticsConfigurationPropertiesResponse { - return v.NetworkWatcherFlowAnalyticsConfiguration - }).(TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) +// The destination CIDR to which the route applies. +func (o RouteResponseOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) } -type TrafficAnalyticsPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +// A unique read-only string that changes whenever the resource is updated. +func (o RouteResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v RouteResponse) string { return v.Etag }).(pulumi.StringOutput) +} -func (TrafficAnalyticsPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**TrafficAnalyticsPropertiesResponse)(nil)).Elem() +// A value indicating whether this route overrides overlapping BGP routes regardless of LPM. +func (o RouteResponseOutput) HasBgpOverride() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteResponse) *bool { return v.HasBgpOverride }).(pulumi.BoolPtrOutput) } -func (o TrafficAnalyticsPropertiesResponsePtrOutput) ToTrafficAnalyticsPropertiesResponsePtrOutput() TrafficAnalyticsPropertiesResponsePtrOutput { - return o +// Resource ID. +func (o RouteResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o TrafficAnalyticsPropertiesResponsePtrOutput) ToTrafficAnalyticsPropertiesResponsePtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesResponsePtrOutput { - return o +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o RouteResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o TrafficAnalyticsPropertiesResponsePtrOutput) Elem() TrafficAnalyticsPropertiesResponseOutput { - return o.ApplyT(func(v *TrafficAnalyticsPropertiesResponse) TrafficAnalyticsPropertiesResponse { - if v != nil { - return *v - } - var ret TrafficAnalyticsPropertiesResponse - return ret - }).(TrafficAnalyticsPropertiesResponseOutput) +// The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance. +func (o RouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) } -// Parameters that define the configuration of traffic analytics. -func (o TrafficAnalyticsPropertiesResponsePtrOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { - return o.ApplyT(func(v *TrafficAnalyticsPropertiesResponse) *TrafficAnalyticsConfigurationPropertiesResponse { - if v == nil { - return nil - } - return v.NetworkWatcherFlowAnalyticsConfiguration - }).(TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) +// The type of Azure hop the packet should be sent to. +func (o RouteResponseOutput) NextHopType() pulumi.StringOutput { + return o.ApplyT(func(v RouteResponse) string { return v.NextHopType }).(pulumi.StringOutput) } -// An traffic selector policy for a virtual network gateway connection. -type TrafficSelectorPolicy struct { - // A collection of local address spaces in CIDR format. - LocalAddressRanges []string `pulumi:"localAddressRanges"` - // A collection of remote address spaces in CIDR format. - RemoteAddressRanges []string `pulumi:"remoteAddressRanges"` +// The provisioning state of the route resource. +func (o RouteResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v RouteResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// TrafficSelectorPolicyInput is an input type that accepts TrafficSelectorPolicyArgs and TrafficSelectorPolicyOutput values. -// You can construct a concrete instance of `TrafficSelectorPolicyInput` via: -// -// TrafficSelectorPolicyArgs{...} -type TrafficSelectorPolicyInput interface { - pulumi.Input +// The type of the resource. +func (o RouteResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} - ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput - ToTrafficSelectorPolicyOutputWithContext(context.Context) TrafficSelectorPolicyOutput +type RouteResponseArrayOutput struct{ *pulumi.OutputState } + +func (RouteResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteResponse)(nil)).Elem() } -// An traffic selector policy for a virtual network gateway connection. -type TrafficSelectorPolicyArgs struct { - // A collection of local address spaces in CIDR format. - LocalAddressRanges pulumi.StringArrayInput `pulumi:"localAddressRanges"` - // A collection of remote address spaces in CIDR format. - RemoteAddressRanges pulumi.StringArrayInput `pulumi:"remoteAddressRanges"` +func (o RouteResponseArrayOutput) ToRouteResponseArrayOutput() RouteResponseArrayOutput { + return o } -func (TrafficSelectorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficSelectorPolicy)(nil)).Elem() +func (o RouteResponseArrayOutput) ToRouteResponseArrayOutputWithContext(ctx context.Context) RouteResponseArrayOutput { + return o } -func (i TrafficSelectorPolicyArgs) ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput { - return i.ToTrafficSelectorPolicyOutputWithContext(context.Background()) +func (o RouteResponseArrayOutput) Index(i pulumi.IntInput) RouteResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteResponse { + return vs[0].([]RouteResponse)[vs[1].(int)] + }).(RouteResponseOutput) } -func (i TrafficSelectorPolicyArgs) ToTrafficSelectorPolicyOutputWithContext(ctx context.Context) TrafficSelectorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficSelectorPolicyOutput) +// Route table resource. +type RouteTableType struct { + // Whether to disable the routes learned by BGP on that route table. True means disable. + DisableBgpRoutePropagation *bool `pulumi:"disableBgpRoutePropagation"` + // Gets a unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState *string `pulumi:"provisioningState"` + // Collection of routes contained within a route table. + Routes []RouteType `pulumi:"routes"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` } -// TrafficSelectorPolicyArrayInput is an input type that accepts TrafficSelectorPolicyArray and TrafficSelectorPolicyArrayOutput values. -// You can construct a concrete instance of `TrafficSelectorPolicyArrayInput` via: +// RouteTableTypeInput is an input type that accepts RouteTableTypeArgs and RouteTableTypeOutput values. +// You can construct a concrete instance of `RouteTableTypeInput` via: // -// TrafficSelectorPolicyArray{ TrafficSelectorPolicyArgs{...} } -type TrafficSelectorPolicyArrayInput interface { +// RouteTableTypeArgs{...} +type RouteTableTypeInput interface { pulumi.Input - ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput - ToTrafficSelectorPolicyArrayOutputWithContext(context.Context) TrafficSelectorPolicyArrayOutput + ToRouteTableTypeOutput() RouteTableTypeOutput + ToRouteTableTypeOutputWithContext(context.Context) RouteTableTypeOutput } -type TrafficSelectorPolicyArray []TrafficSelectorPolicyInput +// Route table resource. +type RouteTableTypeArgs struct { + // Whether to disable the routes learned by BGP on that route table. True means disable. + DisableBgpRoutePropagation pulumi.BoolPtrInput `pulumi:"disableBgpRoutePropagation"` + // Gets a unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // Collection of routes contained within a route table. + Routes RouteTypeArrayInput `pulumi:"routes"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` +} -func (TrafficSelectorPolicyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]TrafficSelectorPolicy)(nil)).Elem() +func (RouteTableTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteTableType)(nil)).Elem() } -func (i TrafficSelectorPolicyArray) ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput { - return i.ToTrafficSelectorPolicyArrayOutputWithContext(context.Background()) +func (i RouteTableTypeArgs) ToRouteTableTypeOutput() RouteTableTypeOutput { + return i.ToRouteTableTypeOutputWithContext(context.Background()) } -func (i TrafficSelectorPolicyArray) ToTrafficSelectorPolicyArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(TrafficSelectorPolicyArrayOutput) +func (i RouteTableTypeArgs) ToRouteTableTypeOutputWithContext(ctx context.Context) RouteTableTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypeOutput) } -// An traffic selector policy for a virtual network gateway connection. -type TrafficSelectorPolicyOutput struct{ *pulumi.OutputState } +func (i RouteTableTypeArgs) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { + return i.ToRouteTableTypePtrOutputWithContext(context.Background()) +} -func (TrafficSelectorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficSelectorPolicy)(nil)).Elem() +func (i RouteTableTypeArgs) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypeOutput).ToRouteTableTypePtrOutputWithContext(ctx) } -func (o TrafficSelectorPolicyOutput) ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput { - return o +// RouteTableTypePtrInput is an input type that accepts RouteTableTypeArgs, RouteTableTypePtr and RouteTableTypePtrOutput values. +// You can construct a concrete instance of `RouteTableTypePtrInput` via: +// +// RouteTableTypeArgs{...} +// +// or: +// +// nil +type RouteTableTypePtrInput interface { + pulumi.Input + + ToRouteTableTypePtrOutput() RouteTableTypePtrOutput + ToRouteTableTypePtrOutputWithContext(context.Context) RouteTableTypePtrOutput } -func (o TrafficSelectorPolicyOutput) ToTrafficSelectorPolicyOutputWithContext(ctx context.Context) TrafficSelectorPolicyOutput { - return o +type routeTableTypePtrType RouteTableTypeArgs + +func RouteTableTypePtr(v *RouteTableTypeArgs) RouteTableTypePtrInput { + return (*routeTableTypePtrType)(v) } -// A collection of local address spaces in CIDR format. -func (o TrafficSelectorPolicyOutput) LocalAddressRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v TrafficSelectorPolicy) []string { return v.LocalAddressRanges }).(pulumi.StringArrayOutput) +func (*routeTableTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteTableType)(nil)).Elem() } -// A collection of remote address spaces in CIDR format. -func (o TrafficSelectorPolicyOutput) RemoteAddressRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v TrafficSelectorPolicy) []string { return v.RemoteAddressRanges }).(pulumi.StringArrayOutput) +func (i *routeTableTypePtrType) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { + return i.ToRouteTableTypePtrOutputWithContext(context.Background()) } -type TrafficSelectorPolicyArrayOutput struct{ *pulumi.OutputState } +func (i *routeTableTypePtrType) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteTableTypePtrOutput) +} -func (TrafficSelectorPolicyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TrafficSelectorPolicy)(nil)).Elem() +// Route table resource. +type RouteTableTypeOutput struct{ *pulumi.OutputState } + +func (RouteTableTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteTableType)(nil)).Elem() } -func (o TrafficSelectorPolicyArrayOutput) ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput { +func (o RouteTableTypeOutput) ToRouteTableTypeOutput() RouteTableTypeOutput { return o } -func (o TrafficSelectorPolicyArrayOutput) ToTrafficSelectorPolicyArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyArrayOutput { +func (o RouteTableTypeOutput) ToRouteTableTypeOutputWithContext(ctx context.Context) RouteTableTypeOutput { return o } -func (o TrafficSelectorPolicyArrayOutput) Index(i pulumi.IntInput) TrafficSelectorPolicyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrafficSelectorPolicy { - return vs[0].([]TrafficSelectorPolicy)[vs[1].(int)] - }).(TrafficSelectorPolicyOutput) +func (o RouteTableTypeOutput) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { + return o.ToRouteTableTypePtrOutputWithContext(context.Background()) } -// An traffic selector policy for a virtual network gateway connection. -type TrafficSelectorPolicyResponse struct { - // A collection of local address spaces in CIDR format. - LocalAddressRanges []string `pulumi:"localAddressRanges"` - // A collection of remote address spaces in CIDR format. - RemoteAddressRanges []string `pulumi:"remoteAddressRanges"` +func (o RouteTableTypeOutput) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouteTableType) *RouteTableType { + return &v + }).(RouteTableTypePtrOutput) } -// An traffic selector policy for a virtual network gateway connection. -type TrafficSelectorPolicyResponseOutput struct{ *pulumi.OutputState } - -func (TrafficSelectorPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TrafficSelectorPolicyResponse)(nil)).Elem() +// Whether to disable the routes learned by BGP on that route table. True means disable. +func (o RouteTableTypeOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteTableType) *bool { return v.DisableBgpRoutePropagation }).(pulumi.BoolPtrOutput) } -func (o TrafficSelectorPolicyResponseOutput) ToTrafficSelectorPolicyResponseOutput() TrafficSelectorPolicyResponseOutput { - return o +// Gets a unique read-only string that changes whenever the resource is updated. +func (o RouteTableTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableType) *string { return v.Etag }).(pulumi.StringPtrOutput) } -func (o TrafficSelectorPolicyResponseOutput) ToTrafficSelectorPolicyResponseOutputWithContext(ctx context.Context) TrafficSelectorPolicyResponseOutput { - return o +// Resource ID. +func (o RouteTableTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableType) *string { return v.Id }).(pulumi.StringPtrOutput) } -// A collection of local address spaces in CIDR format. -func (o TrafficSelectorPolicyResponseOutput) LocalAddressRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v TrafficSelectorPolicyResponse) []string { return v.LocalAddressRanges }).(pulumi.StringArrayOutput) +// Resource location. +func (o RouteTableTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableType) *string { return v.Location }).(pulumi.StringPtrOutput) } -// A collection of remote address spaces in CIDR format. -func (o TrafficSelectorPolicyResponseOutput) RemoteAddressRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v TrafficSelectorPolicyResponse) []string { return v.RemoteAddressRanges }).(pulumi.StringArrayOutput) +// The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o RouteTableTypeOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableType) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) } -type TrafficSelectorPolicyResponseArrayOutput struct{ *pulumi.OutputState } +// Collection of routes contained within a route table. +func (o RouteTableTypeOutput) Routes() RouteTypeArrayOutput { + return o.ApplyT(func(v RouteTableType) []RouteType { return v.Routes }).(RouteTypeArrayOutput) +} -func (TrafficSelectorPolicyResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TrafficSelectorPolicyResponse)(nil)).Elem() +// Resource tags. +func (o RouteTableTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v RouteTableType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -func (o TrafficSelectorPolicyResponseArrayOutput) ToTrafficSelectorPolicyResponseArrayOutput() TrafficSelectorPolicyResponseArrayOutput { - return o +type RouteTableTypePtrOutput struct{ *pulumi.OutputState } + +func (RouteTableTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteTableType)(nil)).Elem() } -func (o TrafficSelectorPolicyResponseArrayOutput) ToTrafficSelectorPolicyResponseArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyResponseArrayOutput { +func (o RouteTableTypePtrOutput) ToRouteTableTypePtrOutput() RouteTableTypePtrOutput { return o } -func (o TrafficSelectorPolicyResponseArrayOutput) Index(i pulumi.IntInput) TrafficSelectorPolicyResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrafficSelectorPolicyResponse { - return vs[0].([]TrafficSelectorPolicyResponse)[vs[1].(int)] - }).(TrafficSelectorPolicyResponseOutput) +func (o RouteTableTypePtrOutput) ToRouteTableTypePtrOutputWithContext(ctx context.Context) RouteTableTypePtrOutput { + return o } -// VirtualNetworkGatewayConnection properties. -type TunnelConnectionHealthResponse struct { - // Virtual Network Gateway connection status. - ConnectionStatus string `pulumi:"connectionStatus"` - // The Egress Bytes Transferred in this connection. - EgressBytesTransferred float64 `pulumi:"egressBytesTransferred"` - // The Ingress Bytes Transferred in this connection. - IngressBytesTransferred float64 `pulumi:"ingressBytesTransferred"` - // The time at which connection was established in Utc format. - LastConnectionEstablishedUtcTime string `pulumi:"lastConnectionEstablishedUtcTime"` - // Tunnel name. - Tunnel string `pulumi:"tunnel"` +func (o RouteTableTypePtrOutput) Elem() RouteTableTypeOutput { + return o.ApplyT(func(v *RouteTableType) RouteTableType { + if v != nil { + return *v + } + var ret RouteTableType + return ret + }).(RouteTableTypeOutput) } -// VirtualNetworkGatewayConnection properties. -type TunnelConnectionHealthResponseOutput struct{ *pulumi.OutputState } - -func (TunnelConnectionHealthResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TunnelConnectionHealthResponse)(nil)).Elem() +// Whether to disable the routes learned by BGP on that route table. True means disable. +func (o RouteTableTypePtrOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RouteTableType) *bool { + if v == nil { + return nil + } + return v.DisableBgpRoutePropagation + }).(pulumi.BoolPtrOutput) } -func (o TunnelConnectionHealthResponseOutput) ToTunnelConnectionHealthResponseOutput() TunnelConnectionHealthResponseOutput { - return o +// Gets a unique read-only string that changes whenever the resource is updated. +func (o RouteTableTypePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableType) *string { + if v == nil { + return nil + } + return v.Etag + }).(pulumi.StringPtrOutput) } -func (o TunnelConnectionHealthResponseOutput) ToTunnelConnectionHealthResponseOutputWithContext(ctx context.Context) TunnelConnectionHealthResponseOutput { - return o +// Resource ID. +func (o RouteTableTypePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableType) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) } -// Virtual Network Gateway connection status. -func (o TunnelConnectionHealthResponseOutput) ConnectionStatus() pulumi.StringOutput { - return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.ConnectionStatus }).(pulumi.StringOutput) +// Resource location. +func (o RouteTableTypePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableType) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -// The Egress Bytes Transferred in this connection. -func (o TunnelConnectionHealthResponseOutput) EgressBytesTransferred() pulumi.Float64Output { - return o.ApplyT(func(v TunnelConnectionHealthResponse) float64 { return v.EgressBytesTransferred }).(pulumi.Float64Output) +// The provisioning state of the resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o RouteTableTypePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableType) *string { + if v == nil { + return nil + } + return v.ProvisioningState + }).(pulumi.StringPtrOutput) } -// The Ingress Bytes Transferred in this connection. -func (o TunnelConnectionHealthResponseOutput) IngressBytesTransferred() pulumi.Float64Output { - return o.ApplyT(func(v TunnelConnectionHealthResponse) float64 { return v.IngressBytesTransferred }).(pulumi.Float64Output) +// Collection of routes contained within a route table. +func (o RouteTableTypePtrOutput) Routes() RouteTypeArrayOutput { + return o.ApplyT(func(v *RouteTableType) []RouteType { + if v == nil { + return nil + } + return v.Routes + }).(RouteTypeArrayOutput) } -// The time at which connection was established in Utc format. -func (o TunnelConnectionHealthResponseOutput) LastConnectionEstablishedUtcTime() pulumi.StringOutput { - return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.LastConnectionEstablishedUtcTime }).(pulumi.StringOutput) +// Resource tags. +func (o RouteTableTypePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *RouteTableType) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -// Tunnel name. -func (o TunnelConnectionHealthResponseOutput) Tunnel() pulumi.StringOutput { - return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.Tunnel }).(pulumi.StringOutput) +// Route table resource. +type RouteTableResponse struct { + // Whether to disable the routes learned by BGP on that route table. True means disable. + DisableBgpRoutePropagation *bool `pulumi:"disableBgpRoutePropagation"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // The provisioning state of the route table resource. + ProvisioningState string `pulumi:"provisioningState"` + // The resource GUID property of the route table. + ResourceGuid string `pulumi:"resourceGuid"` + // Collection of routes contained within a route table. + Routes []RouteResponse `pulumi:"routes"` + // A collection of references to subnets. + Subnets []SubnetResponse `pulumi:"subnets"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` } -type TunnelConnectionHealthResponseArrayOutput struct{ *pulumi.OutputState } +// Route table resource. +type RouteTableResponseOutput struct{ *pulumi.OutputState } -func (TunnelConnectionHealthResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TunnelConnectionHealthResponse)(nil)).Elem() +func (RouteTableResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteTableResponse)(nil)).Elem() } -func (o TunnelConnectionHealthResponseArrayOutput) ToTunnelConnectionHealthResponseArrayOutput() TunnelConnectionHealthResponseArrayOutput { +func (o RouteTableResponseOutput) ToRouteTableResponseOutput() RouteTableResponseOutput { return o } -func (o TunnelConnectionHealthResponseArrayOutput) ToTunnelConnectionHealthResponseArrayOutputWithContext(ctx context.Context) TunnelConnectionHealthResponseArrayOutput { +func (o RouteTableResponseOutput) ToRouteTableResponseOutputWithContext(ctx context.Context) RouteTableResponseOutput { return o } -func (o TunnelConnectionHealthResponseArrayOutput) Index(i pulumi.IntInput) TunnelConnectionHealthResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TunnelConnectionHealthResponse { - return vs[0].([]TunnelConnectionHealthResponse)[vs[1].(int)] - }).(TunnelConnectionHealthResponseOutput) +// Whether to disable the routes learned by BGP on that route table. True means disable. +func (o RouteTableResponseOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteTableResponse) *bool { return v.DisableBgpRoutePropagation }).(pulumi.BoolPtrOutput) } -// A TXT record. -type TxtRecord struct { - // The text value of this TXT record. - Value []string `pulumi:"value"` +// A unique read-only string that changes whenever the resource is updated. +func (o RouteTableResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v RouteTableResponse) string { return v.Etag }).(pulumi.StringOutput) } -// TxtRecordInput is an input type that accepts TxtRecordArgs and TxtRecordOutput values. -// You can construct a concrete instance of `TxtRecordInput` via: -// -// TxtRecordArgs{...} -type TxtRecordInput interface { - pulumi.Input - - ToTxtRecordOutput() TxtRecordOutput - ToTxtRecordOutputWithContext(context.Context) TxtRecordOutput +// Resource ID. +func (o RouteTableResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// A TXT record. -type TxtRecordArgs struct { - // The text value of this TXT record. - Value pulumi.StringArrayInput `pulumi:"value"` +// Resource location. +func (o RouteTableResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteTableResponse) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (TxtRecordArgs) ElementType() reflect.Type { - return reflect.TypeOf((*TxtRecord)(nil)).Elem() +// Resource name. +func (o RouteTableResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouteTableResponse) string { return v.Name }).(pulumi.StringOutput) } -func (i TxtRecordArgs) ToTxtRecordOutput() TxtRecordOutput { - return i.ToTxtRecordOutputWithContext(context.Background()) +// The provisioning state of the route table resource. +func (o RouteTableResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v RouteTableResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -func (i TxtRecordArgs) ToTxtRecordOutputWithContext(ctx context.Context) TxtRecordOutput { - return pulumi.ToOutputWithContext(ctx, i).(TxtRecordOutput) +// The resource GUID property of the route table. +func (o RouteTableResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v RouteTableResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) } -// TxtRecordArrayInput is an input type that accepts TxtRecordArray and TxtRecordArrayOutput values. -// You can construct a concrete instance of `TxtRecordArrayInput` via: -// -// TxtRecordArray{ TxtRecordArgs{...} } -type TxtRecordArrayInput interface { - pulumi.Input - - ToTxtRecordArrayOutput() TxtRecordArrayOutput - ToTxtRecordArrayOutputWithContext(context.Context) TxtRecordArrayOutput +// Collection of routes contained within a route table. +func (o RouteTableResponseOutput) Routes() RouteResponseArrayOutput { + return o.ApplyT(func(v RouteTableResponse) []RouteResponse { return v.Routes }).(RouteResponseArrayOutput) } -type TxtRecordArray []TxtRecordInput - -func (TxtRecordArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]TxtRecord)(nil)).Elem() +// A collection of references to subnets. +func (o RouteTableResponseOutput) Subnets() SubnetResponseArrayOutput { + return o.ApplyT(func(v RouteTableResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) } -func (i TxtRecordArray) ToTxtRecordArrayOutput() TxtRecordArrayOutput { - return i.ToTxtRecordArrayOutputWithContext(context.Background()) +// Resource tags. +func (o RouteTableResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v RouteTableResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) } -func (i TxtRecordArray) ToTxtRecordArrayOutputWithContext(ctx context.Context) TxtRecordArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(TxtRecordArrayOutput) +// Resource type. +func (o RouteTableResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v RouteTableResponse) string { return v.Type }).(pulumi.StringOutput) } -// A TXT record. -type TxtRecordOutput struct{ *pulumi.OutputState } +type RouteTableResponsePtrOutput struct{ *pulumi.OutputState } -func (TxtRecordOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TxtRecord)(nil)).Elem() +func (RouteTableResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteTableResponse)(nil)).Elem() } -func (o TxtRecordOutput) ToTxtRecordOutput() TxtRecordOutput { +func (o RouteTableResponsePtrOutput) ToRouteTableResponsePtrOutput() RouteTableResponsePtrOutput { return o } -func (o TxtRecordOutput) ToTxtRecordOutputWithContext(ctx context.Context) TxtRecordOutput { +func (o RouteTableResponsePtrOutput) ToRouteTableResponsePtrOutputWithContext(ctx context.Context) RouteTableResponsePtrOutput { return o } -// The text value of this TXT record. -func (o TxtRecordOutput) Value() pulumi.StringArrayOutput { - return o.ApplyT(func(v TxtRecord) []string { return v.Value }).(pulumi.StringArrayOutput) +func (o RouteTableResponsePtrOutput) Elem() RouteTableResponseOutput { + return o.ApplyT(func(v *RouteTableResponse) RouteTableResponse { + if v != nil { + return *v + } + var ret RouteTableResponse + return ret + }).(RouteTableResponseOutput) } -type TxtRecordArrayOutput struct{ *pulumi.OutputState } +// Whether to disable the routes learned by BGP on that route table. True means disable. +func (o RouteTableResponsePtrOutput) DisableBgpRoutePropagation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *bool { + if v == nil { + return nil + } + return v.DisableBgpRoutePropagation + }).(pulumi.BoolPtrOutput) +} -func (TxtRecordArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TxtRecord)(nil)).Elem() +// A unique read-only string that changes whenever the resource is updated. +func (o RouteTableResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return &v.Etag + }).(pulumi.StringPtrOutput) } -func (o TxtRecordArrayOutput) ToTxtRecordArrayOutput() TxtRecordArrayOutput { - return o +// Resource ID. +func (o RouteTableResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) } -func (o TxtRecordArrayOutput) ToTxtRecordArrayOutputWithContext(ctx context.Context) TxtRecordArrayOutput { - return o +// Resource location. +func (o RouteTableResponsePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) } -func (o TxtRecordArrayOutput) Index(i pulumi.IntInput) TxtRecordOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TxtRecord { - return vs[0].([]TxtRecord)[vs[1].(int)] - }).(TxtRecordOutput) +// Resource name. +func (o RouteTableResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) } -// A TXT record. -type TxtRecordResponse struct { - // The text value of this TXT record. - Value []string `pulumi:"value"` +// The provisioning state of the route table resource. +func (o RouteTableResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) } -// A TXT record. -type TxtRecordResponseOutput struct{ *pulumi.OutputState } +// The resource GUID property of the route table. +func (o RouteTableResponsePtrOutput) ResourceGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return &v.ResourceGuid + }).(pulumi.StringPtrOutput) +} -func (TxtRecordResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*TxtRecordResponse)(nil)).Elem() +// Collection of routes contained within a route table. +func (o RouteTableResponsePtrOutput) Routes() RouteResponseArrayOutput { + return o.ApplyT(func(v *RouteTableResponse) []RouteResponse { + if v == nil { + return nil + } + return v.Routes + }).(RouteResponseArrayOutput) } -func (o TxtRecordResponseOutput) ToTxtRecordResponseOutput() TxtRecordResponseOutput { - return o +// A collection of references to subnets. +func (o RouteTableResponsePtrOutput) Subnets() SubnetResponseArrayOutput { + return o.ApplyT(func(v *RouteTableResponse) []SubnetResponse { + if v == nil { + return nil + } + return v.Subnets + }).(SubnetResponseArrayOutput) } -func (o TxtRecordResponseOutput) ToTxtRecordResponseOutputWithContext(ctx context.Context) TxtRecordResponseOutput { - return o +// Resource tags. +func (o RouteTableResponsePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *RouteTableResponse) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -// The text value of this TXT record. -func (o TxtRecordResponseOutput) Value() pulumi.StringArrayOutput { - return o.ApplyT(func(v TxtRecordResponse) []string { return v.Value }).(pulumi.StringArrayOutput) +// Resource type. +func (o RouteTableResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteTableResponse) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) } -type TxtRecordResponseArrayOutput struct{ *pulumi.OutputState } +// Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfiguration struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable *SubResource `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap *SubResource `pulumi:"inboundRouteMap"` + // The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap *SubResource `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables *PropagatedRouteTable `pulumi:"propagatedRouteTables"` + // List of routes that control routing from VirtualHub into a virtual network connection. + VnetRoutes *VnetRoute `pulumi:"vnetRoutes"` +} -func (TxtRecordResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]TxtRecordResponse)(nil)).Elem() +// RoutingConfigurationInput is an input type that accepts RoutingConfigurationArgs and RoutingConfigurationOutput values. +// You can construct a concrete instance of `RoutingConfigurationInput` via: +// +// RoutingConfigurationArgs{...} +type RoutingConfigurationInput interface { + pulumi.Input + + ToRoutingConfigurationOutput() RoutingConfigurationOutput + ToRoutingConfigurationOutputWithContext(context.Context) RoutingConfigurationOutput } -func (o TxtRecordResponseArrayOutput) ToTxtRecordResponseArrayOutput() TxtRecordResponseArrayOutput { - return o +// Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationArgs struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable SubResourcePtrInput `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap SubResourcePtrInput `pulumi:"inboundRouteMap"` + // The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap SubResourcePtrInput `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables PropagatedRouteTablePtrInput `pulumi:"propagatedRouteTables"` + // List of routes that control routing from VirtualHub into a virtual network connection. + VnetRoutes VnetRoutePtrInput `pulumi:"vnetRoutes"` } -func (o TxtRecordResponseArrayOutput) ToTxtRecordResponseArrayOutputWithContext(ctx context.Context) TxtRecordResponseArrayOutput { - return o +func (RoutingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfiguration)(nil)).Elem() } -func (o TxtRecordResponseArrayOutput) Index(i pulumi.IntInput) TxtRecordResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) TxtRecordResponse { - return vs[0].([]TxtRecordResponse)[vs[1].(int)] - }).(TxtRecordResponseOutput) -} - -// Describes a Virtual Machine. -type VM struct { - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` +func (i RoutingConfigurationArgs) ToRoutingConfigurationOutput() RoutingConfigurationOutput { + return i.ToRoutingConfigurationOutputWithContext(context.Background()) } -// VMInput is an input type that accepts VMArgs and VMOutput values. -// You can construct a concrete instance of `VMInput` via: -// -// VMArgs{...} -type VMInput interface { - pulumi.Input - - ToVMOutput() VMOutput - ToVMOutputWithContext(context.Context) VMOutput +func (i RoutingConfigurationArgs) ToRoutingConfigurationOutputWithContext(ctx context.Context) RoutingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationOutput) } -// Describes a Virtual Machine. -type VMArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` +func (i RoutingConfigurationArgs) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { + return i.ToRoutingConfigurationPtrOutputWithContext(context.Background()) } -func (VMArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VM)(nil)).Elem() +func (i RoutingConfigurationArgs) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationOutput).ToRoutingConfigurationPtrOutputWithContext(ctx) } -func (i VMArgs) ToVMOutput() VMOutput { - return i.ToVMOutputWithContext(context.Background()) -} +// RoutingConfigurationPtrInput is an input type that accepts RoutingConfigurationArgs, RoutingConfigurationPtr and RoutingConfigurationPtrOutput values. +// You can construct a concrete instance of `RoutingConfigurationPtrInput` via: +// +// RoutingConfigurationArgs{...} +// +// or: +// +// nil +type RoutingConfigurationPtrInput interface { + pulumi.Input -func (i VMArgs) ToVMOutputWithContext(ctx context.Context) VMOutput { - return pulumi.ToOutputWithContext(ctx, i).(VMOutput) + ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput + ToRoutingConfigurationPtrOutputWithContext(context.Context) RoutingConfigurationPtrOutput } -// Describes a Virtual Machine. -type VMOutput struct{ *pulumi.OutputState } - -func (VMOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VM)(nil)).Elem() -} +type routingConfigurationPtrType RoutingConfigurationArgs -func (o VMOutput) ToVMOutput() VMOutput { - return o +func RoutingConfigurationPtr(v *RoutingConfigurationArgs) RoutingConfigurationPtrInput { + return (*routingConfigurationPtrType)(v) } -func (o VMOutput) ToVMOutputWithContext(ctx context.Context) VMOutput { - return o +func (*routingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfiguration)(nil)).Elem() } -// Resource ID. -func (o VMOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VM) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i *routingConfigurationPtrType) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { + return i.ToRoutingConfigurationPtrOutputWithContext(context.Background()) } -// Resource location. -func (o VMOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v VM) *string { return v.Location }).(pulumi.StringPtrOutput) +func (i *routingConfigurationPtrType) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationPtrOutput) } -// Resource tags. -func (o VMOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v VM) map[string]string { return v.Tags }).(pulumi.StringMapOutput) -} +// Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationOutput struct{ *pulumi.OutputState } -// Describes a Virtual Machine. -type VMResponse struct { - // Resource ID. - Id *string `pulumi:"id"` - // Resource location. - Location *string `pulumi:"location"` - // Resource name. - Name string `pulumi:"name"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Resource type. - Type string `pulumi:"type"` +func (RoutingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfiguration)(nil)).Elem() } -// Describes a Virtual Machine. -type VMResponseOutput struct{ *pulumi.OutputState } - -func (VMResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VMResponse)(nil)).Elem() +func (o RoutingConfigurationOutput) ToRoutingConfigurationOutput() RoutingConfigurationOutput { + return o } -func (o VMResponseOutput) ToVMResponseOutput() VMResponseOutput { +func (o RoutingConfigurationOutput) ToRoutingConfigurationOutputWithContext(ctx context.Context) RoutingConfigurationOutput { return o } -func (o VMResponseOutput) ToVMResponseOutputWithContext(ctx context.Context) VMResponseOutput { - return o +func (o RoutingConfigurationOutput) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { + return o.ToRoutingConfigurationPtrOutputWithContext(context.Background()) } -// Resource ID. -func (o VMResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VMResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o RoutingConfigurationOutput) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingConfiguration) *RoutingConfiguration { + return &v + }).(RoutingConfigurationPtrOutput) } -// Resource location. -func (o VMResponseOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v VMResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationOutput) AssociatedRouteTable() SubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfiguration) *SubResource { return v.AssociatedRouteTable }).(SubResourcePtrOutput) } -// Resource name. -func (o VMResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v VMResponse) string { return v.Name }).(pulumi.StringOutput) +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationOutput) InboundRouteMap() SubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfiguration) *SubResource { return v.InboundRouteMap }).(SubResourcePtrOutput) } -// Resource tags. -func (o VMResponseOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v VMResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +// The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationOutput) OutboundRouteMap() SubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfiguration) *SubResource { return v.OutboundRouteMap }).(SubResourcePtrOutput) } -// Resource type. -func (o VMResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v VMResponse) string { return v.Type }).(pulumi.StringOutput) +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationOutput) PropagatedRouteTables() PropagatedRouteTablePtrOutput { + return o.ApplyT(func(v RoutingConfiguration) *PropagatedRouteTable { return v.PropagatedRouteTables }).(PropagatedRouteTablePtrOutput) } -// Network Virtual Appliance NIC properties. -type VirtualApplianceNicPropertiesResponse struct { - // NIC name. - Name string `pulumi:"name"` - // Private IP address. - PrivateIpAddress string `pulumi:"privateIpAddress"` - // Public IP address. - PublicIpAddress string `pulumi:"publicIpAddress"` +// List of routes that control routing from VirtualHub into a virtual network connection. +func (o RoutingConfigurationOutput) VnetRoutes() VnetRoutePtrOutput { + return o.ApplyT(func(v RoutingConfiguration) *VnetRoute { return v.VnetRoutes }).(VnetRoutePtrOutput) } -// Network Virtual Appliance NIC properties. -type VirtualApplianceNicPropertiesResponseOutput struct{ *pulumi.OutputState } +type RoutingConfigurationPtrOutput struct{ *pulumi.OutputState } -func (VirtualApplianceNicPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualApplianceNicPropertiesResponse)(nil)).Elem() +func (RoutingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfiguration)(nil)).Elem() } -func (o VirtualApplianceNicPropertiesResponseOutput) ToVirtualApplianceNicPropertiesResponseOutput() VirtualApplianceNicPropertiesResponseOutput { +func (o RoutingConfigurationPtrOutput) ToRoutingConfigurationPtrOutput() RoutingConfigurationPtrOutput { return o } -func (o VirtualApplianceNicPropertiesResponseOutput) ToVirtualApplianceNicPropertiesResponseOutputWithContext(ctx context.Context) VirtualApplianceNicPropertiesResponseOutput { +func (o RoutingConfigurationPtrOutput) ToRoutingConfigurationPtrOutputWithContext(ctx context.Context) RoutingConfigurationPtrOutput { return o } -// NIC name. -func (o VirtualApplianceNicPropertiesResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.Name }).(pulumi.StringOutput) -} - -// Private IP address. -func (o VirtualApplianceNicPropertiesResponseOutput) PrivateIpAddress() pulumi.StringOutput { - return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.PrivateIpAddress }).(pulumi.StringOutput) +func (o RoutingConfigurationPtrOutput) Elem() RoutingConfigurationOutput { + return o.ApplyT(func(v *RoutingConfiguration) RoutingConfiguration { + if v != nil { + return *v + } + var ret RoutingConfiguration + return ret + }).(RoutingConfigurationOutput) } -// Public IP address. -func (o VirtualApplianceNicPropertiesResponseOutput) PublicIpAddress() pulumi.StringOutput { - return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.PublicIpAddress }).(pulumi.StringOutput) +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationPtrOutput) AssociatedRouteTable() SubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfiguration) *SubResource { + if v == nil { + return nil + } + return v.AssociatedRouteTable + }).(SubResourcePtrOutput) } -type VirtualApplianceNicPropertiesResponseArrayOutput struct{ *pulumi.OutputState } - -func (VirtualApplianceNicPropertiesResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualApplianceNicPropertiesResponse)(nil)).Elem() +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationPtrOutput) InboundRouteMap() SubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfiguration) *SubResource { + if v == nil { + return nil + } + return v.InboundRouteMap + }).(SubResourcePtrOutput) } -func (o VirtualApplianceNicPropertiesResponseArrayOutput) ToVirtualApplianceNicPropertiesResponseArrayOutput() VirtualApplianceNicPropertiesResponseArrayOutput { - return o +// The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationPtrOutput) OutboundRouteMap() SubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfiguration) *SubResource { + if v == nil { + return nil + } + return v.OutboundRouteMap + }).(SubResourcePtrOutput) } -func (o VirtualApplianceNicPropertiesResponseArrayOutput) ToVirtualApplianceNicPropertiesResponseArrayOutputWithContext(ctx context.Context) VirtualApplianceNicPropertiesResponseArrayOutput { - return o +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationPtrOutput) PropagatedRouteTables() PropagatedRouteTablePtrOutput { + return o.ApplyT(func(v *RoutingConfiguration) *PropagatedRouteTable { + if v == nil { + return nil + } + return v.PropagatedRouteTables + }).(PropagatedRouteTablePtrOutput) } -func (o VirtualApplianceNicPropertiesResponseArrayOutput) Index(i pulumi.IntInput) VirtualApplianceNicPropertiesResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualApplianceNicPropertiesResponse { - return vs[0].([]VirtualApplianceNicPropertiesResponse)[vs[1].(int)] - }).(VirtualApplianceNicPropertiesResponseOutput) +// List of routes that control routing from VirtualHub into a virtual network connection. +func (o RoutingConfigurationPtrOutput) VnetRoutes() VnetRoutePtrOutput { + return o.ApplyT(func(v *RoutingConfiguration) *VnetRoute { + if v == nil { + return nil + } + return v.VnetRoutes + }).(VnetRoutePtrOutput) } -// Network Virtual Appliance Sku Properties. -type VirtualApplianceSkuProperties struct { - // Virtual Appliance Scale Unit. - BundledScaleUnit *string `pulumi:"bundledScaleUnit"` - // Virtual Appliance Version. - MarketPlaceVersion *string `pulumi:"marketPlaceVersion"` - // Virtual Appliance Vendor. - Vendor *string `pulumi:"vendor"` +// NFV version of Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationNfv struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable *RoutingConfigurationNfvSubResource `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap *RoutingConfigurationNfvSubResource `pulumi:"inboundRouteMap"` + // The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap *RoutingConfigurationNfvSubResource `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables *PropagatedRouteTableNfv `pulumi:"propagatedRouteTables"` } -// VirtualApplianceSkuPropertiesInput is an input type that accepts VirtualApplianceSkuPropertiesArgs and VirtualApplianceSkuPropertiesOutput values. -// You can construct a concrete instance of `VirtualApplianceSkuPropertiesInput` via: +// RoutingConfigurationNfvInput is an input type that accepts RoutingConfigurationNfvArgs and RoutingConfigurationNfvOutput values. +// You can construct a concrete instance of `RoutingConfigurationNfvInput` via: // -// VirtualApplianceSkuPropertiesArgs{...} -type VirtualApplianceSkuPropertiesInput interface { +// RoutingConfigurationNfvArgs{...} +type RoutingConfigurationNfvInput interface { pulumi.Input - ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput - ToVirtualApplianceSkuPropertiesOutputWithContext(context.Context) VirtualApplianceSkuPropertiesOutput + ToRoutingConfigurationNfvOutput() RoutingConfigurationNfvOutput + ToRoutingConfigurationNfvOutputWithContext(context.Context) RoutingConfigurationNfvOutput } -// Network Virtual Appliance Sku Properties. -type VirtualApplianceSkuPropertiesArgs struct { - // Virtual Appliance Scale Unit. - BundledScaleUnit pulumi.StringPtrInput `pulumi:"bundledScaleUnit"` - // Virtual Appliance Version. - MarketPlaceVersion pulumi.StringPtrInput `pulumi:"marketPlaceVersion"` - // Virtual Appliance Vendor. - Vendor pulumi.StringPtrInput `pulumi:"vendor"` +// NFV version of Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationNfvArgs struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable RoutingConfigurationNfvSubResourcePtrInput `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap RoutingConfigurationNfvSubResourcePtrInput `pulumi:"inboundRouteMap"` + // The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap RoutingConfigurationNfvSubResourcePtrInput `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables PropagatedRouteTableNfvPtrInput `pulumi:"propagatedRouteTables"` } -func (VirtualApplianceSkuPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualApplianceSkuProperties)(nil)).Elem() +func (RoutingConfigurationNfvArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfv)(nil)).Elem() } -func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput { - return i.ToVirtualApplianceSkuPropertiesOutputWithContext(context.Background()) +func (i RoutingConfigurationNfvArgs) ToRoutingConfigurationNfvOutput() RoutingConfigurationNfvOutput { + return i.ToRoutingConfigurationNfvOutputWithContext(context.Background()) } -func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesOutput) +func (i RoutingConfigurationNfvArgs) ToRoutingConfigurationNfvOutputWithContext(ctx context.Context) RoutingConfigurationNfvOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvOutput) } -func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { - return i.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +func (i RoutingConfigurationNfvArgs) ToRoutingConfigurationNfvPtrOutput() RoutingConfigurationNfvPtrOutput { + return i.ToRoutingConfigurationNfvPtrOutputWithContext(context.Background()) } -func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesOutput).ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx) +func (i RoutingConfigurationNfvArgs) ToRoutingConfigurationNfvPtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvOutput).ToRoutingConfigurationNfvPtrOutputWithContext(ctx) } -// VirtualApplianceSkuPropertiesPtrInput is an input type that accepts VirtualApplianceSkuPropertiesArgs, VirtualApplianceSkuPropertiesPtr and VirtualApplianceSkuPropertiesPtrOutput values. -// You can construct a concrete instance of `VirtualApplianceSkuPropertiesPtrInput` via: +// RoutingConfigurationNfvPtrInput is an input type that accepts RoutingConfigurationNfvArgs, RoutingConfigurationNfvPtr and RoutingConfigurationNfvPtrOutput values. +// You can construct a concrete instance of `RoutingConfigurationNfvPtrInput` via: // -// VirtualApplianceSkuPropertiesArgs{...} +// RoutingConfigurationNfvArgs{...} // // or: // // nil -type VirtualApplianceSkuPropertiesPtrInput interface { +type RoutingConfigurationNfvPtrInput interface { pulumi.Input - ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput - ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Context) VirtualApplianceSkuPropertiesPtrOutput + ToRoutingConfigurationNfvPtrOutput() RoutingConfigurationNfvPtrOutput + ToRoutingConfigurationNfvPtrOutputWithContext(context.Context) RoutingConfigurationNfvPtrOutput } -type virtualApplianceSkuPropertiesPtrType VirtualApplianceSkuPropertiesArgs +type routingConfigurationNfvPtrType RoutingConfigurationNfvArgs -func VirtualApplianceSkuPropertiesPtr(v *VirtualApplianceSkuPropertiesArgs) VirtualApplianceSkuPropertiesPtrInput { - return (*virtualApplianceSkuPropertiesPtrType)(v) +func RoutingConfigurationNfvPtr(v *RoutingConfigurationNfvArgs) RoutingConfigurationNfvPtrInput { + return (*routingConfigurationNfvPtrType)(v) } -func (*virtualApplianceSkuPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualApplianceSkuProperties)(nil)).Elem() +func (*routingConfigurationNfvPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfv)(nil)).Elem() } -func (i *virtualApplianceSkuPropertiesPtrType) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { - return i.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +func (i *routingConfigurationNfvPtrType) ToRoutingConfigurationNfvPtrOutput() RoutingConfigurationNfvPtrOutput { + return i.ToRoutingConfigurationNfvPtrOutputWithContext(context.Background()) } -func (i *virtualApplianceSkuPropertiesPtrType) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesPtrOutput) +func (i *routingConfigurationNfvPtrType) ToRoutingConfigurationNfvPtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvPtrOutput) } -// Network Virtual Appliance Sku Properties. -type VirtualApplianceSkuPropertiesOutput struct{ *pulumi.OutputState } +// NFV version of Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationNfvOutput struct{ *pulumi.OutputState } -func (VirtualApplianceSkuPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualApplianceSkuProperties)(nil)).Elem() +func (RoutingConfigurationNfvOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfv)(nil)).Elem() } -func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput { +func (o RoutingConfigurationNfvOutput) ToRoutingConfigurationNfvOutput() RoutingConfigurationNfvOutput { return o } -func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesOutput { +func (o RoutingConfigurationNfvOutput) ToRoutingConfigurationNfvOutputWithContext(ctx context.Context) RoutingConfigurationNfvOutput { return o } -func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { - return o.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +func (o RoutingConfigurationNfvOutput) ToRoutingConfigurationNfvPtrOutput() RoutingConfigurationNfvPtrOutput { + return o.ToRoutingConfigurationNfvPtrOutputWithContext(context.Background()) } -func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualApplianceSkuProperties) *VirtualApplianceSkuProperties { +func (o RoutingConfigurationNfvOutput) ToRoutingConfigurationNfvPtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingConfigurationNfv) *RoutingConfigurationNfv { return &v - }).(VirtualApplianceSkuPropertiesPtrOutput) + }).(RoutingConfigurationNfvPtrOutput) } -// Virtual Appliance Scale Unit. -func (o VirtualApplianceSkuPropertiesOutput) BundledScaleUnit() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.BundledScaleUnit }).(pulumi.StringPtrOutput) +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationNfvOutput) AssociatedRouteTable() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { return v.AssociatedRouteTable }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// Virtual Appliance Version. -func (o VirtualApplianceSkuPropertiesOutput) MarketPlaceVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.MarketPlaceVersion }).(pulumi.StringPtrOutput) +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationNfvOutput) InboundRouteMap() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { return v.InboundRouteMap }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// Virtual Appliance Vendor. -func (o VirtualApplianceSkuPropertiesOutput) Vendor() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.Vendor }).(pulumi.StringPtrOutput) +// The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationNfvOutput) OutboundRouteMap() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { return v.OutboundRouteMap }).(RoutingConfigurationNfvSubResourcePtrOutput) } -type VirtualApplianceSkuPropertiesPtrOutput struct{ *pulumi.OutputState } +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationNfvOutput) PropagatedRouteTables() PropagatedRouteTableNfvPtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfv) *PropagatedRouteTableNfv { return v.PropagatedRouteTables }).(PropagatedRouteTableNfvPtrOutput) +} -func (VirtualApplianceSkuPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualApplianceSkuProperties)(nil)).Elem() +type RoutingConfigurationNfvPtrOutput struct{ *pulumi.OutputState } + +func (RoutingConfigurationNfvPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfv)(nil)).Elem() } -func (o VirtualApplianceSkuPropertiesPtrOutput) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { +func (o RoutingConfigurationNfvPtrOutput) ToRoutingConfigurationNfvPtrOutput() RoutingConfigurationNfvPtrOutput { return o } -func (o VirtualApplianceSkuPropertiesPtrOutput) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { +func (o RoutingConfigurationNfvPtrOutput) ToRoutingConfigurationNfvPtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvPtrOutput { return o } -func (o VirtualApplianceSkuPropertiesPtrOutput) Elem() VirtualApplianceSkuPropertiesOutput { - return o.ApplyT(func(v *VirtualApplianceSkuProperties) VirtualApplianceSkuProperties { +func (o RoutingConfigurationNfvPtrOutput) Elem() RoutingConfigurationNfvOutput { + return o.ApplyT(func(v *RoutingConfigurationNfv) RoutingConfigurationNfv { if v != nil { return *v } - var ret VirtualApplianceSkuProperties + var ret RoutingConfigurationNfv return ret - }).(VirtualApplianceSkuPropertiesOutput) + }).(RoutingConfigurationNfvOutput) } -// Virtual Appliance Scale Unit. -func (o VirtualApplianceSkuPropertiesPtrOutput) BundledScaleUnit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationNfvPtrOutput) AssociatedRouteTable() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { if v == nil { return nil } - return v.BundledScaleUnit - }).(pulumi.StringPtrOutput) + return v.AssociatedRouteTable + }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// Virtual Appliance Version. -func (o VirtualApplianceSkuPropertiesPtrOutput) MarketPlaceVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationNfvPtrOutput) InboundRouteMap() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { if v == nil { return nil } - return v.MarketPlaceVersion - }).(pulumi.StringPtrOutput) + return v.InboundRouteMap + }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// Virtual Appliance Vendor. -func (o VirtualApplianceSkuPropertiesPtrOutput) Vendor() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { +// The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationNfvPtrOutput) OutboundRouteMap() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfv) *RoutingConfigurationNfvSubResource { if v == nil { return nil } - return v.Vendor - }).(pulumi.StringPtrOutput) + return v.OutboundRouteMap + }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// Network Virtual Appliance Sku Properties. -type VirtualApplianceSkuPropertiesResponse struct { - // Virtual Appliance Scale Unit. - BundledScaleUnit *string `pulumi:"bundledScaleUnit"` - // Virtual Appliance Version. - MarketPlaceVersion *string `pulumi:"marketPlaceVersion"` - // Virtual Appliance Vendor. - Vendor *string `pulumi:"vendor"` +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationNfvPtrOutput) PropagatedRouteTables() PropagatedRouteTableNfvPtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfv) *PropagatedRouteTableNfv { + if v == nil { + return nil + } + return v.PropagatedRouteTables + }).(PropagatedRouteTableNfvPtrOutput) } -// Network Virtual Appliance Sku Properties. -type VirtualApplianceSkuPropertiesResponseOutput struct{ *pulumi.OutputState } +// NFV version of Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationNfvResponse struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable *RoutingConfigurationNfvSubResourceResponse `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap *RoutingConfigurationNfvSubResourceResponse `pulumi:"inboundRouteMap"` + // The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap *RoutingConfigurationNfvSubResourceResponse `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables *PropagatedRouteTableNfvResponse `pulumi:"propagatedRouteTables"` +} -func (VirtualApplianceSkuPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualApplianceSkuPropertiesResponse)(nil)).Elem() +// NFV version of Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationNfvResponseOutput struct{ *pulumi.OutputState } + +func (RoutingConfigurationNfvResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfvResponse)(nil)).Elem() } -func (o VirtualApplianceSkuPropertiesResponseOutput) ToVirtualApplianceSkuPropertiesResponseOutput() VirtualApplianceSkuPropertiesResponseOutput { +func (o RoutingConfigurationNfvResponseOutput) ToRoutingConfigurationNfvResponseOutput() RoutingConfigurationNfvResponseOutput { return o } -func (o VirtualApplianceSkuPropertiesResponseOutput) ToVirtualApplianceSkuPropertiesResponseOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesResponseOutput { +func (o RoutingConfigurationNfvResponseOutput) ToRoutingConfigurationNfvResponseOutputWithContext(ctx context.Context) RoutingConfigurationNfvResponseOutput { return o } -// Virtual Appliance Scale Unit. -func (o VirtualApplianceSkuPropertiesResponseOutput) BundledScaleUnit() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.BundledScaleUnit }).(pulumi.StringPtrOutput) +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationNfvResponseOutput) AssociatedRouteTable() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { + return v.AssociatedRouteTable + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -// Virtual Appliance Version. -func (o VirtualApplianceSkuPropertiesResponseOutput) MarketPlaceVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.MarketPlaceVersion }).(pulumi.StringPtrOutput) +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationNfvResponseOutput) InboundRouteMap() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { + return v.InboundRouteMap + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -// Virtual Appliance Vendor. -func (o VirtualApplianceSkuPropertiesResponseOutput) Vendor() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.Vendor }).(pulumi.StringPtrOutput) +// The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationNfvResponseOutput) OutboundRouteMap() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { + return v.OutboundRouteMap + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -type VirtualApplianceSkuPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationNfvResponseOutput) PropagatedRouteTables() PropagatedRouteTableNfvResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvResponse) *PropagatedRouteTableNfvResponse { + return v.PropagatedRouteTables + }).(PropagatedRouteTableNfvResponsePtrOutput) +} -func (VirtualApplianceSkuPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualApplianceSkuPropertiesResponse)(nil)).Elem() +type RoutingConfigurationNfvResponsePtrOutput struct{ *pulumi.OutputState } + +func (RoutingConfigurationNfvResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfvResponse)(nil)).Elem() } -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) ToVirtualApplianceSkuPropertiesResponsePtrOutput() VirtualApplianceSkuPropertiesResponsePtrOutput { +func (o RoutingConfigurationNfvResponsePtrOutput) ToRoutingConfigurationNfvResponsePtrOutput() RoutingConfigurationNfvResponsePtrOutput { return o } -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) ToVirtualApplianceSkuPropertiesResponsePtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesResponsePtrOutput { +func (o RoutingConfigurationNfvResponsePtrOutput) ToRoutingConfigurationNfvResponsePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvResponsePtrOutput { return o } -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) Elem() VirtualApplianceSkuPropertiesResponseOutput { - return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) VirtualApplianceSkuPropertiesResponse { +func (o RoutingConfigurationNfvResponsePtrOutput) Elem() RoutingConfigurationNfvResponseOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvResponse) RoutingConfigurationNfvResponse { if v != nil { return *v } - var ret VirtualApplianceSkuPropertiesResponse + var ret RoutingConfigurationNfvResponse return ret - }).(VirtualApplianceSkuPropertiesResponseOutput) + }).(RoutingConfigurationNfvResponseOutput) } -// Virtual Appliance Scale Unit. -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) BundledScaleUnit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationNfvResponsePtrOutput) AssociatedRouteTable() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { if v == nil { return nil } - return v.BundledScaleUnit - }).(pulumi.StringPtrOutput) + return v.AssociatedRouteTable + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -// Virtual Appliance Version. -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) MarketPlaceVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationNfvResponsePtrOutput) InboundRouteMap() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { if v == nil { return nil } - return v.MarketPlaceVersion - }).(pulumi.StringPtrOutput) + return v.InboundRouteMap + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -// Virtual Appliance Vendor. -func (o VirtualApplianceSkuPropertiesResponsePtrOutput) Vendor() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { +// The resource id of the RouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationNfvResponsePtrOutput) OutboundRouteMap() RoutingConfigurationNfvSubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvResponse) *RoutingConfigurationNfvSubResourceResponse { if v == nil { return nil } - return v.Vendor - }).(pulumi.StringPtrOutput) + return v.OutboundRouteMap + }).(RoutingConfigurationNfvSubResourceResponsePtrOutput) } -// Virtual Hub identifier. -type VirtualHubId struct { - // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. - Id *string `pulumi:"id"` +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationNfvResponsePtrOutput) PropagatedRouteTables() PropagatedRouteTableNfvResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvResponse) *PropagatedRouteTableNfvResponse { + if v == nil { + return nil + } + return v.PropagatedRouteTables + }).(PropagatedRouteTableNfvResponsePtrOutput) } -// VirtualHubIdInput is an input type that accepts VirtualHubIdArgs and VirtualHubIdOutput values. -// You can construct a concrete instance of `VirtualHubIdInput` via: +// Reference to RouteTableV3 associated with the connection. +type RoutingConfigurationNfvSubResource struct { + // Resource ID. + ResourceUri *string `pulumi:"resourceUri"` +} + +// RoutingConfigurationNfvSubResourceInput is an input type that accepts RoutingConfigurationNfvSubResourceArgs and RoutingConfigurationNfvSubResourceOutput values. +// You can construct a concrete instance of `RoutingConfigurationNfvSubResourceInput` via: // -// VirtualHubIdArgs{...} -type VirtualHubIdInput interface { +// RoutingConfigurationNfvSubResourceArgs{...} +type RoutingConfigurationNfvSubResourceInput interface { pulumi.Input - ToVirtualHubIdOutput() VirtualHubIdOutput - ToVirtualHubIdOutputWithContext(context.Context) VirtualHubIdOutput -} - -// Virtual Hub identifier. -type VirtualHubIdArgs struct { - // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. - Id pulumi.StringPtrInput `pulumi:"id"` + ToRoutingConfigurationNfvSubResourceOutput() RoutingConfigurationNfvSubResourceOutput + ToRoutingConfigurationNfvSubResourceOutputWithContext(context.Context) RoutingConfigurationNfvSubResourceOutput } -func (VirtualHubIdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubId)(nil)).Elem() +// Reference to RouteTableV3 associated with the connection. +type RoutingConfigurationNfvSubResourceArgs struct { + // Resource ID. + ResourceUri pulumi.StringPtrInput `pulumi:"resourceUri"` } -func (i VirtualHubIdArgs) ToVirtualHubIdOutput() VirtualHubIdOutput { - return i.ToVirtualHubIdOutputWithContext(context.Background()) +func (RoutingConfigurationNfvSubResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfvSubResource)(nil)).Elem() } -func (i VirtualHubIdArgs) ToVirtualHubIdOutputWithContext(ctx context.Context) VirtualHubIdOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubIdOutput) +func (i RoutingConfigurationNfvSubResourceArgs) ToRoutingConfigurationNfvSubResourceOutput() RoutingConfigurationNfvSubResourceOutput { + return i.ToRoutingConfigurationNfvSubResourceOutputWithContext(context.Background()) } -// Virtual Hub identifier. -type VirtualHubIdOutput struct{ *pulumi.OutputState } - -func (VirtualHubIdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubId)(nil)).Elem() +func (i RoutingConfigurationNfvSubResourceArgs) ToRoutingConfigurationNfvSubResourceOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvSubResourceOutput) } -func (o VirtualHubIdOutput) ToVirtualHubIdOutput() VirtualHubIdOutput { - return o +func (i RoutingConfigurationNfvSubResourceArgs) ToRoutingConfigurationNfvSubResourcePtrOutput() RoutingConfigurationNfvSubResourcePtrOutput { + return i.ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(context.Background()) } -func (o VirtualHubIdOutput) ToVirtualHubIdOutputWithContext(ctx context.Context) VirtualHubIdOutput { - return o +func (i RoutingConfigurationNfvSubResourceArgs) ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvSubResourceOutput).ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(ctx) } -// The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. -func (o VirtualHubIdOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubId) *string { return v.Id }).(pulumi.StringPtrOutput) -} +// RoutingConfigurationNfvSubResourcePtrInput is an input type that accepts RoutingConfigurationNfvSubResourceArgs, RoutingConfigurationNfvSubResourcePtr and RoutingConfigurationNfvSubResourcePtrOutput values. +// You can construct a concrete instance of `RoutingConfigurationNfvSubResourcePtrInput` via: +// +// RoutingConfigurationNfvSubResourceArgs{...} +// +// or: +// +// nil +type RoutingConfigurationNfvSubResourcePtrInput interface { + pulumi.Input -// Virtual Hub identifier. -type VirtualHubIdResponse struct { - // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. - Id *string `pulumi:"id"` + ToRoutingConfigurationNfvSubResourcePtrOutput() RoutingConfigurationNfvSubResourcePtrOutput + ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(context.Context) RoutingConfigurationNfvSubResourcePtrOutput } -// Virtual Hub identifier. -type VirtualHubIdResponseOutput struct{ *pulumi.OutputState } - -func (VirtualHubIdResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubIdResponse)(nil)).Elem() -} +type routingConfigurationNfvSubResourcePtrType RoutingConfigurationNfvSubResourceArgs -func (o VirtualHubIdResponseOutput) ToVirtualHubIdResponseOutput() VirtualHubIdResponseOutput { - return o +func RoutingConfigurationNfvSubResourcePtr(v *RoutingConfigurationNfvSubResourceArgs) RoutingConfigurationNfvSubResourcePtrInput { + return (*routingConfigurationNfvSubResourcePtrType)(v) } -func (o VirtualHubIdResponseOutput) ToVirtualHubIdResponseOutputWithContext(ctx context.Context) VirtualHubIdResponseOutput { - return o +func (*routingConfigurationNfvSubResourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfvSubResource)(nil)).Elem() } -// The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. -func (o VirtualHubIdResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubIdResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (i *routingConfigurationNfvSubResourcePtrType) ToRoutingConfigurationNfvSubResourcePtrOutput() RoutingConfigurationNfvSubResourcePtrOutput { + return i.ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(context.Background()) } -// VirtualHub route. -type VirtualHubRoute struct { - // List of all addressPrefixes. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // NextHop ip address. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +func (i *routingConfigurationNfvSubResourcePtrType) ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvSubResourcePtrOutput) } -// VirtualHubRouteInput is an input type that accepts VirtualHubRouteArgs and VirtualHubRouteOutput values. -// You can construct a concrete instance of `VirtualHubRouteInput` via: +// RoutingConfigurationNfvSubResourceArrayInput is an input type that accepts RoutingConfigurationNfvSubResourceArray and RoutingConfigurationNfvSubResourceArrayOutput values. +// You can construct a concrete instance of `RoutingConfigurationNfvSubResourceArrayInput` via: // -// VirtualHubRouteArgs{...} -type VirtualHubRouteInput interface { +// RoutingConfigurationNfvSubResourceArray{ RoutingConfigurationNfvSubResourceArgs{...} } +type RoutingConfigurationNfvSubResourceArrayInput interface { pulumi.Input - ToVirtualHubRouteOutput() VirtualHubRouteOutput - ToVirtualHubRouteOutputWithContext(context.Context) VirtualHubRouteOutput + ToRoutingConfigurationNfvSubResourceArrayOutput() RoutingConfigurationNfvSubResourceArrayOutput + ToRoutingConfigurationNfvSubResourceArrayOutputWithContext(context.Context) RoutingConfigurationNfvSubResourceArrayOutput } -// VirtualHub route. -type VirtualHubRouteArgs struct { - // List of all addressPrefixes. - AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` - // NextHop ip address. - NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` -} +type RoutingConfigurationNfvSubResourceArray []RoutingConfigurationNfvSubResourceInput -func (VirtualHubRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRoute)(nil)).Elem() +func (RoutingConfigurationNfvSubResourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingConfigurationNfvSubResource)(nil)).Elem() } -func (i VirtualHubRouteArgs) ToVirtualHubRouteOutput() VirtualHubRouteOutput { - return i.ToVirtualHubRouteOutputWithContext(context.Background()) +func (i RoutingConfigurationNfvSubResourceArray) ToRoutingConfigurationNfvSubResourceArrayOutput() RoutingConfigurationNfvSubResourceArrayOutput { + return i.ToRoutingConfigurationNfvSubResourceArrayOutputWithContext(context.Background()) } -func (i VirtualHubRouteArgs) ToVirtualHubRouteOutputWithContext(ctx context.Context) VirtualHubRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteOutput) +func (i RoutingConfigurationNfvSubResourceArray) ToRoutingConfigurationNfvSubResourceArrayOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingConfigurationNfvSubResourceArrayOutput) } -// VirtualHubRouteArrayInput is an input type that accepts VirtualHubRouteArray and VirtualHubRouteArrayOutput values. -// You can construct a concrete instance of `VirtualHubRouteArrayInput` via: -// -// VirtualHubRouteArray{ VirtualHubRouteArgs{...} } -type VirtualHubRouteArrayInput interface { - pulumi.Input +// Reference to RouteTableV3 associated with the connection. +type RoutingConfigurationNfvSubResourceOutput struct{ *pulumi.OutputState } - ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput - ToVirtualHubRouteArrayOutputWithContext(context.Context) VirtualHubRouteArrayOutput +func (RoutingConfigurationNfvSubResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfvSubResource)(nil)).Elem() } -type VirtualHubRouteArray []VirtualHubRouteInput +func (o RoutingConfigurationNfvSubResourceOutput) ToRoutingConfigurationNfvSubResourceOutput() RoutingConfigurationNfvSubResourceOutput { + return o +} -func (VirtualHubRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRoute)(nil)).Elem() +func (o RoutingConfigurationNfvSubResourceOutput) ToRoutingConfigurationNfvSubResourceOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceOutput { + return o } -func (i VirtualHubRouteArray) ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput { - return i.ToVirtualHubRouteArrayOutputWithContext(context.Background()) +func (o RoutingConfigurationNfvSubResourceOutput) ToRoutingConfigurationNfvSubResourcePtrOutput() RoutingConfigurationNfvSubResourcePtrOutput { + return o.ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(context.Background()) } -func (i VirtualHubRouteArray) ToVirtualHubRouteArrayOutputWithContext(ctx context.Context) VirtualHubRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteArrayOutput) +func (o RoutingConfigurationNfvSubResourceOutput) ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingConfigurationNfvSubResource) *RoutingConfigurationNfvSubResource { + return &v + }).(RoutingConfigurationNfvSubResourcePtrOutput) } -// VirtualHub route. -type VirtualHubRouteOutput struct{ *pulumi.OutputState } +// Resource ID. +func (o RoutingConfigurationNfvSubResourceOutput) ResourceUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvSubResource) *string { return v.ResourceUri }).(pulumi.StringPtrOutput) +} -func (VirtualHubRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRoute)(nil)).Elem() +type RoutingConfigurationNfvSubResourcePtrOutput struct{ *pulumi.OutputState } + +func (RoutingConfigurationNfvSubResourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfvSubResource)(nil)).Elem() } -func (o VirtualHubRouteOutput) ToVirtualHubRouteOutput() VirtualHubRouteOutput { +func (o RoutingConfigurationNfvSubResourcePtrOutput) ToRoutingConfigurationNfvSubResourcePtrOutput() RoutingConfigurationNfvSubResourcePtrOutput { return o } -func (o VirtualHubRouteOutput) ToVirtualHubRouteOutputWithContext(ctx context.Context) VirtualHubRouteOutput { +func (o RoutingConfigurationNfvSubResourcePtrOutput) ToRoutingConfigurationNfvSubResourcePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourcePtrOutput { return o } -// List of all addressPrefixes. -func (o VirtualHubRouteOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRoute) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +func (o RoutingConfigurationNfvSubResourcePtrOutput) Elem() RoutingConfigurationNfvSubResourceOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvSubResource) RoutingConfigurationNfvSubResource { + if v != nil { + return *v + } + var ret RoutingConfigurationNfvSubResource + return ret + }).(RoutingConfigurationNfvSubResourceOutput) } -// NextHop ip address. -func (o VirtualHubRouteOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRoute) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +// Resource ID. +func (o RoutingConfigurationNfvSubResourcePtrOutput) ResourceUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvSubResource) *string { + if v == nil { + return nil + } + return v.ResourceUri + }).(pulumi.StringPtrOutput) } -type VirtualHubRouteArrayOutput struct{ *pulumi.OutputState } +type RoutingConfigurationNfvSubResourceArrayOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRoute)(nil)).Elem() +func (RoutingConfigurationNfvSubResourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingConfigurationNfvSubResource)(nil)).Elem() } -func (o VirtualHubRouteArrayOutput) ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput { +func (o RoutingConfigurationNfvSubResourceArrayOutput) ToRoutingConfigurationNfvSubResourceArrayOutput() RoutingConfigurationNfvSubResourceArrayOutput { return o } -func (o VirtualHubRouteArrayOutput) ToVirtualHubRouteArrayOutputWithContext(ctx context.Context) VirtualHubRouteArrayOutput { +func (o RoutingConfigurationNfvSubResourceArrayOutput) ToRoutingConfigurationNfvSubResourceArrayOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceArrayOutput { return o } -func (o VirtualHubRouteArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRoute { - return vs[0].([]VirtualHubRoute)[vs[1].(int)] - }).(VirtualHubRouteOutput) +func (o RoutingConfigurationNfvSubResourceArrayOutput) Index(i pulumi.IntInput) RoutingConfigurationNfvSubResourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingConfigurationNfvSubResource { + return vs[0].([]RoutingConfigurationNfvSubResource)[vs[1].(int)] + }).(RoutingConfigurationNfvSubResourceOutput) } -// VirtualHub route. -type VirtualHubRouteResponse struct { - // List of all addressPrefixes. - AddressPrefixes []string `pulumi:"addressPrefixes"` - // NextHop ip address. - NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +// Reference to RouteTableV3 associated with the connection. +type RoutingConfigurationNfvSubResourceResponse struct { + // Resource ID. + ResourceUri *string `pulumi:"resourceUri"` } -// VirtualHub route. -type VirtualHubRouteResponseOutput struct{ *pulumi.OutputState } +// Reference to RouteTableV3 associated with the connection. +type RoutingConfigurationNfvSubResourceResponseOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteResponse)(nil)).Elem() +func (RoutingConfigurationNfvSubResourceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationNfvSubResourceResponse)(nil)).Elem() } -func (o VirtualHubRouteResponseOutput) ToVirtualHubRouteResponseOutput() VirtualHubRouteResponseOutput { +func (o RoutingConfigurationNfvSubResourceResponseOutput) ToRoutingConfigurationNfvSubResourceResponseOutput() RoutingConfigurationNfvSubResourceResponseOutput { return o } -func (o VirtualHubRouteResponseOutput) ToVirtualHubRouteResponseOutputWithContext(ctx context.Context) VirtualHubRouteResponseOutput { +func (o RoutingConfigurationNfvSubResourceResponseOutput) ToRoutingConfigurationNfvSubResourceResponseOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceResponseOutput { return o } -// List of all addressPrefixes. -func (o VirtualHubRouteResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) -} - -// NextHop ip address. -func (o VirtualHubRouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +// Resource ID. +func (o RoutingConfigurationNfvSubResourceResponseOutput) ResourceUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingConfigurationNfvSubResourceResponse) *string { return v.ResourceUri }).(pulumi.StringPtrOutput) } -type VirtualHubRouteResponseArrayOutput struct{ *pulumi.OutputState } +type RoutingConfigurationNfvSubResourceResponsePtrOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteResponse)(nil)).Elem() +func (RoutingConfigurationNfvSubResourceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationNfvSubResourceResponse)(nil)).Elem() } -func (o VirtualHubRouteResponseArrayOutput) ToVirtualHubRouteResponseArrayOutput() VirtualHubRouteResponseArrayOutput { +func (o RoutingConfigurationNfvSubResourceResponsePtrOutput) ToRoutingConfigurationNfvSubResourceResponsePtrOutput() RoutingConfigurationNfvSubResourceResponsePtrOutput { return o } -func (o VirtualHubRouteResponseArrayOutput) ToVirtualHubRouteResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteResponseArrayOutput { +func (o RoutingConfigurationNfvSubResourceResponsePtrOutput) ToRoutingConfigurationNfvSubResourceResponsePtrOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceResponsePtrOutput { return o } -func (o VirtualHubRouteResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteResponse { - return vs[0].([]VirtualHubRouteResponse)[vs[1].(int)] - }).(VirtualHubRouteResponseOutput) +func (o RoutingConfigurationNfvSubResourceResponsePtrOutput) Elem() RoutingConfigurationNfvSubResourceResponseOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvSubResourceResponse) RoutingConfigurationNfvSubResourceResponse { + if v != nil { + return *v + } + var ret RoutingConfigurationNfvSubResourceResponse + return ret + }).(RoutingConfigurationNfvSubResourceResponseOutput) } -// VirtualHub route table. -type VirtualHubRouteTable struct { - // List of all routes. - Routes []VirtualHubRoute `pulumi:"routes"` +// Resource ID. +func (o RoutingConfigurationNfvSubResourceResponsePtrOutput) ResourceUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingConfigurationNfvSubResourceResponse) *string { + if v == nil { + return nil + } + return v.ResourceUri + }).(pulumi.StringPtrOutput) } -// VirtualHubRouteTableInput is an input type that accepts VirtualHubRouteTableArgs and VirtualHubRouteTableOutput values. -// You can construct a concrete instance of `VirtualHubRouteTableInput` via: -// -// VirtualHubRouteTableArgs{...} -type VirtualHubRouteTableInput interface { - pulumi.Input +type RoutingConfigurationNfvSubResourceResponseArrayOutput struct{ *pulumi.OutputState } - ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput - ToVirtualHubRouteTableOutputWithContext(context.Context) VirtualHubRouteTableOutput +func (RoutingConfigurationNfvSubResourceResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingConfigurationNfvSubResourceResponse)(nil)).Elem() } -// VirtualHub route table. -type VirtualHubRouteTableArgs struct { - // List of all routes. - Routes VirtualHubRouteArrayInput `pulumi:"routes"` +func (o RoutingConfigurationNfvSubResourceResponseArrayOutput) ToRoutingConfigurationNfvSubResourceResponseArrayOutput() RoutingConfigurationNfvSubResourceResponseArrayOutput { + return o } -func (VirtualHubRouteTableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTable)(nil)).Elem() +func (o RoutingConfigurationNfvSubResourceResponseArrayOutput) ToRoutingConfigurationNfvSubResourceResponseArrayOutputWithContext(ctx context.Context) RoutingConfigurationNfvSubResourceResponseArrayOutput { + return o } -func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput { - return i.ToVirtualHubRouteTableOutputWithContext(context.Background()) -} - -func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTableOutputWithContext(ctx context.Context) VirtualHubRouteTableOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableOutput) -} - -func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { - return i.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) -} - -func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableOutput).ToVirtualHubRouteTablePtrOutputWithContext(ctx) -} - -// VirtualHubRouteTablePtrInput is an input type that accepts VirtualHubRouteTableArgs, VirtualHubRouteTablePtr and VirtualHubRouteTablePtrOutput values. -// You can construct a concrete instance of `VirtualHubRouteTablePtrInput` via: -// -// VirtualHubRouteTableArgs{...} -// -// or: -// -// nil -type VirtualHubRouteTablePtrInput interface { - pulumi.Input - - ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput - ToVirtualHubRouteTablePtrOutputWithContext(context.Context) VirtualHubRouteTablePtrOutput +func (o RoutingConfigurationNfvSubResourceResponseArrayOutput) Index(i pulumi.IntInput) RoutingConfigurationNfvSubResourceResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingConfigurationNfvSubResourceResponse { + return vs[0].([]RoutingConfigurationNfvSubResourceResponse)[vs[1].(int)] + }).(RoutingConfigurationNfvSubResourceResponseOutput) } -type virtualHubRouteTablePtrType VirtualHubRouteTableArgs - -func VirtualHubRouteTablePtr(v *VirtualHubRouteTableArgs) VirtualHubRouteTablePtrInput { - return (*virtualHubRouteTablePtrType)(v) +// Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationResponse struct { + // The resource id RouteTable associated with this RoutingConfiguration. + AssociatedRouteTable *SubResourceResponse `pulumi:"associatedRouteTable"` + // The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. + InboundRouteMap *SubResourceResponse `pulumi:"inboundRouteMap"` + // The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. + OutboundRouteMap *SubResourceResponse `pulumi:"outboundRouteMap"` + // The list of RouteTables to advertise the routes to. + PropagatedRouteTables *PropagatedRouteTableResponse `pulumi:"propagatedRouteTables"` + // List of routes that control routing from VirtualHub into a virtual network connection. + VnetRoutes *VnetRouteResponse `pulumi:"vnetRoutes"` } -func (*virtualHubRouteTablePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualHubRouteTable)(nil)).Elem() -} +// Routing Configuration indicating the associated and propagated route tables for this connection. +type RoutingConfigurationResponseOutput struct{ *pulumi.OutputState } -func (i *virtualHubRouteTablePtrType) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { - return i.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) +func (RoutingConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingConfigurationResponse)(nil)).Elem() } -func (i *virtualHubRouteTablePtrType) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTablePtrOutput) +func (o RoutingConfigurationResponseOutput) ToRoutingConfigurationResponseOutput() RoutingConfigurationResponseOutput { + return o } -// VirtualHub route table. -type VirtualHubRouteTableOutput struct{ *pulumi.OutputState } - -func (VirtualHubRouteTableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTable)(nil)).Elem() +func (o RoutingConfigurationResponseOutput) ToRoutingConfigurationResponseOutputWithContext(ctx context.Context) RoutingConfigurationResponseOutput { + return o } -func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput { - return o +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationResponseOutput) AssociatedRouteTable() SubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationResponse) *SubResourceResponse { return v.AssociatedRouteTable }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTableOutputWithContext(ctx context.Context) VirtualHubRouteTableOutput { - return o +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationResponseOutput) InboundRouteMap() SubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationResponse) *SubResourceResponse { return v.InboundRouteMap }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { - return o.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) +// The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationResponseOutput) OutboundRouteMap() SubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationResponse) *SubResourceResponse { return v.OutboundRouteMap }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualHubRouteTable) *VirtualHubRouteTable { - return &v - }).(VirtualHubRouteTablePtrOutput) +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationResponseOutput) PropagatedRouteTables() PropagatedRouteTableResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationResponse) *PropagatedRouteTableResponse { return v.PropagatedRouteTables }).(PropagatedRouteTableResponsePtrOutput) } -// List of all routes. -func (o VirtualHubRouteTableOutput) Routes() VirtualHubRouteArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTable) []VirtualHubRoute { return v.Routes }).(VirtualHubRouteArrayOutput) +// List of routes that control routing from VirtualHub into a virtual network connection. +func (o RoutingConfigurationResponseOutput) VnetRoutes() VnetRouteResponsePtrOutput { + return o.ApplyT(func(v RoutingConfigurationResponse) *VnetRouteResponse { return v.VnetRoutes }).(VnetRouteResponsePtrOutput) } -type VirtualHubRouteTablePtrOutput struct{ *pulumi.OutputState } +type RoutingConfigurationResponsePtrOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteTablePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualHubRouteTable)(nil)).Elem() +func (RoutingConfigurationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingConfigurationResponse)(nil)).Elem() } -func (o VirtualHubRouteTablePtrOutput) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { +func (o RoutingConfigurationResponsePtrOutput) ToRoutingConfigurationResponsePtrOutput() RoutingConfigurationResponsePtrOutput { return o } -func (o VirtualHubRouteTablePtrOutput) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { +func (o RoutingConfigurationResponsePtrOutput) ToRoutingConfigurationResponsePtrOutputWithContext(ctx context.Context) RoutingConfigurationResponsePtrOutput { return o } -func (o VirtualHubRouteTablePtrOutput) Elem() VirtualHubRouteTableOutput { - return o.ApplyT(func(v *VirtualHubRouteTable) VirtualHubRouteTable { +func (o RoutingConfigurationResponsePtrOutput) Elem() RoutingConfigurationResponseOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) RoutingConfigurationResponse { if v != nil { return *v } - var ret VirtualHubRouteTable + var ret RoutingConfigurationResponse return ret - }).(VirtualHubRouteTableOutput) + }).(RoutingConfigurationResponseOutput) } -// List of all routes. -func (o VirtualHubRouteTablePtrOutput) Routes() VirtualHubRouteArrayOutput { - return o.ApplyT(func(v *VirtualHubRouteTable) []VirtualHubRoute { +// The resource id RouteTable associated with this RoutingConfiguration. +func (o RoutingConfigurationResponsePtrOutput) AssociatedRouteTable() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) *SubResourceResponse { if v == nil { return nil } - return v.Routes - }).(VirtualHubRouteArrayOutput) -} - -// VirtualHub route table. -type VirtualHubRouteTableResponse struct { - // List of all routes. - Routes []VirtualHubRouteResponse `pulumi:"routes"` -} - -// VirtualHub route table. -type VirtualHubRouteTableResponseOutput struct{ *pulumi.OutputState } - -func (VirtualHubRouteTableResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTableResponse)(nil)).Elem() -} - -func (o VirtualHubRouteTableResponseOutput) ToVirtualHubRouteTableResponseOutput() VirtualHubRouteTableResponseOutput { - return o -} - -func (o VirtualHubRouteTableResponseOutput) ToVirtualHubRouteTableResponseOutputWithContext(ctx context.Context) VirtualHubRouteTableResponseOutput { - return o -} - -// List of all routes. -func (o VirtualHubRouteTableResponseOutput) Routes() VirtualHubRouteResponseArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTableResponse) []VirtualHubRouteResponse { return v.Routes }).(VirtualHubRouteResponseArrayOutput) -} - -type VirtualHubRouteTableResponsePtrOutput struct{ *pulumi.OutputState } - -func (VirtualHubRouteTableResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualHubRouteTableResponse)(nil)).Elem() + return v.AssociatedRouteTable + }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableResponsePtrOutput) ToVirtualHubRouteTableResponsePtrOutput() VirtualHubRouteTableResponsePtrOutput { - return o +// The resource id of the RouteMap associated with this RoutingConfiguration for inbound learned routes. +func (o RoutingConfigurationResponsePtrOutput) InboundRouteMap() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.InboundRouteMap + }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableResponsePtrOutput) ToVirtualHubRouteTableResponsePtrOutputWithContext(ctx context.Context) VirtualHubRouteTableResponsePtrOutput { - return o +// The resource id of theRouteMap associated with this RoutingConfiguration for outbound advertised routes. +func (o RoutingConfigurationResponsePtrOutput) OutboundRouteMap() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.OutboundRouteMap + }).(SubResourceResponsePtrOutput) } -func (o VirtualHubRouteTableResponsePtrOutput) Elem() VirtualHubRouteTableResponseOutput { - return o.ApplyT(func(v *VirtualHubRouteTableResponse) VirtualHubRouteTableResponse { - if v != nil { - return *v +// The list of RouteTables to advertise the routes to. +func (o RoutingConfigurationResponsePtrOutput) PropagatedRouteTables() PropagatedRouteTableResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) *PropagatedRouteTableResponse { + if v == nil { + return nil } - var ret VirtualHubRouteTableResponse - return ret - }).(VirtualHubRouteTableResponseOutput) + return v.PropagatedRouteTables + }).(PropagatedRouteTableResponsePtrOutput) } -// List of all routes. -func (o VirtualHubRouteTableResponsePtrOutput) Routes() VirtualHubRouteResponseArrayOutput { - return o.ApplyT(func(v *VirtualHubRouteTableResponse) []VirtualHubRouteResponse { +// List of routes that control routing from VirtualHub into a virtual network connection. +func (o RoutingConfigurationResponsePtrOutput) VnetRoutes() VnetRouteResponsePtrOutput { + return o.ApplyT(func(v *RoutingConfigurationResponse) *VnetRouteResponse { if v == nil { return nil } - return v.Routes - }).(VirtualHubRouteResponseArrayOutput) + return v.VnetRoutes + }).(VnetRouteResponsePtrOutput) } -// VirtualHubRouteTableV2 Resource. -type VirtualHubRouteTableV2Type struct { - // List of all connections attached to this route table v2. - AttachedConnections []string `pulumi:"attachedConnections"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // List of all routes. - Routes []VirtualHubRouteV2 `pulumi:"routes"` +// The routing policy object used in a RoutingIntent resource. +type RoutingPolicy struct { + // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). + Destinations []string `pulumi:"destinations"` + // The unique name for the routing policy. + Name string `pulumi:"name"` + // The next hop resource id on which this routing policy is applicable to. + NextHop string `pulumi:"nextHop"` } -// VirtualHubRouteTableV2TypeInput is an input type that accepts VirtualHubRouteTableV2TypeArgs and VirtualHubRouteTableV2TypeOutput values. -// You can construct a concrete instance of `VirtualHubRouteTableV2TypeInput` via: +// RoutingPolicyInput is an input type that accepts RoutingPolicyArgs and RoutingPolicyOutput values. +// You can construct a concrete instance of `RoutingPolicyInput` via: // -// VirtualHubRouteTableV2TypeArgs{...} -type VirtualHubRouteTableV2TypeInput interface { +// RoutingPolicyArgs{...} +type RoutingPolicyInput interface { pulumi.Input - ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput - ToVirtualHubRouteTableV2TypeOutputWithContext(context.Context) VirtualHubRouteTableV2TypeOutput + ToRoutingPolicyOutput() RoutingPolicyOutput + ToRoutingPolicyOutputWithContext(context.Context) RoutingPolicyOutput } -// VirtualHubRouteTableV2 Resource. -type VirtualHubRouteTableV2TypeArgs struct { - // List of all connections attached to this route table v2. - AttachedConnections pulumi.StringArrayInput `pulumi:"attachedConnections"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name pulumi.StringPtrInput `pulumi:"name"` - // List of all routes. - Routes VirtualHubRouteV2ArrayInput `pulumi:"routes"` +// The routing policy object used in a RoutingIntent resource. +type RoutingPolicyArgs struct { + // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). + Destinations pulumi.StringArrayInput `pulumi:"destinations"` + // The unique name for the routing policy. + Name pulumi.StringInput `pulumi:"name"` + // The next hop resource id on which this routing policy is applicable to. + NextHop pulumi.StringInput `pulumi:"nextHop"` } -func (VirtualHubRouteTableV2TypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTableV2Type)(nil)).Elem() +func (RoutingPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPolicy)(nil)).Elem() } -func (i VirtualHubRouteTableV2TypeArgs) ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput { - return i.ToVirtualHubRouteTableV2TypeOutputWithContext(context.Background()) +func (i RoutingPolicyArgs) ToRoutingPolicyOutput() RoutingPolicyOutput { + return i.ToRoutingPolicyOutputWithContext(context.Background()) } -func (i VirtualHubRouteTableV2TypeArgs) ToVirtualHubRouteTableV2TypeOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableV2TypeOutput) +func (i RoutingPolicyArgs) ToRoutingPolicyOutputWithContext(ctx context.Context) RoutingPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingPolicyOutput) } -// VirtualHubRouteTableV2TypeArrayInput is an input type that accepts VirtualHubRouteTableV2TypeArray and VirtualHubRouteTableV2TypeArrayOutput values. -// You can construct a concrete instance of `VirtualHubRouteTableV2TypeArrayInput` via: +// RoutingPolicyArrayInput is an input type that accepts RoutingPolicyArray and RoutingPolicyArrayOutput values. +// You can construct a concrete instance of `RoutingPolicyArrayInput` via: // -// VirtualHubRouteTableV2TypeArray{ VirtualHubRouteTableV2TypeArgs{...} } -type VirtualHubRouteTableV2TypeArrayInput interface { +// RoutingPolicyArray{ RoutingPolicyArgs{...} } +type RoutingPolicyArrayInput interface { pulumi.Input - ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput - ToVirtualHubRouteTableV2TypeArrayOutputWithContext(context.Context) VirtualHubRouteTableV2TypeArrayOutput + ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput + ToRoutingPolicyArrayOutputWithContext(context.Context) RoutingPolicyArrayOutput } -type VirtualHubRouteTableV2TypeArray []VirtualHubRouteTableV2TypeInput +type RoutingPolicyArray []RoutingPolicyInput -func (VirtualHubRouteTableV2TypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteTableV2Type)(nil)).Elem() +func (RoutingPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingPolicy)(nil)).Elem() } -func (i VirtualHubRouteTableV2TypeArray) ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput { - return i.ToVirtualHubRouteTableV2TypeArrayOutputWithContext(context.Background()) +func (i RoutingPolicyArray) ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput { + return i.ToRoutingPolicyArrayOutputWithContext(context.Background()) } -func (i VirtualHubRouteTableV2TypeArray) ToVirtualHubRouteTableV2TypeArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableV2TypeArrayOutput) +func (i RoutingPolicyArray) ToRoutingPolicyArrayOutputWithContext(ctx context.Context) RoutingPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingPolicyArrayOutput) } -// VirtualHubRouteTableV2 Resource. -type VirtualHubRouteTableV2TypeOutput struct{ *pulumi.OutputState } +// The routing policy object used in a RoutingIntent resource. +type RoutingPolicyOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteTableV2TypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTableV2Type)(nil)).Elem() +func (RoutingPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPolicy)(nil)).Elem() } -func (o VirtualHubRouteTableV2TypeOutput) ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput { +func (o RoutingPolicyOutput) ToRoutingPolicyOutput() RoutingPolicyOutput { return o } -func (o VirtualHubRouteTableV2TypeOutput) ToVirtualHubRouteTableV2TypeOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeOutput { +func (o RoutingPolicyOutput) ToRoutingPolicyOutputWithContext(ctx context.Context) RoutingPolicyOutput { return o } -// List of all connections attached to this route table v2. -func (o VirtualHubRouteTableV2TypeOutput) AttachedConnections() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Type) []string { return v.AttachedConnections }).(pulumi.StringArrayOutput) -} - -// Resource ID. -func (o VirtualHubRouteTableV2TypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Type) *string { return v.Id }).(pulumi.StringPtrOutput) +// List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). +func (o RoutingPolicyOutput) Destinations() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingPolicy) []string { return v.Destinations }).(pulumi.StringArrayOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o VirtualHubRouteTableV2TypeOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Type) *string { return v.Name }).(pulumi.StringPtrOutput) +// The unique name for the routing policy. +func (o RoutingPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RoutingPolicy) string { return v.Name }).(pulumi.StringOutput) } -// List of all routes. -func (o VirtualHubRouteTableV2TypeOutput) Routes() VirtualHubRouteV2ArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Type) []VirtualHubRouteV2 { return v.Routes }).(VirtualHubRouteV2ArrayOutput) +// The next hop resource id on which this routing policy is applicable to. +func (o RoutingPolicyOutput) NextHop() pulumi.StringOutput { + return o.ApplyT(func(v RoutingPolicy) string { return v.NextHop }).(pulumi.StringOutput) } -type VirtualHubRouteTableV2TypeArrayOutput struct{ *pulumi.OutputState } +type RoutingPolicyArrayOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteTableV2TypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteTableV2Type)(nil)).Elem() +func (RoutingPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingPolicy)(nil)).Elem() } -func (o VirtualHubRouteTableV2TypeArrayOutput) ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput { +func (o RoutingPolicyArrayOutput) ToRoutingPolicyArrayOutput() RoutingPolicyArrayOutput { return o } -func (o VirtualHubRouteTableV2TypeArrayOutput) ToVirtualHubRouteTableV2TypeArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeArrayOutput { +func (o RoutingPolicyArrayOutput) ToRoutingPolicyArrayOutputWithContext(ctx context.Context) RoutingPolicyArrayOutput { return o } -func (o VirtualHubRouteTableV2TypeArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteTableV2TypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteTableV2Type { - return vs[0].([]VirtualHubRouteTableV2Type)[vs[1].(int)] - }).(VirtualHubRouteTableV2TypeOutput) +func (o RoutingPolicyArrayOutput) Index(i pulumi.IntInput) RoutingPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingPolicy { + return vs[0].([]RoutingPolicy)[vs[1].(int)] + }).(RoutingPolicyOutput) } -// VirtualHubRouteTableV2 Resource. -type VirtualHubRouteTableV2Response struct { - // List of all connections attached to this route table v2. - AttachedConnections []string `pulumi:"attachedConnections"` - // A unique read-only string that changes whenever the resource is updated. - Etag string `pulumi:"etag"` - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. - Name *string `pulumi:"name"` - // The provisioning state of the virtual hub route table v2 resource. - ProvisioningState string `pulumi:"provisioningState"` - // List of all routes. - Routes []VirtualHubRouteV2Response `pulumi:"routes"` +// The routing policy object used in a RoutingIntent resource. +type RoutingPolicyResponse struct { + // List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). + Destinations []string `pulumi:"destinations"` + // The unique name for the routing policy. + Name string `pulumi:"name"` + // The next hop resource id on which this routing policy is applicable to. + NextHop string `pulumi:"nextHop"` } -// VirtualHubRouteTableV2 Resource. -type VirtualHubRouteTableV2ResponseOutput struct{ *pulumi.OutputState } +// The routing policy object used in a RoutingIntent resource. +type RoutingPolicyResponseOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteTableV2ResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteTableV2Response)(nil)).Elem() +func (RoutingPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPolicyResponse)(nil)).Elem() } -func (o VirtualHubRouteTableV2ResponseOutput) ToVirtualHubRouteTableV2ResponseOutput() VirtualHubRouteTableV2ResponseOutput { +func (o RoutingPolicyResponseOutput) ToRoutingPolicyResponseOutput() RoutingPolicyResponseOutput { return o } -func (o VirtualHubRouteTableV2ResponseOutput) ToVirtualHubRouteTableV2ResponseOutputWithContext(ctx context.Context) VirtualHubRouteTableV2ResponseOutput { +func (o RoutingPolicyResponseOutput) ToRoutingPolicyResponseOutputWithContext(ctx context.Context) RoutingPolicyResponseOutput { return o } -// List of all connections attached to this route table v2. -func (o VirtualHubRouteTableV2ResponseOutput) AttachedConnections() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) []string { return v.AttachedConnections }).(pulumi.StringArrayOutput) +// List of all destinations which this routing policy is applicable to (for example: Internet, PrivateTraffic). +func (o RoutingPolicyResponseOutput) Destinations() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingPolicyResponse) []string { return v.Destinations }).(pulumi.StringArrayOutput) } -// A unique read-only string that changes whenever the resource is updated. -func (o VirtualHubRouteTableV2ResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) string { return v.Etag }).(pulumi.StringOutput) +// The unique name for the routing policy. +func (o RoutingPolicyResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RoutingPolicyResponse) string { return v.Name }).(pulumi.StringOutput) } -// Resource ID. -func (o VirtualHubRouteTableV2ResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) *string { return v.Id }).(pulumi.StringPtrOutput) +// The next hop resource id on which this routing policy is applicable to. +func (o RoutingPolicyResponseOutput) NextHop() pulumi.StringOutput { + return o.ApplyT(func(v RoutingPolicyResponse) string { return v.NextHop }).(pulumi.StringOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o VirtualHubRouteTableV2ResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) *string { return v.Name }).(pulumi.StringPtrOutput) +type RoutingPolicyResponseArrayOutput struct{ *pulumi.OutputState } + +func (RoutingPolicyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingPolicyResponse)(nil)).Elem() } -// The provisioning state of the virtual hub route table v2 resource. -func (o VirtualHubRouteTableV2ResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) string { return v.ProvisioningState }).(pulumi.StringOutput) +func (o RoutingPolicyResponseArrayOutput) ToRoutingPolicyResponseArrayOutput() RoutingPolicyResponseArrayOutput { + return o } -// List of all routes. -func (o VirtualHubRouteTableV2ResponseOutput) Routes() VirtualHubRouteV2ResponseArrayOutput { - return o.ApplyT(func(v VirtualHubRouteTableV2Response) []VirtualHubRouteV2Response { return v.Routes }).(VirtualHubRouteV2ResponseArrayOutput) +func (o RoutingPolicyResponseArrayOutput) ToRoutingPolicyResponseArrayOutputWithContext(ctx context.Context) RoutingPolicyResponseArrayOutput { + return o } -type VirtualHubRouteTableV2ResponseArrayOutput struct{ *pulumi.OutputState } +func (o RoutingPolicyResponseArrayOutput) Index(i pulumi.IntInput) RoutingPolicyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingPolicyResponse { + return vs[0].([]RoutingPolicyResponse)[vs[1].(int)] + }).(RoutingPolicyResponseOutput) +} -func (VirtualHubRouteTableV2ResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteTableV2Response)(nil)).Elem() +// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. +type RoutingRule struct { + // Protocol schemes to match for this rule + AcceptedProtocols []string `pulumi:"acceptedProtocols"` + // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' + EnabledState *string `pulumi:"enabledState"` + // Frontend endpoints associated with this rule + FrontendEndpoints []SubResource `pulumi:"frontendEndpoints"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource name. + Name *string `pulumi:"name"` + // The route patterns of the rule. + PatternsToMatch []string `pulumi:"patternsToMatch"` + // A reference to the routing configuration. + RouteConfiguration interface{} `pulumi:"routeConfiguration"` + // A reference to a specific Rules Engine Configuration to apply to this route. + RulesEngine *SubResource `pulumi:"rulesEngine"` + // Defines the Web Application Firewall policy for each routing rule (if applicable) + WebApplicationFirewallPolicyLink *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink `pulumi:"webApplicationFirewallPolicyLink"` +} + +// RoutingRuleInput is an input type that accepts RoutingRuleArgs and RoutingRuleOutput values. +// You can construct a concrete instance of `RoutingRuleInput` via: +// +// RoutingRuleArgs{...} +type RoutingRuleInput interface { + pulumi.Input + + ToRoutingRuleOutput() RoutingRuleOutput + ToRoutingRuleOutputWithContext(context.Context) RoutingRuleOutput } -func (o VirtualHubRouteTableV2ResponseArrayOutput) ToVirtualHubRouteTableV2ResponseArrayOutput() VirtualHubRouteTableV2ResponseArrayOutput { - return o +// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. +type RoutingRuleArgs struct { + // Protocol schemes to match for this rule + AcceptedProtocols pulumi.StringArrayInput `pulumi:"acceptedProtocols"` + // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' + EnabledState pulumi.StringPtrInput `pulumi:"enabledState"` + // Frontend endpoints associated with this rule + FrontendEndpoints SubResourceArrayInput `pulumi:"frontendEndpoints"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource name. + Name pulumi.StringPtrInput `pulumi:"name"` + // The route patterns of the rule. + PatternsToMatch pulumi.StringArrayInput `pulumi:"patternsToMatch"` + // A reference to the routing configuration. + RouteConfiguration pulumi.Input `pulumi:"routeConfiguration"` + // A reference to a specific Rules Engine Configuration to apply to this route. + RulesEngine SubResourcePtrInput `pulumi:"rulesEngine"` + // Defines the Web Application Firewall policy for each routing rule (if applicable) + WebApplicationFirewallPolicyLink RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput `pulumi:"webApplicationFirewallPolicyLink"` } -func (o VirtualHubRouteTableV2ResponseArrayOutput) ToVirtualHubRouteTableV2ResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2ResponseArrayOutput { - return o +func (RoutingRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRule)(nil)).Elem() } -func (o VirtualHubRouteTableV2ResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteTableV2ResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteTableV2Response { - return vs[0].([]VirtualHubRouteTableV2Response)[vs[1].(int)] - }).(VirtualHubRouteTableV2ResponseOutput) +func (i RoutingRuleArgs) ToRoutingRuleOutput() RoutingRuleOutput { + return i.ToRoutingRuleOutputWithContext(context.Background()) } -// VirtualHubRouteTableV2 route. -type VirtualHubRouteV2 struct { - // The type of destinations. - DestinationType *string `pulumi:"destinationType"` - // List of all destinations. - Destinations []string `pulumi:"destinations"` - // The type of next hops. - NextHopType *string `pulumi:"nextHopType"` - // NextHops ip address. - NextHops []string `pulumi:"nextHops"` +func (i RoutingRuleArgs) ToRoutingRuleOutputWithContext(ctx context.Context) RoutingRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleOutput) } -// VirtualHubRouteV2Input is an input type that accepts VirtualHubRouteV2Args and VirtualHubRouteV2Output values. -// You can construct a concrete instance of `VirtualHubRouteV2Input` via: +// RoutingRuleArrayInput is an input type that accepts RoutingRuleArray and RoutingRuleArrayOutput values. +// You can construct a concrete instance of `RoutingRuleArrayInput` via: // -// VirtualHubRouteV2Args{...} -type VirtualHubRouteV2Input interface { +// RoutingRuleArray{ RoutingRuleArgs{...} } +type RoutingRuleArrayInput interface { pulumi.Input - ToVirtualHubRouteV2Output() VirtualHubRouteV2Output - ToVirtualHubRouteV2OutputWithContext(context.Context) VirtualHubRouteV2Output + ToRoutingRuleArrayOutput() RoutingRuleArrayOutput + ToRoutingRuleArrayOutputWithContext(context.Context) RoutingRuleArrayOutput } -// VirtualHubRouteTableV2 route. -type VirtualHubRouteV2Args struct { - // The type of destinations. - DestinationType pulumi.StringPtrInput `pulumi:"destinationType"` - // List of all destinations. - Destinations pulumi.StringArrayInput `pulumi:"destinations"` - // The type of next hops. - NextHopType pulumi.StringPtrInput `pulumi:"nextHopType"` - // NextHops ip address. - NextHops pulumi.StringArrayInput `pulumi:"nextHops"` +type RoutingRuleArray []RoutingRuleInput + +func (RoutingRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingRule)(nil)).Elem() } -func (VirtualHubRouteV2Args) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteV2)(nil)).Elem() +func (i RoutingRuleArray) ToRoutingRuleArrayOutput() RoutingRuleArrayOutput { + return i.ToRoutingRuleArrayOutputWithContext(context.Background()) } -func (i VirtualHubRouteV2Args) ToVirtualHubRouteV2Output() VirtualHubRouteV2Output { - return i.ToVirtualHubRouteV2OutputWithContext(context.Background()) +func (i RoutingRuleArray) ToRoutingRuleArrayOutputWithContext(ctx context.Context) RoutingRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleArrayOutput) } -func (i VirtualHubRouteV2Args) ToVirtualHubRouteV2OutputWithContext(ctx context.Context) VirtualHubRouteV2Output { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteV2Output) +// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. +type RoutingRuleOutput struct{ *pulumi.OutputState } + +func (RoutingRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRule)(nil)).Elem() } -// VirtualHubRouteV2ArrayInput is an input type that accepts VirtualHubRouteV2Array and VirtualHubRouteV2ArrayOutput values. -// You can construct a concrete instance of `VirtualHubRouteV2ArrayInput` via: -// -// VirtualHubRouteV2Array{ VirtualHubRouteV2Args{...} } -type VirtualHubRouteV2ArrayInput interface { - pulumi.Input +func (o RoutingRuleOutput) ToRoutingRuleOutput() RoutingRuleOutput { + return o +} - ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput - ToVirtualHubRouteV2ArrayOutputWithContext(context.Context) VirtualHubRouteV2ArrayOutput +func (o RoutingRuleOutput) ToRoutingRuleOutputWithContext(ctx context.Context) RoutingRuleOutput { + return o } -type VirtualHubRouteV2Array []VirtualHubRouteV2Input +// Protocol schemes to match for this rule +func (o RoutingRuleOutput) AcceptedProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingRule) []string { return v.AcceptedProtocols }).(pulumi.StringArrayOutput) +} -func (VirtualHubRouteV2Array) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteV2)(nil)).Elem() +// Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' +func (o RoutingRuleOutput) EnabledState() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRule) *string { return v.EnabledState }).(pulumi.StringPtrOutput) } -func (i VirtualHubRouteV2Array) ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput { - return i.ToVirtualHubRouteV2ArrayOutputWithContext(context.Background()) +// Frontend endpoints associated with this rule +func (o RoutingRuleOutput) FrontendEndpoints() SubResourceArrayOutput { + return o.ApplyT(func(v RoutingRule) []SubResource { return v.FrontendEndpoints }).(SubResourceArrayOutput) } -func (i VirtualHubRouteV2Array) ToVirtualHubRouteV2ArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteV2ArrayOutput) +// Resource ID. +func (o RoutingRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRule) *string { return v.Id }).(pulumi.StringPtrOutput) } -// VirtualHubRouteTableV2 route. -type VirtualHubRouteV2Output struct{ *pulumi.OutputState } +// Resource name. +func (o RoutingRuleOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRule) *string { return v.Name }).(pulumi.StringPtrOutput) +} -func (VirtualHubRouteV2Output) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteV2)(nil)).Elem() +// The route patterns of the rule. +func (o RoutingRuleOutput) PatternsToMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingRule) []string { return v.PatternsToMatch }).(pulumi.StringArrayOutput) } -func (o VirtualHubRouteV2Output) ToVirtualHubRouteV2Output() VirtualHubRouteV2Output { +// A reference to the routing configuration. +func (o RoutingRuleOutput) RouteConfiguration() pulumi.AnyOutput { + return o.ApplyT(func(v RoutingRule) interface{} { return v.RouteConfiguration }).(pulumi.AnyOutput) +} + +// A reference to a specific Rules Engine Configuration to apply to this route. +func (o RoutingRuleOutput) RulesEngine() SubResourcePtrOutput { + return o.ApplyT(func(v RoutingRule) *SubResource { return v.RulesEngine }).(SubResourcePtrOutput) +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +func (o RoutingRuleOutput) WebApplicationFirewallPolicyLink() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return o.ApplyT(func(v RoutingRule) *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { + return v.WebApplicationFirewallPolicyLink + }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) +} + +type RoutingRuleArrayOutput struct{ *pulumi.OutputState } + +func (RoutingRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingRule)(nil)).Elem() +} + +func (o RoutingRuleArrayOutput) ToRoutingRuleArrayOutput() RoutingRuleArrayOutput { return o } -func (o VirtualHubRouteV2Output) ToVirtualHubRouteV2OutputWithContext(ctx context.Context) VirtualHubRouteV2Output { +func (o RoutingRuleArrayOutput) ToRoutingRuleArrayOutputWithContext(ctx context.Context) RoutingRuleArrayOutput { return o } -// The type of destinations. -func (o VirtualHubRouteV2Output) DestinationType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteV2) *string { return v.DestinationType }).(pulumi.StringPtrOutput) +func (o RoutingRuleArrayOutput) Index(i pulumi.IntInput) RoutingRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRule { + return vs[0].([]RoutingRule)[vs[1].(int)] + }).(RoutingRuleOutput) } -// List of all destinations. -func (o VirtualHubRouteV2Output) Destinations() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteV2) []string { return v.Destinations }).(pulumi.StringArrayOutput) +// Defines the Resource ID for a Routing Rule. +type RoutingRuleLinkResponse struct { + // Resource ID. + Id *string `pulumi:"id"` } -// The type of next hops. -func (o VirtualHubRouteV2Output) NextHopType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteV2) *string { return v.NextHopType }).(pulumi.StringPtrOutput) +// Defines the Resource ID for a Routing Rule. +type RoutingRuleLinkResponseOutput struct{ *pulumi.OutputState } + +func (RoutingRuleLinkResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRuleLinkResponse)(nil)).Elem() } -// NextHops ip address. -func (o VirtualHubRouteV2Output) NextHops() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteV2) []string { return v.NextHops }).(pulumi.StringArrayOutput) +func (o RoutingRuleLinkResponseOutput) ToRoutingRuleLinkResponseOutput() RoutingRuleLinkResponseOutput { + return o } -type VirtualHubRouteV2ArrayOutput struct{ *pulumi.OutputState } +func (o RoutingRuleLinkResponseOutput) ToRoutingRuleLinkResponseOutputWithContext(ctx context.Context) RoutingRuleLinkResponseOutput { + return o +} -func (VirtualHubRouteV2ArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteV2)(nil)).Elem() +// Resource ID. +func (o RoutingRuleLinkResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o VirtualHubRouteV2ArrayOutput) ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput { +type RoutingRuleLinkResponseArrayOutput struct{ *pulumi.OutputState } + +func (RoutingRuleLinkResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingRuleLinkResponse)(nil)).Elem() +} + +func (o RoutingRuleLinkResponseArrayOutput) ToRoutingRuleLinkResponseArrayOutput() RoutingRuleLinkResponseArrayOutput { return o } -func (o VirtualHubRouteV2ArrayOutput) ToVirtualHubRouteV2ArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ArrayOutput { +func (o RoutingRuleLinkResponseArrayOutput) ToRoutingRuleLinkResponseArrayOutputWithContext(ctx context.Context) RoutingRuleLinkResponseArrayOutput { return o } -func (o VirtualHubRouteV2ArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteV2Output { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteV2 { - return vs[0].([]VirtualHubRouteV2)[vs[1].(int)] - }).(VirtualHubRouteV2Output) +func (o RoutingRuleLinkResponseArrayOutput) Index(i pulumi.IntInput) RoutingRuleLinkResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRuleLinkResponse { + return vs[0].([]RoutingRuleLinkResponse)[vs[1].(int)] + }).(RoutingRuleLinkResponseOutput) } -// VirtualHubRouteTableV2 route. -type VirtualHubRouteV2Response struct { - // The type of destinations. - DestinationType *string `pulumi:"destinationType"` - // List of all destinations. - Destinations []string `pulumi:"destinations"` - // The type of next hops. - NextHopType *string `pulumi:"nextHopType"` - // NextHops ip address. - NextHops []string `pulumi:"nextHops"` +// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. +type RoutingRuleResponse struct { + // Protocol schemes to match for this rule + AcceptedProtocols []string `pulumi:"acceptedProtocols"` + // Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' + EnabledState *string `pulumi:"enabledState"` + // Frontend endpoints associated with this rule + FrontendEndpoints []SubResourceResponse `pulumi:"frontendEndpoints"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource name. + Name *string `pulumi:"name"` + // The route patterns of the rule. + PatternsToMatch []string `pulumi:"patternsToMatch"` + // Resource status. + ResourceState string `pulumi:"resourceState"` + // A reference to the routing configuration. + RouteConfiguration interface{} `pulumi:"routeConfiguration"` + // A reference to a specific Rules Engine Configuration to apply to this route. + RulesEngine *SubResourceResponse `pulumi:"rulesEngine"` + // Resource type. + Type string `pulumi:"type"` + // Defines the Web Application Firewall policy for each routing rule (if applicable) + WebApplicationFirewallPolicyLink *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink `pulumi:"webApplicationFirewallPolicyLink"` } -// VirtualHubRouteTableV2 route. -type VirtualHubRouteV2ResponseOutput struct{ *pulumi.OutputState } +// A routing rule represents a specification for traffic to treat and where to send it, along with health probe information. +type RoutingRuleResponseOutput struct{ *pulumi.OutputState } -func (VirtualHubRouteV2ResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualHubRouteV2Response)(nil)).Elem() +func (RoutingRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRuleResponse)(nil)).Elem() } -func (o VirtualHubRouteV2ResponseOutput) ToVirtualHubRouteV2ResponseOutput() VirtualHubRouteV2ResponseOutput { +func (o RoutingRuleResponseOutput) ToRoutingRuleResponseOutput() RoutingRuleResponseOutput { return o } -func (o VirtualHubRouteV2ResponseOutput) ToVirtualHubRouteV2ResponseOutputWithContext(ctx context.Context) VirtualHubRouteV2ResponseOutput { +func (o RoutingRuleResponseOutput) ToRoutingRuleResponseOutputWithContext(ctx context.Context) RoutingRuleResponseOutput { return o } -// The type of destinations. -func (o VirtualHubRouteV2ResponseOutput) DestinationType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteV2Response) *string { return v.DestinationType }).(pulumi.StringPtrOutput) +// Protocol schemes to match for this rule +func (o RoutingRuleResponseOutput) AcceptedProtocols() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingRuleResponse) []string { return v.AcceptedProtocols }).(pulumi.StringArrayOutput) } -// List of all destinations. -func (o VirtualHubRouteV2ResponseOutput) Destinations() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteV2Response) []string { return v.Destinations }).(pulumi.StringArrayOutput) +// Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled' +func (o RoutingRuleResponseOutput) EnabledState() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleResponse) *string { return v.EnabledState }).(pulumi.StringPtrOutput) } -// The type of next hops. -func (o VirtualHubRouteV2ResponseOutput) NextHopType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualHubRouteV2Response) *string { return v.NextHopType }).(pulumi.StringPtrOutput) +// Frontend endpoints associated with this rule +func (o RoutingRuleResponseOutput) FrontendEndpoints() SubResourceResponseArrayOutput { + return o.ApplyT(func(v RoutingRuleResponse) []SubResourceResponse { return v.FrontendEndpoints }).(SubResourceResponseArrayOutput) +} + +// Resource ID. +func (o RoutingRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o RoutingRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The route patterns of the rule. +func (o RoutingRuleResponseOutput) PatternsToMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoutingRuleResponse) []string { return v.PatternsToMatch }).(pulumi.StringArrayOutput) +} + +// Resource status. +func (o RoutingRuleResponseOutput) ResourceState() pulumi.StringOutput { + return o.ApplyT(func(v RoutingRuleResponse) string { return v.ResourceState }).(pulumi.StringOutput) +} + +// A reference to the routing configuration. +func (o RoutingRuleResponseOutput) RouteConfiguration() pulumi.AnyOutput { + return o.ApplyT(func(v RoutingRuleResponse) interface{} { return v.RouteConfiguration }).(pulumi.AnyOutput) +} + +// A reference to a specific Rules Engine Configuration to apply to this route. +func (o RoutingRuleResponseOutput) RulesEngine() SubResourceResponsePtrOutput { + return o.ApplyT(func(v RoutingRuleResponse) *SubResourceResponse { return v.RulesEngine }).(SubResourceResponsePtrOutput) +} + +// Resource type. +func (o RoutingRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v RoutingRuleResponse) string { return v.Type }).(pulumi.StringOutput) +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +func (o RoutingRuleResponseOutput) WebApplicationFirewallPolicyLink() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { + return o.ApplyT(func(v RoutingRuleResponse) *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink { + return v.WebApplicationFirewallPolicyLink + }).(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) +} + +type RoutingRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (RoutingRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoutingRuleResponse)(nil)).Elem() +} + +func (o RoutingRuleResponseArrayOutput) ToRoutingRuleResponseArrayOutput() RoutingRuleResponseArrayOutput { + return o +} + +func (o RoutingRuleResponseArrayOutput) ToRoutingRuleResponseArrayOutputWithContext(ctx context.Context) RoutingRuleResponseArrayOutput { + return o +} + +func (o RoutingRuleResponseArrayOutput) Index(i pulumi.IntInput) RoutingRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoutingRuleResponse { + return vs[0].([]RoutingRuleResponse)[vs[1].(int)] + }).(RoutingRuleResponseOutput) +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink struct { + // Resource ID. + Id *string `pulumi:"id"` +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput struct{ *pulumi.OutputState } + +func (RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { + return o +} + +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { + return o +} + +// Resource ID. +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput struct{ *pulumi.OutputState } + +func (RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { + return o +} + +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput { + return o +} + +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) Elem() RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput { + return o.ApplyT(func(v *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink { + if v != nil { + return *v + } + var ret RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink + return ret + }).(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput) +} + +// Resource ID. +func (o RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLink) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink struct { + // Resource ID. + Id *string `pulumi:"id"` +} + +// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput is an input type that accepts RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs and RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput values. +// You can construct a concrete instance of `RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput` via: +// +// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs{...} +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkInput interface { + pulumi.Input + + ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput + ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { + return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(context.Background()) +} + +func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) +} + +func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +} + +func (i RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput).ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx) +} + +// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput is an input type that accepts RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs, RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtr and RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput values. +// You can construct a concrete instance of `RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput` via: +// +// RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs{...} +// +// or: +// +// nil +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput interface { + pulumi.Input + + ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput + ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput +} + +type routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs + +func RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtr(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkArgs) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrInput { + return (*routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType)(v) +} + +func (*routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (i *routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return i.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +} + +func (i *routingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrType) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) +} + +// Defines the Web Application Firewall policy for each routing rule (if applicable) +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput struct{ *pulumi.OutputState } + +func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { + return o +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { + return o +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return o.ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(context.Background()) +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { + return &v + }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) +} + +// Resource ID. +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput struct{ *pulumi.OutputState } + +func (RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink)(nil)).Elem() +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return o +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) ToRoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutputWithContext(ctx context.Context) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput { + return o +} + +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) Elem() RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput { + return o.ApplyT(func(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink { + if v != nil { + return *v + } + var ret RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink + return ret + }).(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput) +} + +// Resource ID. +func (o RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingRuleUpdateParametersWebApplicationFirewallPolicyLink) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// One or more actions that will execute, modifying the request and/or response. +type RulesEngineAction struct { + // A list of header actions to apply from the request from AFD to the origin. + RequestHeaderActions []HeaderAction `pulumi:"requestHeaderActions"` + // A list of header actions to apply from the response from AFD to the client. + ResponseHeaderActions []HeaderAction `pulumi:"responseHeaderActions"` + // Override the route configuration. + RouteConfigurationOverride interface{} `pulumi:"routeConfigurationOverride"` +} + +// RulesEngineActionInput is an input type that accepts RulesEngineActionArgs and RulesEngineActionOutput values. +// You can construct a concrete instance of `RulesEngineActionInput` via: +// +// RulesEngineActionArgs{...} +type RulesEngineActionInput interface { + pulumi.Input + + ToRulesEngineActionOutput() RulesEngineActionOutput + ToRulesEngineActionOutputWithContext(context.Context) RulesEngineActionOutput +} + +// One or more actions that will execute, modifying the request and/or response. +type RulesEngineActionArgs struct { + // A list of header actions to apply from the request from AFD to the origin. + RequestHeaderActions HeaderActionArrayInput `pulumi:"requestHeaderActions"` + // A list of header actions to apply from the response from AFD to the client. + ResponseHeaderActions HeaderActionArrayInput `pulumi:"responseHeaderActions"` + // Override the route configuration. + RouteConfigurationOverride pulumi.Input `pulumi:"routeConfigurationOverride"` +} + +func (RulesEngineActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineAction)(nil)).Elem() +} + +func (i RulesEngineActionArgs) ToRulesEngineActionOutput() RulesEngineActionOutput { + return i.ToRulesEngineActionOutputWithContext(context.Background()) +} + +func (i RulesEngineActionArgs) ToRulesEngineActionOutputWithContext(ctx context.Context) RulesEngineActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RulesEngineActionOutput) +} + +// One or more actions that will execute, modifying the request and/or response. +type RulesEngineActionOutput struct{ *pulumi.OutputState } + +func (RulesEngineActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineAction)(nil)).Elem() +} + +func (o RulesEngineActionOutput) ToRulesEngineActionOutput() RulesEngineActionOutput { + return o +} + +func (o RulesEngineActionOutput) ToRulesEngineActionOutputWithContext(ctx context.Context) RulesEngineActionOutput { + return o +} + +// A list of header actions to apply from the request from AFD to the origin. +func (o RulesEngineActionOutput) RequestHeaderActions() HeaderActionArrayOutput { + return o.ApplyT(func(v RulesEngineAction) []HeaderAction { return v.RequestHeaderActions }).(HeaderActionArrayOutput) +} + +// A list of header actions to apply from the response from AFD to the client. +func (o RulesEngineActionOutput) ResponseHeaderActions() HeaderActionArrayOutput { + return o.ApplyT(func(v RulesEngineAction) []HeaderAction { return v.ResponseHeaderActions }).(HeaderActionArrayOutput) +} + +// Override the route configuration. +func (o RulesEngineActionOutput) RouteConfigurationOverride() pulumi.AnyOutput { + return o.ApplyT(func(v RulesEngineAction) interface{} { return v.RouteConfigurationOverride }).(pulumi.AnyOutput) +} + +// One or more actions that will execute, modifying the request and/or response. +type RulesEngineActionResponse struct { + // A list of header actions to apply from the request from AFD to the origin. + RequestHeaderActions []HeaderActionResponse `pulumi:"requestHeaderActions"` + // A list of header actions to apply from the response from AFD to the client. + ResponseHeaderActions []HeaderActionResponse `pulumi:"responseHeaderActions"` + // Override the route configuration. + RouteConfigurationOverride interface{} `pulumi:"routeConfigurationOverride"` +} + +// One or more actions that will execute, modifying the request and/or response. +type RulesEngineActionResponseOutput struct{ *pulumi.OutputState } + +func (RulesEngineActionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineActionResponse)(nil)).Elem() +} + +func (o RulesEngineActionResponseOutput) ToRulesEngineActionResponseOutput() RulesEngineActionResponseOutput { + return o +} + +func (o RulesEngineActionResponseOutput) ToRulesEngineActionResponseOutputWithContext(ctx context.Context) RulesEngineActionResponseOutput { + return o +} + +// A list of header actions to apply from the request from AFD to the origin. +func (o RulesEngineActionResponseOutput) RequestHeaderActions() HeaderActionResponseArrayOutput { + return o.ApplyT(func(v RulesEngineActionResponse) []HeaderActionResponse { return v.RequestHeaderActions }).(HeaderActionResponseArrayOutput) +} + +// A list of header actions to apply from the response from AFD to the client. +func (o RulesEngineActionResponseOutput) ResponseHeaderActions() HeaderActionResponseArrayOutput { + return o.ApplyT(func(v RulesEngineActionResponse) []HeaderActionResponse { return v.ResponseHeaderActions }).(HeaderActionResponseArrayOutput) +} + +// Override the route configuration. +func (o RulesEngineActionResponseOutput) RouteConfigurationOverride() pulumi.AnyOutput { + return o.ApplyT(func(v RulesEngineActionResponse) interface{} { return v.RouteConfigurationOverride }).(pulumi.AnyOutput) +} + +// Define a match condition +type RulesEngineMatchCondition struct { + // Describes if this is negate condition or not + NegateCondition *bool `pulumi:"negateCondition"` + // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. + RulesEngineMatchValue []string `pulumi:"rulesEngineMatchValue"` + // Match Variable + RulesEngineMatchVariable string `pulumi:"rulesEngineMatchVariable"` + // Describes operator to apply to the match condition. + RulesEngineOperator string `pulumi:"rulesEngineOperator"` + // Name of selector in RequestHeader or RequestBody to be matched + Selector *string `pulumi:"selector"` + // List of transforms + Transforms []string `pulumi:"transforms"` +} + +// RulesEngineMatchConditionInput is an input type that accepts RulesEngineMatchConditionArgs and RulesEngineMatchConditionOutput values. +// You can construct a concrete instance of `RulesEngineMatchConditionInput` via: +// +// RulesEngineMatchConditionArgs{...} +type RulesEngineMatchConditionInput interface { + pulumi.Input + + ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput + ToRulesEngineMatchConditionOutputWithContext(context.Context) RulesEngineMatchConditionOutput +} + +// Define a match condition +type RulesEngineMatchConditionArgs struct { + // Describes if this is negate condition or not + NegateCondition pulumi.BoolPtrInput `pulumi:"negateCondition"` + // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. + RulesEngineMatchValue pulumi.StringArrayInput `pulumi:"rulesEngineMatchValue"` + // Match Variable + RulesEngineMatchVariable pulumi.StringInput `pulumi:"rulesEngineMatchVariable"` + // Describes operator to apply to the match condition. + RulesEngineOperator pulumi.StringInput `pulumi:"rulesEngineOperator"` + // Name of selector in RequestHeader or RequestBody to be matched + Selector pulumi.StringPtrInput `pulumi:"selector"` + // List of transforms + Transforms pulumi.StringArrayInput `pulumi:"transforms"` +} + +func (RulesEngineMatchConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineMatchCondition)(nil)).Elem() +} + +func (i RulesEngineMatchConditionArgs) ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput { + return i.ToRulesEngineMatchConditionOutputWithContext(context.Background()) +} + +func (i RulesEngineMatchConditionArgs) ToRulesEngineMatchConditionOutputWithContext(ctx context.Context) RulesEngineMatchConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RulesEngineMatchConditionOutput) +} + +// RulesEngineMatchConditionArrayInput is an input type that accepts RulesEngineMatchConditionArray and RulesEngineMatchConditionArrayOutput values. +// You can construct a concrete instance of `RulesEngineMatchConditionArrayInput` via: +// +// RulesEngineMatchConditionArray{ RulesEngineMatchConditionArgs{...} } +type RulesEngineMatchConditionArrayInput interface { + pulumi.Input + + ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput + ToRulesEngineMatchConditionArrayOutputWithContext(context.Context) RulesEngineMatchConditionArrayOutput +} + +type RulesEngineMatchConditionArray []RulesEngineMatchConditionInput + +func (RulesEngineMatchConditionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineMatchCondition)(nil)).Elem() +} + +func (i RulesEngineMatchConditionArray) ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput { + return i.ToRulesEngineMatchConditionArrayOutputWithContext(context.Background()) +} + +func (i RulesEngineMatchConditionArray) ToRulesEngineMatchConditionArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RulesEngineMatchConditionArrayOutput) +} + +// Define a match condition +type RulesEngineMatchConditionOutput struct{ *pulumi.OutputState } + +func (RulesEngineMatchConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineMatchCondition)(nil)).Elem() +} + +func (o RulesEngineMatchConditionOutput) ToRulesEngineMatchConditionOutput() RulesEngineMatchConditionOutput { + return o +} + +func (o RulesEngineMatchConditionOutput) ToRulesEngineMatchConditionOutputWithContext(ctx context.Context) RulesEngineMatchConditionOutput { + return o +} + +// Describes if this is negate condition or not +func (o RulesEngineMatchConditionOutput) NegateCondition() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) *bool { return v.NegateCondition }).(pulumi.BoolPtrOutput) +} + +// Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. +func (o RulesEngineMatchConditionOutput) RulesEngineMatchValue() pulumi.StringArrayOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) []string { return v.RulesEngineMatchValue }).(pulumi.StringArrayOutput) +} + +// Match Variable +func (o RulesEngineMatchConditionOutput) RulesEngineMatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) string { return v.RulesEngineMatchVariable }).(pulumi.StringOutput) +} + +// Describes operator to apply to the match condition. +func (o RulesEngineMatchConditionOutput) RulesEngineOperator() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) string { return v.RulesEngineOperator }).(pulumi.StringOutput) +} + +// Name of selector in RequestHeader or RequestBody to be matched +func (o RulesEngineMatchConditionOutput) Selector() pulumi.StringPtrOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) *string { return v.Selector }).(pulumi.StringPtrOutput) +} + +// List of transforms +func (o RulesEngineMatchConditionOutput) Transforms() pulumi.StringArrayOutput { + return o.ApplyT(func(v RulesEngineMatchCondition) []string { return v.Transforms }).(pulumi.StringArrayOutput) +} + +type RulesEngineMatchConditionArrayOutput struct{ *pulumi.OutputState } + +func (RulesEngineMatchConditionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineMatchCondition)(nil)).Elem() +} + +func (o RulesEngineMatchConditionArrayOutput) ToRulesEngineMatchConditionArrayOutput() RulesEngineMatchConditionArrayOutput { + return o +} + +func (o RulesEngineMatchConditionArrayOutput) ToRulesEngineMatchConditionArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionArrayOutput { + return o +} + +func (o RulesEngineMatchConditionArrayOutput) Index(i pulumi.IntInput) RulesEngineMatchConditionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineMatchCondition { + return vs[0].([]RulesEngineMatchCondition)[vs[1].(int)] + }).(RulesEngineMatchConditionOutput) +} + +// Define a match condition +type RulesEngineMatchConditionResponse struct { + // Describes if this is negate condition or not + NegateCondition *bool `pulumi:"negateCondition"` + // Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. + RulesEngineMatchValue []string `pulumi:"rulesEngineMatchValue"` + // Match Variable + RulesEngineMatchVariable string `pulumi:"rulesEngineMatchVariable"` + // Describes operator to apply to the match condition. + RulesEngineOperator string `pulumi:"rulesEngineOperator"` + // Name of selector in RequestHeader or RequestBody to be matched + Selector *string `pulumi:"selector"` + // List of transforms + Transforms []string `pulumi:"transforms"` +} + +// Define a match condition +type RulesEngineMatchConditionResponseOutput struct{ *pulumi.OutputState } + +func (RulesEngineMatchConditionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineMatchConditionResponse)(nil)).Elem() +} + +func (o RulesEngineMatchConditionResponseOutput) ToRulesEngineMatchConditionResponseOutput() RulesEngineMatchConditionResponseOutput { + return o +} + +func (o RulesEngineMatchConditionResponseOutput) ToRulesEngineMatchConditionResponseOutputWithContext(ctx context.Context) RulesEngineMatchConditionResponseOutput { + return o +} + +// Describes if this is negate condition or not +func (o RulesEngineMatchConditionResponseOutput) NegateCondition() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) *bool { return v.NegateCondition }).(pulumi.BoolPtrOutput) +} + +// Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. +func (o RulesEngineMatchConditionResponseOutput) RulesEngineMatchValue() pulumi.StringArrayOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) []string { return v.RulesEngineMatchValue }).(pulumi.StringArrayOutput) +} + +// Match Variable +func (o RulesEngineMatchConditionResponseOutput) RulesEngineMatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) string { return v.RulesEngineMatchVariable }).(pulumi.StringOutput) +} + +// Describes operator to apply to the match condition. +func (o RulesEngineMatchConditionResponseOutput) RulesEngineOperator() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) string { return v.RulesEngineOperator }).(pulumi.StringOutput) +} + +// Name of selector in RequestHeader or RequestBody to be matched +func (o RulesEngineMatchConditionResponseOutput) Selector() pulumi.StringPtrOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) *string { return v.Selector }).(pulumi.StringPtrOutput) +} + +// List of transforms +func (o RulesEngineMatchConditionResponseOutput) Transforms() pulumi.StringArrayOutput { + return o.ApplyT(func(v RulesEngineMatchConditionResponse) []string { return v.Transforms }).(pulumi.StringArrayOutput) +} + +type RulesEngineMatchConditionResponseArrayOutput struct{ *pulumi.OutputState } + +func (RulesEngineMatchConditionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineMatchConditionResponse)(nil)).Elem() +} + +func (o RulesEngineMatchConditionResponseArrayOutput) ToRulesEngineMatchConditionResponseArrayOutput() RulesEngineMatchConditionResponseArrayOutput { + return o +} + +func (o RulesEngineMatchConditionResponseArrayOutput) ToRulesEngineMatchConditionResponseArrayOutputWithContext(ctx context.Context) RulesEngineMatchConditionResponseArrayOutput { + return o +} + +func (o RulesEngineMatchConditionResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineMatchConditionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineMatchConditionResponse { + return vs[0].([]RulesEngineMatchConditionResponse)[vs[1].(int)] + }).(RulesEngineMatchConditionResponseOutput) +} + +// A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response. +type RulesEngineResponse struct { + // Resource ID. + Id string `pulumi:"id"` + // Resource name. + Name string `pulumi:"name"` + // Resource status. + ResourceState string `pulumi:"resourceState"` + // A list of rules that define a particular Rules Engine Configuration. + Rules []RulesEngineRuleResponse `pulumi:"rules"` + // Resource type. + Type string `pulumi:"type"` +} + +// A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response. +type RulesEngineResponseOutput struct{ *pulumi.OutputState } + +func (RulesEngineResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineResponse)(nil)).Elem() +} + +func (o RulesEngineResponseOutput) ToRulesEngineResponseOutput() RulesEngineResponseOutput { + return o +} + +func (o RulesEngineResponseOutput) ToRulesEngineResponseOutputWithContext(ctx context.Context) RulesEngineResponseOutput { + return o +} + +// Resource ID. +func (o RulesEngineResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineResponse) string { return v.Id }).(pulumi.StringOutput) +} + +// Resource name. +func (o RulesEngineResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Resource status. +func (o RulesEngineResponseOutput) ResourceState() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineResponse) string { return v.ResourceState }).(pulumi.StringOutput) +} + +// A list of rules that define a particular Rules Engine Configuration. +func (o RulesEngineResponseOutput) Rules() RulesEngineRuleResponseArrayOutput { + return o.ApplyT(func(v RulesEngineResponse) []RulesEngineRuleResponse { return v.Rules }).(RulesEngineRuleResponseArrayOutput) +} + +// Resource type. +func (o RulesEngineResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type RulesEngineResponseArrayOutput struct{ *pulumi.OutputState } + +func (RulesEngineResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineResponse)(nil)).Elem() +} + +func (o RulesEngineResponseArrayOutput) ToRulesEngineResponseArrayOutput() RulesEngineResponseArrayOutput { + return o +} + +func (o RulesEngineResponseArrayOutput) ToRulesEngineResponseArrayOutputWithContext(ctx context.Context) RulesEngineResponseArrayOutput { + return o +} + +func (o RulesEngineResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineResponse { + return vs[0].([]RulesEngineResponse)[vs[1].(int)] + }).(RulesEngineResponseOutput) +} + +// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. +type RulesEngineRule struct { + // Actions to perform on the request and response if all of the match conditions are met. + Action RulesEngineAction `pulumi:"action"` + // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. + MatchConditions []RulesEngineMatchCondition `pulumi:"matchConditions"` + // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. + MatchProcessingBehavior *string `pulumi:"matchProcessingBehavior"` + // A name to refer to this specific rule. + Name string `pulumi:"name"` + // A priority assigned to this rule. + Priority int `pulumi:"priority"` +} + +// RulesEngineRuleInput is an input type that accepts RulesEngineRuleArgs and RulesEngineRuleOutput values. +// You can construct a concrete instance of `RulesEngineRuleInput` via: +// +// RulesEngineRuleArgs{...} +type RulesEngineRuleInput interface { + pulumi.Input + + ToRulesEngineRuleOutput() RulesEngineRuleOutput + ToRulesEngineRuleOutputWithContext(context.Context) RulesEngineRuleOutput +} + +// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. +type RulesEngineRuleArgs struct { + // Actions to perform on the request and response if all of the match conditions are met. + Action RulesEngineActionInput `pulumi:"action"` + // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. + MatchConditions RulesEngineMatchConditionArrayInput `pulumi:"matchConditions"` + // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. + MatchProcessingBehavior pulumi.StringPtrInput `pulumi:"matchProcessingBehavior"` + // A name to refer to this specific rule. + Name pulumi.StringInput `pulumi:"name"` + // A priority assigned to this rule. + Priority pulumi.IntInput `pulumi:"priority"` +} + +func (RulesEngineRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineRule)(nil)).Elem() +} + +func (i RulesEngineRuleArgs) ToRulesEngineRuleOutput() RulesEngineRuleOutput { + return i.ToRulesEngineRuleOutputWithContext(context.Background()) +} + +func (i RulesEngineRuleArgs) ToRulesEngineRuleOutputWithContext(ctx context.Context) RulesEngineRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RulesEngineRuleOutput) +} + +// RulesEngineRuleArrayInput is an input type that accepts RulesEngineRuleArray and RulesEngineRuleArrayOutput values. +// You can construct a concrete instance of `RulesEngineRuleArrayInput` via: +// +// RulesEngineRuleArray{ RulesEngineRuleArgs{...} } +type RulesEngineRuleArrayInput interface { + pulumi.Input + + ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput + ToRulesEngineRuleArrayOutputWithContext(context.Context) RulesEngineRuleArrayOutput +} + +type RulesEngineRuleArray []RulesEngineRuleInput + +func (RulesEngineRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineRule)(nil)).Elem() +} + +func (i RulesEngineRuleArray) ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput { + return i.ToRulesEngineRuleArrayOutputWithContext(context.Background()) +} + +func (i RulesEngineRuleArray) ToRulesEngineRuleArrayOutputWithContext(ctx context.Context) RulesEngineRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RulesEngineRuleArrayOutput) +} + +// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. +type RulesEngineRuleOutput struct{ *pulumi.OutputState } + +func (RulesEngineRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineRule)(nil)).Elem() +} + +func (o RulesEngineRuleOutput) ToRulesEngineRuleOutput() RulesEngineRuleOutput { + return o +} + +func (o RulesEngineRuleOutput) ToRulesEngineRuleOutputWithContext(ctx context.Context) RulesEngineRuleOutput { + return o +} + +// Actions to perform on the request and response if all of the match conditions are met. +func (o RulesEngineRuleOutput) Action() RulesEngineActionOutput { + return o.ApplyT(func(v RulesEngineRule) RulesEngineAction { return v.Action }).(RulesEngineActionOutput) +} + +// A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. +func (o RulesEngineRuleOutput) MatchConditions() RulesEngineMatchConditionArrayOutput { + return o.ApplyT(func(v RulesEngineRule) []RulesEngineMatchCondition { return v.MatchConditions }).(RulesEngineMatchConditionArrayOutput) +} + +// If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. +func (o RulesEngineRuleOutput) MatchProcessingBehavior() pulumi.StringPtrOutput { + return o.ApplyT(func(v RulesEngineRule) *string { return v.MatchProcessingBehavior }).(pulumi.StringPtrOutput) +} + +// A name to refer to this specific rule. +func (o RulesEngineRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineRule) string { return v.Name }).(pulumi.StringOutput) +} + +// A priority assigned to this rule. +func (o RulesEngineRuleOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RulesEngineRule) int { return v.Priority }).(pulumi.IntOutput) +} + +type RulesEngineRuleArrayOutput struct{ *pulumi.OutputState } + +func (RulesEngineRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineRule)(nil)).Elem() +} + +func (o RulesEngineRuleArrayOutput) ToRulesEngineRuleArrayOutput() RulesEngineRuleArrayOutput { + return o +} + +func (o RulesEngineRuleArrayOutput) ToRulesEngineRuleArrayOutputWithContext(ctx context.Context) RulesEngineRuleArrayOutput { + return o +} + +func (o RulesEngineRuleArrayOutput) Index(i pulumi.IntInput) RulesEngineRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineRule { + return vs[0].([]RulesEngineRule)[vs[1].(int)] + }).(RulesEngineRuleOutput) +} + +// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. +type RulesEngineRuleResponse struct { + // Actions to perform on the request and response if all of the match conditions are met. + Action RulesEngineActionResponse `pulumi:"action"` + // A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. + MatchConditions []RulesEngineMatchConditionResponse `pulumi:"matchConditions"` + // If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. + MatchProcessingBehavior *string `pulumi:"matchProcessingBehavior"` + // A name to refer to this specific rule. + Name string `pulumi:"name"` + // A priority assigned to this rule. + Priority int `pulumi:"priority"` +} + +// Contains a list of match conditions, and an action on how to modify the request/response. If multiple rules match, the actions from one rule that conflict with a previous rule overwrite for a singular action, or append in the case of headers manipulation. +type RulesEngineRuleResponseOutput struct{ *pulumi.OutputState } + +func (RulesEngineRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RulesEngineRuleResponse)(nil)).Elem() +} + +func (o RulesEngineRuleResponseOutput) ToRulesEngineRuleResponseOutput() RulesEngineRuleResponseOutput { + return o +} + +func (o RulesEngineRuleResponseOutput) ToRulesEngineRuleResponseOutputWithContext(ctx context.Context) RulesEngineRuleResponseOutput { + return o +} + +// Actions to perform on the request and response if all of the match conditions are met. +func (o RulesEngineRuleResponseOutput) Action() RulesEngineActionResponseOutput { + return o.ApplyT(func(v RulesEngineRuleResponse) RulesEngineActionResponse { return v.Action }).(RulesEngineActionResponseOutput) +} + +// A list of match conditions that must meet in order for the actions of this rule to run. Having no match conditions means the actions will always run. +func (o RulesEngineRuleResponseOutput) MatchConditions() RulesEngineMatchConditionResponseArrayOutput { + return o.ApplyT(func(v RulesEngineRuleResponse) []RulesEngineMatchConditionResponse { return v.MatchConditions }).(RulesEngineMatchConditionResponseArrayOutput) +} + +// If this rule is a match should the rules engine continue running the remaining rules or stop. If not present, defaults to Continue. +func (o RulesEngineRuleResponseOutput) MatchProcessingBehavior() pulumi.StringPtrOutput { + return o.ApplyT(func(v RulesEngineRuleResponse) *string { return v.MatchProcessingBehavior }).(pulumi.StringPtrOutput) +} + +// A name to refer to this specific rule. +func (o RulesEngineRuleResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RulesEngineRuleResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// A priority assigned to this rule. +func (o RulesEngineRuleResponseOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RulesEngineRuleResponse) int { return v.Priority }).(pulumi.IntOutput) +} + +type RulesEngineRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (RulesEngineRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RulesEngineRuleResponse)(nil)).Elem() +} + +func (o RulesEngineRuleResponseArrayOutput) ToRulesEngineRuleResponseArrayOutput() RulesEngineRuleResponseArrayOutput { + return o +} + +func (o RulesEngineRuleResponseArrayOutput) ToRulesEngineRuleResponseArrayOutputWithContext(ctx context.Context) RulesEngineRuleResponseArrayOutput { + return o +} + +func (o RulesEngineRuleResponseArrayOutput) Index(i pulumi.IntInput) RulesEngineRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RulesEngineRuleResponse { + return vs[0].([]RulesEngineRuleResponse)[vs[1].(int)] + }).(RulesEngineRuleResponseOutput) +} + +// Defines the Resource ID for a Security Policy. +type SecurityPolicyLinkResponse struct { + // Resource ID. + Id *string `pulumi:"id"` +} + +// Defines the Resource ID for a Security Policy. +type SecurityPolicyLinkResponseOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyLinkResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyLinkResponse)(nil)).Elem() +} + +func (o SecurityPolicyLinkResponseOutput) ToSecurityPolicyLinkResponseOutput() SecurityPolicyLinkResponseOutput { + return o +} + +func (o SecurityPolicyLinkResponseOutput) ToSecurityPolicyLinkResponseOutputWithContext(ctx context.Context) SecurityPolicyLinkResponseOutput { + return o +} + +// Resource ID. +func (o SecurityPolicyLinkResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyLinkResponseArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyLinkResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyLinkResponse)(nil)).Elem() +} + +func (o SecurityPolicyLinkResponseArrayOutput) ToSecurityPolicyLinkResponseArrayOutput() SecurityPolicyLinkResponseArrayOutput { + return o +} + +func (o SecurityPolicyLinkResponseArrayOutput) ToSecurityPolicyLinkResponseArrayOutputWithContext(ctx context.Context) SecurityPolicyLinkResponseArrayOutput { + return o +} + +func (o SecurityPolicyLinkResponseArrayOutput) Index(i pulumi.IntInput) SecurityPolicyLinkResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyLinkResponse { + return vs[0].([]SecurityPolicyLinkResponse)[vs[1].(int)] + }).(SecurityPolicyLinkResponseOutput) +} + +// Network security rule. +type SecurityRuleType struct { + // The network traffic is allowed or denied. + Access string `pulumi:"access"` + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. + DestinationAddressPrefix *string `pulumi:"destinationAddressPrefix"` + // The destination address prefixes. CIDR or destination IP ranges. + DestinationAddressPrefixes []string `pulumi:"destinationAddressPrefixes"` + // The application security group specified as destination. + DestinationApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"destinationApplicationSecurityGroups"` + // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + DestinationPortRange *string `pulumi:"destinationPortRange"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. + Direction string `pulumi:"direction"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority *int `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` + // The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState *string `pulumi:"provisioningState"` + // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. + SourceAddressPrefix *string `pulumi:"sourceAddressPrefix"` + // The CIDR or source IP ranges. + SourceAddressPrefixes []string `pulumi:"sourceAddressPrefixes"` + // The application security group specified as source. + SourceApplicationSecurityGroups []ApplicationSecurityGroupType `pulumi:"sourceApplicationSecurityGroups"` + // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + SourcePortRange *string `pulumi:"sourcePortRange"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The type of the resource. + Type *string `pulumi:"type"` +} + +// SecurityRuleTypeInput is an input type that accepts SecurityRuleTypeArgs and SecurityRuleTypeOutput values. +// You can construct a concrete instance of `SecurityRuleTypeInput` via: +// +// SecurityRuleTypeArgs{...} +type SecurityRuleTypeInput interface { + pulumi.Input + + ToSecurityRuleTypeOutput() SecurityRuleTypeOutput + ToSecurityRuleTypeOutputWithContext(context.Context) SecurityRuleTypeOutput +} + +// Network security rule. +type SecurityRuleTypeArgs struct { + // The network traffic is allowed or denied. + Access pulumi.StringInput `pulumi:"access"` + // A description for this rule. Restricted to 140 chars. + Description pulumi.StringPtrInput `pulumi:"description"` + // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. + DestinationAddressPrefix pulumi.StringPtrInput `pulumi:"destinationAddressPrefix"` + // The destination address prefixes. CIDR or destination IP ranges. + DestinationAddressPrefixes pulumi.StringArrayInput `pulumi:"destinationAddressPrefixes"` + // The application security group specified as destination. + DestinationApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput `pulumi:"destinationApplicationSecurityGroups"` + // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + DestinationPortRange pulumi.StringPtrInput `pulumi:"destinationPortRange"` + // The destination port ranges. + DestinationPortRanges pulumi.StringArrayInput `pulumi:"destinationPortRanges"` + // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. + Direction pulumi.StringInput `pulumi:"direction"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol pulumi.StringInput `pulumi:"protocol"` + // The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. + SourceAddressPrefix pulumi.StringPtrInput `pulumi:"sourceAddressPrefix"` + // The CIDR or source IP ranges. + SourceAddressPrefixes pulumi.StringArrayInput `pulumi:"sourceAddressPrefixes"` + // The application security group specified as source. + SourceApplicationSecurityGroups ApplicationSecurityGroupTypeArrayInput `pulumi:"sourceApplicationSecurityGroups"` + // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + SourcePortRange pulumi.StringPtrInput `pulumi:"sourcePortRange"` + // The source port ranges. + SourcePortRanges pulumi.StringArrayInput `pulumi:"sourcePortRanges"` + // The type of the resource. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (SecurityRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityRuleType)(nil)).Elem() +} + +func (i SecurityRuleTypeArgs) ToSecurityRuleTypeOutput() SecurityRuleTypeOutput { + return i.ToSecurityRuleTypeOutputWithContext(context.Background()) +} + +func (i SecurityRuleTypeArgs) ToSecurityRuleTypeOutputWithContext(ctx context.Context) SecurityRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityRuleTypeOutput) +} + +// SecurityRuleTypeArrayInput is an input type that accepts SecurityRuleTypeArray and SecurityRuleTypeArrayOutput values. +// You can construct a concrete instance of `SecurityRuleTypeArrayInput` via: +// +// SecurityRuleTypeArray{ SecurityRuleTypeArgs{...} } +type SecurityRuleTypeArrayInput interface { + pulumi.Input + + ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput + ToSecurityRuleTypeArrayOutputWithContext(context.Context) SecurityRuleTypeArrayOutput +} + +type SecurityRuleTypeArray []SecurityRuleTypeInput + +func (SecurityRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityRuleType)(nil)).Elem() +} + +func (i SecurityRuleTypeArray) ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput { + return i.ToSecurityRuleTypeArrayOutputWithContext(context.Background()) +} + +func (i SecurityRuleTypeArray) ToSecurityRuleTypeArrayOutputWithContext(ctx context.Context) SecurityRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityRuleTypeArrayOutput) +} + +// Network security rule. +type SecurityRuleTypeOutput struct{ *pulumi.OutputState } + +func (SecurityRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityRuleType)(nil)).Elem() +} + +func (o SecurityRuleTypeOutput) ToSecurityRuleTypeOutput() SecurityRuleTypeOutput { + return o +} + +func (o SecurityRuleTypeOutput) ToSecurityRuleTypeOutputWithContext(ctx context.Context) SecurityRuleTypeOutput { + return o +} + +// The network traffic is allowed or denied. +func (o SecurityRuleTypeOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleType) string { return v.Access }).(pulumi.StringOutput) +} + +// A description for this rule. Restricted to 140 chars. +func (o SecurityRuleTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. +func (o SecurityRuleTypeOutput) DestinationAddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.DestinationAddressPrefix }).(pulumi.StringPtrOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o SecurityRuleTypeOutput) DestinationAddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []string { return v.DestinationAddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The application security group specified as destination. +func (o SecurityRuleTypeOutput) DestinationApplicationSecurityGroups() ApplicationSecurityGroupTypeArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []ApplicationSecurityGroupType { return v.DestinationApplicationSecurityGroups }).(ApplicationSecurityGroupTypeArrayOutput) +} + +// The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. +func (o SecurityRuleTypeOutput) DestinationPortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.DestinationPortRange }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o SecurityRuleTypeOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. +func (o SecurityRuleTypeOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleType) string { return v.Direction }).(pulumi.StringOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SecurityRuleTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o SecurityRuleTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SecurityRuleTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. +func (o SecurityRuleTypeOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// Network protocol this rule applies to. +func (o SecurityRuleTypeOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleType) string { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'. +func (o SecurityRuleTypeOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) +} + +// The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. +func (o SecurityRuleTypeOutput) SourceAddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.SourceAddressPrefix }).(pulumi.StringPtrOutput) +} + +// The CIDR or source IP ranges. +func (o SecurityRuleTypeOutput) SourceAddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []string { return v.SourceAddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The application security group specified as source. +func (o SecurityRuleTypeOutput) SourceApplicationSecurityGroups() ApplicationSecurityGroupTypeArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []ApplicationSecurityGroupType { return v.SourceApplicationSecurityGroups }).(ApplicationSecurityGroupTypeArrayOutput) +} + +// The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. +func (o SecurityRuleTypeOutput) SourcePortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.SourcePortRange }).(pulumi.StringPtrOutput) +} + +// The source port ranges. +func (o SecurityRuleTypeOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleType) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The type of the resource. +func (o SecurityRuleTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleType) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SecurityRuleTypeArrayOutput struct{ *pulumi.OutputState } + +func (SecurityRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityRuleType)(nil)).Elem() +} + +func (o SecurityRuleTypeArrayOutput) ToSecurityRuleTypeArrayOutput() SecurityRuleTypeArrayOutput { + return o +} + +func (o SecurityRuleTypeArrayOutput) ToSecurityRuleTypeArrayOutputWithContext(ctx context.Context) SecurityRuleTypeArrayOutput { + return o +} + +func (o SecurityRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityRuleType { + return vs[0].([]SecurityRuleType)[vs[1].(int)] + }).(SecurityRuleTypeOutput) +} + +// Network security rule. +type SecurityRuleResponse struct { + // The network traffic is allowed or denied. + Access string `pulumi:"access"` + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. + DestinationAddressPrefix *string `pulumi:"destinationAddressPrefix"` + // The destination address prefixes. CIDR or destination IP ranges. + DestinationAddressPrefixes []string `pulumi:"destinationAddressPrefixes"` + // The application security group specified as destination. + DestinationApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"destinationApplicationSecurityGroups"` + // The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + DestinationPortRange *string `pulumi:"destinationPortRange"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. + Direction string `pulumi:"direction"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. + Priority int `pulumi:"priority"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` + // The provisioning state of the security rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. + SourceAddressPrefix *string `pulumi:"sourceAddressPrefix"` + // The CIDR or source IP ranges. + SourceAddressPrefixes []string `pulumi:"sourceAddressPrefixes"` + // The application security group specified as source. + SourceApplicationSecurityGroups []ApplicationSecurityGroupResponse `pulumi:"sourceApplicationSecurityGroups"` + // The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. + SourcePortRange *string `pulumi:"sourcePortRange"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The type of the resource. + Type *string `pulumi:"type"` +} + +// Network security rule. +type SecurityRuleResponseOutput struct{ *pulumi.OutputState } + +func (SecurityRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityRuleResponse)(nil)).Elem() +} + +func (o SecurityRuleResponseOutput) ToSecurityRuleResponseOutput() SecurityRuleResponseOutput { + return o +} + +func (o SecurityRuleResponseOutput) ToSecurityRuleResponseOutputWithContext(ctx context.Context) SecurityRuleResponseOutput { + return o +} + +// The network traffic is allowed or denied. +func (o SecurityRuleResponseOutput) Access() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleResponse) string { return v.Access }).(pulumi.StringOutput) +} + +// A description for this rule. Restricted to 140 chars. +func (o SecurityRuleResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. +func (o SecurityRuleResponseOutput) DestinationAddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.DestinationAddressPrefix }).(pulumi.StringPtrOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o SecurityRuleResponseOutput) DestinationAddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []string { return v.DestinationAddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The application security group specified as destination. +func (o SecurityRuleResponseOutput) DestinationApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []ApplicationSecurityGroupResponse { + return v.DestinationApplicationSecurityGroups + }).(ApplicationSecurityGroupResponseArrayOutput) +} + +// The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. +func (o SecurityRuleResponseOutput) DestinationPortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.DestinationPortRange }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o SecurityRuleResponseOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []string { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. +func (o SecurityRuleResponseOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleResponse) string { return v.Direction }).(pulumi.StringOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SecurityRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o SecurityRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SecurityRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. +func (o SecurityRuleResponseOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v SecurityRuleResponse) int { return v.Priority }).(pulumi.IntOutput) +} + +// Network protocol this rule applies to. +func (o SecurityRuleResponseOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleResponse) string { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the security rule resource. +func (o SecurityRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v SecurityRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from. +func (o SecurityRuleResponseOutput) SourceAddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.SourceAddressPrefix }).(pulumi.StringPtrOutput) +} + +// The CIDR or source IP ranges. +func (o SecurityRuleResponseOutput) SourceAddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []string { return v.SourceAddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The application security group specified as source. +func (o SecurityRuleResponseOutput) SourceApplicationSecurityGroups() ApplicationSecurityGroupResponseArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []ApplicationSecurityGroupResponse { + return v.SourceApplicationSecurityGroups + }).(ApplicationSecurityGroupResponseArrayOutput) +} + +// The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports. +func (o SecurityRuleResponseOutput) SourcePortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.SourcePortRange }).(pulumi.StringPtrOutput) +} + +// The source port ranges. +func (o SecurityRuleResponseOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityRuleResponse) []string { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The type of the resource. +func (o SecurityRuleResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityRuleResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SecurityRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (SecurityRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityRuleResponse)(nil)).Elem() +} + +func (o SecurityRuleResponseArrayOutput) ToSecurityRuleResponseArrayOutput() SecurityRuleResponseArrayOutput { + return o +} + +func (o SecurityRuleResponseArrayOutput) ToSecurityRuleResponseArrayOutputWithContext(ctx context.Context) SecurityRuleResponseArrayOutput { + return o +} + +func (o SecurityRuleResponseArrayOutput) Index(i pulumi.IntInput) SecurityRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityRuleResponse { + return vs[0].([]SecurityRuleResponse)[vs[1].(int)] + }).(SecurityRuleResponseOutput) +} + +// ServiceAssociationLink resource. +type ServiceAssociationLink struct { + // Resource ID. + Id *string `pulumi:"id"` + // Link to the external resource. + Link *string `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType *string `pulumi:"linkedResourceType"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` +} + +// ServiceAssociationLinkInput is an input type that accepts ServiceAssociationLinkArgs and ServiceAssociationLinkOutput values. +// You can construct a concrete instance of `ServiceAssociationLinkInput` via: +// +// ServiceAssociationLinkArgs{...} +type ServiceAssociationLinkInput interface { + pulumi.Input + + ToServiceAssociationLinkOutput() ServiceAssociationLinkOutput + ToServiceAssociationLinkOutputWithContext(context.Context) ServiceAssociationLinkOutput +} + +// ServiceAssociationLink resource. +type ServiceAssociationLinkArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Link to the external resource. + Link pulumi.StringPtrInput `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType pulumi.StringPtrInput `pulumi:"linkedResourceType"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (ServiceAssociationLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAssociationLink)(nil)).Elem() +} + +func (i ServiceAssociationLinkArgs) ToServiceAssociationLinkOutput() ServiceAssociationLinkOutput { + return i.ToServiceAssociationLinkOutputWithContext(context.Background()) +} + +func (i ServiceAssociationLinkArgs) ToServiceAssociationLinkOutputWithContext(ctx context.Context) ServiceAssociationLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAssociationLinkOutput) +} + +// ServiceAssociationLinkArrayInput is an input type that accepts ServiceAssociationLinkArray and ServiceAssociationLinkArrayOutput values. +// You can construct a concrete instance of `ServiceAssociationLinkArrayInput` via: +// +// ServiceAssociationLinkArray{ ServiceAssociationLinkArgs{...} } +type ServiceAssociationLinkArrayInput interface { + pulumi.Input + + ToServiceAssociationLinkArrayOutput() ServiceAssociationLinkArrayOutput + ToServiceAssociationLinkArrayOutputWithContext(context.Context) ServiceAssociationLinkArrayOutput +} + +type ServiceAssociationLinkArray []ServiceAssociationLinkInput + +func (ServiceAssociationLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAssociationLink)(nil)).Elem() +} + +func (i ServiceAssociationLinkArray) ToServiceAssociationLinkArrayOutput() ServiceAssociationLinkArrayOutput { + return i.ToServiceAssociationLinkArrayOutputWithContext(context.Background()) +} + +func (i ServiceAssociationLinkArray) ToServiceAssociationLinkArrayOutputWithContext(ctx context.Context) ServiceAssociationLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAssociationLinkArrayOutput) +} + +// ServiceAssociationLink resource. +type ServiceAssociationLinkOutput struct{ *pulumi.OutputState } + +func (ServiceAssociationLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAssociationLink)(nil)).Elem() +} + +func (o ServiceAssociationLinkOutput) ToServiceAssociationLinkOutput() ServiceAssociationLinkOutput { + return o +} + +func (o ServiceAssociationLinkOutput) ToServiceAssociationLinkOutputWithContext(ctx context.Context) ServiceAssociationLinkOutput { + return o +} + +// Resource ID. +func (o ServiceAssociationLinkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLink) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Link to the external resource. +func (o ServiceAssociationLinkOutput) Link() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLink) *string { return v.Link }).(pulumi.StringPtrOutput) +} + +// Resource type of the linked resource. +func (o ServiceAssociationLinkOutput) LinkedResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLink) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) +} + +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ServiceAssociationLinkOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLink) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type ServiceAssociationLinkArrayOutput struct{ *pulumi.OutputState } + +func (ServiceAssociationLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAssociationLink)(nil)).Elem() +} + +func (o ServiceAssociationLinkArrayOutput) ToServiceAssociationLinkArrayOutput() ServiceAssociationLinkArrayOutput { + return o +} + +func (o ServiceAssociationLinkArrayOutput) ToServiceAssociationLinkArrayOutputWithContext(ctx context.Context) ServiceAssociationLinkArrayOutput { + return o +} + +func (o ServiceAssociationLinkArrayOutput) Index(i pulumi.IntInput) ServiceAssociationLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAssociationLink { + return vs[0].([]ServiceAssociationLink)[vs[1].(int)] + }).(ServiceAssociationLinkOutput) +} + +// ServiceAssociationLink resource. +type ServiceAssociationLinkResponse struct { + // If true, the resource can be deleted. + AllowDelete *bool `pulumi:"allowDelete"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Link to the external resource. + Link *string `pulumi:"link"` + // Resource type of the linked resource. + LinkedResourceType *string `pulumi:"linkedResourceType"` + // A list of locations. + Locations []string `pulumi:"locations"` + // Name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the service association link resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource type. + Type string `pulumi:"type"` +} + +// ServiceAssociationLink resource. +type ServiceAssociationLinkResponseOutput struct{ *pulumi.OutputState } + +func (ServiceAssociationLinkResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAssociationLinkResponse)(nil)).Elem() +} + +func (o ServiceAssociationLinkResponseOutput) ToServiceAssociationLinkResponseOutput() ServiceAssociationLinkResponseOutput { + return o +} + +func (o ServiceAssociationLinkResponseOutput) ToServiceAssociationLinkResponseOutputWithContext(ctx context.Context) ServiceAssociationLinkResponseOutput { + return o +} + +// If true, the resource can be deleted. +func (o ServiceAssociationLinkResponseOutput) AllowDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) *bool { return v.AllowDelete }).(pulumi.BoolPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ServiceAssociationLinkResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o ServiceAssociationLinkResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Link to the external resource. +func (o ServiceAssociationLinkResponseOutput) Link() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Link }).(pulumi.StringPtrOutput) +} + +// Resource type of the linked resource. +func (o ServiceAssociationLinkResponseOutput) LinkedResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.LinkedResourceType }).(pulumi.StringPtrOutput) +} + +// A list of locations. +func (o ServiceAssociationLinkResponseOutput) Locations() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) []string { return v.Locations }).(pulumi.StringArrayOutput) +} + +// Name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ServiceAssociationLinkResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the service association link resource. +func (o ServiceAssociationLinkResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Resource type. +func (o ServiceAssociationLinkResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ServiceAssociationLinkResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ServiceAssociationLinkResponseArrayOutput struct{ *pulumi.OutputState } + +func (ServiceAssociationLinkResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAssociationLinkResponse)(nil)).Elem() +} + +func (o ServiceAssociationLinkResponseArrayOutput) ToServiceAssociationLinkResponseArrayOutput() ServiceAssociationLinkResponseArrayOutput { + return o +} + +func (o ServiceAssociationLinkResponseArrayOutput) ToServiceAssociationLinkResponseArrayOutputWithContext(ctx context.Context) ServiceAssociationLinkResponseArrayOutput { + return o +} + +func (o ServiceAssociationLinkResponseArrayOutput) Index(i pulumi.IntInput) ServiceAssociationLinkResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAssociationLinkResponse { + return vs[0].([]ServiceAssociationLinkResponse)[vs[1].(int)] + }).(ServiceAssociationLinkResponseOutput) +} + +// Service End point policy resource. +type ServiceEndpointPolicyType struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies []string `pulumi:"contextualServiceEndpointPolicies"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // The alias indicating if the policy belongs to a service + ServiceAlias *string `pulumi:"serviceAlias"` + // A collection of service endpoint policy definitions of the service endpoint policy. + ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionType `pulumi:"serviceEndpointPolicyDefinitions"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` +} + +// ServiceEndpointPolicyTypeInput is an input type that accepts ServiceEndpointPolicyTypeArgs and ServiceEndpointPolicyTypeOutput values. +// You can construct a concrete instance of `ServiceEndpointPolicyTypeInput` via: +// +// ServiceEndpointPolicyTypeArgs{...} +type ServiceEndpointPolicyTypeInput interface { + pulumi.Input + + ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput + ToServiceEndpointPolicyTypeOutputWithContext(context.Context) ServiceEndpointPolicyTypeOutput +} + +// Service End point policy resource. +type ServiceEndpointPolicyTypeArgs struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies pulumi.StringArrayInput `pulumi:"contextualServiceEndpointPolicies"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // The alias indicating if the policy belongs to a service + ServiceAlias pulumi.StringPtrInput `pulumi:"serviceAlias"` + // A collection of service endpoint policy definitions of the service endpoint policy. + ServiceEndpointPolicyDefinitions ServiceEndpointPolicyDefinitionTypeArrayInput `pulumi:"serviceEndpointPolicyDefinitions"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (ServiceEndpointPolicyTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyType)(nil)).Elem() +} + +func (i ServiceEndpointPolicyTypeArgs) ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput { + return i.ToServiceEndpointPolicyTypeOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPolicyTypeArgs) ToServiceEndpointPolicyTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyTypeOutput) +} + +// ServiceEndpointPolicyTypeArrayInput is an input type that accepts ServiceEndpointPolicyTypeArray and ServiceEndpointPolicyTypeArrayOutput values. +// You can construct a concrete instance of `ServiceEndpointPolicyTypeArrayInput` via: +// +// ServiceEndpointPolicyTypeArray{ ServiceEndpointPolicyTypeArgs{...} } +type ServiceEndpointPolicyTypeArrayInput interface { + pulumi.Input + + ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput + ToServiceEndpointPolicyTypeArrayOutputWithContext(context.Context) ServiceEndpointPolicyTypeArrayOutput +} + +type ServiceEndpointPolicyTypeArray []ServiceEndpointPolicyTypeInput + +func (ServiceEndpointPolicyTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyType)(nil)).Elem() +} + +func (i ServiceEndpointPolicyTypeArray) ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput { + return i.ToServiceEndpointPolicyTypeArrayOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPolicyTypeArray) ToServiceEndpointPolicyTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyTypeArrayOutput) +} + +// Service End point policy resource. +type ServiceEndpointPolicyTypeOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyType)(nil)).Elem() +} + +func (o ServiceEndpointPolicyTypeOutput) ToServiceEndpointPolicyTypeOutput() ServiceEndpointPolicyTypeOutput { + return o +} + +func (o ServiceEndpointPolicyTypeOutput) ToServiceEndpointPolicyTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeOutput { + return o +} + +// A collection of contextual service endpoint policy. +func (o ServiceEndpointPolicyTypeOutput) ContextualServiceEndpointPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) []string { return v.ContextualServiceEndpointPolicies }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ServiceEndpointPolicyTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o ServiceEndpointPolicyTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o ServiceEndpointPolicyTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// The alias indicating if the policy belongs to a service +func (o ServiceEndpointPolicyTypeOutput) ServiceAlias() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) *string { return v.ServiceAlias }).(pulumi.StringPtrOutput) +} + +// A collection of service endpoint policy definitions of the service endpoint policy. +func (o ServiceEndpointPolicyTypeOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionTypeArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) []ServiceEndpointPolicyDefinitionType { + return v.ServiceEndpointPolicyDefinitions + }).(ServiceEndpointPolicyDefinitionTypeArrayOutput) +} + +// Resource tags. +func (o ServiceEndpointPolicyTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceEndpointPolicyType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type ServiceEndpointPolicyTypeArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyType)(nil)).Elem() +} + +func (o ServiceEndpointPolicyTypeArrayOutput) ToServiceEndpointPolicyTypeArrayOutput() ServiceEndpointPolicyTypeArrayOutput { + return o +} + +func (o ServiceEndpointPolicyTypeArrayOutput) ToServiceEndpointPolicyTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyTypeArrayOutput { + return o +} + +func (o ServiceEndpointPolicyTypeArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyType { + return vs[0].([]ServiceEndpointPolicyType)[vs[1].(int)] + }).(ServiceEndpointPolicyTypeOutput) +} + +// Service Endpoint policy definitions. +type ServiceEndpointPolicyDefinitionType struct { + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Service endpoint name. + Service *string `pulumi:"service"` + // A list of service resources. + ServiceResources []string `pulumi:"serviceResources"` + // The type of the resource. + Type *string `pulumi:"type"` +} + +// ServiceEndpointPolicyDefinitionTypeInput is an input type that accepts ServiceEndpointPolicyDefinitionTypeArgs and ServiceEndpointPolicyDefinitionTypeOutput values. +// You can construct a concrete instance of `ServiceEndpointPolicyDefinitionTypeInput` via: +// +// ServiceEndpointPolicyDefinitionTypeArgs{...} +type ServiceEndpointPolicyDefinitionTypeInput interface { + pulumi.Input + + ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput + ToServiceEndpointPolicyDefinitionTypeOutputWithContext(context.Context) ServiceEndpointPolicyDefinitionTypeOutput +} + +// Service Endpoint policy definitions. +type ServiceEndpointPolicyDefinitionTypeArgs struct { + // A description for this rule. Restricted to 140 chars. + Description pulumi.StringPtrInput `pulumi:"description"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // Service endpoint name. + Service pulumi.StringPtrInput `pulumi:"service"` + // A list of service resources. + ServiceResources pulumi.StringArrayInput `pulumi:"serviceResources"` + // The type of the resource. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (ServiceEndpointPolicyDefinitionTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyDefinitionType)(nil)).Elem() +} + +func (i ServiceEndpointPolicyDefinitionTypeArgs) ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput { + return i.ToServiceEndpointPolicyDefinitionTypeOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPolicyDefinitionTypeArgs) ToServiceEndpointPolicyDefinitionTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyDefinitionTypeOutput) +} + +// ServiceEndpointPolicyDefinitionTypeArrayInput is an input type that accepts ServiceEndpointPolicyDefinitionTypeArray and ServiceEndpointPolicyDefinitionTypeArrayOutput values. +// You can construct a concrete instance of `ServiceEndpointPolicyDefinitionTypeArrayInput` via: +// +// ServiceEndpointPolicyDefinitionTypeArray{ ServiceEndpointPolicyDefinitionTypeArgs{...} } +type ServiceEndpointPolicyDefinitionTypeArrayInput interface { + pulumi.Input + + ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput + ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput +} + +type ServiceEndpointPolicyDefinitionTypeArray []ServiceEndpointPolicyDefinitionTypeInput + +func (ServiceEndpointPolicyDefinitionTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionType)(nil)).Elem() +} + +func (i ServiceEndpointPolicyDefinitionTypeArray) ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput { + return i.ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPolicyDefinitionTypeArray) ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPolicyDefinitionTypeArrayOutput) +} + +// Service Endpoint policy definitions. +type ServiceEndpointPolicyDefinitionTypeOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyDefinitionTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyDefinitionType)(nil)).Elem() +} + +func (o ServiceEndpointPolicyDefinitionTypeOutput) ToServiceEndpointPolicyDefinitionTypeOutput() ServiceEndpointPolicyDefinitionTypeOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionTypeOutput) ToServiceEndpointPolicyDefinitionTypeOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeOutput { + return o +} + +// A description for this rule. Restricted to 140 chars. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Service endpoint name. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Service }).(pulumi.StringPtrOutput) +} + +// A list of service resources. +func (o ServiceEndpointPolicyDefinitionTypeOutput) ServiceResources() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) []string { return v.ServiceResources }).(pulumi.StringArrayOutput) +} + +// The type of the resource. +func (o ServiceEndpointPolicyDefinitionTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionType) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ServiceEndpointPolicyDefinitionTypeArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyDefinitionTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionType)(nil)).Elem() +} + +func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) ToServiceEndpointPolicyDefinitionTypeArrayOutput() ServiceEndpointPolicyDefinitionTypeArrayOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) ToServiceEndpointPolicyDefinitionTypeArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionTypeArrayOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionTypeArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyDefinitionTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyDefinitionType { + return vs[0].([]ServiceEndpointPolicyDefinitionType)[vs[1].(int)] + }).(ServiceEndpointPolicyDefinitionTypeOutput) +} + +// Service Endpoint policy definitions. +type ServiceEndpointPolicyDefinitionResponse struct { + // A description for this rule. Restricted to 140 chars. + Description *string `pulumi:"description"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the service endpoint policy definition resource. + ProvisioningState string `pulumi:"provisioningState"` + // Service endpoint name. + Service *string `pulumi:"service"` + // A list of service resources. + ServiceResources []string `pulumi:"serviceResources"` + // The type of the resource. + Type *string `pulumi:"type"` +} + +// Service Endpoint policy definitions. +type ServiceEndpointPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyDefinitionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyDefinitionResponse)(nil)).Elem() +} + +func (o ServiceEndpointPolicyDefinitionResponseOutput) ToServiceEndpointPolicyDefinitionResponseOutput() ServiceEndpointPolicyDefinitionResponseOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionResponseOutput) ToServiceEndpointPolicyDefinitionResponseOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionResponseOutput { + return o +} + +// A description for this rule. Restricted to 140 chars. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the service endpoint policy definition resource. +func (o ServiceEndpointPolicyDefinitionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Service endpoint name. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Service }).(pulumi.StringPtrOutput) +} + +// A list of service resources. +func (o ServiceEndpointPolicyDefinitionResponseOutput) ServiceResources() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) []string { return v.ServiceResources }).(pulumi.StringArrayOutput) +} + +// The type of the resource. +func (o ServiceEndpointPolicyDefinitionResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyDefinitionResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ServiceEndpointPolicyDefinitionResponseArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyDefinitionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyDefinitionResponse)(nil)).Elem() +} + +func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) ToServiceEndpointPolicyDefinitionResponseArrayOutput() ServiceEndpointPolicyDefinitionResponseArrayOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) ToServiceEndpointPolicyDefinitionResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyDefinitionResponseArrayOutput { + return o +} + +func (o ServiceEndpointPolicyDefinitionResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyDefinitionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyDefinitionResponse { + return vs[0].([]ServiceEndpointPolicyDefinitionResponse)[vs[1].(int)] + }).(ServiceEndpointPolicyDefinitionResponseOutput) +} + +// Service End point policy resource. +type ServiceEndpointPolicyResponse struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies []string `pulumi:"contextualServiceEndpointPolicies"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Kind of service endpoint policy. This is metadata used for the Azure portal experience. + Kind string `pulumi:"kind"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // The provisioning state of the service endpoint policy resource. + ProvisioningState string `pulumi:"provisioningState"` + // The resource GUID property of the service endpoint policy resource. + ResourceGuid string `pulumi:"resourceGuid"` + // The alias indicating if the policy belongs to a service + ServiceAlias *string `pulumi:"serviceAlias"` + // A collection of service endpoint policy definitions of the service endpoint policy. + ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionResponse `pulumi:"serviceEndpointPolicyDefinitions"` + // A collection of references to subnets. + Subnets []SubnetResponse `pulumi:"subnets"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` +} + +// Service End point policy resource. +type ServiceEndpointPolicyResponseOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPolicyResponse)(nil)).Elem() +} + +func (o ServiceEndpointPolicyResponseOutput) ToServiceEndpointPolicyResponseOutput() ServiceEndpointPolicyResponseOutput { + return o +} + +func (o ServiceEndpointPolicyResponseOutput) ToServiceEndpointPolicyResponseOutputWithContext(ctx context.Context) ServiceEndpointPolicyResponseOutput { + return o +} + +// A collection of contextual service endpoint policy. +func (o ServiceEndpointPolicyResponseOutput) ContextualServiceEndpointPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) []string { return v.ContextualServiceEndpointPolicies }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o ServiceEndpointPolicyResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o ServiceEndpointPolicyResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Kind of service endpoint policy. This is metadata used for the Azure portal experience. +func (o ServiceEndpointPolicyResponseOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Kind }).(pulumi.StringOutput) +} + +// Resource location. +func (o ServiceEndpointPolicyResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o ServiceEndpointPolicyResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// The provisioning state of the service endpoint policy resource. +func (o ServiceEndpointPolicyResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The resource GUID property of the service endpoint policy resource. +func (o ServiceEndpointPolicyResponseOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) +} + +// The alias indicating if the policy belongs to a service +func (o ServiceEndpointPolicyResponseOutput) ServiceAlias() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) *string { return v.ServiceAlias }).(pulumi.StringPtrOutput) +} + +// A collection of service endpoint policy definitions of the service endpoint policy. +func (o ServiceEndpointPolicyResponseOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionResponseArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) []ServiceEndpointPolicyDefinitionResponse { + return v.ServiceEndpointPolicyDefinitions + }).(ServiceEndpointPolicyDefinitionResponseArrayOutput) +} + +// A collection of references to subnets. +func (o ServiceEndpointPolicyResponseOutput) Subnets() SubnetResponseArrayOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) []SubnetResponse { return v.Subnets }).(SubnetResponseArrayOutput) +} + +// Resource tags. +func (o ServiceEndpointPolicyResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o ServiceEndpointPolicyResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPolicyResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type ServiceEndpointPolicyResponseArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPolicyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPolicyResponse)(nil)).Elem() +} + +func (o ServiceEndpointPolicyResponseArrayOutput) ToServiceEndpointPolicyResponseArrayOutput() ServiceEndpointPolicyResponseArrayOutput { + return o +} + +func (o ServiceEndpointPolicyResponseArrayOutput) ToServiceEndpointPolicyResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPolicyResponseArrayOutput { + return o +} + +func (o ServiceEndpointPolicyResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPolicyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPolicyResponse { + return vs[0].([]ServiceEndpointPolicyResponse)[vs[1].(int)] + }).(ServiceEndpointPolicyResponseOutput) +} + +// The service endpoint properties. +type ServiceEndpointPropertiesFormat struct { + // A list of locations. + Locations []string `pulumi:"locations"` + // The provisioning state of the resource. + ProvisioningState *string `pulumi:"provisioningState"` + // The type of the endpoint service. + Service *string `pulumi:"service"` +} + +// ServiceEndpointPropertiesFormatInput is an input type that accepts ServiceEndpointPropertiesFormatArgs and ServiceEndpointPropertiesFormatOutput values. +// You can construct a concrete instance of `ServiceEndpointPropertiesFormatInput` via: +// +// ServiceEndpointPropertiesFormatArgs{...} +type ServiceEndpointPropertiesFormatInput interface { + pulumi.Input + + ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput + ToServiceEndpointPropertiesFormatOutputWithContext(context.Context) ServiceEndpointPropertiesFormatOutput +} + +// The service endpoint properties. +type ServiceEndpointPropertiesFormatArgs struct { + // A list of locations. + Locations pulumi.StringArrayInput `pulumi:"locations"` + // The provisioning state of the resource. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // The type of the endpoint service. + Service pulumi.StringPtrInput `pulumi:"service"` +} + +func (ServiceEndpointPropertiesFormatArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPropertiesFormat)(nil)).Elem() +} + +func (i ServiceEndpointPropertiesFormatArgs) ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput { + return i.ToServiceEndpointPropertiesFormatOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPropertiesFormatArgs) ToServiceEndpointPropertiesFormatOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPropertiesFormatOutput) +} + +// ServiceEndpointPropertiesFormatArrayInput is an input type that accepts ServiceEndpointPropertiesFormatArray and ServiceEndpointPropertiesFormatArrayOutput values. +// You can construct a concrete instance of `ServiceEndpointPropertiesFormatArrayInput` via: +// +// ServiceEndpointPropertiesFormatArray{ ServiceEndpointPropertiesFormatArgs{...} } +type ServiceEndpointPropertiesFormatArrayInput interface { + pulumi.Input + + ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput + ToServiceEndpointPropertiesFormatArrayOutputWithContext(context.Context) ServiceEndpointPropertiesFormatArrayOutput +} + +type ServiceEndpointPropertiesFormatArray []ServiceEndpointPropertiesFormatInput + +func (ServiceEndpointPropertiesFormatArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPropertiesFormat)(nil)).Elem() +} + +func (i ServiceEndpointPropertiesFormatArray) ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput { + return i.ToServiceEndpointPropertiesFormatArrayOutputWithContext(context.Background()) +} + +func (i ServiceEndpointPropertiesFormatArray) ToServiceEndpointPropertiesFormatArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointPropertiesFormatArrayOutput) +} + +// The service endpoint properties. +type ServiceEndpointPropertiesFormatOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPropertiesFormatOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPropertiesFormat)(nil)).Elem() +} + +func (o ServiceEndpointPropertiesFormatOutput) ToServiceEndpointPropertiesFormatOutput() ServiceEndpointPropertiesFormatOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatOutput) ToServiceEndpointPropertiesFormatOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatOutput { + return o +} + +// A list of locations. +func (o ServiceEndpointPropertiesFormatOutput) Locations() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormat) []string { return v.Locations }).(pulumi.StringArrayOutput) +} + +// The provisioning state of the resource. +func (o ServiceEndpointPropertiesFormatOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormat) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) +} + +// The type of the endpoint service. +func (o ServiceEndpointPropertiesFormatOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormat) *string { return v.Service }).(pulumi.StringPtrOutput) +} + +type ServiceEndpointPropertiesFormatArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPropertiesFormatArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPropertiesFormat)(nil)).Elem() +} + +func (o ServiceEndpointPropertiesFormatArrayOutput) ToServiceEndpointPropertiesFormatArrayOutput() ServiceEndpointPropertiesFormatArrayOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatArrayOutput) ToServiceEndpointPropertiesFormatArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatArrayOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPropertiesFormatOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPropertiesFormat { + return vs[0].([]ServiceEndpointPropertiesFormat)[vs[1].(int)] + }).(ServiceEndpointPropertiesFormatOutput) +} + +// The service endpoint properties. +type ServiceEndpointPropertiesFormatResponse struct { + // A list of locations. + Locations []string `pulumi:"locations"` + // The provisioning state of the service endpoint resource. + ProvisioningState string `pulumi:"provisioningState"` + // The type of the endpoint service. + Service *string `pulumi:"service"` +} + +// The service endpoint properties. +type ServiceEndpointPropertiesFormatResponseOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPropertiesFormatResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointPropertiesFormatResponse)(nil)).Elem() +} + +func (o ServiceEndpointPropertiesFormatResponseOutput) ToServiceEndpointPropertiesFormatResponseOutput() ServiceEndpointPropertiesFormatResponseOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatResponseOutput) ToServiceEndpointPropertiesFormatResponseOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatResponseOutput { + return o +} + +// A list of locations. +func (o ServiceEndpointPropertiesFormatResponseOutput) Locations() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) []string { return v.Locations }).(pulumi.StringArrayOutput) +} + +// The provisioning state of the service endpoint resource. +func (o ServiceEndpointPropertiesFormatResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The type of the endpoint service. +func (o ServiceEndpointPropertiesFormatResponseOutput) Service() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointPropertiesFormatResponse) *string { return v.Service }).(pulumi.StringPtrOutput) +} + +type ServiceEndpointPropertiesFormatResponseArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointPropertiesFormatResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointPropertiesFormatResponse)(nil)).Elem() +} + +func (o ServiceEndpointPropertiesFormatResponseArrayOutput) ToServiceEndpointPropertiesFormatResponseArrayOutput() ServiceEndpointPropertiesFormatResponseArrayOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatResponseArrayOutput) ToServiceEndpointPropertiesFormatResponseArrayOutputWithContext(ctx context.Context) ServiceEndpointPropertiesFormatResponseArrayOutput { + return o +} + +func (o ServiceEndpointPropertiesFormatResponseArrayOutput) Index(i pulumi.IntInput) ServiceEndpointPropertiesFormatResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointPropertiesFormatResponse { + return vs[0].([]ServiceEndpointPropertiesFormatResponse)[vs[1].(int)] + }).(ServiceEndpointPropertiesFormatResponseOutput) +} + +type SingleQueryResultResponse struct { + // Describes what is the signature enforces + Description *string `pulumi:"description"` + // Describes the list of destination ports related to this signature + DestinationPorts []string `pulumi:"destinationPorts"` + // Describes in which direction signature is being enforced: 0 - Inbound, 1 - OutBound, 2 - Bidirectional + Direction *int `pulumi:"direction"` + // Describes the groups the signature belongs to + Group *string `pulumi:"group"` + // Describes if this override is inherited from base policy or not + InheritedFromParentPolicy *bool `pulumi:"inheritedFromParentPolicy"` + // Describes the last updated time of the signature (provided from 3rd party vendor) + LastUpdated *string `pulumi:"lastUpdated"` + // The current mode enforced, 0 - Disabled, 1 - Alert, 2 -Deny + Mode *int `pulumi:"mode"` + // Describes the protocol the signatures is being enforced in + Protocol *string `pulumi:"protocol"` + // Describes the severity of signature: 1 - Low, 2 - Medium, 3 - High + Severity *int `pulumi:"severity"` + // The ID of the signature + SignatureId *int `pulumi:"signatureId"` + // Describes the list of source ports related to this signature + SourcePorts []string `pulumi:"sourcePorts"` +} + +type SingleQueryResultResponseOutput struct{ *pulumi.OutputState } + +func (SingleQueryResultResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SingleQueryResultResponse)(nil)).Elem() +} + +func (o SingleQueryResultResponseOutput) ToSingleQueryResultResponseOutput() SingleQueryResultResponseOutput { + return o +} + +func (o SingleQueryResultResponseOutput) ToSingleQueryResultResponseOutputWithContext(ctx context.Context) SingleQueryResultResponseOutput { + return o +} + +// Describes what is the signature enforces +func (o SingleQueryResultResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Describes the list of destination ports related to this signature +func (o SingleQueryResultResponseOutput) DestinationPorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v SingleQueryResultResponse) []string { return v.DestinationPorts }).(pulumi.StringArrayOutput) +} + +// Describes in which direction signature is being enforced: 0 - Inbound, 1 - OutBound, 2 - Bidirectional +func (o SingleQueryResultResponseOutput) Direction() pulumi.IntPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Direction }).(pulumi.IntPtrOutput) +} + +// Describes the groups the signature belongs to +func (o SingleQueryResultResponseOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// Describes if this override is inherited from base policy or not +func (o SingleQueryResultResponseOutput) InheritedFromParentPolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *bool { return v.InheritedFromParentPolicy }).(pulumi.BoolPtrOutput) +} + +// Describes the last updated time of the signature (provided from 3rd party vendor) +func (o SingleQueryResultResponseOutput) LastUpdated() pulumi.StringPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.LastUpdated }).(pulumi.StringPtrOutput) +} + +// The current mode enforced, 0 - Disabled, 1 - Alert, 2 -Deny +func (o SingleQueryResultResponseOutput) Mode() pulumi.IntPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Mode }).(pulumi.IntPtrOutput) +} + +// Describes the protocol the signatures is being enforced in +func (o SingleQueryResultResponseOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// Describes the severity of signature: 1 - Low, 2 - Medium, 3 - High +func (o SingleQueryResultResponseOutput) Severity() pulumi.IntPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.Severity }).(pulumi.IntPtrOutput) +} + +// The ID of the signature +func (o SingleQueryResultResponseOutput) SignatureId() pulumi.IntPtrOutput { + return o.ApplyT(func(v SingleQueryResultResponse) *int { return v.SignatureId }).(pulumi.IntPtrOutput) +} + +// Describes the list of source ports related to this signature +func (o SingleQueryResultResponseOutput) SourcePorts() pulumi.StringArrayOutput { + return o.ApplyT(func(v SingleQueryResultResponse) []string { return v.SourcePorts }).(pulumi.StringArrayOutput) +} + +type SingleQueryResultResponseArrayOutput struct{ *pulumi.OutputState } + +func (SingleQueryResultResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SingleQueryResultResponse)(nil)).Elem() +} + +func (o SingleQueryResultResponseArrayOutput) ToSingleQueryResultResponseArrayOutput() SingleQueryResultResponseArrayOutput { + return o +} + +func (o SingleQueryResultResponseArrayOutput) ToSingleQueryResultResponseArrayOutputWithContext(ctx context.Context) SingleQueryResultResponseArrayOutput { + return o +} + +func (o SingleQueryResultResponseArrayOutput) Index(i pulumi.IntInput) SingleQueryResultResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SingleQueryResultResponse { + return vs[0].([]SingleQueryResultResponse)[vs[1].(int)] + }).(SingleQueryResultResponseOutput) +} + +// The pricing tier of the web application firewall policy. +type Sku struct { + // Name of the pricing tier. + Name *string `pulumi:"name"` +} + +// SkuInput is an input type that accepts SkuArgs and SkuOutput values. +// You can construct a concrete instance of `SkuInput` via: +// +// SkuArgs{...} +type SkuInput interface { + pulumi.Input + + ToSkuOutput() SkuOutput + ToSkuOutputWithContext(context.Context) SkuOutput +} + +// The pricing tier of the web application firewall policy. +type SkuArgs struct { + // Name of the pricing tier. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (SkuArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Sku)(nil)).Elem() +} + +func (i SkuArgs) ToSkuOutput() SkuOutput { + return i.ToSkuOutputWithContext(context.Background()) +} + +func (i SkuArgs) ToSkuOutputWithContext(ctx context.Context) SkuOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkuOutput) +} + +func (i SkuArgs) ToSkuPtrOutput() SkuPtrOutput { + return i.ToSkuPtrOutputWithContext(context.Background()) +} + +func (i SkuArgs) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkuOutput).ToSkuPtrOutputWithContext(ctx) +} + +// SkuPtrInput is an input type that accepts SkuArgs, SkuPtr and SkuPtrOutput values. +// You can construct a concrete instance of `SkuPtrInput` via: +// +// SkuArgs{...} +// +// or: +// +// nil +type SkuPtrInput interface { + pulumi.Input + + ToSkuPtrOutput() SkuPtrOutput + ToSkuPtrOutputWithContext(context.Context) SkuPtrOutput +} + +type skuPtrType SkuArgs + +func SkuPtr(v *SkuArgs) SkuPtrInput { + return (*skuPtrType)(v) +} + +func (*skuPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Sku)(nil)).Elem() +} + +func (i *skuPtrType) ToSkuPtrOutput() SkuPtrOutput { + return i.ToSkuPtrOutputWithContext(context.Background()) +} + +func (i *skuPtrType) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkuPtrOutput) +} + +// The pricing tier of the web application firewall policy. +type SkuOutput struct{ *pulumi.OutputState } + +func (SkuOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Sku)(nil)).Elem() +} + +func (o SkuOutput) ToSkuOutput() SkuOutput { + return o +} + +func (o SkuOutput) ToSkuOutputWithContext(ctx context.Context) SkuOutput { + return o +} + +func (o SkuOutput) ToSkuPtrOutput() SkuPtrOutput { + return o.ToSkuPtrOutputWithContext(context.Background()) +} + +func (o SkuOutput) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Sku) *Sku { + return &v + }).(SkuPtrOutput) +} + +// Name of the pricing tier. +func (o SkuOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v Sku) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type SkuPtrOutput struct{ *pulumi.OutputState } + +func (SkuPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Sku)(nil)).Elem() +} + +func (o SkuPtrOutput) ToSkuPtrOutput() SkuPtrOutput { + return o +} + +func (o SkuPtrOutput) ToSkuPtrOutputWithContext(ctx context.Context) SkuPtrOutput { + return o +} + +func (o SkuPtrOutput) Elem() SkuOutput { + return o.ApplyT(func(v *Sku) Sku { + if v != nil { + return *v + } + var ret Sku + return ret + }).(SkuOutput) +} + +// Name of the pricing tier. +func (o SkuPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Sku) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The pricing tier of the web application firewall policy. +type SkuResponse struct { + // Name of the pricing tier. + Name *string `pulumi:"name"` +} + +// The pricing tier of the web application firewall policy. +type SkuResponseOutput struct{ *pulumi.OutputState } + +func (SkuResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkuResponse)(nil)).Elem() +} + +func (o SkuResponseOutput) ToSkuResponseOutput() SkuResponseOutput { + return o +} + +func (o SkuResponseOutput) ToSkuResponseOutputWithContext(ctx context.Context) SkuResponseOutput { + return o +} + +// Name of the pricing tier. +func (o SkuResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SkuResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type SkuResponsePtrOutput struct{ *pulumi.OutputState } + +func (SkuResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SkuResponse)(nil)).Elem() +} + +func (o SkuResponsePtrOutput) ToSkuResponsePtrOutput() SkuResponsePtrOutput { + return o +} + +func (o SkuResponsePtrOutput) ToSkuResponsePtrOutputWithContext(ctx context.Context) SkuResponsePtrOutput { + return o +} + +func (o SkuResponsePtrOutput) Elem() SkuResponseOutput { + return o.ApplyT(func(v *SkuResponse) SkuResponse { + if v != nil { + return *v + } + var ret SkuResponse + return ret + }).(SkuResponseOutput) +} + +// Name of the pricing tier. +func (o SkuResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SkuResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// An SOA record. +type SoaRecord struct { + // The email contact for this SOA record. + Email *string `pulumi:"email"` + // The expire time for this SOA record. + ExpireTime *float64 `pulumi:"expireTime"` + // The domain name of the authoritative name server for this SOA record. + Host *string `pulumi:"host"` + // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. + MinimumTtl *float64 `pulumi:"minimumTtl"` + // The refresh value for this SOA record. + RefreshTime *float64 `pulumi:"refreshTime"` + // The retry time for this SOA record. + RetryTime *float64 `pulumi:"retryTime"` + // The serial number for this SOA record. + SerialNumber *float64 `pulumi:"serialNumber"` +} + +// SoaRecordInput is an input type that accepts SoaRecordArgs and SoaRecordOutput values. +// You can construct a concrete instance of `SoaRecordInput` via: +// +// SoaRecordArgs{...} +type SoaRecordInput interface { + pulumi.Input + + ToSoaRecordOutput() SoaRecordOutput + ToSoaRecordOutputWithContext(context.Context) SoaRecordOutput +} + +// An SOA record. +type SoaRecordArgs struct { + // The email contact for this SOA record. + Email pulumi.StringPtrInput `pulumi:"email"` + // The expire time for this SOA record. + ExpireTime pulumi.Float64PtrInput `pulumi:"expireTime"` + // The domain name of the authoritative name server for this SOA record. + Host pulumi.StringPtrInput `pulumi:"host"` + // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. + MinimumTtl pulumi.Float64PtrInput `pulumi:"minimumTtl"` + // The refresh value for this SOA record. + RefreshTime pulumi.Float64PtrInput `pulumi:"refreshTime"` + // The retry time for this SOA record. + RetryTime pulumi.Float64PtrInput `pulumi:"retryTime"` + // The serial number for this SOA record. + SerialNumber pulumi.Float64PtrInput `pulumi:"serialNumber"` +} + +func (SoaRecordArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SoaRecord)(nil)).Elem() +} + +func (i SoaRecordArgs) ToSoaRecordOutput() SoaRecordOutput { + return i.ToSoaRecordOutputWithContext(context.Background()) +} + +func (i SoaRecordArgs) ToSoaRecordOutputWithContext(ctx context.Context) SoaRecordOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoaRecordOutput) +} + +func (i SoaRecordArgs) ToSoaRecordPtrOutput() SoaRecordPtrOutput { + return i.ToSoaRecordPtrOutputWithContext(context.Background()) +} + +func (i SoaRecordArgs) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoaRecordOutput).ToSoaRecordPtrOutputWithContext(ctx) +} + +// SoaRecordPtrInput is an input type that accepts SoaRecordArgs, SoaRecordPtr and SoaRecordPtrOutput values. +// You can construct a concrete instance of `SoaRecordPtrInput` via: +// +// SoaRecordArgs{...} +// +// or: +// +// nil +type SoaRecordPtrInput interface { + pulumi.Input + + ToSoaRecordPtrOutput() SoaRecordPtrOutput + ToSoaRecordPtrOutputWithContext(context.Context) SoaRecordPtrOutput +} + +type soaRecordPtrType SoaRecordArgs + +func SoaRecordPtr(v *SoaRecordArgs) SoaRecordPtrInput { + return (*soaRecordPtrType)(v) +} + +func (*soaRecordPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SoaRecord)(nil)).Elem() +} + +func (i *soaRecordPtrType) ToSoaRecordPtrOutput() SoaRecordPtrOutput { + return i.ToSoaRecordPtrOutputWithContext(context.Background()) +} + +func (i *soaRecordPtrType) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SoaRecordPtrOutput) +} + +// An SOA record. +type SoaRecordOutput struct{ *pulumi.OutputState } + +func (SoaRecordOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SoaRecord)(nil)).Elem() +} + +func (o SoaRecordOutput) ToSoaRecordOutput() SoaRecordOutput { + return o +} + +func (o SoaRecordOutput) ToSoaRecordOutputWithContext(ctx context.Context) SoaRecordOutput { + return o +} + +func (o SoaRecordOutput) ToSoaRecordPtrOutput() SoaRecordPtrOutput { + return o.ToSoaRecordPtrOutputWithContext(context.Background()) +} + +func (o SoaRecordOutput) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SoaRecord) *SoaRecord { + return &v + }).(SoaRecordPtrOutput) +} + +// The email contact for this SOA record. +func (o SoaRecordOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v SoaRecord) *string { return v.Email }).(pulumi.StringPtrOutput) +} + +// The expire time for this SOA record. +func (o SoaRecordOutput) ExpireTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecord) *float64 { return v.ExpireTime }).(pulumi.Float64PtrOutput) +} + +// The domain name of the authoritative name server for this SOA record. +func (o SoaRecordOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v SoaRecord) *string { return v.Host }).(pulumi.StringPtrOutput) +} + +// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. +func (o SoaRecordOutput) MinimumTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecord) *float64 { return v.MinimumTtl }).(pulumi.Float64PtrOutput) +} + +// The refresh value for this SOA record. +func (o SoaRecordOutput) RefreshTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecord) *float64 { return v.RefreshTime }).(pulumi.Float64PtrOutput) +} + +// The retry time for this SOA record. +func (o SoaRecordOutput) RetryTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecord) *float64 { return v.RetryTime }).(pulumi.Float64PtrOutput) +} + +// The serial number for this SOA record. +func (o SoaRecordOutput) SerialNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecord) *float64 { return v.SerialNumber }).(pulumi.Float64PtrOutput) +} + +type SoaRecordPtrOutput struct{ *pulumi.OutputState } + +func (SoaRecordPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SoaRecord)(nil)).Elem() +} + +func (o SoaRecordPtrOutput) ToSoaRecordPtrOutput() SoaRecordPtrOutput { + return o +} + +func (o SoaRecordPtrOutput) ToSoaRecordPtrOutputWithContext(ctx context.Context) SoaRecordPtrOutput { + return o +} + +func (o SoaRecordPtrOutput) Elem() SoaRecordOutput { + return o.ApplyT(func(v *SoaRecord) SoaRecord { + if v != nil { + return *v + } + var ret SoaRecord + return ret + }).(SoaRecordOutput) +} + +// The email contact for this SOA record. +func (o SoaRecordPtrOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SoaRecord) *string { + if v == nil { + return nil + } + return v.Email + }).(pulumi.StringPtrOutput) +} + +// The expire time for this SOA record. +func (o SoaRecordPtrOutput) ExpireTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecord) *float64 { + if v == nil { + return nil + } + return v.ExpireTime + }).(pulumi.Float64PtrOutput) +} + +// The domain name of the authoritative name server for this SOA record. +func (o SoaRecordPtrOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SoaRecord) *string { + if v == nil { + return nil + } + return v.Host + }).(pulumi.StringPtrOutput) +} + +// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. +func (o SoaRecordPtrOutput) MinimumTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecord) *float64 { + if v == nil { + return nil + } + return v.MinimumTtl + }).(pulumi.Float64PtrOutput) +} + +// The refresh value for this SOA record. +func (o SoaRecordPtrOutput) RefreshTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecord) *float64 { + if v == nil { + return nil + } + return v.RefreshTime + }).(pulumi.Float64PtrOutput) +} + +// The retry time for this SOA record. +func (o SoaRecordPtrOutput) RetryTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecord) *float64 { + if v == nil { + return nil + } + return v.RetryTime + }).(pulumi.Float64PtrOutput) +} + +// The serial number for this SOA record. +func (o SoaRecordPtrOutput) SerialNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecord) *float64 { + if v == nil { + return nil + } + return v.SerialNumber + }).(pulumi.Float64PtrOutput) +} + +// An SOA record. +type SoaRecordResponse struct { + // The email contact for this SOA record. + Email *string `pulumi:"email"` + // The expire time for this SOA record. + ExpireTime *float64 `pulumi:"expireTime"` + // The domain name of the authoritative name server for this SOA record. + Host *string `pulumi:"host"` + // The minimum value for this SOA record. By convention this is used to determine the negative caching duration. + MinimumTtl *float64 `pulumi:"minimumTtl"` + // The refresh value for this SOA record. + RefreshTime *float64 `pulumi:"refreshTime"` + // The retry time for this SOA record. + RetryTime *float64 `pulumi:"retryTime"` + // The serial number for this SOA record. + SerialNumber *float64 `pulumi:"serialNumber"` +} + +// An SOA record. +type SoaRecordResponseOutput struct{ *pulumi.OutputState } + +func (SoaRecordResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SoaRecordResponse)(nil)).Elem() +} + +func (o SoaRecordResponseOutput) ToSoaRecordResponseOutput() SoaRecordResponseOutput { + return o +} + +func (o SoaRecordResponseOutput) ToSoaRecordResponseOutputWithContext(ctx context.Context) SoaRecordResponseOutput { + return o +} + +// The email contact for this SOA record. +func (o SoaRecordResponseOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *string { return v.Email }).(pulumi.StringPtrOutput) +} + +// The expire time for this SOA record. +func (o SoaRecordResponseOutput) ExpireTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.ExpireTime }).(pulumi.Float64PtrOutput) +} + +// The domain name of the authoritative name server for this SOA record. +func (o SoaRecordResponseOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *string { return v.Host }).(pulumi.StringPtrOutput) +} + +// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. +func (o SoaRecordResponseOutput) MinimumTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.MinimumTtl }).(pulumi.Float64PtrOutput) +} + +// The refresh value for this SOA record. +func (o SoaRecordResponseOutput) RefreshTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.RefreshTime }).(pulumi.Float64PtrOutput) +} + +// The retry time for this SOA record. +func (o SoaRecordResponseOutput) RetryTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.RetryTime }).(pulumi.Float64PtrOutput) +} + +// The serial number for this SOA record. +func (o SoaRecordResponseOutput) SerialNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SoaRecordResponse) *float64 { return v.SerialNumber }).(pulumi.Float64PtrOutput) +} + +type SoaRecordResponsePtrOutput struct{ *pulumi.OutputState } + +func (SoaRecordResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SoaRecordResponse)(nil)).Elem() +} + +func (o SoaRecordResponsePtrOutput) ToSoaRecordResponsePtrOutput() SoaRecordResponsePtrOutput { + return o +} + +func (o SoaRecordResponsePtrOutput) ToSoaRecordResponsePtrOutputWithContext(ctx context.Context) SoaRecordResponsePtrOutput { + return o +} + +func (o SoaRecordResponsePtrOutput) Elem() SoaRecordResponseOutput { + return o.ApplyT(func(v *SoaRecordResponse) SoaRecordResponse { + if v != nil { + return *v + } + var ret SoaRecordResponse + return ret + }).(SoaRecordResponseOutput) +} + +// The email contact for this SOA record. +func (o SoaRecordResponsePtrOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *string { + if v == nil { + return nil + } + return v.Email + }).(pulumi.StringPtrOutput) +} + +// The expire time for this SOA record. +func (o SoaRecordResponsePtrOutput) ExpireTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *float64 { + if v == nil { + return nil + } + return v.ExpireTime + }).(pulumi.Float64PtrOutput) +} + +// The domain name of the authoritative name server for this SOA record. +func (o SoaRecordResponsePtrOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *string { + if v == nil { + return nil + } + return v.Host + }).(pulumi.StringPtrOutput) +} + +// The minimum value for this SOA record. By convention this is used to determine the negative caching duration. +func (o SoaRecordResponsePtrOutput) MinimumTtl() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *float64 { + if v == nil { + return nil + } + return v.MinimumTtl + }).(pulumi.Float64PtrOutput) +} + +// The refresh value for this SOA record. +func (o SoaRecordResponsePtrOutput) RefreshTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *float64 { + if v == nil { + return nil + } + return v.RefreshTime + }).(pulumi.Float64PtrOutput) +} + +// The retry time for this SOA record. +func (o SoaRecordResponsePtrOutput) RetryTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *float64 { + if v == nil { + return nil + } + return v.RetryTime + }).(pulumi.Float64PtrOutput) +} + +// The serial number for this SOA record. +func (o SoaRecordResponsePtrOutput) SerialNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SoaRecordResponse) *float64 { + if v == nil { + return nil + } + return v.SerialNumber + }).(pulumi.Float64PtrOutput) +} + +// An SRV record. +type SrvRecord struct { + // The port value for this SRV record. + Port *int `pulumi:"port"` + // The priority value for this SRV record. + Priority *int `pulumi:"priority"` + // The target domain name for this SRV record. + Target *string `pulumi:"target"` + // The weight value for this SRV record. + Weight *int `pulumi:"weight"` +} + +// SrvRecordInput is an input type that accepts SrvRecordArgs and SrvRecordOutput values. +// You can construct a concrete instance of `SrvRecordInput` via: +// +// SrvRecordArgs{...} +type SrvRecordInput interface { + pulumi.Input + + ToSrvRecordOutput() SrvRecordOutput + ToSrvRecordOutputWithContext(context.Context) SrvRecordOutput +} + +// An SRV record. +type SrvRecordArgs struct { + // The port value for this SRV record. + Port pulumi.IntPtrInput `pulumi:"port"` + // The priority value for this SRV record. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // The target domain name for this SRV record. + Target pulumi.StringPtrInput `pulumi:"target"` + // The weight value for this SRV record. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (SrvRecordArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SrvRecord)(nil)).Elem() +} + +func (i SrvRecordArgs) ToSrvRecordOutput() SrvRecordOutput { + return i.ToSrvRecordOutputWithContext(context.Background()) +} + +func (i SrvRecordArgs) ToSrvRecordOutputWithContext(ctx context.Context) SrvRecordOutput { + return pulumi.ToOutputWithContext(ctx, i).(SrvRecordOutput) +} + +// SrvRecordArrayInput is an input type that accepts SrvRecordArray and SrvRecordArrayOutput values. +// You can construct a concrete instance of `SrvRecordArrayInput` via: +// +// SrvRecordArray{ SrvRecordArgs{...} } +type SrvRecordArrayInput interface { + pulumi.Input + + ToSrvRecordArrayOutput() SrvRecordArrayOutput + ToSrvRecordArrayOutputWithContext(context.Context) SrvRecordArrayOutput +} + +type SrvRecordArray []SrvRecordInput + +func (SrvRecordArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SrvRecord)(nil)).Elem() +} + +func (i SrvRecordArray) ToSrvRecordArrayOutput() SrvRecordArrayOutput { + return i.ToSrvRecordArrayOutputWithContext(context.Background()) +} + +func (i SrvRecordArray) ToSrvRecordArrayOutputWithContext(ctx context.Context) SrvRecordArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SrvRecordArrayOutput) +} + +// An SRV record. +type SrvRecordOutput struct{ *pulumi.OutputState } + +func (SrvRecordOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SrvRecord)(nil)).Elem() +} + +func (o SrvRecordOutput) ToSrvRecordOutput() SrvRecordOutput { + return o +} + +func (o SrvRecordOutput) ToSrvRecordOutputWithContext(ctx context.Context) SrvRecordOutput { + return o +} + +// The port value for this SRV record. +func (o SrvRecordOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecord) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// The priority value for this SRV record. +func (o SrvRecordOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecord) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// The target domain name for this SRV record. +func (o SrvRecordOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SrvRecord) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +// The weight value for this SRV record. +func (o SrvRecordOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecord) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type SrvRecordArrayOutput struct{ *pulumi.OutputState } + +func (SrvRecordArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SrvRecord)(nil)).Elem() +} + +func (o SrvRecordArrayOutput) ToSrvRecordArrayOutput() SrvRecordArrayOutput { + return o +} + +func (o SrvRecordArrayOutput) ToSrvRecordArrayOutputWithContext(ctx context.Context) SrvRecordArrayOutput { + return o +} + +func (o SrvRecordArrayOutput) Index(i pulumi.IntInput) SrvRecordOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SrvRecord { + return vs[0].([]SrvRecord)[vs[1].(int)] + }).(SrvRecordOutput) +} + +// An SRV record. +type SrvRecordResponse struct { + // The port value for this SRV record. + Port *int `pulumi:"port"` + // The priority value for this SRV record. + Priority *int `pulumi:"priority"` + // The target domain name for this SRV record. + Target *string `pulumi:"target"` + // The weight value for this SRV record. + Weight *int `pulumi:"weight"` +} + +// An SRV record. +type SrvRecordResponseOutput struct{ *pulumi.OutputState } + +func (SrvRecordResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SrvRecordResponse)(nil)).Elem() +} + +func (o SrvRecordResponseOutput) ToSrvRecordResponseOutput() SrvRecordResponseOutput { + return o +} + +func (o SrvRecordResponseOutput) ToSrvRecordResponseOutputWithContext(ctx context.Context) SrvRecordResponseOutput { + return o +} + +// The port value for this SRV record. +func (o SrvRecordResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecordResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// The priority value for this SRV record. +func (o SrvRecordResponseOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecordResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// The target domain name for this SRV record. +func (o SrvRecordResponseOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SrvRecordResponse) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +// The weight value for this SRV record. +func (o SrvRecordResponseOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v SrvRecordResponse) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type SrvRecordResponseArrayOutput struct{ *pulumi.OutputState } + +func (SrvRecordResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SrvRecordResponse)(nil)).Elem() +} + +func (o SrvRecordResponseArrayOutput) ToSrvRecordResponseArrayOutput() SrvRecordResponseArrayOutput { + return o +} + +func (o SrvRecordResponseArrayOutput) ToSrvRecordResponseArrayOutputWithContext(ctx context.Context) SrvRecordResponseArrayOutput { + return o +} + +func (o SrvRecordResponseArrayOutput) Index(i pulumi.IntInput) SrvRecordResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SrvRecordResponse { + return vs[0].([]SrvRecordResponse)[vs[1].(int)] + }).(SrvRecordResponseOutput) +} + +// List of all Static Routes. +type StaticRoute struct { + // List of all address prefixes. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // The name of the StaticRoute that is unique within a VnetRoute. + Name *string `pulumi:"name"` + // The ip address of the next hop. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +} + +// StaticRouteInput is an input type that accepts StaticRouteArgs and StaticRouteOutput values. +// You can construct a concrete instance of `StaticRouteInput` via: +// +// StaticRouteArgs{...} +type StaticRouteInput interface { + pulumi.Input + + ToStaticRouteOutput() StaticRouteOutput + ToStaticRouteOutputWithContext(context.Context) StaticRouteOutput +} + +// List of all Static Routes. +type StaticRouteArgs struct { + // List of all address prefixes. + AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` + // The name of the StaticRoute that is unique within a VnetRoute. + Name pulumi.StringPtrInput `pulumi:"name"` + // The ip address of the next hop. + NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` +} + +func (StaticRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRoute)(nil)).Elem() +} + +func (i StaticRouteArgs) ToStaticRouteOutput() StaticRouteOutput { + return i.ToStaticRouteOutputWithContext(context.Background()) +} + +func (i StaticRouteArgs) ToStaticRouteOutputWithContext(ctx context.Context) StaticRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticRouteOutput) +} + +// StaticRouteArrayInput is an input type that accepts StaticRouteArray and StaticRouteArrayOutput values. +// You can construct a concrete instance of `StaticRouteArrayInput` via: +// +// StaticRouteArray{ StaticRouteArgs{...} } +type StaticRouteArrayInput interface { + pulumi.Input + + ToStaticRouteArrayOutput() StaticRouteArrayOutput + ToStaticRouteArrayOutputWithContext(context.Context) StaticRouteArrayOutput +} + +type StaticRouteArray []StaticRouteInput + +func (StaticRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]StaticRoute)(nil)).Elem() +} + +func (i StaticRouteArray) ToStaticRouteArrayOutput() StaticRouteArrayOutput { + return i.ToStaticRouteArrayOutputWithContext(context.Background()) +} + +func (i StaticRouteArray) ToStaticRouteArrayOutputWithContext(ctx context.Context) StaticRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticRouteArrayOutput) +} + +// List of all Static Routes. +type StaticRouteOutput struct{ *pulumi.OutputState } + +func (StaticRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRoute)(nil)).Elem() +} + +func (o StaticRouteOutput) ToStaticRouteOutput() StaticRouteOutput { + return o +} + +func (o StaticRouteOutput) ToStaticRouteOutputWithContext(ctx context.Context) StaticRouteOutput { + return o +} + +// List of all address prefixes. +func (o StaticRouteOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v StaticRoute) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The name of the StaticRoute that is unique within a VnetRoute. +func (o StaticRouteOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRoute) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The ip address of the next hop. +func (o StaticRouteOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRoute) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +} + +type StaticRouteArrayOutput struct{ *pulumi.OutputState } + +func (StaticRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StaticRoute)(nil)).Elem() +} + +func (o StaticRouteArrayOutput) ToStaticRouteArrayOutput() StaticRouteArrayOutput { + return o +} + +func (o StaticRouteArrayOutput) ToStaticRouteArrayOutputWithContext(ctx context.Context) StaticRouteArrayOutput { + return o +} + +func (o StaticRouteArrayOutput) Index(i pulumi.IntInput) StaticRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StaticRoute { + return vs[0].([]StaticRoute)[vs[1].(int)] + }).(StaticRouteOutput) +} + +// List of all Static Routes. +type StaticRouteResponse struct { + // List of all address prefixes. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // The name of the StaticRoute that is unique within a VnetRoute. + Name *string `pulumi:"name"` + // The ip address of the next hop. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +} + +// List of all Static Routes. +type StaticRouteResponseOutput struct{ *pulumi.OutputState } + +func (StaticRouteResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRouteResponse)(nil)).Elem() +} + +func (o StaticRouteResponseOutput) ToStaticRouteResponseOutput() StaticRouteResponseOutput { + return o +} + +func (o StaticRouteResponseOutput) ToStaticRouteResponseOutputWithContext(ctx context.Context) StaticRouteResponseOutput { + return o +} + +// List of all address prefixes. +func (o StaticRouteResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v StaticRouteResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// The name of the StaticRoute that is unique within a VnetRoute. +func (o StaticRouteResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRouteResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The ip address of the next hop. +func (o StaticRouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +} + +type StaticRouteResponseArrayOutput struct{ *pulumi.OutputState } + +func (StaticRouteResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StaticRouteResponse)(nil)).Elem() +} + +func (o StaticRouteResponseArrayOutput) ToStaticRouteResponseArrayOutput() StaticRouteResponseArrayOutput { + return o +} + +func (o StaticRouteResponseArrayOutput) ToStaticRouteResponseArrayOutputWithContext(ctx context.Context) StaticRouteResponseArrayOutput { + return o +} + +func (o StaticRouteResponseArrayOutput) Index(i pulumi.IntInput) StaticRouteResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StaticRouteResponse { + return vs[0].([]StaticRouteResponse)[vs[1].(int)] + }).(StaticRouteResponseOutput) +} + +// Configuration for static routes on this HubVnetConnectionConfiguration for static routes on this HubVnetConnection. +type StaticRoutesConfig struct { + // Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. + VnetLocalRouteOverrideCriteria *string `pulumi:"vnetLocalRouteOverrideCriteria"` +} + +// StaticRoutesConfigInput is an input type that accepts StaticRoutesConfigArgs and StaticRoutesConfigOutput values. +// You can construct a concrete instance of `StaticRoutesConfigInput` via: +// +// StaticRoutesConfigArgs{...} +type StaticRoutesConfigInput interface { + pulumi.Input + + ToStaticRoutesConfigOutput() StaticRoutesConfigOutput + ToStaticRoutesConfigOutputWithContext(context.Context) StaticRoutesConfigOutput +} + +// Configuration for static routes on this HubVnetConnectionConfiguration for static routes on this HubVnetConnection. +type StaticRoutesConfigArgs struct { + // Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. + VnetLocalRouteOverrideCriteria pulumi.StringPtrInput `pulumi:"vnetLocalRouteOverrideCriteria"` +} + +func (StaticRoutesConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRoutesConfig)(nil)).Elem() +} + +func (i StaticRoutesConfigArgs) ToStaticRoutesConfigOutput() StaticRoutesConfigOutput { + return i.ToStaticRoutesConfigOutputWithContext(context.Background()) +} + +func (i StaticRoutesConfigArgs) ToStaticRoutesConfigOutputWithContext(ctx context.Context) StaticRoutesConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticRoutesConfigOutput) +} + +func (i StaticRoutesConfigArgs) ToStaticRoutesConfigPtrOutput() StaticRoutesConfigPtrOutput { + return i.ToStaticRoutesConfigPtrOutputWithContext(context.Background()) +} + +func (i StaticRoutesConfigArgs) ToStaticRoutesConfigPtrOutputWithContext(ctx context.Context) StaticRoutesConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticRoutesConfigOutput).ToStaticRoutesConfigPtrOutputWithContext(ctx) +} + +// StaticRoutesConfigPtrInput is an input type that accepts StaticRoutesConfigArgs, StaticRoutesConfigPtr and StaticRoutesConfigPtrOutput values. +// You can construct a concrete instance of `StaticRoutesConfigPtrInput` via: +// +// StaticRoutesConfigArgs{...} +// +// or: +// +// nil +type StaticRoutesConfigPtrInput interface { + pulumi.Input + + ToStaticRoutesConfigPtrOutput() StaticRoutesConfigPtrOutput + ToStaticRoutesConfigPtrOutputWithContext(context.Context) StaticRoutesConfigPtrOutput +} + +type staticRoutesConfigPtrType StaticRoutesConfigArgs + +func StaticRoutesConfigPtr(v *StaticRoutesConfigArgs) StaticRoutesConfigPtrInput { + return (*staticRoutesConfigPtrType)(v) +} + +func (*staticRoutesConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StaticRoutesConfig)(nil)).Elem() +} + +func (i *staticRoutesConfigPtrType) ToStaticRoutesConfigPtrOutput() StaticRoutesConfigPtrOutput { + return i.ToStaticRoutesConfigPtrOutputWithContext(context.Background()) +} + +func (i *staticRoutesConfigPtrType) ToStaticRoutesConfigPtrOutputWithContext(ctx context.Context) StaticRoutesConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticRoutesConfigPtrOutput) +} + +// Configuration for static routes on this HubVnetConnectionConfiguration for static routes on this HubVnetConnection. +type StaticRoutesConfigOutput struct{ *pulumi.OutputState } + +func (StaticRoutesConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRoutesConfig)(nil)).Elem() +} + +func (o StaticRoutesConfigOutput) ToStaticRoutesConfigOutput() StaticRoutesConfigOutput { + return o +} + +func (o StaticRoutesConfigOutput) ToStaticRoutesConfigOutputWithContext(ctx context.Context) StaticRoutesConfigOutput { + return o +} + +func (o StaticRoutesConfigOutput) ToStaticRoutesConfigPtrOutput() StaticRoutesConfigPtrOutput { + return o.ToStaticRoutesConfigPtrOutputWithContext(context.Background()) +} + +func (o StaticRoutesConfigOutput) ToStaticRoutesConfigPtrOutputWithContext(ctx context.Context) StaticRoutesConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StaticRoutesConfig) *StaticRoutesConfig { + return &v + }).(StaticRoutesConfigPtrOutput) +} + +// Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. +func (o StaticRoutesConfigOutput) VnetLocalRouteOverrideCriteria() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRoutesConfig) *string { return v.VnetLocalRouteOverrideCriteria }).(pulumi.StringPtrOutput) +} + +type StaticRoutesConfigPtrOutput struct{ *pulumi.OutputState } + +func (StaticRoutesConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StaticRoutesConfig)(nil)).Elem() +} + +func (o StaticRoutesConfigPtrOutput) ToStaticRoutesConfigPtrOutput() StaticRoutesConfigPtrOutput { + return o +} + +func (o StaticRoutesConfigPtrOutput) ToStaticRoutesConfigPtrOutputWithContext(ctx context.Context) StaticRoutesConfigPtrOutput { + return o +} + +func (o StaticRoutesConfigPtrOutput) Elem() StaticRoutesConfigOutput { + return o.ApplyT(func(v *StaticRoutesConfig) StaticRoutesConfig { + if v != nil { + return *v + } + var ret StaticRoutesConfig + return ret + }).(StaticRoutesConfigOutput) +} + +// Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. +func (o StaticRoutesConfigPtrOutput) VnetLocalRouteOverrideCriteria() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StaticRoutesConfig) *string { + if v == nil { + return nil + } + return v.VnetLocalRouteOverrideCriteria + }).(pulumi.StringPtrOutput) +} + +// Configuration for static routes on this HubVnetConnectionConfiguration for static routes on this HubVnetConnection. +type StaticRoutesConfigResponse struct { + // Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. + PropagateStaticRoutes bool `pulumi:"propagateStaticRoutes"` + // Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. + VnetLocalRouteOverrideCriteria *string `pulumi:"vnetLocalRouteOverrideCriteria"` +} + +// Configuration for static routes on this HubVnetConnectionConfiguration for static routes on this HubVnetConnection. +type StaticRoutesConfigResponseOutput struct{ *pulumi.OutputState } + +func (StaticRoutesConfigResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StaticRoutesConfigResponse)(nil)).Elem() +} + +func (o StaticRoutesConfigResponseOutput) ToStaticRoutesConfigResponseOutput() StaticRoutesConfigResponseOutput { + return o +} + +func (o StaticRoutesConfigResponseOutput) ToStaticRoutesConfigResponseOutputWithContext(ctx context.Context) StaticRoutesConfigResponseOutput { + return o +} + +// Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. +func (o StaticRoutesConfigResponseOutput) PropagateStaticRoutes() pulumi.BoolOutput { + return o.ApplyT(func(v StaticRoutesConfigResponse) bool { return v.PropagateStaticRoutes }).(pulumi.BoolOutput) +} + +// Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. +func (o StaticRoutesConfigResponseOutput) VnetLocalRouteOverrideCriteria() pulumi.StringPtrOutput { + return o.ApplyT(func(v StaticRoutesConfigResponse) *string { return v.VnetLocalRouteOverrideCriteria }).(pulumi.StringPtrOutput) +} + +type StaticRoutesConfigResponsePtrOutput struct{ *pulumi.OutputState } + +func (StaticRoutesConfigResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StaticRoutesConfigResponse)(nil)).Elem() +} + +func (o StaticRoutesConfigResponsePtrOutput) ToStaticRoutesConfigResponsePtrOutput() StaticRoutesConfigResponsePtrOutput { + return o +} + +func (o StaticRoutesConfigResponsePtrOutput) ToStaticRoutesConfigResponsePtrOutputWithContext(ctx context.Context) StaticRoutesConfigResponsePtrOutput { + return o +} + +func (o StaticRoutesConfigResponsePtrOutput) Elem() StaticRoutesConfigResponseOutput { + return o.ApplyT(func(v *StaticRoutesConfigResponse) StaticRoutesConfigResponse { + if v != nil { + return *v + } + var ret StaticRoutesConfigResponse + return ret + }).(StaticRoutesConfigResponseOutput) +} + +// Boolean indicating whether static routes on this connection are automatically propagate to route tables which this connection propagates to. +func (o StaticRoutesConfigResponsePtrOutput) PropagateStaticRoutes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StaticRoutesConfigResponse) *bool { + if v == nil { + return nil + } + return &v.PropagateStaticRoutes + }).(pulumi.BoolPtrOutput) +} + +// Parameter determining whether NVA in spoke vnet is bypassed for traffic with destination in spoke. +func (o StaticRoutesConfigResponsePtrOutput) VnetLocalRouteOverrideCriteria() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StaticRoutesConfigResponse) *string { + if v == nil { + return nil + } + return v.VnetLocalRouteOverrideCriteria + }).(pulumi.StringPtrOutput) +} + +// A reference to a another resource +type SubResource struct { + // Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. + // An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. + // A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. + // Example of a relative ID: $self/frontEndConfigurations/my-frontend. + Id *string `pulumi:"id"` +} + +// SubResourceInput is an input type that accepts SubResourceArgs and SubResourceOutput values. +// You can construct a concrete instance of `SubResourceInput` via: +// +// SubResourceArgs{...} +type SubResourceInput interface { + pulumi.Input + + ToSubResourceOutput() SubResourceOutput + ToSubResourceOutputWithContext(context.Context) SubResourceOutput +} + +// A reference to a another resource +type SubResourceArgs struct { + // Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. + // An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. + // A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. + // Example of a relative ID: $self/frontEndConfigurations/my-frontend. + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (SubResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubResource)(nil)).Elem() +} + +func (i SubResourceArgs) ToSubResourceOutput() SubResourceOutput { + return i.ToSubResourceOutputWithContext(context.Background()) +} + +func (i SubResourceArgs) ToSubResourceOutputWithContext(ctx context.Context) SubResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubResourceOutput) +} + +func (i SubResourceArgs) ToSubResourcePtrOutput() SubResourcePtrOutput { + return i.ToSubResourcePtrOutputWithContext(context.Background()) +} + +func (i SubResourceArgs) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubResourceOutput).ToSubResourcePtrOutputWithContext(ctx) +} + +// SubResourcePtrInput is an input type that accepts SubResourceArgs, SubResourcePtr and SubResourcePtrOutput values. +// You can construct a concrete instance of `SubResourcePtrInput` via: +// +// SubResourceArgs{...} +// +// or: +// +// nil +type SubResourcePtrInput interface { + pulumi.Input + + ToSubResourcePtrOutput() SubResourcePtrOutput + ToSubResourcePtrOutputWithContext(context.Context) SubResourcePtrOutput +} + +type subResourcePtrType SubResourceArgs + +func SubResourcePtr(v *SubResourceArgs) SubResourcePtrInput { + return (*subResourcePtrType)(v) +} + +func (*subResourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SubResource)(nil)).Elem() +} + +func (i *subResourcePtrType) ToSubResourcePtrOutput() SubResourcePtrOutput { + return i.ToSubResourcePtrOutputWithContext(context.Background()) +} + +func (i *subResourcePtrType) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubResourcePtrOutput) +} + +// SubResourceArrayInput is an input type that accepts SubResourceArray and SubResourceArrayOutput values. +// You can construct a concrete instance of `SubResourceArrayInput` via: +// +// SubResourceArray{ SubResourceArgs{...} } +type SubResourceArrayInput interface { + pulumi.Input + + ToSubResourceArrayOutput() SubResourceArrayOutput + ToSubResourceArrayOutputWithContext(context.Context) SubResourceArrayOutput +} + +type SubResourceArray []SubResourceInput + +func (SubResourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubResource)(nil)).Elem() +} + +func (i SubResourceArray) ToSubResourceArrayOutput() SubResourceArrayOutput { + return i.ToSubResourceArrayOutputWithContext(context.Background()) +} + +func (i SubResourceArray) ToSubResourceArrayOutputWithContext(ctx context.Context) SubResourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubResourceArrayOutput) +} + +// A reference to a another resource +type SubResourceOutput struct{ *pulumi.OutputState } + +func (SubResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubResource)(nil)).Elem() +} + +func (o SubResourceOutput) ToSubResourceOutput() SubResourceOutput { + return o +} + +func (o SubResourceOutput) ToSubResourceOutputWithContext(ctx context.Context) SubResourceOutput { + return o +} + +func (o SubResourceOutput) ToSubResourcePtrOutput() SubResourcePtrOutput { + return o.ToSubResourcePtrOutputWithContext(context.Background()) +} + +func (o SubResourceOutput) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubResource) *SubResource { + return &v + }).(SubResourcePtrOutput) +} + +// Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. +// An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. +// A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. +// Example of a relative ID: $self/frontEndConfigurations/my-frontend. +func (o SubResourceOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubResource) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SubResourcePtrOutput struct{ *pulumi.OutputState } + +func (SubResourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubResource)(nil)).Elem() +} + +func (o SubResourcePtrOutput) ToSubResourcePtrOutput() SubResourcePtrOutput { + return o +} + +func (o SubResourcePtrOutput) ToSubResourcePtrOutputWithContext(ctx context.Context) SubResourcePtrOutput { + return o +} + +func (o SubResourcePtrOutput) Elem() SubResourceOutput { + return o.ApplyT(func(v *SubResource) SubResource { + if v != nil { + return *v + } + var ret SubResource + return ret + }).(SubResourceOutput) +} + +// Sub-resource ID. Both absolute resource ID and a relative resource ID are accepted. +// An absolute ID starts with /subscriptions/ and contains the entire ID of the parent resource and the ID of the sub-resource in the end. +// A relative ID replaces the ID of the parent resource with a token '$self', followed by the sub-resource ID itself. +// Example of a relative ID: $self/frontEndConfigurations/my-frontend. +func (o SubResourcePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubResource) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +type SubResourceArrayOutput struct{ *pulumi.OutputState } + +func (SubResourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubResource)(nil)).Elem() +} + +func (o SubResourceArrayOutput) ToSubResourceArrayOutput() SubResourceArrayOutput { + return o +} + +func (o SubResourceArrayOutput) ToSubResourceArrayOutputWithContext(ctx context.Context) SubResourceArrayOutput { + return o +} + +func (o SubResourceArrayOutput) Index(i pulumi.IntInput) SubResourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubResource { + return vs[0].([]SubResource)[vs[1].(int)] + }).(SubResourceOutput) +} + +// Reference to another ARM resource. +type SubResourceResponse struct { + // Resource ID. + Id string `pulumi:"id"` +} + +// Reference to another ARM resource. +type SubResourceResponseOutput struct{ *pulumi.OutputState } + +func (SubResourceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubResourceResponse)(nil)).Elem() +} + +func (o SubResourceResponseOutput) ToSubResourceResponseOutput() SubResourceResponseOutput { + return o +} + +func (o SubResourceResponseOutput) ToSubResourceResponseOutputWithContext(ctx context.Context) SubResourceResponseOutput { + return o +} + +// Resource ID. +func (o SubResourceResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v SubResourceResponse) string { return v.Id }).(pulumi.StringOutput) +} + +type SubResourceResponsePtrOutput struct{ *pulumi.OutputState } + +func (SubResourceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubResourceResponse)(nil)).Elem() +} + +func (o SubResourceResponsePtrOutput) ToSubResourceResponsePtrOutput() SubResourceResponsePtrOutput { + return o +} + +func (o SubResourceResponsePtrOutput) ToSubResourceResponsePtrOutputWithContext(ctx context.Context) SubResourceResponsePtrOutput { + return o +} + +func (o SubResourceResponsePtrOutput) Elem() SubResourceResponseOutput { + return o.ApplyT(func(v *SubResourceResponse) SubResourceResponse { + if v != nil { + return *v + } + var ret SubResourceResponse + return ret + }).(SubResourceResponseOutput) +} + +// Resource ID. +func (o SubResourceResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubResourceResponse) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + +type SubResourceResponseArrayOutput struct{ *pulumi.OutputState } + +func (SubResourceResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubResourceResponse)(nil)).Elem() +} + +func (o SubResourceResponseArrayOutput) ToSubResourceResponseArrayOutput() SubResourceResponseArrayOutput { + return o +} + +func (o SubResourceResponseArrayOutput) ToSubResourceResponseArrayOutputWithContext(ctx context.Context) SubResourceResponseArrayOutput { + return o +} + +func (o SubResourceResponseArrayOutput) Index(i pulumi.IntInput) SubResourceResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubResourceResponse { + return vs[0].([]SubResourceResponse)[vs[1].(int)] + }).(SubResourceResponseOutput) +} + +// Subnet in a virtual network resource. +type SubnetType struct { + // The address prefix for the subnet. + AddressPrefix *string `pulumi:"addressPrefix"` + // List of address prefixes for the subnet. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // Application gateway IP configurations of virtual network resource. + ApplicationGatewayIPConfigurations []ApplicationGatewayIPConfiguration `pulumi:"applicationGatewayIPConfigurations"` + // An array of references to the delegations on the subnet. + Delegations []Delegation `pulumi:"delegations"` + // A unique read-only string that changes whenever the resource is updated. + Etag *string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Array of IpAllocation which reference this subnet. + IpAllocations []SubResource `pulumi:"ipAllocations"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Nat gateway associated with this subnet. + NatGateway *SubResource `pulumi:"natGateway"` + // The reference to the NetworkSecurityGroup resource. + NetworkSecurityGroup *NetworkSecurityGroupType `pulumi:"networkSecurityGroup"` + // Enable or Disable apply network policies on private end point in the subnet. + PrivateEndpointNetworkPolicies *string `pulumi:"privateEndpointNetworkPolicies"` + // Enable or Disable apply network policies on private link service in the subnet. + PrivateLinkServiceNetworkPolicies *string `pulumi:"privateLinkServiceNetworkPolicies"` + // The provisioning state of the resource. + ProvisioningState *string `pulumi:"provisioningState"` + // Gets an array of references to the external resources using subnet. + ResourceNavigationLinks []ResourceNavigationLink `pulumi:"resourceNavigationLinks"` + // The reference to the RouteTable resource. + RouteTable *RouteTableType `pulumi:"routeTable"` + // Gets an array of references to services injecting into this subnet. + ServiceAssociationLinks []ServiceAssociationLink `pulumi:"serviceAssociationLinks"` + // An array of service endpoint policies. + ServiceEndpointPolicies []ServiceEndpointPolicyType `pulumi:"serviceEndpointPolicies"` + // An array of service endpoints. + ServiceEndpoints []ServiceEndpointPropertiesFormat `pulumi:"serviceEndpoints"` + // Resource type. + Type *string `pulumi:"type"` +} + +// Defaults sets the appropriate defaults for SubnetType +func (val *SubnetType) Defaults() *SubnetType { + if val == nil { + return nil + } + tmp := *val + if tmp.PrivateEndpointNetworkPolicies == nil { + privateEndpointNetworkPolicies_ := "Disabled" + tmp.PrivateEndpointNetworkPolicies = &privateEndpointNetworkPolicies_ + } + if tmp.PrivateLinkServiceNetworkPolicies == nil { + privateLinkServiceNetworkPolicies_ := "Enabled" + tmp.PrivateLinkServiceNetworkPolicies = &privateLinkServiceNetworkPolicies_ + } + return &tmp +} + +// SubnetTypeInput is an input type that accepts SubnetTypeArgs and SubnetTypeOutput values. +// You can construct a concrete instance of `SubnetTypeInput` via: +// +// SubnetTypeArgs{...} +type SubnetTypeInput interface { + pulumi.Input + + ToSubnetTypeOutput() SubnetTypeOutput + ToSubnetTypeOutputWithContext(context.Context) SubnetTypeOutput +} + +// Subnet in a virtual network resource. +type SubnetTypeArgs struct { + // The address prefix for the subnet. + AddressPrefix pulumi.StringPtrInput `pulumi:"addressPrefix"` + // List of address prefixes for the subnet. + AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` + // Application gateway IP configurations of virtual network resource. + ApplicationGatewayIPConfigurations ApplicationGatewayIPConfigurationArrayInput `pulumi:"applicationGatewayIPConfigurations"` + // An array of references to the delegations on the subnet. + Delegations DelegationArrayInput `pulumi:"delegations"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringPtrInput `pulumi:"etag"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Array of IpAllocation which reference this subnet. + IpAllocations SubResourceArrayInput `pulumi:"ipAllocations"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // Nat gateway associated with this subnet. + NatGateway SubResourcePtrInput `pulumi:"natGateway"` + // The reference to the NetworkSecurityGroup resource. + NetworkSecurityGroup NetworkSecurityGroupTypePtrInput `pulumi:"networkSecurityGroup"` + // Enable or Disable apply network policies on private end point in the subnet. + PrivateEndpointNetworkPolicies pulumi.StringPtrInput `pulumi:"privateEndpointNetworkPolicies"` + // Enable or Disable apply network policies on private link service in the subnet. + PrivateLinkServiceNetworkPolicies pulumi.StringPtrInput `pulumi:"privateLinkServiceNetworkPolicies"` + // The provisioning state of the resource. + ProvisioningState pulumi.StringPtrInput `pulumi:"provisioningState"` + // Gets an array of references to the external resources using subnet. + ResourceNavigationLinks ResourceNavigationLinkArrayInput `pulumi:"resourceNavigationLinks"` + // The reference to the RouteTable resource. + RouteTable RouteTableTypePtrInput `pulumi:"routeTable"` + // Gets an array of references to services injecting into this subnet. + ServiceAssociationLinks ServiceAssociationLinkArrayInput `pulumi:"serviceAssociationLinks"` + // An array of service endpoint policies. + ServiceEndpointPolicies ServiceEndpointPolicyTypeArrayInput `pulumi:"serviceEndpointPolicies"` + // An array of service endpoints. + ServiceEndpoints ServiceEndpointPropertiesFormatArrayInput `pulumi:"serviceEndpoints"` + // Resource type. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +// Defaults sets the appropriate defaults for SubnetTypeArgs +func (val *SubnetTypeArgs) Defaults() *SubnetTypeArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.PrivateEndpointNetworkPolicies == nil { + tmp.PrivateEndpointNetworkPolicies = pulumi.StringPtr("Disabled") + } + if tmp.PrivateLinkServiceNetworkPolicies == nil { + tmp.PrivateLinkServiceNetworkPolicies = pulumi.StringPtr("Enabled") + } + return &tmp +} +func (SubnetTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetType)(nil)).Elem() +} + +func (i SubnetTypeArgs) ToSubnetTypeOutput() SubnetTypeOutput { + return i.ToSubnetTypeOutputWithContext(context.Background()) +} + +func (i SubnetTypeArgs) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeOutput) +} + +func (i SubnetTypeArgs) ToSubnetTypePtrOutput() SubnetTypePtrOutput { + return i.ToSubnetTypePtrOutputWithContext(context.Background()) +} + +func (i SubnetTypeArgs) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeOutput).ToSubnetTypePtrOutputWithContext(ctx) +} + +// SubnetTypePtrInput is an input type that accepts SubnetTypeArgs, SubnetTypePtr and SubnetTypePtrOutput values. +// You can construct a concrete instance of `SubnetTypePtrInput` via: +// +// SubnetTypeArgs{...} +// +// or: +// +// nil +type SubnetTypePtrInput interface { + pulumi.Input + + ToSubnetTypePtrOutput() SubnetTypePtrOutput + ToSubnetTypePtrOutputWithContext(context.Context) SubnetTypePtrOutput +} + +type subnetTypePtrType SubnetTypeArgs + +func SubnetTypePtr(v *SubnetTypeArgs) SubnetTypePtrInput { + return (*subnetTypePtrType)(v) +} + +func (*subnetTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetType)(nil)).Elem() +} + +func (i *subnetTypePtrType) ToSubnetTypePtrOutput() SubnetTypePtrOutput { + return i.ToSubnetTypePtrOutputWithContext(context.Background()) +} + +func (i *subnetTypePtrType) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetTypePtrOutput) +} + +// SubnetTypeArrayInput is an input type that accepts SubnetTypeArray and SubnetTypeArrayOutput values. +// You can construct a concrete instance of `SubnetTypeArrayInput` via: +// +// SubnetTypeArray{ SubnetTypeArgs{...} } +type SubnetTypeArrayInput interface { + pulumi.Input + + ToSubnetTypeArrayOutput() SubnetTypeArrayOutput + ToSubnetTypeArrayOutputWithContext(context.Context) SubnetTypeArrayOutput +} + +type SubnetTypeArray []SubnetTypeInput + +func (SubnetTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubnetType)(nil)).Elem() +} + +func (i SubnetTypeArray) ToSubnetTypeArrayOutput() SubnetTypeArrayOutput { + return i.ToSubnetTypeArrayOutputWithContext(context.Background()) +} + +func (i SubnetTypeArray) ToSubnetTypeArrayOutputWithContext(ctx context.Context) SubnetTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetTypeArrayOutput) +} + +// Subnet in a virtual network resource. +type SubnetTypeOutput struct{ *pulumi.OutputState } + +func (SubnetTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetType)(nil)).Elem() +} + +func (o SubnetTypeOutput) ToSubnetTypeOutput() SubnetTypeOutput { + return o +} + +func (o SubnetTypeOutput) ToSubnetTypeOutputWithContext(ctx context.Context) SubnetTypeOutput { + return o +} + +func (o SubnetTypeOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput { + return o.ToSubnetTypePtrOutputWithContext(context.Background()) +} + +func (o SubnetTypeOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetType) *SubnetType { + return &v + }).(SubnetTypePtrOutput) +} + +// The address prefix for the subnet. +func (o SubnetTypeOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +} + +// List of address prefixes for the subnet. +func (o SubnetTypeOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SubnetType) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// Application gateway IP configurations of virtual network resource. +func (o SubnetTypeOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationArrayOutput { + return o.ApplyT(func(v SubnetType) []ApplicationGatewayIPConfiguration { return v.ApplicationGatewayIPConfigurations }).(ApplicationGatewayIPConfigurationArrayOutput) +} + +// An array of references to the delegations on the subnet. +func (o SubnetTypeOutput) Delegations() DelegationArrayOutput { + return o.ApplyT(func(v SubnetType) []Delegation { return v.Delegations }).(DelegationArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SubnetTypeOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.Etag }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o SubnetTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Array of IpAllocation which reference this subnet. +func (o SubnetTypeOutput) IpAllocations() SubResourceArrayOutput { + return o.ApplyT(func(v SubnetType) []SubResource { return v.IpAllocations }).(SubResourceArrayOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SubnetTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Nat gateway associated with this subnet. +func (o SubnetTypeOutput) NatGateway() SubResourcePtrOutput { + return o.ApplyT(func(v SubnetType) *SubResource { return v.NatGateway }).(SubResourcePtrOutput) +} + +// The reference to the NetworkSecurityGroup resource. +func (o SubnetTypeOutput) NetworkSecurityGroup() NetworkSecurityGroupTypePtrOutput { + return o.ApplyT(func(v SubnetType) *NetworkSecurityGroupType { return v.NetworkSecurityGroup }).(NetworkSecurityGroupTypePtrOutput) +} + +// Enable or Disable apply network policies on private end point in the subnet. +func (o SubnetTypeOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.PrivateEndpointNetworkPolicies }).(pulumi.StringPtrOutput) +} + +// Enable or Disable apply network policies on private link service in the subnet. +func (o SubnetTypeOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.PrivateLinkServiceNetworkPolicies }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the resource. +func (o SubnetTypeOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.ProvisioningState }).(pulumi.StringPtrOutput) +} + +// Gets an array of references to the external resources using subnet. +func (o SubnetTypeOutput) ResourceNavigationLinks() ResourceNavigationLinkArrayOutput { + return o.ApplyT(func(v SubnetType) []ResourceNavigationLink { return v.ResourceNavigationLinks }).(ResourceNavigationLinkArrayOutput) +} + +// The reference to the RouteTable resource. +func (o SubnetTypeOutput) RouteTable() RouteTableTypePtrOutput { + return o.ApplyT(func(v SubnetType) *RouteTableType { return v.RouteTable }).(RouteTableTypePtrOutput) +} + +// Gets an array of references to services injecting into this subnet. +func (o SubnetTypeOutput) ServiceAssociationLinks() ServiceAssociationLinkArrayOutput { + return o.ApplyT(func(v SubnetType) []ServiceAssociationLink { return v.ServiceAssociationLinks }).(ServiceAssociationLinkArrayOutput) +} + +// An array of service endpoint policies. +func (o SubnetTypeOutput) ServiceEndpointPolicies() ServiceEndpointPolicyTypeArrayOutput { + return o.ApplyT(func(v SubnetType) []ServiceEndpointPolicyType { return v.ServiceEndpointPolicies }).(ServiceEndpointPolicyTypeArrayOutput) +} + +// An array of service endpoints. +func (o SubnetTypeOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatArrayOutput { + return o.ApplyT(func(v SubnetType) []ServiceEndpointPropertiesFormat { return v.ServiceEndpoints }).(ServiceEndpointPropertiesFormatArrayOutput) +} + +// Resource type. +func (o SubnetTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetType) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SubnetTypePtrOutput struct{ *pulumi.OutputState } + +func (SubnetTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetType)(nil)).Elem() +} + +func (o SubnetTypePtrOutput) ToSubnetTypePtrOutput() SubnetTypePtrOutput { + return o +} + +func (o SubnetTypePtrOutput) ToSubnetTypePtrOutputWithContext(ctx context.Context) SubnetTypePtrOutput { + return o +} + +func (o SubnetTypePtrOutput) Elem() SubnetTypeOutput { + return o.ApplyT(func(v *SubnetType) SubnetType { + if v != nil { + return *v + } + var ret SubnetType + return ret + }).(SubnetTypeOutput) +} + +// The address prefix for the subnet. +func (o SubnetTypePtrOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.AddressPrefix + }).(pulumi.StringPtrOutput) +} + +// List of address prefixes for the subnet. +func (o SubnetTypePtrOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SubnetType) []string { + if v == nil { + return nil + } + return v.AddressPrefixes + }).(pulumi.StringArrayOutput) +} + +// Application gateway IP configurations of virtual network resource. +func (o SubnetTypePtrOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationArrayOutput { + return o.ApplyT(func(v *SubnetType) []ApplicationGatewayIPConfiguration { + if v == nil { + return nil + } + return v.ApplicationGatewayIPConfigurations + }).(ApplicationGatewayIPConfigurationArrayOutput) +} + +// An array of references to the delegations on the subnet. +func (o SubnetTypePtrOutput) Delegations() DelegationArrayOutput { + return o.ApplyT(func(v *SubnetType) []Delegation { + if v == nil { + return nil + } + return v.Delegations + }).(DelegationArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SubnetTypePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.Etag + }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o SubnetTypePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Array of IpAllocation which reference this subnet. +func (o SubnetTypePtrOutput) IpAllocations() SubResourceArrayOutput { + return o.ApplyT(func(v *SubnetType) []SubResource { + if v == nil { + return nil + } + return v.IpAllocations + }).(SubResourceArrayOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SubnetTypePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Nat gateway associated with this subnet. +func (o SubnetTypePtrOutput) NatGateway() SubResourcePtrOutput { + return o.ApplyT(func(v *SubnetType) *SubResource { + if v == nil { + return nil + } + return v.NatGateway + }).(SubResourcePtrOutput) +} + +// The reference to the NetworkSecurityGroup resource. +func (o SubnetTypePtrOutput) NetworkSecurityGroup() NetworkSecurityGroupTypePtrOutput { + return o.ApplyT(func(v *SubnetType) *NetworkSecurityGroupType { + if v == nil { + return nil + } + return v.NetworkSecurityGroup + }).(NetworkSecurityGroupTypePtrOutput) +} + +// Enable or Disable apply network policies on private end point in the subnet. +func (o SubnetTypePtrOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.PrivateEndpointNetworkPolicies + }).(pulumi.StringPtrOutput) +} + +// Enable or Disable apply network policies on private link service in the subnet. +func (o SubnetTypePtrOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.PrivateLinkServiceNetworkPolicies + }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the resource. +func (o SubnetTypePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// Gets an array of references to the external resources using subnet. +func (o SubnetTypePtrOutput) ResourceNavigationLinks() ResourceNavigationLinkArrayOutput { + return o.ApplyT(func(v *SubnetType) []ResourceNavigationLink { + if v == nil { + return nil + } + return v.ResourceNavigationLinks + }).(ResourceNavigationLinkArrayOutput) +} + +// The reference to the RouteTable resource. +func (o SubnetTypePtrOutput) RouteTable() RouteTableTypePtrOutput { + return o.ApplyT(func(v *SubnetType) *RouteTableType { + if v == nil { + return nil + } + return v.RouteTable + }).(RouteTableTypePtrOutput) +} + +// Gets an array of references to services injecting into this subnet. +func (o SubnetTypePtrOutput) ServiceAssociationLinks() ServiceAssociationLinkArrayOutput { + return o.ApplyT(func(v *SubnetType) []ServiceAssociationLink { + if v == nil { + return nil + } + return v.ServiceAssociationLinks + }).(ServiceAssociationLinkArrayOutput) +} + +// An array of service endpoint policies. +func (o SubnetTypePtrOutput) ServiceEndpointPolicies() ServiceEndpointPolicyTypeArrayOutput { + return o.ApplyT(func(v *SubnetType) []ServiceEndpointPolicyType { + if v == nil { + return nil + } + return v.ServiceEndpointPolicies + }).(ServiceEndpointPolicyTypeArrayOutput) +} + +// An array of service endpoints. +func (o SubnetTypePtrOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatArrayOutput { + return o.ApplyT(func(v *SubnetType) []ServiceEndpointPropertiesFormat { + if v == nil { + return nil + } + return v.ServiceEndpoints + }).(ServiceEndpointPropertiesFormatArrayOutput) +} + +// Resource type. +func (o SubnetTypePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetType) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type SubnetTypeArrayOutput struct{ *pulumi.OutputState } + +func (SubnetTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubnetType)(nil)).Elem() +} + +func (o SubnetTypeArrayOutput) ToSubnetTypeArrayOutput() SubnetTypeArrayOutput { + return o +} + +func (o SubnetTypeArrayOutput) ToSubnetTypeArrayOutputWithContext(ctx context.Context) SubnetTypeArrayOutput { + return o +} + +func (o SubnetTypeArrayOutput) Index(i pulumi.IntInput) SubnetTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetType { + return vs[0].([]SubnetType)[vs[1].(int)] + }).(SubnetTypeOutput) +} + +// Subnet in a virtual network resource. +type SubnetResponse struct { + // The address prefix for the subnet. + AddressPrefix *string `pulumi:"addressPrefix"` + // List of address prefixes for the subnet. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // Application gateway IP configurations of virtual network resource. + ApplicationGatewayIPConfigurations []ApplicationGatewayIPConfigurationResponse `pulumi:"applicationGatewayIPConfigurations"` + // An array of references to the delegations on the subnet. + Delegations []DelegationResponse `pulumi:"delegations"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // An array of references to interface endpoints + InterfaceEndpoints []InterfaceEndpointResponse `pulumi:"interfaceEndpoints"` + // Array of IpAllocation which reference this subnet. + IpAllocations []SubResourceResponse `pulumi:"ipAllocations"` + // Array of IP configuration profiles which reference this subnet. + IpConfigurationProfiles []IPConfigurationProfileResponse `pulumi:"ipConfigurationProfiles"` + // An array of references to the network interface IP configurations using subnet. + IpConfigurations []IPConfigurationResponse `pulumi:"ipConfigurations"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Nat gateway associated with this subnet. + NatGateway *SubResourceResponse `pulumi:"natGateway"` + // The reference to the NetworkSecurityGroup resource. + NetworkSecurityGroup *NetworkSecurityGroupResponse `pulumi:"networkSecurityGroup"` + // Enable or Disable apply network policies on private end point in the subnet. + PrivateEndpointNetworkPolicies *string `pulumi:"privateEndpointNetworkPolicies"` + // An array of references to private endpoints. + PrivateEndpoints []PrivateEndpointResponse `pulumi:"privateEndpoints"` + // Enable or Disable apply network policies on private link service in the subnet. + PrivateLinkServiceNetworkPolicies *string `pulumi:"privateLinkServiceNetworkPolicies"` + // The provisioning state of the subnet resource. + ProvisioningState string `pulumi:"provisioningState"` + // A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. + Purpose string `pulumi:"purpose"` + // An array of references to the external resources using subnet. + ResourceNavigationLinks []ResourceNavigationLinkResponse `pulumi:"resourceNavigationLinks"` + // The reference to the RouteTable resource. + RouteTable *RouteTableResponse `pulumi:"routeTable"` + // An array of references to services injecting into this subnet. + ServiceAssociationLinks []ServiceAssociationLinkResponse `pulumi:"serviceAssociationLinks"` + // An array of service endpoint policies. + ServiceEndpointPolicies []ServiceEndpointPolicyResponse `pulumi:"serviceEndpointPolicies"` + // An array of service endpoints. + ServiceEndpoints []ServiceEndpointPropertiesFormatResponse `pulumi:"serviceEndpoints"` + // Resource type. + Type *string `pulumi:"type"` +} + +// Defaults sets the appropriate defaults for SubnetResponse +func (val *SubnetResponse) Defaults() *SubnetResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.PrivateEndpointNetworkPolicies == nil { + privateEndpointNetworkPolicies_ := "Disabled" + tmp.PrivateEndpointNetworkPolicies = &privateEndpointNetworkPolicies_ + } + if tmp.PrivateLinkServiceNetworkPolicies == nil { + privateLinkServiceNetworkPolicies_ := "Enabled" + tmp.PrivateLinkServiceNetworkPolicies = &privateLinkServiceNetworkPolicies_ + } + return &tmp +} + +// Subnet in a virtual network resource. +type SubnetResponseOutput struct{ *pulumi.OutputState } + +func (SubnetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetResponse)(nil)).Elem() +} + +func (o SubnetResponseOutput) ToSubnetResponseOutput() SubnetResponseOutput { + return o +} + +func (o SubnetResponseOutput) ToSubnetResponseOutputWithContext(ctx context.Context) SubnetResponseOutput { + return o +} + +// The address prefix for the subnet. +func (o SubnetResponseOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.AddressPrefix }).(pulumi.StringPtrOutput) +} + +// List of address prefixes for the subnet. +func (o SubnetResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SubnetResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// Application gateway IP configurations of virtual network resource. +func (o SubnetResponseOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []ApplicationGatewayIPConfigurationResponse { + return v.ApplicationGatewayIPConfigurations + }).(ApplicationGatewayIPConfigurationResponseArrayOutput) +} + +// An array of references to the delegations on the subnet. +func (o SubnetResponseOutput) Delegations() DelegationResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []DelegationResponse { return v.Delegations }).(DelegationResponseArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SubnetResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v SubnetResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o SubnetResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// An array of references to interface endpoints +func (o SubnetResponseOutput) InterfaceEndpoints() InterfaceEndpointResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []InterfaceEndpointResponse { return v.InterfaceEndpoints }).(InterfaceEndpointResponseArrayOutput) +} + +// Array of IpAllocation which reference this subnet. +func (o SubnetResponseOutput) IpAllocations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []SubResourceResponse { return v.IpAllocations }).(SubResourceResponseArrayOutput) +} + +// Array of IP configuration profiles which reference this subnet. +func (o SubnetResponseOutput) IpConfigurationProfiles() IPConfigurationProfileResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []IPConfigurationProfileResponse { return v.IpConfigurationProfiles }).(IPConfigurationProfileResponseArrayOutput) +} + +// An array of references to the network interface IP configurations using subnet. +func (o SubnetResponseOutput) IpConfigurations() IPConfigurationResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []IPConfigurationResponse { return v.IpConfigurations }).(IPConfigurationResponseArrayOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SubnetResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Nat gateway associated with this subnet. +func (o SubnetResponseOutput) NatGateway() SubResourceResponsePtrOutput { + return o.ApplyT(func(v SubnetResponse) *SubResourceResponse { return v.NatGateway }).(SubResourceResponsePtrOutput) +} + +// The reference to the NetworkSecurityGroup resource. +func (o SubnetResponseOutput) NetworkSecurityGroup() NetworkSecurityGroupResponsePtrOutput { + return o.ApplyT(func(v SubnetResponse) *NetworkSecurityGroupResponse { return v.NetworkSecurityGroup }).(NetworkSecurityGroupResponsePtrOutput) +} + +// Enable or Disable apply network policies on private end point in the subnet. +func (o SubnetResponseOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.PrivateEndpointNetworkPolicies }).(pulumi.StringPtrOutput) +} + +// An array of references to private endpoints. +func (o SubnetResponseOutput) PrivateEndpoints() PrivateEndpointResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []PrivateEndpointResponse { return v.PrivateEndpoints }).(PrivateEndpointResponseArrayOutput) +} + +// Enable or Disable apply network policies on private link service in the subnet. +func (o SubnetResponseOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.PrivateLinkServiceNetworkPolicies }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the subnet resource. +func (o SubnetResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v SubnetResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. +func (o SubnetResponseOutput) Purpose() pulumi.StringOutput { + return o.ApplyT(func(v SubnetResponse) string { return v.Purpose }).(pulumi.StringOutput) +} + +// An array of references to the external resources using subnet. +func (o SubnetResponseOutput) ResourceNavigationLinks() ResourceNavigationLinkResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []ResourceNavigationLinkResponse { return v.ResourceNavigationLinks }).(ResourceNavigationLinkResponseArrayOutput) +} + +// The reference to the RouteTable resource. +func (o SubnetResponseOutput) RouteTable() RouteTableResponsePtrOutput { + return o.ApplyT(func(v SubnetResponse) *RouteTableResponse { return v.RouteTable }).(RouteTableResponsePtrOutput) +} + +// An array of references to services injecting into this subnet. +func (o SubnetResponseOutput) ServiceAssociationLinks() ServiceAssociationLinkResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []ServiceAssociationLinkResponse { return v.ServiceAssociationLinks }).(ServiceAssociationLinkResponseArrayOutput) +} + +// An array of service endpoint policies. +func (o SubnetResponseOutput) ServiceEndpointPolicies() ServiceEndpointPolicyResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []ServiceEndpointPolicyResponse { return v.ServiceEndpointPolicies }).(ServiceEndpointPolicyResponseArrayOutput) +} + +// An array of service endpoints. +func (o SubnetResponseOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatResponseArrayOutput { + return o.ApplyT(func(v SubnetResponse) []ServiceEndpointPropertiesFormatResponse { return v.ServiceEndpoints }).(ServiceEndpointPropertiesFormatResponseArrayOutput) +} + +// Resource type. +func (o SubnetResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type SubnetResponsePtrOutput struct{ *pulumi.OutputState } + +func (SubnetResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetResponse)(nil)).Elem() +} + +func (o SubnetResponsePtrOutput) ToSubnetResponsePtrOutput() SubnetResponsePtrOutput { + return o +} + +func (o SubnetResponsePtrOutput) ToSubnetResponsePtrOutputWithContext(ctx context.Context) SubnetResponsePtrOutput { + return o +} + +func (o SubnetResponsePtrOutput) Elem() SubnetResponseOutput { + return o.ApplyT(func(v *SubnetResponse) SubnetResponse { + if v != nil { + return *v + } + var ret SubnetResponse + return ret + }).(SubnetResponseOutput) +} + +// The address prefix for the subnet. +func (o SubnetResponsePtrOutput) AddressPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.AddressPrefix + }).(pulumi.StringPtrOutput) +} + +// List of address prefixes for the subnet. +func (o SubnetResponsePtrOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []string { + if v == nil { + return nil + } + return v.AddressPrefixes + }).(pulumi.StringArrayOutput) +} + +// Application gateway IP configurations of virtual network resource. +func (o SubnetResponsePtrOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []ApplicationGatewayIPConfigurationResponse { + if v == nil { + return nil + } + return v.ApplicationGatewayIPConfigurations + }).(ApplicationGatewayIPConfigurationResponseArrayOutput) +} + +// An array of references to the delegations on the subnet. +func (o SubnetResponsePtrOutput) Delegations() DelegationResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []DelegationResponse { + if v == nil { + return nil + } + return v.Delegations + }).(DelegationResponseArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o SubnetResponsePtrOutput) Etag() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return &v.Etag + }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o SubnetResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// An array of references to interface endpoints +func (o SubnetResponsePtrOutput) InterfaceEndpoints() InterfaceEndpointResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []InterfaceEndpointResponse { + if v == nil { + return nil + } + return v.InterfaceEndpoints + }).(InterfaceEndpointResponseArrayOutput) +} + +// Array of IpAllocation which reference this subnet. +func (o SubnetResponsePtrOutput) IpAllocations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []SubResourceResponse { + if v == nil { + return nil + } + return v.IpAllocations + }).(SubResourceResponseArrayOutput) +} + +// Array of IP configuration profiles which reference this subnet. +func (o SubnetResponsePtrOutput) IpConfigurationProfiles() IPConfigurationProfileResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []IPConfigurationProfileResponse { + if v == nil { + return nil + } + return v.IpConfigurationProfiles + }).(IPConfigurationProfileResponseArrayOutput) +} + +// An array of references to the network interface IP configurations using subnet. +func (o SubnetResponsePtrOutput) IpConfigurations() IPConfigurationResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []IPConfigurationResponse { + if v == nil { + return nil + } + return v.IpConfigurations + }).(IPConfigurationResponseArrayOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o SubnetResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Nat gateway associated with this subnet. +func (o SubnetResponsePtrOutput) NatGateway() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *SubnetResponse) *SubResourceResponse { + if v == nil { + return nil + } + return v.NatGateway + }).(SubResourceResponsePtrOutput) +} + +// The reference to the NetworkSecurityGroup resource. +func (o SubnetResponsePtrOutput) NetworkSecurityGroup() NetworkSecurityGroupResponsePtrOutput { + return o.ApplyT(func(v *SubnetResponse) *NetworkSecurityGroupResponse { + if v == nil { + return nil + } + return v.NetworkSecurityGroup + }).(NetworkSecurityGroupResponsePtrOutput) +} + +// Enable or Disable apply network policies on private end point in the subnet. +func (o SubnetResponsePtrOutput) PrivateEndpointNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.PrivateEndpointNetworkPolicies + }).(pulumi.StringPtrOutput) +} + +// An array of references to private endpoints. +func (o SubnetResponsePtrOutput) PrivateEndpoints() PrivateEndpointResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []PrivateEndpointResponse { + if v == nil { + return nil + } + return v.PrivateEndpoints + }).(PrivateEndpointResponseArrayOutput) +} + +// Enable or Disable apply network policies on private link service in the subnet. +func (o SubnetResponsePtrOutput) PrivateLinkServiceNetworkPolicies() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.PrivateLinkServiceNetworkPolicies + }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the subnet resource. +func (o SubnetResponsePtrOutput) ProvisioningState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return &v.ProvisioningState + }).(pulumi.StringPtrOutput) +} + +// A read-only string identifying the intention of use for this subnet based on delegations and other user-defined properties. +func (o SubnetResponsePtrOutput) Purpose() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return &v.Purpose + }).(pulumi.StringPtrOutput) +} + +// An array of references to the external resources using subnet. +func (o SubnetResponsePtrOutput) ResourceNavigationLinks() ResourceNavigationLinkResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []ResourceNavigationLinkResponse { + if v == nil { + return nil + } + return v.ResourceNavigationLinks + }).(ResourceNavigationLinkResponseArrayOutput) +} + +// The reference to the RouteTable resource. +func (o SubnetResponsePtrOutput) RouteTable() RouteTableResponsePtrOutput { + return o.ApplyT(func(v *SubnetResponse) *RouteTableResponse { + if v == nil { + return nil + } + return v.RouteTable + }).(RouteTableResponsePtrOutput) +} + +// An array of references to services injecting into this subnet. +func (o SubnetResponsePtrOutput) ServiceAssociationLinks() ServiceAssociationLinkResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []ServiceAssociationLinkResponse { + if v == nil { + return nil + } + return v.ServiceAssociationLinks + }).(ServiceAssociationLinkResponseArrayOutput) +} + +// An array of service endpoint policies. +func (o SubnetResponsePtrOutput) ServiceEndpointPolicies() ServiceEndpointPolicyResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []ServiceEndpointPolicyResponse { + if v == nil { + return nil + } + return v.ServiceEndpointPolicies + }).(ServiceEndpointPolicyResponseArrayOutput) +} + +// An array of service endpoints. +func (o SubnetResponsePtrOutput) ServiceEndpoints() ServiceEndpointPropertiesFormatResponseArrayOutput { + return o.ApplyT(func(v *SubnetResponse) []ServiceEndpointPropertiesFormatResponse { + if v == nil { + return nil + } + return v.ServiceEndpoints + }).(ServiceEndpointPropertiesFormatResponseArrayOutput) +} + +// Resource type. +func (o SubnetResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetResponse) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type SubnetResponseArrayOutput struct{ *pulumi.OutputState } + +func (SubnetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubnetResponse)(nil)).Elem() +} + +func (o SubnetResponseArrayOutput) ToSubnetResponseArrayOutput() SubnetResponseArrayOutput { + return o +} + +func (o SubnetResponseArrayOutput) ToSubnetResponseArrayOutputWithContext(ctx context.Context) SubnetResponseArrayOutput { + return o +} + +func (o SubnetResponseArrayOutput) Index(i pulumi.IntInput) SubnetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetResponse { + return vs[0].([]SubnetResponse)[vs[1].(int)] + }).(SubnetResponseOutput) +} + +type SubscriptionId struct { + // Subscription id in the ARM id format. + Id *string `pulumi:"id"` +} + +// SubscriptionIdInput is an input type that accepts SubscriptionIdArgs and SubscriptionIdOutput values. +// You can construct a concrete instance of `SubscriptionIdInput` via: +// +// SubscriptionIdArgs{...} +type SubscriptionIdInput interface { + pulumi.Input + + ToSubscriptionIdOutput() SubscriptionIdOutput + ToSubscriptionIdOutputWithContext(context.Context) SubscriptionIdOutput +} + +type SubscriptionIdArgs struct { + // Subscription id in the ARM id format. + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (SubscriptionIdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriptionId)(nil)).Elem() +} + +func (i SubscriptionIdArgs) ToSubscriptionIdOutput() SubscriptionIdOutput { + return i.ToSubscriptionIdOutputWithContext(context.Background()) +} + +func (i SubscriptionIdArgs) ToSubscriptionIdOutputWithContext(ctx context.Context) SubscriptionIdOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriptionIdOutput) +} + +// SubscriptionIdArrayInput is an input type that accepts SubscriptionIdArray and SubscriptionIdArrayOutput values. +// You can construct a concrete instance of `SubscriptionIdArrayInput` via: +// +// SubscriptionIdArray{ SubscriptionIdArgs{...} } +type SubscriptionIdArrayInput interface { + pulumi.Input + + ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput + ToSubscriptionIdArrayOutputWithContext(context.Context) SubscriptionIdArrayOutput +} + +type SubscriptionIdArray []SubscriptionIdInput + +func (SubscriptionIdArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubscriptionId)(nil)).Elem() +} + +func (i SubscriptionIdArray) ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput { + return i.ToSubscriptionIdArrayOutputWithContext(context.Background()) +} + +func (i SubscriptionIdArray) ToSubscriptionIdArrayOutputWithContext(ctx context.Context) SubscriptionIdArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriptionIdArrayOutput) +} + +type SubscriptionIdOutput struct{ *pulumi.OutputState } + +func (SubscriptionIdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriptionId)(nil)).Elem() +} + +func (o SubscriptionIdOutput) ToSubscriptionIdOutput() SubscriptionIdOutput { + return o +} + +func (o SubscriptionIdOutput) ToSubscriptionIdOutputWithContext(ctx context.Context) SubscriptionIdOutput { + return o +} + +// Subscription id in the ARM id format. +func (o SubscriptionIdOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriptionId) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SubscriptionIdArrayOutput struct{ *pulumi.OutputState } + +func (SubscriptionIdArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubscriptionId)(nil)).Elem() +} + +func (o SubscriptionIdArrayOutput) ToSubscriptionIdArrayOutput() SubscriptionIdArrayOutput { + return o +} + +func (o SubscriptionIdArrayOutput) ToSubscriptionIdArrayOutputWithContext(ctx context.Context) SubscriptionIdArrayOutput { + return o +} + +func (o SubscriptionIdArrayOutput) Index(i pulumi.IntInput) SubscriptionIdOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubscriptionId { + return vs[0].([]SubscriptionId)[vs[1].(int)] + }).(SubscriptionIdOutput) +} + +type SubscriptionIdResponse struct { + // Subscription id in the ARM id format. + Id *string `pulumi:"id"` +} + +type SubscriptionIdResponseOutput struct{ *pulumi.OutputState } + +func (SubscriptionIdResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriptionIdResponse)(nil)).Elem() +} + +func (o SubscriptionIdResponseOutput) ToSubscriptionIdResponseOutput() SubscriptionIdResponseOutput { + return o +} + +func (o SubscriptionIdResponseOutput) ToSubscriptionIdResponseOutputWithContext(ctx context.Context) SubscriptionIdResponseOutput { + return o +} + +// Subscription id in the ARM id format. +func (o SubscriptionIdResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriptionIdResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +type SubscriptionIdResponseArrayOutput struct{ *pulumi.OutputState } + +func (SubscriptionIdResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubscriptionIdResponse)(nil)).Elem() +} + +func (o SubscriptionIdResponseArrayOutput) ToSubscriptionIdResponseArrayOutput() SubscriptionIdResponseArrayOutput { + return o +} + +func (o SubscriptionIdResponseArrayOutput) ToSubscriptionIdResponseArrayOutputWithContext(ctx context.Context) SubscriptionIdResponseArrayOutput { + return o +} + +func (o SubscriptionIdResponseArrayOutput) Index(i pulumi.IntInput) SubscriptionIdResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubscriptionIdResponse { + return vs[0].([]SubscriptionIdResponse)[vs[1].(int)] + }).(SubscriptionIdResponseOutput) +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemDataResponse struct { + // The timestamp of resource creation (UTC). + CreatedAt *string `pulumi:"createdAt"` + // The identity that created the resource. + CreatedBy *string `pulumi:"createdBy"` + // The type of identity that created the resource. + CreatedByType *string `pulumi:"createdByType"` + // The type of identity that last modified the resource. + LastModifiedAt *string `pulumi:"lastModifiedAt"` + // The identity that last modified the resource. + LastModifiedBy *string `pulumi:"lastModifiedBy"` + // The type of identity that last modified the resource. + LastModifiedByType *string `pulumi:"lastModifiedByType"` +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemDataResponseOutput struct{ *pulumi.OutputState } + +func (SystemDataResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SystemDataResponse)(nil)).Elem() +} + +func (o SystemDataResponseOutput) ToSystemDataResponseOutput() SystemDataResponseOutput { + return o +} + +func (o SystemDataResponseOutput) ToSystemDataResponseOutputWithContext(ctx context.Context) SystemDataResponseOutput { + return o +} + +// The timestamp of resource creation (UTC). +func (o SystemDataResponseOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +// The identity that created the resource. +func (o SystemDataResponseOutput) CreatedBy() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedBy }).(pulumi.StringPtrOutput) +} + +// The type of identity that created the resource. +func (o SystemDataResponseOutput) CreatedByType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedByType }).(pulumi.StringPtrOutput) +} + +// The type of identity that last modified the resource. +func (o SystemDataResponseOutput) LastModifiedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedAt }).(pulumi.StringPtrOutput) +} + +// The identity that last modified the resource. +func (o SystemDataResponseOutput) LastModifiedBy() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedBy }).(pulumi.StringPtrOutput) +} + +// The type of identity that last modified the resource. +func (o SystemDataResponseOutput) LastModifiedByType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedByType }).(pulumi.StringPtrOutput) +} + +// Describes a server to forward the DNS queries to. +type TargetDnsServer struct { + // DNS server IP address. + IpAddress string `pulumi:"ipAddress"` + // DNS server port. + Port *int `pulumi:"port"` +} + +// Defaults sets the appropriate defaults for TargetDnsServer +func (val *TargetDnsServer) Defaults() *TargetDnsServer { + if val == nil { + return nil + } + tmp := *val + if tmp.Port == nil { + port_ := 53 + tmp.Port = &port_ + } + return &tmp +} + +// TargetDnsServerInput is an input type that accepts TargetDnsServerArgs and TargetDnsServerOutput values. +// You can construct a concrete instance of `TargetDnsServerInput` via: +// +// TargetDnsServerArgs{...} +type TargetDnsServerInput interface { + pulumi.Input + + ToTargetDnsServerOutput() TargetDnsServerOutput + ToTargetDnsServerOutputWithContext(context.Context) TargetDnsServerOutput +} + +// Describes a server to forward the DNS queries to. +type TargetDnsServerArgs struct { + // DNS server IP address. + IpAddress pulumi.StringInput `pulumi:"ipAddress"` + // DNS server port. + Port pulumi.IntPtrInput `pulumi:"port"` +} + +// Defaults sets the appropriate defaults for TargetDnsServerArgs +func (val *TargetDnsServerArgs) Defaults() *TargetDnsServerArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Port == nil { + tmp.Port = pulumi.IntPtr(53) + } + return &tmp +} +func (TargetDnsServerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TargetDnsServer)(nil)).Elem() +} + +func (i TargetDnsServerArgs) ToTargetDnsServerOutput() TargetDnsServerOutput { + return i.ToTargetDnsServerOutputWithContext(context.Background()) +} + +func (i TargetDnsServerArgs) ToTargetDnsServerOutputWithContext(ctx context.Context) TargetDnsServerOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetDnsServerOutput) +} + +// TargetDnsServerArrayInput is an input type that accepts TargetDnsServerArray and TargetDnsServerArrayOutput values. +// You can construct a concrete instance of `TargetDnsServerArrayInput` via: +// +// TargetDnsServerArray{ TargetDnsServerArgs{...} } +type TargetDnsServerArrayInput interface { + pulumi.Input + + ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput + ToTargetDnsServerArrayOutputWithContext(context.Context) TargetDnsServerArrayOutput +} + +type TargetDnsServerArray []TargetDnsServerInput + +func (TargetDnsServerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TargetDnsServer)(nil)).Elem() +} + +func (i TargetDnsServerArray) ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput { + return i.ToTargetDnsServerArrayOutputWithContext(context.Background()) +} + +func (i TargetDnsServerArray) ToTargetDnsServerArrayOutputWithContext(ctx context.Context) TargetDnsServerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TargetDnsServerArrayOutput) +} + +// Describes a server to forward the DNS queries to. +type TargetDnsServerOutput struct{ *pulumi.OutputState } + +func (TargetDnsServerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetDnsServer)(nil)).Elem() +} + +func (o TargetDnsServerOutput) ToTargetDnsServerOutput() TargetDnsServerOutput { + return o +} + +func (o TargetDnsServerOutput) ToTargetDnsServerOutputWithContext(ctx context.Context) TargetDnsServerOutput { + return o +} + +// DNS server IP address. +func (o TargetDnsServerOutput) IpAddress() pulumi.StringOutput { + return o.ApplyT(func(v TargetDnsServer) string { return v.IpAddress }).(pulumi.StringOutput) +} + +// DNS server port. +func (o TargetDnsServerOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TargetDnsServer) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +type TargetDnsServerArrayOutput struct{ *pulumi.OutputState } + +func (TargetDnsServerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TargetDnsServer)(nil)).Elem() +} + +func (o TargetDnsServerArrayOutput) ToTargetDnsServerArrayOutput() TargetDnsServerArrayOutput { + return o +} + +func (o TargetDnsServerArrayOutput) ToTargetDnsServerArrayOutputWithContext(ctx context.Context) TargetDnsServerArrayOutput { + return o +} + +func (o TargetDnsServerArrayOutput) Index(i pulumi.IntInput) TargetDnsServerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TargetDnsServer { + return vs[0].([]TargetDnsServer)[vs[1].(int)] + }).(TargetDnsServerOutput) +} + +// Describes a server to forward the DNS queries to. +type TargetDnsServerResponse struct { + // DNS server IP address. + IpAddress string `pulumi:"ipAddress"` + // DNS server port. + Port *int `pulumi:"port"` +} + +// Defaults sets the appropriate defaults for TargetDnsServerResponse +func (val *TargetDnsServerResponse) Defaults() *TargetDnsServerResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.Port == nil { + port_ := 53 + tmp.Port = &port_ + } + return &tmp +} + +// Describes a server to forward the DNS queries to. +type TargetDnsServerResponseOutput struct{ *pulumi.OutputState } + +func (TargetDnsServerResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TargetDnsServerResponse)(nil)).Elem() +} + +func (o TargetDnsServerResponseOutput) ToTargetDnsServerResponseOutput() TargetDnsServerResponseOutput { + return o +} + +func (o TargetDnsServerResponseOutput) ToTargetDnsServerResponseOutputWithContext(ctx context.Context) TargetDnsServerResponseOutput { + return o +} + +// DNS server IP address. +func (o TargetDnsServerResponseOutput) IpAddress() pulumi.StringOutput { + return o.ApplyT(func(v TargetDnsServerResponse) string { return v.IpAddress }).(pulumi.StringOutput) +} + +// DNS server port. +func (o TargetDnsServerResponseOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TargetDnsServerResponse) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +type TargetDnsServerResponseArrayOutput struct{ *pulumi.OutputState } + +func (TargetDnsServerResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TargetDnsServerResponse)(nil)).Elem() +} + +func (o TargetDnsServerResponseArrayOutput) ToTargetDnsServerResponseArrayOutput() TargetDnsServerResponseArrayOutput { + return o +} + +func (o TargetDnsServerResponseArrayOutput) ToTargetDnsServerResponseArrayOutputWithContext(ctx context.Context) TargetDnsServerResponseArrayOutput { + return o +} + +func (o TargetDnsServerResponseArrayOutput) Index(i pulumi.IntInput) TargetDnsServerResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TargetDnsServerResponse { + return vs[0].([]TargetDnsServerResponse)[vs[1].(int)] + }).(TargetDnsServerResponseOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsConfigurationProperties struct { + // Flag to enable/disable traffic analytics. + Enabled *bool `pulumi:"enabled"` + // The interval in minutes which would decide how frequently TA service should do flow analytics. + TrafficAnalyticsInterval *int `pulumi:"trafficAnalyticsInterval"` + // The resource guid of the attached workspace. + WorkspaceId *string `pulumi:"workspaceId"` + // The location of the attached workspace. + WorkspaceRegion *string `pulumi:"workspaceRegion"` + // Resource Id of the attached workspace. + WorkspaceResourceId *string `pulumi:"workspaceResourceId"` +} + +// TrafficAnalyticsConfigurationPropertiesInput is an input type that accepts TrafficAnalyticsConfigurationPropertiesArgs and TrafficAnalyticsConfigurationPropertiesOutput values. +// You can construct a concrete instance of `TrafficAnalyticsConfigurationPropertiesInput` via: +// +// TrafficAnalyticsConfigurationPropertiesArgs{...} +type TrafficAnalyticsConfigurationPropertiesInput interface { + pulumi.Input + + ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput + ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(context.Context) TrafficAnalyticsConfigurationPropertiesOutput +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsConfigurationPropertiesArgs struct { + // Flag to enable/disable traffic analytics. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // The interval in minutes which would decide how frequently TA service should do flow analytics. + TrafficAnalyticsInterval pulumi.IntPtrInput `pulumi:"trafficAnalyticsInterval"` + // The resource guid of the attached workspace. + WorkspaceId pulumi.StringPtrInput `pulumi:"workspaceId"` + // The location of the attached workspace. + WorkspaceRegion pulumi.StringPtrInput `pulumi:"workspaceRegion"` + // Resource Id of the attached workspace. + WorkspaceResourceId pulumi.StringPtrInput `pulumi:"workspaceResourceId"` +} + +func (TrafficAnalyticsConfigurationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsConfigurationProperties)(nil)).Elem() +} + +func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput { + return i.ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(context.Background()) +} + +func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesOutput) +} + +func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return i.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i TrafficAnalyticsConfigurationPropertiesArgs) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesOutput).ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx) +} + +// TrafficAnalyticsConfigurationPropertiesPtrInput is an input type that accepts TrafficAnalyticsConfigurationPropertiesArgs, TrafficAnalyticsConfigurationPropertiesPtr and TrafficAnalyticsConfigurationPropertiesPtrOutput values. +// You can construct a concrete instance of `TrafficAnalyticsConfigurationPropertiesPtrInput` via: +// +// TrafficAnalyticsConfigurationPropertiesArgs{...} +// +// or: +// +// nil +type TrafficAnalyticsConfigurationPropertiesPtrInput interface { + pulumi.Input + + ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput + ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput +} + +type trafficAnalyticsConfigurationPropertiesPtrType TrafficAnalyticsConfigurationPropertiesArgs + +func TrafficAnalyticsConfigurationPropertiesPtr(v *TrafficAnalyticsConfigurationPropertiesArgs) TrafficAnalyticsConfigurationPropertiesPtrInput { + return (*trafficAnalyticsConfigurationPropertiesPtrType)(v) +} + +func (*trafficAnalyticsConfigurationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsConfigurationProperties)(nil)).Elem() +} + +func (i *trafficAnalyticsConfigurationPropertiesPtrType) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return i.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *trafficAnalyticsConfigurationPropertiesPtrType) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsConfigurationPropertiesOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsConfigurationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsConfigurationProperties)(nil)).Elem() +} + +func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesOutput() TrafficAnalyticsConfigurationPropertiesOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o.ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o TrafficAnalyticsConfigurationPropertiesOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TrafficAnalyticsConfigurationProperties) *TrafficAnalyticsConfigurationProperties { + return &v + }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +} + +// Flag to enable/disable traffic analytics. +func (o TrafficAnalyticsConfigurationPropertiesOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The interval in minutes which would decide how frequently TA service should do flow analytics. +func (o TrafficAnalyticsConfigurationPropertiesOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *int { return v.TrafficAnalyticsInterval }).(pulumi.IntPtrOutput) +} + +// The resource guid of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceId }).(pulumi.StringPtrOutput) +} + +// The location of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceRegion }).(pulumi.StringPtrOutput) +} + +// Resource Id of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesOutput) WorkspaceResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationProperties) *string { return v.WorkspaceResourceId }).(pulumi.StringPtrOutput) +} + +type TrafficAnalyticsConfigurationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsConfigurationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsConfigurationProperties)(nil)).Elem() +} + +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutput() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) ToTrafficAnalyticsConfigurationPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) Elem() TrafficAnalyticsConfigurationPropertiesOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) TrafficAnalyticsConfigurationProperties { + if v != nil { + return *v + } + var ret TrafficAnalyticsConfigurationProperties + return ret + }).(TrafficAnalyticsConfigurationPropertiesOutput) +} + +// Flag to enable/disable traffic analytics. +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The interval in minutes which would decide how frequently TA service should do flow analytics. +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *int { + if v == nil { + return nil + } + return v.TrafficAnalyticsInterval + }).(pulumi.IntPtrOutput) +} + +// The resource guid of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { + if v == nil { + return nil + } + return v.WorkspaceId + }).(pulumi.StringPtrOutput) +} + +// The location of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { + if v == nil { + return nil + } + return v.WorkspaceRegion + }).(pulumi.StringPtrOutput) +} + +// Resource Id of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesPtrOutput) WorkspaceResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationProperties) *string { + if v == nil { + return nil + } + return v.WorkspaceResourceId + }).(pulumi.StringPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsConfigurationPropertiesResponse struct { + // Flag to enable/disable traffic analytics. + Enabled *bool `pulumi:"enabled"` + // The interval in minutes which would decide how frequently TA service should do flow analytics. + TrafficAnalyticsInterval *int `pulumi:"trafficAnalyticsInterval"` + // The resource guid of the attached workspace. + WorkspaceId *string `pulumi:"workspaceId"` + // The location of the attached workspace. + WorkspaceRegion *string `pulumi:"workspaceRegion"` + // Resource Id of the attached workspace. + WorkspaceResourceId *string `pulumi:"workspaceResourceId"` +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsConfigurationPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsConfigurationPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsConfigurationPropertiesResponse)(nil)).Elem() +} + +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) ToTrafficAnalyticsConfigurationPropertiesResponseOutput() TrafficAnalyticsConfigurationPropertiesResponseOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) ToTrafficAnalyticsConfigurationPropertiesResponseOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesResponseOutput { + return o +} + +// Flag to enable/disable traffic analytics. +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The interval in minutes which would decide how frequently TA service should do flow analytics. +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *int { return v.TrafficAnalyticsInterval }).(pulumi.IntPtrOutput) +} + +// The resource guid of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceId }).(pulumi.StringPtrOutput) +} + +// The location of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceRegion }).(pulumi.StringPtrOutput) +} + +// Resource Id of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponseOutput) WorkspaceResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsConfigurationPropertiesResponse) *string { return v.WorkspaceResourceId }).(pulumi.StringPtrOutput) +} + +type TrafficAnalyticsConfigurationPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsConfigurationPropertiesResponse)(nil)).Elem() +} + +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ToTrafficAnalyticsConfigurationPropertiesResponsePtrOutput() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) ToTrafficAnalyticsConfigurationPropertiesResponsePtrOutputWithContext(ctx context.Context) TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { + return o +} + +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) Elem() TrafficAnalyticsConfigurationPropertiesResponseOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) TrafficAnalyticsConfigurationPropertiesResponse { + if v != nil { + return *v + } + var ret TrafficAnalyticsConfigurationPropertiesResponse + return ret + }).(TrafficAnalyticsConfigurationPropertiesResponseOutput) +} + +// Flag to enable/disable traffic analytics. +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The interval in minutes which would decide how frequently TA service should do flow analytics. +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) TrafficAnalyticsInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *int { + if v == nil { + return nil + } + return v.TrafficAnalyticsInterval + }).(pulumi.IntPtrOutput) +} + +// The resource guid of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { + if v == nil { + return nil + } + return v.WorkspaceId + }).(pulumi.StringPtrOutput) +} + +// The location of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { + if v == nil { + return nil + } + return v.WorkspaceRegion + }).(pulumi.StringPtrOutput) +} + +// Resource Id of the attached workspace. +func (o TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) WorkspaceResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsConfigurationPropertiesResponse) *string { + if v == nil { + return nil + } + return v.WorkspaceResourceId + }).(pulumi.StringPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsProperties struct { + // Parameters that define the configuration of traffic analytics. + NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationProperties `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +} + +// TrafficAnalyticsPropertiesInput is an input type that accepts TrafficAnalyticsPropertiesArgs and TrafficAnalyticsPropertiesOutput values. +// You can construct a concrete instance of `TrafficAnalyticsPropertiesInput` via: +// +// TrafficAnalyticsPropertiesArgs{...} +type TrafficAnalyticsPropertiesInput interface { + pulumi.Input + + ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput + ToTrafficAnalyticsPropertiesOutputWithContext(context.Context) TrafficAnalyticsPropertiesOutput +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsPropertiesArgs struct { + // Parameters that define the configuration of traffic analytics. + NetworkWatcherFlowAnalyticsConfiguration TrafficAnalyticsConfigurationPropertiesPtrInput `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +} + +func (TrafficAnalyticsPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsProperties)(nil)).Elem() +} + +func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput { + return i.ToTrafficAnalyticsPropertiesOutputWithContext(context.Background()) +} + +func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesOutput) +} + +func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { + return i.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +} + +func (i TrafficAnalyticsPropertiesArgs) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesOutput).ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx) +} + +// TrafficAnalyticsPropertiesPtrInput is an input type that accepts TrafficAnalyticsPropertiesArgs, TrafficAnalyticsPropertiesPtr and TrafficAnalyticsPropertiesPtrOutput values. +// You can construct a concrete instance of `TrafficAnalyticsPropertiesPtrInput` via: +// +// TrafficAnalyticsPropertiesArgs{...} +// +// or: +// +// nil +type TrafficAnalyticsPropertiesPtrInput interface { + pulumi.Input + + ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput + ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Context) TrafficAnalyticsPropertiesPtrOutput +} + +type trafficAnalyticsPropertiesPtrType TrafficAnalyticsPropertiesArgs + +func TrafficAnalyticsPropertiesPtr(v *TrafficAnalyticsPropertiesArgs) TrafficAnalyticsPropertiesPtrInput { + return (*trafficAnalyticsPropertiesPtrType)(v) +} + +func (*trafficAnalyticsPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsProperties)(nil)).Elem() +} + +func (i *trafficAnalyticsPropertiesPtrType) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { + return i.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *trafficAnalyticsPropertiesPtrType) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficAnalyticsPropertiesPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsPropertiesOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsProperties)(nil)).Elem() +} + +func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesOutput() TrafficAnalyticsPropertiesOutput { + return o +} + +func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesOutput { + return o +} + +func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { + return o.ToTrafficAnalyticsPropertiesPtrOutputWithContext(context.Background()) +} + +func (o TrafficAnalyticsPropertiesOutput) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TrafficAnalyticsProperties) *TrafficAnalyticsProperties { + return &v + }).(TrafficAnalyticsPropertiesPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +func (o TrafficAnalyticsPropertiesOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v TrafficAnalyticsProperties) *TrafficAnalyticsConfigurationProperties { + return v.NetworkWatcherFlowAnalyticsConfiguration + }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +} + +type TrafficAnalyticsPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsProperties)(nil)).Elem() +} + +func (o TrafficAnalyticsPropertiesPtrOutput) ToTrafficAnalyticsPropertiesPtrOutput() TrafficAnalyticsPropertiesPtrOutput { + return o +} + +func (o TrafficAnalyticsPropertiesPtrOutput) ToTrafficAnalyticsPropertiesPtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesPtrOutput { + return o +} + +func (o TrafficAnalyticsPropertiesPtrOutput) Elem() TrafficAnalyticsPropertiesOutput { + return o.ApplyT(func(v *TrafficAnalyticsProperties) TrafficAnalyticsProperties { + if v != nil { + return *v + } + var ret TrafficAnalyticsProperties + return ret + }).(TrafficAnalyticsPropertiesOutput) +} + +// Parameters that define the configuration of traffic analytics. +func (o TrafficAnalyticsPropertiesPtrOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsProperties) *TrafficAnalyticsConfigurationProperties { + if v == nil { + return nil + } + return v.NetworkWatcherFlowAnalyticsConfiguration + }).(TrafficAnalyticsConfigurationPropertiesPtrOutput) +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsPropertiesResponse struct { + // Parameters that define the configuration of traffic analytics. + NetworkWatcherFlowAnalyticsConfiguration *TrafficAnalyticsConfigurationPropertiesResponse `pulumi:"networkWatcherFlowAnalyticsConfiguration"` +} + +// Parameters that define the configuration of traffic analytics. +type TrafficAnalyticsPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficAnalyticsPropertiesResponse)(nil)).Elem() +} + +func (o TrafficAnalyticsPropertiesResponseOutput) ToTrafficAnalyticsPropertiesResponseOutput() TrafficAnalyticsPropertiesResponseOutput { + return o +} + +func (o TrafficAnalyticsPropertiesResponseOutput) ToTrafficAnalyticsPropertiesResponseOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesResponseOutput { + return o +} + +// Parameters that define the configuration of traffic analytics. +func (o TrafficAnalyticsPropertiesResponseOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { + return o.ApplyT(func(v TrafficAnalyticsPropertiesResponse) *TrafficAnalyticsConfigurationPropertiesResponse { + return v.NetworkWatcherFlowAnalyticsConfiguration + }).(TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) +} + +type TrafficAnalyticsPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (TrafficAnalyticsPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TrafficAnalyticsPropertiesResponse)(nil)).Elem() +} + +func (o TrafficAnalyticsPropertiesResponsePtrOutput) ToTrafficAnalyticsPropertiesResponsePtrOutput() TrafficAnalyticsPropertiesResponsePtrOutput { + return o +} + +func (o TrafficAnalyticsPropertiesResponsePtrOutput) ToTrafficAnalyticsPropertiesResponsePtrOutputWithContext(ctx context.Context) TrafficAnalyticsPropertiesResponsePtrOutput { + return o +} + +func (o TrafficAnalyticsPropertiesResponsePtrOutput) Elem() TrafficAnalyticsPropertiesResponseOutput { + return o.ApplyT(func(v *TrafficAnalyticsPropertiesResponse) TrafficAnalyticsPropertiesResponse { + if v != nil { + return *v + } + var ret TrafficAnalyticsPropertiesResponse + return ret + }).(TrafficAnalyticsPropertiesResponseOutput) +} + +// Parameters that define the configuration of traffic analytics. +func (o TrafficAnalyticsPropertiesResponsePtrOutput) NetworkWatcherFlowAnalyticsConfiguration() TrafficAnalyticsConfigurationPropertiesResponsePtrOutput { + return o.ApplyT(func(v *TrafficAnalyticsPropertiesResponse) *TrafficAnalyticsConfigurationPropertiesResponse { + if v == nil { + return nil + } + return v.NetworkWatcherFlowAnalyticsConfiguration + }).(TrafficAnalyticsConfigurationPropertiesResponsePtrOutput) +} + +// An traffic selector policy for a virtual network gateway connection. +type TrafficSelectorPolicy struct { + // A collection of local address spaces in CIDR format. + LocalAddressRanges []string `pulumi:"localAddressRanges"` + // A collection of remote address spaces in CIDR format. + RemoteAddressRanges []string `pulumi:"remoteAddressRanges"` +} + +// TrafficSelectorPolicyInput is an input type that accepts TrafficSelectorPolicyArgs and TrafficSelectorPolicyOutput values. +// You can construct a concrete instance of `TrafficSelectorPolicyInput` via: +// +// TrafficSelectorPolicyArgs{...} +type TrafficSelectorPolicyInput interface { + pulumi.Input + + ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput + ToTrafficSelectorPolicyOutputWithContext(context.Context) TrafficSelectorPolicyOutput +} + +// An traffic selector policy for a virtual network gateway connection. +type TrafficSelectorPolicyArgs struct { + // A collection of local address spaces in CIDR format. + LocalAddressRanges pulumi.StringArrayInput `pulumi:"localAddressRanges"` + // A collection of remote address spaces in CIDR format. + RemoteAddressRanges pulumi.StringArrayInput `pulumi:"remoteAddressRanges"` +} + +func (TrafficSelectorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficSelectorPolicy)(nil)).Elem() +} + +func (i TrafficSelectorPolicyArgs) ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput { + return i.ToTrafficSelectorPolicyOutputWithContext(context.Background()) +} + +func (i TrafficSelectorPolicyArgs) ToTrafficSelectorPolicyOutputWithContext(ctx context.Context) TrafficSelectorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficSelectorPolicyOutput) +} + +// TrafficSelectorPolicyArrayInput is an input type that accepts TrafficSelectorPolicyArray and TrafficSelectorPolicyArrayOutput values. +// You can construct a concrete instance of `TrafficSelectorPolicyArrayInput` via: +// +// TrafficSelectorPolicyArray{ TrafficSelectorPolicyArgs{...} } +type TrafficSelectorPolicyArrayInput interface { + pulumi.Input + + ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput + ToTrafficSelectorPolicyArrayOutputWithContext(context.Context) TrafficSelectorPolicyArrayOutput +} + +type TrafficSelectorPolicyArray []TrafficSelectorPolicyInput + +func (TrafficSelectorPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrafficSelectorPolicy)(nil)).Elem() +} + +func (i TrafficSelectorPolicyArray) ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput { + return i.ToTrafficSelectorPolicyArrayOutputWithContext(context.Background()) +} + +func (i TrafficSelectorPolicyArray) ToTrafficSelectorPolicyArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TrafficSelectorPolicyArrayOutput) +} + +// An traffic selector policy for a virtual network gateway connection. +type TrafficSelectorPolicyOutput struct{ *pulumi.OutputState } + +func (TrafficSelectorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficSelectorPolicy)(nil)).Elem() +} + +func (o TrafficSelectorPolicyOutput) ToTrafficSelectorPolicyOutput() TrafficSelectorPolicyOutput { + return o +} + +func (o TrafficSelectorPolicyOutput) ToTrafficSelectorPolicyOutputWithContext(ctx context.Context) TrafficSelectorPolicyOutput { + return o +} + +// A collection of local address spaces in CIDR format. +func (o TrafficSelectorPolicyOutput) LocalAddressRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v TrafficSelectorPolicy) []string { return v.LocalAddressRanges }).(pulumi.StringArrayOutput) +} + +// A collection of remote address spaces in CIDR format. +func (o TrafficSelectorPolicyOutput) RemoteAddressRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v TrafficSelectorPolicy) []string { return v.RemoteAddressRanges }).(pulumi.StringArrayOutput) +} + +type TrafficSelectorPolicyArrayOutput struct{ *pulumi.OutputState } + +func (TrafficSelectorPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrafficSelectorPolicy)(nil)).Elem() +} + +func (o TrafficSelectorPolicyArrayOutput) ToTrafficSelectorPolicyArrayOutput() TrafficSelectorPolicyArrayOutput { + return o +} + +func (o TrafficSelectorPolicyArrayOutput) ToTrafficSelectorPolicyArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyArrayOutput { + return o +} + +func (o TrafficSelectorPolicyArrayOutput) Index(i pulumi.IntInput) TrafficSelectorPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrafficSelectorPolicy { + return vs[0].([]TrafficSelectorPolicy)[vs[1].(int)] + }).(TrafficSelectorPolicyOutput) +} + +// An traffic selector policy for a virtual network gateway connection. +type TrafficSelectorPolicyResponse struct { + // A collection of local address spaces in CIDR format. + LocalAddressRanges []string `pulumi:"localAddressRanges"` + // A collection of remote address spaces in CIDR format. + RemoteAddressRanges []string `pulumi:"remoteAddressRanges"` +} + +// An traffic selector policy for a virtual network gateway connection. +type TrafficSelectorPolicyResponseOutput struct{ *pulumi.OutputState } + +func (TrafficSelectorPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TrafficSelectorPolicyResponse)(nil)).Elem() +} + +func (o TrafficSelectorPolicyResponseOutput) ToTrafficSelectorPolicyResponseOutput() TrafficSelectorPolicyResponseOutput { + return o +} + +func (o TrafficSelectorPolicyResponseOutput) ToTrafficSelectorPolicyResponseOutputWithContext(ctx context.Context) TrafficSelectorPolicyResponseOutput { + return o +} + +// A collection of local address spaces in CIDR format. +func (o TrafficSelectorPolicyResponseOutput) LocalAddressRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v TrafficSelectorPolicyResponse) []string { return v.LocalAddressRanges }).(pulumi.StringArrayOutput) +} + +// A collection of remote address spaces in CIDR format. +func (o TrafficSelectorPolicyResponseOutput) RemoteAddressRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v TrafficSelectorPolicyResponse) []string { return v.RemoteAddressRanges }).(pulumi.StringArrayOutput) +} + +type TrafficSelectorPolicyResponseArrayOutput struct{ *pulumi.OutputState } + +func (TrafficSelectorPolicyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TrafficSelectorPolicyResponse)(nil)).Elem() +} + +func (o TrafficSelectorPolicyResponseArrayOutput) ToTrafficSelectorPolicyResponseArrayOutput() TrafficSelectorPolicyResponseArrayOutput { + return o +} + +func (o TrafficSelectorPolicyResponseArrayOutput) ToTrafficSelectorPolicyResponseArrayOutputWithContext(ctx context.Context) TrafficSelectorPolicyResponseArrayOutput { + return o +} + +func (o TrafficSelectorPolicyResponseArrayOutput) Index(i pulumi.IntInput) TrafficSelectorPolicyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TrafficSelectorPolicyResponse { + return vs[0].([]TrafficSelectorPolicyResponse)[vs[1].(int)] + }).(TrafficSelectorPolicyResponseOutput) +} + +// VirtualNetworkGatewayConnection properties. +type TunnelConnectionHealthResponse struct { + // Virtual Network Gateway connection status. + ConnectionStatus string `pulumi:"connectionStatus"` + // The Egress Bytes Transferred in this connection. + EgressBytesTransferred float64 `pulumi:"egressBytesTransferred"` + // The Ingress Bytes Transferred in this connection. + IngressBytesTransferred float64 `pulumi:"ingressBytesTransferred"` + // The time at which connection was established in Utc format. + LastConnectionEstablishedUtcTime string `pulumi:"lastConnectionEstablishedUtcTime"` + // Tunnel name. + Tunnel string `pulumi:"tunnel"` +} + +// VirtualNetworkGatewayConnection properties. +type TunnelConnectionHealthResponseOutput struct{ *pulumi.OutputState } + +func (TunnelConnectionHealthResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TunnelConnectionHealthResponse)(nil)).Elem() +} + +func (o TunnelConnectionHealthResponseOutput) ToTunnelConnectionHealthResponseOutput() TunnelConnectionHealthResponseOutput { + return o +} + +func (o TunnelConnectionHealthResponseOutput) ToTunnelConnectionHealthResponseOutputWithContext(ctx context.Context) TunnelConnectionHealthResponseOutput { + return o +} + +// Virtual Network Gateway connection status. +func (o TunnelConnectionHealthResponseOutput) ConnectionStatus() pulumi.StringOutput { + return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.ConnectionStatus }).(pulumi.StringOutput) +} + +// The Egress Bytes Transferred in this connection. +func (o TunnelConnectionHealthResponseOutput) EgressBytesTransferred() pulumi.Float64Output { + return o.ApplyT(func(v TunnelConnectionHealthResponse) float64 { return v.EgressBytesTransferred }).(pulumi.Float64Output) +} + +// The Ingress Bytes Transferred in this connection. +func (o TunnelConnectionHealthResponseOutput) IngressBytesTransferred() pulumi.Float64Output { + return o.ApplyT(func(v TunnelConnectionHealthResponse) float64 { return v.IngressBytesTransferred }).(pulumi.Float64Output) +} + +// The time at which connection was established in Utc format. +func (o TunnelConnectionHealthResponseOutput) LastConnectionEstablishedUtcTime() pulumi.StringOutput { + return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.LastConnectionEstablishedUtcTime }).(pulumi.StringOutput) +} + +// Tunnel name. +func (o TunnelConnectionHealthResponseOutput) Tunnel() pulumi.StringOutput { + return o.ApplyT(func(v TunnelConnectionHealthResponse) string { return v.Tunnel }).(pulumi.StringOutput) +} + +type TunnelConnectionHealthResponseArrayOutput struct{ *pulumi.OutputState } + +func (TunnelConnectionHealthResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TunnelConnectionHealthResponse)(nil)).Elem() +} + +func (o TunnelConnectionHealthResponseArrayOutput) ToTunnelConnectionHealthResponseArrayOutput() TunnelConnectionHealthResponseArrayOutput { + return o +} + +func (o TunnelConnectionHealthResponseArrayOutput) ToTunnelConnectionHealthResponseArrayOutputWithContext(ctx context.Context) TunnelConnectionHealthResponseArrayOutput { + return o +} + +func (o TunnelConnectionHealthResponseArrayOutput) Index(i pulumi.IntInput) TunnelConnectionHealthResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TunnelConnectionHealthResponse { + return vs[0].([]TunnelConnectionHealthResponse)[vs[1].(int)] + }).(TunnelConnectionHealthResponseOutput) +} + +// A TXT record. +type TxtRecord struct { + // The text value of this TXT record. + Value []string `pulumi:"value"` +} + +// TxtRecordInput is an input type that accepts TxtRecordArgs and TxtRecordOutput values. +// You can construct a concrete instance of `TxtRecordInput` via: +// +// TxtRecordArgs{...} +type TxtRecordInput interface { + pulumi.Input + + ToTxtRecordOutput() TxtRecordOutput + ToTxtRecordOutputWithContext(context.Context) TxtRecordOutput +} + +// A TXT record. +type TxtRecordArgs struct { + // The text value of this TXT record. + Value pulumi.StringArrayInput `pulumi:"value"` +} + +func (TxtRecordArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TxtRecord)(nil)).Elem() +} + +func (i TxtRecordArgs) ToTxtRecordOutput() TxtRecordOutput { + return i.ToTxtRecordOutputWithContext(context.Background()) +} + +func (i TxtRecordArgs) ToTxtRecordOutputWithContext(ctx context.Context) TxtRecordOutput { + return pulumi.ToOutputWithContext(ctx, i).(TxtRecordOutput) +} + +// TxtRecordArrayInput is an input type that accepts TxtRecordArray and TxtRecordArrayOutput values. +// You can construct a concrete instance of `TxtRecordArrayInput` via: +// +// TxtRecordArray{ TxtRecordArgs{...} } +type TxtRecordArrayInput interface { + pulumi.Input + + ToTxtRecordArrayOutput() TxtRecordArrayOutput + ToTxtRecordArrayOutputWithContext(context.Context) TxtRecordArrayOutput +} + +type TxtRecordArray []TxtRecordInput + +func (TxtRecordArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TxtRecord)(nil)).Elem() +} + +func (i TxtRecordArray) ToTxtRecordArrayOutput() TxtRecordArrayOutput { + return i.ToTxtRecordArrayOutputWithContext(context.Background()) +} + +func (i TxtRecordArray) ToTxtRecordArrayOutputWithContext(ctx context.Context) TxtRecordArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TxtRecordArrayOutput) +} + +// A TXT record. +type TxtRecordOutput struct{ *pulumi.OutputState } + +func (TxtRecordOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TxtRecord)(nil)).Elem() +} + +func (o TxtRecordOutput) ToTxtRecordOutput() TxtRecordOutput { + return o +} + +func (o TxtRecordOutput) ToTxtRecordOutputWithContext(ctx context.Context) TxtRecordOutput { + return o +} + +// The text value of this TXT record. +func (o TxtRecordOutput) Value() pulumi.StringArrayOutput { + return o.ApplyT(func(v TxtRecord) []string { return v.Value }).(pulumi.StringArrayOutput) +} + +type TxtRecordArrayOutput struct{ *pulumi.OutputState } + +func (TxtRecordArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TxtRecord)(nil)).Elem() +} + +func (o TxtRecordArrayOutput) ToTxtRecordArrayOutput() TxtRecordArrayOutput { + return o +} + +func (o TxtRecordArrayOutput) ToTxtRecordArrayOutputWithContext(ctx context.Context) TxtRecordArrayOutput { + return o +} + +func (o TxtRecordArrayOutput) Index(i pulumi.IntInput) TxtRecordOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TxtRecord { + return vs[0].([]TxtRecord)[vs[1].(int)] + }).(TxtRecordOutput) +} + +// A TXT record. +type TxtRecordResponse struct { + // The text value of this TXT record. + Value []string `pulumi:"value"` +} + +// A TXT record. +type TxtRecordResponseOutput struct{ *pulumi.OutputState } + +func (TxtRecordResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TxtRecordResponse)(nil)).Elem() +} + +func (o TxtRecordResponseOutput) ToTxtRecordResponseOutput() TxtRecordResponseOutput { + return o +} + +func (o TxtRecordResponseOutput) ToTxtRecordResponseOutputWithContext(ctx context.Context) TxtRecordResponseOutput { + return o +} + +// The text value of this TXT record. +func (o TxtRecordResponseOutput) Value() pulumi.StringArrayOutput { + return o.ApplyT(func(v TxtRecordResponse) []string { return v.Value }).(pulumi.StringArrayOutput) +} + +type TxtRecordResponseArrayOutput struct{ *pulumi.OutputState } + +func (TxtRecordResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TxtRecordResponse)(nil)).Elem() +} + +func (o TxtRecordResponseArrayOutput) ToTxtRecordResponseArrayOutput() TxtRecordResponseArrayOutput { + return o +} + +func (o TxtRecordResponseArrayOutput) ToTxtRecordResponseArrayOutputWithContext(ctx context.Context) TxtRecordResponseArrayOutput { + return o +} + +func (o TxtRecordResponseArrayOutput) Index(i pulumi.IntInput) TxtRecordResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TxtRecordResponse { + return vs[0].([]TxtRecordResponse)[vs[1].(int)] + }).(TxtRecordResponseOutput) +} + +// Describes a Virtual Machine. +type VM struct { + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` +} + +// VMInput is an input type that accepts VMArgs and VMOutput values. +// You can construct a concrete instance of `VMInput` via: +// +// VMArgs{...} +type VMInput interface { + pulumi.Input + + ToVMOutput() VMOutput + ToVMOutputWithContext(context.Context) VMOutput +} + +// Describes a Virtual Machine. +type VMArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (VMArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VM)(nil)).Elem() +} + +func (i VMArgs) ToVMOutput() VMOutput { + return i.ToVMOutputWithContext(context.Background()) +} + +func (i VMArgs) ToVMOutputWithContext(ctx context.Context) VMOutput { + return pulumi.ToOutputWithContext(ctx, i).(VMOutput) +} + +// Describes a Virtual Machine. +type VMOutput struct{ *pulumi.OutputState } + +func (VMOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VM)(nil)).Elem() +} + +func (o VMOutput) ToVMOutput() VMOutput { + return o +} + +func (o VMOutput) ToVMOutputWithContext(ctx context.Context) VMOutput { + return o +} + +// Resource ID. +func (o VMOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VM) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o VMOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v VM) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource tags. +func (o VMOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v VM) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Describes a Virtual Machine. +type VMResponse struct { + // Resource ID. + Id *string `pulumi:"id"` + // Resource location. + Location *string `pulumi:"location"` + // Resource name. + Name string `pulumi:"name"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Resource type. + Type string `pulumi:"type"` +} + +// Describes a Virtual Machine. +type VMResponseOutput struct{ *pulumi.OutputState } + +func (VMResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VMResponse)(nil)).Elem() +} + +func (o VMResponseOutput) ToVMResponseOutput() VMResponseOutput { + return o +} + +func (o VMResponseOutput) ToVMResponseOutputWithContext(ctx context.Context) VMResponseOutput { + return o +} + +// Resource ID. +func (o VMResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource location. +func (o VMResponseOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v VMResponse) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Resource name. +func (o VMResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v VMResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Resource tags. +func (o VMResponseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v VMResponse) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Resource type. +func (o VMResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v VMResponse) string { return v.Type }).(pulumi.StringOutput) +} + +// Network Virtual Appliance Additional NIC properties. +type VirtualApplianceAdditionalNicProperties struct { + // Flag (true or false) for Intent for Public Ip on additional nic + HasPublicIp *bool `pulumi:"hasPublicIp"` + // Name of additional nic + Name *string `pulumi:"name"` +} + +// VirtualApplianceAdditionalNicPropertiesInput is an input type that accepts VirtualApplianceAdditionalNicPropertiesArgs and VirtualApplianceAdditionalNicPropertiesOutput values. +// You can construct a concrete instance of `VirtualApplianceAdditionalNicPropertiesInput` via: +// +// VirtualApplianceAdditionalNicPropertiesArgs{...} +type VirtualApplianceAdditionalNicPropertiesInput interface { + pulumi.Input + + ToVirtualApplianceAdditionalNicPropertiesOutput() VirtualApplianceAdditionalNicPropertiesOutput + ToVirtualApplianceAdditionalNicPropertiesOutputWithContext(context.Context) VirtualApplianceAdditionalNicPropertiesOutput +} + +// Network Virtual Appliance Additional NIC properties. +type VirtualApplianceAdditionalNicPropertiesArgs struct { + // Flag (true or false) for Intent for Public Ip on additional nic + HasPublicIp pulumi.BoolPtrInput `pulumi:"hasPublicIp"` + // Name of additional nic + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (VirtualApplianceAdditionalNicPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceAdditionalNicProperties)(nil)).Elem() +} + +func (i VirtualApplianceAdditionalNicPropertiesArgs) ToVirtualApplianceAdditionalNicPropertiesOutput() VirtualApplianceAdditionalNicPropertiesOutput { + return i.ToVirtualApplianceAdditionalNicPropertiesOutputWithContext(context.Background()) +} + +func (i VirtualApplianceAdditionalNicPropertiesArgs) ToVirtualApplianceAdditionalNicPropertiesOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceAdditionalNicPropertiesOutput) +} + +// VirtualApplianceAdditionalNicPropertiesArrayInput is an input type that accepts VirtualApplianceAdditionalNicPropertiesArray and VirtualApplianceAdditionalNicPropertiesArrayOutput values. +// You can construct a concrete instance of `VirtualApplianceAdditionalNicPropertiesArrayInput` via: +// +// VirtualApplianceAdditionalNicPropertiesArray{ VirtualApplianceAdditionalNicPropertiesArgs{...} } +type VirtualApplianceAdditionalNicPropertiesArrayInput interface { + pulumi.Input + + ToVirtualApplianceAdditionalNicPropertiesArrayOutput() VirtualApplianceAdditionalNicPropertiesArrayOutput + ToVirtualApplianceAdditionalNicPropertiesArrayOutputWithContext(context.Context) VirtualApplianceAdditionalNicPropertiesArrayOutput +} + +type VirtualApplianceAdditionalNicPropertiesArray []VirtualApplianceAdditionalNicPropertiesInput + +func (VirtualApplianceAdditionalNicPropertiesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualApplianceAdditionalNicProperties)(nil)).Elem() +} + +func (i VirtualApplianceAdditionalNicPropertiesArray) ToVirtualApplianceAdditionalNicPropertiesArrayOutput() VirtualApplianceAdditionalNicPropertiesArrayOutput { + return i.ToVirtualApplianceAdditionalNicPropertiesArrayOutputWithContext(context.Background()) +} + +func (i VirtualApplianceAdditionalNicPropertiesArray) ToVirtualApplianceAdditionalNicPropertiesArrayOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceAdditionalNicPropertiesArrayOutput) +} + +// Network Virtual Appliance Additional NIC properties. +type VirtualApplianceAdditionalNicPropertiesOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceAdditionalNicPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceAdditionalNicProperties)(nil)).Elem() +} + +func (o VirtualApplianceAdditionalNicPropertiesOutput) ToVirtualApplianceAdditionalNicPropertiesOutput() VirtualApplianceAdditionalNicPropertiesOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesOutput) ToVirtualApplianceAdditionalNicPropertiesOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesOutput { + return o +} + +// Flag (true or false) for Intent for Public Ip on additional nic +func (o VirtualApplianceAdditionalNicPropertiesOutput) HasPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualApplianceAdditionalNicProperties) *bool { return v.HasPublicIp }).(pulumi.BoolPtrOutput) +} + +// Name of additional nic +func (o VirtualApplianceAdditionalNicPropertiesOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceAdditionalNicProperties) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type VirtualApplianceAdditionalNicPropertiesArrayOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceAdditionalNicPropertiesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualApplianceAdditionalNicProperties)(nil)).Elem() +} + +func (o VirtualApplianceAdditionalNicPropertiesArrayOutput) ToVirtualApplianceAdditionalNicPropertiesArrayOutput() VirtualApplianceAdditionalNicPropertiesArrayOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesArrayOutput) ToVirtualApplianceAdditionalNicPropertiesArrayOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesArrayOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesArrayOutput) Index(i pulumi.IntInput) VirtualApplianceAdditionalNicPropertiesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualApplianceAdditionalNicProperties { + return vs[0].([]VirtualApplianceAdditionalNicProperties)[vs[1].(int)] + }).(VirtualApplianceAdditionalNicPropertiesOutput) +} + +// Network Virtual Appliance Additional NIC properties. +type VirtualApplianceAdditionalNicPropertiesResponse struct { + // Flag (true or false) for Intent for Public Ip on additional nic + HasPublicIp *bool `pulumi:"hasPublicIp"` + // Name of additional nic + Name *string `pulumi:"name"` +} + +// Network Virtual Appliance Additional NIC properties. +type VirtualApplianceAdditionalNicPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceAdditionalNicPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceAdditionalNicPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceAdditionalNicPropertiesResponseOutput) ToVirtualApplianceAdditionalNicPropertiesResponseOutput() VirtualApplianceAdditionalNicPropertiesResponseOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesResponseOutput) ToVirtualApplianceAdditionalNicPropertiesResponseOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesResponseOutput { + return o +} + +// Flag (true or false) for Intent for Public Ip on additional nic +func (o VirtualApplianceAdditionalNicPropertiesResponseOutput) HasPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualApplianceAdditionalNicPropertiesResponse) *bool { return v.HasPublicIp }).(pulumi.BoolPtrOutput) +} + +// Name of additional nic +func (o VirtualApplianceAdditionalNicPropertiesResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceAdditionalNicPropertiesResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type VirtualApplianceAdditionalNicPropertiesResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualApplianceAdditionalNicPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) ToVirtualApplianceAdditionalNicPropertiesResponseArrayOutput() VirtualApplianceAdditionalNicPropertiesResponseArrayOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) ToVirtualApplianceAdditionalNicPropertiesResponseArrayOutputWithContext(ctx context.Context) VirtualApplianceAdditionalNicPropertiesResponseArrayOutput { + return o +} + +func (o VirtualApplianceAdditionalNicPropertiesResponseArrayOutput) Index(i pulumi.IntInput) VirtualApplianceAdditionalNicPropertiesResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualApplianceAdditionalNicPropertiesResponse { + return vs[0].([]VirtualApplianceAdditionalNicPropertiesResponse)[vs[1].(int)] + }).(VirtualApplianceAdditionalNicPropertiesResponseOutput) +} + +// Network Virtual Appliance NIC properties. +type VirtualApplianceNicPropertiesResponse struct { + // Instance on which nic is attached. + InstanceName string `pulumi:"instanceName"` + // NIC name. + Name string `pulumi:"name"` + // Private IP address. + PrivateIpAddress string `pulumi:"privateIpAddress"` + // Public IP address. + PublicIpAddress string `pulumi:"publicIpAddress"` +} + +// Network Virtual Appliance NIC properties. +type VirtualApplianceNicPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceNicPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceNicPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceNicPropertiesResponseOutput) ToVirtualApplianceNicPropertiesResponseOutput() VirtualApplianceNicPropertiesResponseOutput { + return o +} + +func (o VirtualApplianceNicPropertiesResponseOutput) ToVirtualApplianceNicPropertiesResponseOutputWithContext(ctx context.Context) VirtualApplianceNicPropertiesResponseOutput { + return o +} + +// Instance on which nic is attached. +func (o VirtualApplianceNicPropertiesResponseOutput) InstanceName() pulumi.StringOutput { + return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.InstanceName }).(pulumi.StringOutput) +} + +// NIC name. +func (o VirtualApplianceNicPropertiesResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// Private IP address. +func (o VirtualApplianceNicPropertiesResponseOutput) PrivateIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.PrivateIpAddress }).(pulumi.StringOutput) +} + +// Public IP address. +func (o VirtualApplianceNicPropertiesResponseOutput) PublicIpAddress() pulumi.StringOutput { + return o.ApplyT(func(v VirtualApplianceNicPropertiesResponse) string { return v.PublicIpAddress }).(pulumi.StringOutput) +} + +type VirtualApplianceNicPropertiesResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceNicPropertiesResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualApplianceNicPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceNicPropertiesResponseArrayOutput) ToVirtualApplianceNicPropertiesResponseArrayOutput() VirtualApplianceNicPropertiesResponseArrayOutput { + return o +} + +func (o VirtualApplianceNicPropertiesResponseArrayOutput) ToVirtualApplianceNicPropertiesResponseArrayOutputWithContext(ctx context.Context) VirtualApplianceNicPropertiesResponseArrayOutput { + return o +} + +func (o VirtualApplianceNicPropertiesResponseArrayOutput) Index(i pulumi.IntInput) VirtualApplianceNicPropertiesResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualApplianceNicPropertiesResponse { + return vs[0].([]VirtualApplianceNicPropertiesResponse)[vs[1].(int)] + }).(VirtualApplianceNicPropertiesResponseOutput) +} + +// Network Virtual Appliance Sku Properties. +type VirtualApplianceSkuProperties struct { + // Virtual Appliance Scale Unit. + BundledScaleUnit *string `pulumi:"bundledScaleUnit"` + // Virtual Appliance Version. + MarketPlaceVersion *string `pulumi:"marketPlaceVersion"` + // Virtual Appliance Vendor. + Vendor *string `pulumi:"vendor"` +} + +// VirtualApplianceSkuPropertiesInput is an input type that accepts VirtualApplianceSkuPropertiesArgs and VirtualApplianceSkuPropertiesOutput values. +// You can construct a concrete instance of `VirtualApplianceSkuPropertiesInput` via: +// +// VirtualApplianceSkuPropertiesArgs{...} +type VirtualApplianceSkuPropertiesInput interface { + pulumi.Input + + ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput + ToVirtualApplianceSkuPropertiesOutputWithContext(context.Context) VirtualApplianceSkuPropertiesOutput +} + +// Network Virtual Appliance Sku Properties. +type VirtualApplianceSkuPropertiesArgs struct { + // Virtual Appliance Scale Unit. + BundledScaleUnit pulumi.StringPtrInput `pulumi:"bundledScaleUnit"` + // Virtual Appliance Version. + MarketPlaceVersion pulumi.StringPtrInput `pulumi:"marketPlaceVersion"` + // Virtual Appliance Vendor. + Vendor pulumi.StringPtrInput `pulumi:"vendor"` +} + +func (VirtualApplianceSkuPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceSkuProperties)(nil)).Elem() +} + +func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput { + return i.ToVirtualApplianceSkuPropertiesOutputWithContext(context.Background()) +} + +func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesOutput) +} + +func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { + return i.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +} + +func (i VirtualApplianceSkuPropertiesArgs) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesOutput).ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx) +} + +// VirtualApplianceSkuPropertiesPtrInput is an input type that accepts VirtualApplianceSkuPropertiesArgs, VirtualApplianceSkuPropertiesPtr and VirtualApplianceSkuPropertiesPtrOutput values. +// You can construct a concrete instance of `VirtualApplianceSkuPropertiesPtrInput` via: +// +// VirtualApplianceSkuPropertiesArgs{...} +// +// or: +// +// nil +type VirtualApplianceSkuPropertiesPtrInput interface { + pulumi.Input + + ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput + ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Context) VirtualApplianceSkuPropertiesPtrOutput +} + +type virtualApplianceSkuPropertiesPtrType VirtualApplianceSkuPropertiesArgs + +func VirtualApplianceSkuPropertiesPtr(v *VirtualApplianceSkuPropertiesArgs) VirtualApplianceSkuPropertiesPtrInput { + return (*virtualApplianceSkuPropertiesPtrType)(v) +} + +func (*virtualApplianceSkuPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualApplianceSkuProperties)(nil)).Elem() +} + +func (i *virtualApplianceSkuPropertiesPtrType) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { + return i.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *virtualApplianceSkuPropertiesPtrType) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualApplianceSkuPropertiesPtrOutput) +} + +// Network Virtual Appliance Sku Properties. +type VirtualApplianceSkuPropertiesOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceSkuPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceSkuProperties)(nil)).Elem() +} + +func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesOutput() VirtualApplianceSkuPropertiesOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { + return o.ToVirtualApplianceSkuPropertiesPtrOutputWithContext(context.Background()) +} + +func (o VirtualApplianceSkuPropertiesOutput) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualApplianceSkuProperties) *VirtualApplianceSkuProperties { + return &v + }).(VirtualApplianceSkuPropertiesPtrOutput) +} + +// Virtual Appliance Scale Unit. +func (o VirtualApplianceSkuPropertiesOutput) BundledScaleUnit() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.BundledScaleUnit }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Version. +func (o VirtualApplianceSkuPropertiesOutput) MarketPlaceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.MarketPlaceVersion }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Vendor. +func (o VirtualApplianceSkuPropertiesOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuProperties) *string { return v.Vendor }).(pulumi.StringPtrOutput) +} + +type VirtualApplianceSkuPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceSkuPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualApplianceSkuProperties)(nil)).Elem() +} + +func (o VirtualApplianceSkuPropertiesPtrOutput) ToVirtualApplianceSkuPropertiesPtrOutput() VirtualApplianceSkuPropertiesPtrOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesPtrOutput) ToVirtualApplianceSkuPropertiesPtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesPtrOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesPtrOutput) Elem() VirtualApplianceSkuPropertiesOutput { + return o.ApplyT(func(v *VirtualApplianceSkuProperties) VirtualApplianceSkuProperties { + if v != nil { + return *v + } + var ret VirtualApplianceSkuProperties + return ret + }).(VirtualApplianceSkuPropertiesOutput) +} + +// Virtual Appliance Scale Unit. +func (o VirtualApplianceSkuPropertiesPtrOutput) BundledScaleUnit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { + if v == nil { + return nil + } + return v.BundledScaleUnit + }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Version. +func (o VirtualApplianceSkuPropertiesPtrOutput) MarketPlaceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { + if v == nil { + return nil + } + return v.MarketPlaceVersion + }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Vendor. +func (o VirtualApplianceSkuPropertiesPtrOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuProperties) *string { + if v == nil { + return nil + } + return v.Vendor + }).(pulumi.StringPtrOutput) +} + +// Network Virtual Appliance Sku Properties. +type VirtualApplianceSkuPropertiesResponse struct { + // Virtual Appliance Scale Unit. + BundledScaleUnit *string `pulumi:"bundledScaleUnit"` + // Virtual Appliance Version. + MarketPlaceVersion *string `pulumi:"marketPlaceVersion"` + // Virtual Appliance Vendor. + Vendor *string `pulumi:"vendor"` +} + +// Network Virtual Appliance Sku Properties. +type VirtualApplianceSkuPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceSkuPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualApplianceSkuPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceSkuPropertiesResponseOutput) ToVirtualApplianceSkuPropertiesResponseOutput() VirtualApplianceSkuPropertiesResponseOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesResponseOutput) ToVirtualApplianceSkuPropertiesResponseOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesResponseOutput { + return o +} + +// Virtual Appliance Scale Unit. +func (o VirtualApplianceSkuPropertiesResponseOutput) BundledScaleUnit() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.BundledScaleUnit }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Version. +func (o VirtualApplianceSkuPropertiesResponseOutput) MarketPlaceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.MarketPlaceVersion }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Vendor. +func (o VirtualApplianceSkuPropertiesResponseOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualApplianceSkuPropertiesResponse) *string { return v.Vendor }).(pulumi.StringPtrOutput) +} + +type VirtualApplianceSkuPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualApplianceSkuPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualApplianceSkuPropertiesResponse)(nil)).Elem() +} + +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) ToVirtualApplianceSkuPropertiesResponsePtrOutput() VirtualApplianceSkuPropertiesResponsePtrOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) ToVirtualApplianceSkuPropertiesResponsePtrOutputWithContext(ctx context.Context) VirtualApplianceSkuPropertiesResponsePtrOutput { + return o +} + +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) Elem() VirtualApplianceSkuPropertiesResponseOutput { + return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) VirtualApplianceSkuPropertiesResponse { + if v != nil { + return *v + } + var ret VirtualApplianceSkuPropertiesResponse + return ret + }).(VirtualApplianceSkuPropertiesResponseOutput) +} + +// Virtual Appliance Scale Unit. +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) BundledScaleUnit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { + if v == nil { + return nil + } + return v.BundledScaleUnit + }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Version. +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) MarketPlaceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { + if v == nil { + return nil + } + return v.MarketPlaceVersion + }).(pulumi.StringPtrOutput) +} + +// Virtual Appliance Vendor. +func (o VirtualApplianceSkuPropertiesResponsePtrOutput) Vendor() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualApplianceSkuPropertiesResponse) *string { + if v == nil { + return nil + } + return v.Vendor + }).(pulumi.StringPtrOutput) +} + +// Virtual Hub identifier. +type VirtualHubId struct { + // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. + Id *string `pulumi:"id"` +} + +// VirtualHubIdInput is an input type that accepts VirtualHubIdArgs and VirtualHubIdOutput values. +// You can construct a concrete instance of `VirtualHubIdInput` via: +// +// VirtualHubIdArgs{...} +type VirtualHubIdInput interface { + pulumi.Input + + ToVirtualHubIdOutput() VirtualHubIdOutput + ToVirtualHubIdOutputWithContext(context.Context) VirtualHubIdOutput +} + +// Virtual Hub identifier. +type VirtualHubIdArgs struct { + // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (VirtualHubIdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubId)(nil)).Elem() +} + +func (i VirtualHubIdArgs) ToVirtualHubIdOutput() VirtualHubIdOutput { + return i.ToVirtualHubIdOutputWithContext(context.Background()) +} + +func (i VirtualHubIdArgs) ToVirtualHubIdOutputWithContext(ctx context.Context) VirtualHubIdOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubIdOutput) +} + +// Virtual Hub identifier. +type VirtualHubIdOutput struct{ *pulumi.OutputState } + +func (VirtualHubIdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubId)(nil)).Elem() +} + +func (o VirtualHubIdOutput) ToVirtualHubIdOutput() VirtualHubIdOutput { + return o +} + +func (o VirtualHubIdOutput) ToVirtualHubIdOutputWithContext(ctx context.Context) VirtualHubIdOutput { + return o +} + +// The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. +func (o VirtualHubIdOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubId) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Virtual Hub identifier. +type VirtualHubIdResponse struct { + // The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. + Id *string `pulumi:"id"` +} + +// Virtual Hub identifier. +type VirtualHubIdResponseOutput struct{ *pulumi.OutputState } + +func (VirtualHubIdResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubIdResponse)(nil)).Elem() +} + +func (o VirtualHubIdResponseOutput) ToVirtualHubIdResponseOutput() VirtualHubIdResponseOutput { + return o +} + +func (o VirtualHubIdResponseOutput) ToVirtualHubIdResponseOutputWithContext(ctx context.Context) VirtualHubIdResponseOutput { + return o +} + +// The resource URI for the Virtual Hub where the ExpressRoute gateway is or will be deployed. The Virtual Hub resource and the ExpressRoute gateway resource reside in the same subscription. +func (o VirtualHubIdResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubIdResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// VirtualHub route. +type VirtualHubRoute struct { + // List of all addressPrefixes. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // NextHop ip address. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +} + +// VirtualHubRouteInput is an input type that accepts VirtualHubRouteArgs and VirtualHubRouteOutput values. +// You can construct a concrete instance of `VirtualHubRouteInput` via: +// +// VirtualHubRouteArgs{...} +type VirtualHubRouteInput interface { + pulumi.Input + + ToVirtualHubRouteOutput() VirtualHubRouteOutput + ToVirtualHubRouteOutputWithContext(context.Context) VirtualHubRouteOutput +} + +// VirtualHub route. +type VirtualHubRouteArgs struct { + // List of all addressPrefixes. + AddressPrefixes pulumi.StringArrayInput `pulumi:"addressPrefixes"` + // NextHop ip address. + NextHopIpAddress pulumi.StringPtrInput `pulumi:"nextHopIpAddress"` +} + +func (VirtualHubRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRoute)(nil)).Elem() +} + +func (i VirtualHubRouteArgs) ToVirtualHubRouteOutput() VirtualHubRouteOutput { + return i.ToVirtualHubRouteOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteArgs) ToVirtualHubRouteOutputWithContext(ctx context.Context) VirtualHubRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteOutput) +} + +// VirtualHubRouteArrayInput is an input type that accepts VirtualHubRouteArray and VirtualHubRouteArrayOutput values. +// You can construct a concrete instance of `VirtualHubRouteArrayInput` via: +// +// VirtualHubRouteArray{ VirtualHubRouteArgs{...} } +type VirtualHubRouteArrayInput interface { + pulumi.Input + + ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput + ToVirtualHubRouteArrayOutputWithContext(context.Context) VirtualHubRouteArrayOutput +} + +type VirtualHubRouteArray []VirtualHubRouteInput + +func (VirtualHubRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRoute)(nil)).Elem() +} + +func (i VirtualHubRouteArray) ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput { + return i.ToVirtualHubRouteArrayOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteArray) ToVirtualHubRouteArrayOutputWithContext(ctx context.Context) VirtualHubRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteArrayOutput) +} + +// VirtualHub route. +type VirtualHubRouteOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRoute)(nil)).Elem() +} + +func (o VirtualHubRouteOutput) ToVirtualHubRouteOutput() VirtualHubRouteOutput { + return o +} + +func (o VirtualHubRouteOutput) ToVirtualHubRouteOutputWithContext(ctx context.Context) VirtualHubRouteOutput { + return o +} + +// List of all addressPrefixes. +func (o VirtualHubRouteOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRoute) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// NextHop ip address. +func (o VirtualHubRouteOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRoute) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +} + +type VirtualHubRouteArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRoute)(nil)).Elem() +} + +func (o VirtualHubRouteArrayOutput) ToVirtualHubRouteArrayOutput() VirtualHubRouteArrayOutput { + return o +} + +func (o VirtualHubRouteArrayOutput) ToVirtualHubRouteArrayOutputWithContext(ctx context.Context) VirtualHubRouteArrayOutput { + return o +} + +func (o VirtualHubRouteArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRoute { + return vs[0].([]VirtualHubRoute)[vs[1].(int)] + }).(VirtualHubRouteOutput) +} + +// VirtualHub route. +type VirtualHubRouteResponse struct { + // List of all addressPrefixes. + AddressPrefixes []string `pulumi:"addressPrefixes"` + // NextHop ip address. + NextHopIpAddress *string `pulumi:"nextHopIpAddress"` +} + +// VirtualHub route. +type VirtualHubRouteResponseOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteResponse)(nil)).Elem() +} + +func (o VirtualHubRouteResponseOutput) ToVirtualHubRouteResponseOutput() VirtualHubRouteResponseOutput { + return o +} + +func (o VirtualHubRouteResponseOutput) ToVirtualHubRouteResponseOutputWithContext(ctx context.Context) VirtualHubRouteResponseOutput { + return o +} + +// List of all addressPrefixes. +func (o VirtualHubRouteResponseOutput) AddressPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteResponse) []string { return v.AddressPrefixes }).(pulumi.StringArrayOutput) +} + +// NextHop ip address. +func (o VirtualHubRouteResponseOutput) NextHopIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteResponse) *string { return v.NextHopIpAddress }).(pulumi.StringPtrOutput) +} + +type VirtualHubRouteResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteResponse)(nil)).Elem() +} + +func (o VirtualHubRouteResponseArrayOutput) ToVirtualHubRouteResponseArrayOutput() VirtualHubRouteResponseArrayOutput { + return o +} + +func (o VirtualHubRouteResponseArrayOutput) ToVirtualHubRouteResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteResponseArrayOutput { + return o +} + +func (o VirtualHubRouteResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteResponse { + return vs[0].([]VirtualHubRouteResponse)[vs[1].(int)] + }).(VirtualHubRouteResponseOutput) +} + +// VirtualHub route table. +type VirtualHubRouteTable struct { + // List of all routes. + Routes []VirtualHubRoute `pulumi:"routes"` +} + +// VirtualHubRouteTableInput is an input type that accepts VirtualHubRouteTableArgs and VirtualHubRouteTableOutput values. +// You can construct a concrete instance of `VirtualHubRouteTableInput` via: +// +// VirtualHubRouteTableArgs{...} +type VirtualHubRouteTableInput interface { + pulumi.Input + + ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput + ToVirtualHubRouteTableOutputWithContext(context.Context) VirtualHubRouteTableOutput +} + +// VirtualHub route table. +type VirtualHubRouteTableArgs struct { + // List of all routes. + Routes VirtualHubRouteArrayInput `pulumi:"routes"` +} + +func (VirtualHubRouteTableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTable)(nil)).Elem() +} + +func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput { + return i.ToVirtualHubRouteTableOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTableOutputWithContext(ctx context.Context) VirtualHubRouteTableOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableOutput) +} + +func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { + return i.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteTableArgs) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableOutput).ToVirtualHubRouteTablePtrOutputWithContext(ctx) +} + +// VirtualHubRouteTablePtrInput is an input type that accepts VirtualHubRouteTableArgs, VirtualHubRouteTablePtr and VirtualHubRouteTablePtrOutput values. +// You can construct a concrete instance of `VirtualHubRouteTablePtrInput` via: +// +// VirtualHubRouteTableArgs{...} +// +// or: +// +// nil +type VirtualHubRouteTablePtrInput interface { + pulumi.Input + + ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput + ToVirtualHubRouteTablePtrOutputWithContext(context.Context) VirtualHubRouteTablePtrOutput +} + +type virtualHubRouteTablePtrType VirtualHubRouteTableArgs + +func VirtualHubRouteTablePtr(v *VirtualHubRouteTableArgs) VirtualHubRouteTablePtrInput { + return (*virtualHubRouteTablePtrType)(v) +} + +func (*virtualHubRouteTablePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualHubRouteTable)(nil)).Elem() +} + +func (i *virtualHubRouteTablePtrType) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { + return i.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) +} + +func (i *virtualHubRouteTablePtrType) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTablePtrOutput) +} + +// VirtualHub route table. +type VirtualHubRouteTableOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTable)(nil)).Elem() +} + +func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTableOutput() VirtualHubRouteTableOutput { + return o +} + +func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTableOutputWithContext(ctx context.Context) VirtualHubRouteTableOutput { + return o +} + +func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { + return o.ToVirtualHubRouteTablePtrOutputWithContext(context.Background()) +} + +func (o VirtualHubRouteTableOutput) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualHubRouteTable) *VirtualHubRouteTable { + return &v + }).(VirtualHubRouteTablePtrOutput) +} + +// List of all routes. +func (o VirtualHubRouteTableOutput) Routes() VirtualHubRouteArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTable) []VirtualHubRoute { return v.Routes }).(VirtualHubRouteArrayOutput) +} + +type VirtualHubRouteTablePtrOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTablePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualHubRouteTable)(nil)).Elem() +} + +func (o VirtualHubRouteTablePtrOutput) ToVirtualHubRouteTablePtrOutput() VirtualHubRouteTablePtrOutput { + return o +} + +func (o VirtualHubRouteTablePtrOutput) ToVirtualHubRouteTablePtrOutputWithContext(ctx context.Context) VirtualHubRouteTablePtrOutput { + return o +} + +func (o VirtualHubRouteTablePtrOutput) Elem() VirtualHubRouteTableOutput { + return o.ApplyT(func(v *VirtualHubRouteTable) VirtualHubRouteTable { + if v != nil { + return *v + } + var ret VirtualHubRouteTable + return ret + }).(VirtualHubRouteTableOutput) +} + +// List of all routes. +func (o VirtualHubRouteTablePtrOutput) Routes() VirtualHubRouteArrayOutput { + return o.ApplyT(func(v *VirtualHubRouteTable) []VirtualHubRoute { + if v == nil { + return nil + } + return v.Routes + }).(VirtualHubRouteArrayOutput) +} + +// VirtualHub route table. +type VirtualHubRouteTableResponse struct { + // List of all routes. + Routes []VirtualHubRouteResponse `pulumi:"routes"` +} + +// VirtualHub route table. +type VirtualHubRouteTableResponseOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTableResponse)(nil)).Elem() +} + +func (o VirtualHubRouteTableResponseOutput) ToVirtualHubRouteTableResponseOutput() VirtualHubRouteTableResponseOutput { + return o +} + +func (o VirtualHubRouteTableResponseOutput) ToVirtualHubRouteTableResponseOutputWithContext(ctx context.Context) VirtualHubRouteTableResponseOutput { + return o +} + +// List of all routes. +func (o VirtualHubRouteTableResponseOutput) Routes() VirtualHubRouteResponseArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTableResponse) []VirtualHubRouteResponse { return v.Routes }).(VirtualHubRouteResponseArrayOutput) +} + +type VirtualHubRouteTableResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualHubRouteTableResponse)(nil)).Elem() +} + +func (o VirtualHubRouteTableResponsePtrOutput) ToVirtualHubRouteTableResponsePtrOutput() VirtualHubRouteTableResponsePtrOutput { + return o +} + +func (o VirtualHubRouteTableResponsePtrOutput) ToVirtualHubRouteTableResponsePtrOutputWithContext(ctx context.Context) VirtualHubRouteTableResponsePtrOutput { + return o +} + +func (o VirtualHubRouteTableResponsePtrOutput) Elem() VirtualHubRouteTableResponseOutput { + return o.ApplyT(func(v *VirtualHubRouteTableResponse) VirtualHubRouteTableResponse { + if v != nil { + return *v + } + var ret VirtualHubRouteTableResponse + return ret + }).(VirtualHubRouteTableResponseOutput) +} + +// List of all routes. +func (o VirtualHubRouteTableResponsePtrOutput) Routes() VirtualHubRouteResponseArrayOutput { + return o.ApplyT(func(v *VirtualHubRouteTableResponse) []VirtualHubRouteResponse { + if v == nil { + return nil + } + return v.Routes + }).(VirtualHubRouteResponseArrayOutput) +} + +// VirtualHubRouteTableV2 Resource. +type VirtualHubRouteTableV2Type struct { + // List of all connections attached to this route table v2. + AttachedConnections []string `pulumi:"attachedConnections"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // List of all routes. + Routes []VirtualHubRouteV2 `pulumi:"routes"` +} + +// VirtualHubRouteTableV2TypeInput is an input type that accepts VirtualHubRouteTableV2TypeArgs and VirtualHubRouteTableV2TypeOutput values. +// You can construct a concrete instance of `VirtualHubRouteTableV2TypeInput` via: +// +// VirtualHubRouteTableV2TypeArgs{...} +type VirtualHubRouteTableV2TypeInput interface { + pulumi.Input + + ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput + ToVirtualHubRouteTableV2TypeOutputWithContext(context.Context) VirtualHubRouteTableV2TypeOutput +} + +// VirtualHubRouteTableV2 Resource. +type VirtualHubRouteTableV2TypeArgs struct { + // List of all connections attached to this route table v2. + AttachedConnections pulumi.StringArrayInput `pulumi:"attachedConnections"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // List of all routes. + Routes VirtualHubRouteV2ArrayInput `pulumi:"routes"` +} + +func (VirtualHubRouteTableV2TypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTableV2Type)(nil)).Elem() +} + +func (i VirtualHubRouteTableV2TypeArgs) ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput { + return i.ToVirtualHubRouteTableV2TypeOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteTableV2TypeArgs) ToVirtualHubRouteTableV2TypeOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableV2TypeOutput) +} + +// VirtualHubRouteTableV2TypeArrayInput is an input type that accepts VirtualHubRouteTableV2TypeArray and VirtualHubRouteTableV2TypeArrayOutput values. +// You can construct a concrete instance of `VirtualHubRouteTableV2TypeArrayInput` via: +// +// VirtualHubRouteTableV2TypeArray{ VirtualHubRouteTableV2TypeArgs{...} } +type VirtualHubRouteTableV2TypeArrayInput interface { + pulumi.Input + + ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput + ToVirtualHubRouteTableV2TypeArrayOutputWithContext(context.Context) VirtualHubRouteTableV2TypeArrayOutput +} + +type VirtualHubRouteTableV2TypeArray []VirtualHubRouteTableV2TypeInput + +func (VirtualHubRouteTableV2TypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteTableV2Type)(nil)).Elem() +} + +func (i VirtualHubRouteTableV2TypeArray) ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput { + return i.ToVirtualHubRouteTableV2TypeArrayOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteTableV2TypeArray) ToVirtualHubRouteTableV2TypeArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteTableV2TypeArrayOutput) +} + +// VirtualHubRouteTableV2 Resource. +type VirtualHubRouteTableV2TypeOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableV2TypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTableV2Type)(nil)).Elem() +} + +func (o VirtualHubRouteTableV2TypeOutput) ToVirtualHubRouteTableV2TypeOutput() VirtualHubRouteTableV2TypeOutput { + return o +} + +func (o VirtualHubRouteTableV2TypeOutput) ToVirtualHubRouteTableV2TypeOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeOutput { + return o +} + +// List of all connections attached to this route table v2. +func (o VirtualHubRouteTableV2TypeOutput) AttachedConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Type) []string { return v.AttachedConnections }).(pulumi.StringArrayOutput) +} + +// Resource ID. +func (o VirtualHubRouteTableV2TypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Type) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualHubRouteTableV2TypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Type) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// List of all routes. +func (o VirtualHubRouteTableV2TypeOutput) Routes() VirtualHubRouteV2ArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Type) []VirtualHubRouteV2 { return v.Routes }).(VirtualHubRouteV2ArrayOutput) +} + +type VirtualHubRouteTableV2TypeArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableV2TypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteTableV2Type)(nil)).Elem() +} + +func (o VirtualHubRouteTableV2TypeArrayOutput) ToVirtualHubRouteTableV2TypeArrayOutput() VirtualHubRouteTableV2TypeArrayOutput { + return o +} + +func (o VirtualHubRouteTableV2TypeArrayOutput) ToVirtualHubRouteTableV2TypeArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2TypeArrayOutput { + return o +} + +func (o VirtualHubRouteTableV2TypeArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteTableV2TypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteTableV2Type { + return vs[0].([]VirtualHubRouteTableV2Type)[vs[1].(int)] + }).(VirtualHubRouteTableV2TypeOutput) +} + +// VirtualHubRouteTableV2 Resource. +type VirtualHubRouteTableV2Response struct { + // List of all connections attached to this route table v2. + AttachedConnections []string `pulumi:"attachedConnections"` + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the virtual hub route table v2 resource. + ProvisioningState string `pulumi:"provisioningState"` + // List of all routes. + Routes []VirtualHubRouteV2Response `pulumi:"routes"` +} + +// VirtualHubRouteTableV2 Resource. +type VirtualHubRouteTableV2ResponseOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableV2ResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteTableV2Response)(nil)).Elem() +} + +func (o VirtualHubRouteTableV2ResponseOutput) ToVirtualHubRouteTableV2ResponseOutput() VirtualHubRouteTableV2ResponseOutput { + return o +} + +func (o VirtualHubRouteTableV2ResponseOutput) ToVirtualHubRouteTableV2ResponseOutputWithContext(ctx context.Context) VirtualHubRouteTableV2ResponseOutput { + return o +} + +// List of all connections attached to this route table v2. +func (o VirtualHubRouteTableV2ResponseOutput) AttachedConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) []string { return v.AttachedConnections }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o VirtualHubRouteTableV2ResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o VirtualHubRouteTableV2ResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualHubRouteTableV2ResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the virtual hub route table v2 resource. +func (o VirtualHubRouteTableV2ResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// List of all routes. +func (o VirtualHubRouteTableV2ResponseOutput) Routes() VirtualHubRouteV2ResponseArrayOutput { + return o.ApplyT(func(v VirtualHubRouteTableV2Response) []VirtualHubRouteV2Response { return v.Routes }).(VirtualHubRouteV2ResponseArrayOutput) +} + +type VirtualHubRouteTableV2ResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteTableV2ResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteTableV2Response)(nil)).Elem() +} + +func (o VirtualHubRouteTableV2ResponseArrayOutput) ToVirtualHubRouteTableV2ResponseArrayOutput() VirtualHubRouteTableV2ResponseArrayOutput { + return o +} + +func (o VirtualHubRouteTableV2ResponseArrayOutput) ToVirtualHubRouteTableV2ResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteTableV2ResponseArrayOutput { + return o +} + +func (o VirtualHubRouteTableV2ResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteTableV2ResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteTableV2Response { + return vs[0].([]VirtualHubRouteTableV2Response)[vs[1].(int)] + }).(VirtualHubRouteTableV2ResponseOutput) +} + +// VirtualHubRouteTableV2 route. +type VirtualHubRouteV2 struct { + // The type of destinations. + DestinationType *string `pulumi:"destinationType"` + // List of all destinations. + Destinations []string `pulumi:"destinations"` + // The type of next hops. + NextHopType *string `pulumi:"nextHopType"` + // NextHops ip address. + NextHops []string `pulumi:"nextHops"` +} + +// VirtualHubRouteV2Input is an input type that accepts VirtualHubRouteV2Args and VirtualHubRouteV2Output values. +// You can construct a concrete instance of `VirtualHubRouteV2Input` via: +// +// VirtualHubRouteV2Args{...} +type VirtualHubRouteV2Input interface { + pulumi.Input + + ToVirtualHubRouteV2Output() VirtualHubRouteV2Output + ToVirtualHubRouteV2OutputWithContext(context.Context) VirtualHubRouteV2Output +} + +// VirtualHubRouteTableV2 route. +type VirtualHubRouteV2Args struct { + // The type of destinations. + DestinationType pulumi.StringPtrInput `pulumi:"destinationType"` + // List of all destinations. + Destinations pulumi.StringArrayInput `pulumi:"destinations"` + // The type of next hops. + NextHopType pulumi.StringPtrInput `pulumi:"nextHopType"` + // NextHops ip address. + NextHops pulumi.StringArrayInput `pulumi:"nextHops"` +} + +func (VirtualHubRouteV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteV2)(nil)).Elem() +} + +func (i VirtualHubRouteV2Args) ToVirtualHubRouteV2Output() VirtualHubRouteV2Output { + return i.ToVirtualHubRouteV2OutputWithContext(context.Background()) +} + +func (i VirtualHubRouteV2Args) ToVirtualHubRouteV2OutputWithContext(ctx context.Context) VirtualHubRouteV2Output { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteV2Output) +} + +// VirtualHubRouteV2ArrayInput is an input type that accepts VirtualHubRouteV2Array and VirtualHubRouteV2ArrayOutput values. +// You can construct a concrete instance of `VirtualHubRouteV2ArrayInput` via: +// +// VirtualHubRouteV2Array{ VirtualHubRouteV2Args{...} } +type VirtualHubRouteV2ArrayInput interface { + pulumi.Input + + ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput + ToVirtualHubRouteV2ArrayOutputWithContext(context.Context) VirtualHubRouteV2ArrayOutput +} + +type VirtualHubRouteV2Array []VirtualHubRouteV2Input + +func (VirtualHubRouteV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteV2)(nil)).Elem() +} + +func (i VirtualHubRouteV2Array) ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput { + return i.ToVirtualHubRouteV2ArrayOutputWithContext(context.Background()) +} + +func (i VirtualHubRouteV2Array) ToVirtualHubRouteV2ArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualHubRouteV2ArrayOutput) +} + +// VirtualHubRouteTableV2 route. +type VirtualHubRouteV2Output struct{ *pulumi.OutputState } + +func (VirtualHubRouteV2Output) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteV2)(nil)).Elem() +} + +func (o VirtualHubRouteV2Output) ToVirtualHubRouteV2Output() VirtualHubRouteV2Output { + return o +} + +func (o VirtualHubRouteV2Output) ToVirtualHubRouteV2OutputWithContext(ctx context.Context) VirtualHubRouteV2Output { + return o +} + +// The type of destinations. +func (o VirtualHubRouteV2Output) DestinationType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteV2) *string { return v.DestinationType }).(pulumi.StringPtrOutput) +} + +// List of all destinations. +func (o VirtualHubRouteV2Output) Destinations() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteV2) []string { return v.Destinations }).(pulumi.StringArrayOutput) +} + +// The type of next hops. +func (o VirtualHubRouteV2Output) NextHopType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteV2) *string { return v.NextHopType }).(pulumi.StringPtrOutput) +} + +// NextHops ip address. +func (o VirtualHubRouteV2Output) NextHops() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteV2) []string { return v.NextHops }).(pulumi.StringArrayOutput) +} + +type VirtualHubRouteV2ArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteV2)(nil)).Elem() +} + +func (o VirtualHubRouteV2ArrayOutput) ToVirtualHubRouteV2ArrayOutput() VirtualHubRouteV2ArrayOutput { + return o +} + +func (o VirtualHubRouteV2ArrayOutput) ToVirtualHubRouteV2ArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ArrayOutput { + return o +} + +func (o VirtualHubRouteV2ArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteV2 { + return vs[0].([]VirtualHubRouteV2)[vs[1].(int)] + }).(VirtualHubRouteV2Output) +} + +// VirtualHubRouteTableV2 route. +type VirtualHubRouteV2Response struct { + // The type of destinations. + DestinationType *string `pulumi:"destinationType"` + // List of all destinations. + Destinations []string `pulumi:"destinations"` + // The type of next hops. + NextHopType *string `pulumi:"nextHopType"` + // NextHops ip address. + NextHops []string `pulumi:"nextHops"` +} + +// VirtualHubRouteTableV2 route. +type VirtualHubRouteV2ResponseOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteV2ResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualHubRouteV2Response)(nil)).Elem() +} + +func (o VirtualHubRouteV2ResponseOutput) ToVirtualHubRouteV2ResponseOutput() VirtualHubRouteV2ResponseOutput { + return o +} + +func (o VirtualHubRouteV2ResponseOutput) ToVirtualHubRouteV2ResponseOutputWithContext(ctx context.Context) VirtualHubRouteV2ResponseOutput { + return o +} + +// The type of destinations. +func (o VirtualHubRouteV2ResponseOutput) DestinationType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteV2Response) *string { return v.DestinationType }).(pulumi.StringPtrOutput) +} + +// List of all destinations. +func (o VirtualHubRouteV2ResponseOutput) Destinations() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteV2Response) []string { return v.Destinations }).(pulumi.StringArrayOutput) +} + +// The type of next hops. +func (o VirtualHubRouteV2ResponseOutput) NextHopType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualHubRouteV2Response) *string { return v.NextHopType }).(pulumi.StringPtrOutput) +} + +// NextHops ip address. +func (o VirtualHubRouteV2ResponseOutput) NextHops() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualHubRouteV2Response) []string { return v.NextHops }).(pulumi.StringArrayOutput) +} + +type VirtualHubRouteV2ResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualHubRouteV2ResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualHubRouteV2Response)(nil)).Elem() +} + +func (o VirtualHubRouteV2ResponseArrayOutput) ToVirtualHubRouteV2ResponseArrayOutput() VirtualHubRouteV2ResponseArrayOutput { + return o +} + +func (o VirtualHubRouteV2ResponseArrayOutput) ToVirtualHubRouteV2ResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ResponseArrayOutput { + return o +} + +func (o VirtualHubRouteV2ResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteV2ResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteV2Response { + return vs[0].([]VirtualHubRouteV2Response)[vs[1].(int)] + }).(VirtualHubRouteV2ResponseOutput) +} + +// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. +type VirtualNetworkBgpCommunities struct { + // The BGP community associated with the virtual network. + VirtualNetworkCommunity string `pulumi:"virtualNetworkCommunity"` +} + +// VirtualNetworkBgpCommunitiesInput is an input type that accepts VirtualNetworkBgpCommunitiesArgs and VirtualNetworkBgpCommunitiesOutput values. +// You can construct a concrete instance of `VirtualNetworkBgpCommunitiesInput` via: +// +// VirtualNetworkBgpCommunitiesArgs{...} +type VirtualNetworkBgpCommunitiesInput interface { + pulumi.Input + + ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput + ToVirtualNetworkBgpCommunitiesOutputWithContext(context.Context) VirtualNetworkBgpCommunitiesOutput +} + +// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. +type VirtualNetworkBgpCommunitiesArgs struct { + // The BGP community associated with the virtual network. + VirtualNetworkCommunity pulumi.StringInput `pulumi:"virtualNetworkCommunity"` +} + +func (VirtualNetworkBgpCommunitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkBgpCommunities)(nil)).Elem() +} + +func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput { + return i.ToVirtualNetworkBgpCommunitiesOutputWithContext(context.Background()) +} + +func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesOutput) +} + +func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { + return i.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +} + +func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesOutput).ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx) +} + +// VirtualNetworkBgpCommunitiesPtrInput is an input type that accepts VirtualNetworkBgpCommunitiesArgs, VirtualNetworkBgpCommunitiesPtr and VirtualNetworkBgpCommunitiesPtrOutput values. +// You can construct a concrete instance of `VirtualNetworkBgpCommunitiesPtrInput` via: +// +// VirtualNetworkBgpCommunitiesArgs{...} +// +// or: +// +// nil +type VirtualNetworkBgpCommunitiesPtrInput interface { + pulumi.Input + + ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput + ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Context) VirtualNetworkBgpCommunitiesPtrOutput +} + +type virtualNetworkBgpCommunitiesPtrType VirtualNetworkBgpCommunitiesArgs + +func VirtualNetworkBgpCommunitiesPtr(v *VirtualNetworkBgpCommunitiesArgs) VirtualNetworkBgpCommunitiesPtrInput { + return (*virtualNetworkBgpCommunitiesPtrType)(v) +} + +func (*virtualNetworkBgpCommunitiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkBgpCommunities)(nil)).Elem() +} + +func (i *virtualNetworkBgpCommunitiesPtrType) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { + return i.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +} + +func (i *virtualNetworkBgpCommunitiesPtrType) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesPtrOutput) +} + +// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. +type VirtualNetworkBgpCommunitiesOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkBgpCommunitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkBgpCommunities)(nil)).Elem() +} + +func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { + return o.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +} + +func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualNetworkBgpCommunities) *VirtualNetworkBgpCommunities { + return &v + }).(VirtualNetworkBgpCommunitiesPtrOutput) +} + +// The BGP community associated with the virtual network. +func (o VirtualNetworkBgpCommunitiesOutput) VirtualNetworkCommunity() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkBgpCommunities) string { return v.VirtualNetworkCommunity }).(pulumi.StringOutput) +} + +type VirtualNetworkBgpCommunitiesPtrOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkBgpCommunitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkBgpCommunities)(nil)).Elem() +} + +func (o VirtualNetworkBgpCommunitiesPtrOutput) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesPtrOutput) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesPtrOutput) Elem() VirtualNetworkBgpCommunitiesOutput { + return o.ApplyT(func(v *VirtualNetworkBgpCommunities) VirtualNetworkBgpCommunities { + if v != nil { + return *v + } + var ret VirtualNetworkBgpCommunities + return ret + }).(VirtualNetworkBgpCommunitiesOutput) +} + +// The BGP community associated with the virtual network. +func (o VirtualNetworkBgpCommunitiesPtrOutput) VirtualNetworkCommunity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkBgpCommunities) *string { + if v == nil { + return nil + } + return &v.VirtualNetworkCommunity + }).(pulumi.StringPtrOutput) +} + +// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. +type VirtualNetworkBgpCommunitiesResponse struct { + // The BGP community associated with the region of the virtual network. + RegionalCommunity string `pulumi:"regionalCommunity"` + // The BGP community associated with the virtual network. + VirtualNetworkCommunity string `pulumi:"virtualNetworkCommunity"` +} + +// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. +type VirtualNetworkBgpCommunitiesResponseOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkBgpCommunitiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkBgpCommunitiesResponse)(nil)).Elem() +} + +func (o VirtualNetworkBgpCommunitiesResponseOutput) ToVirtualNetworkBgpCommunitiesResponseOutput() VirtualNetworkBgpCommunitiesResponseOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesResponseOutput) ToVirtualNetworkBgpCommunitiesResponseOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesResponseOutput { + return o +} + +// The BGP community associated with the region of the virtual network. +func (o VirtualNetworkBgpCommunitiesResponseOutput) RegionalCommunity() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkBgpCommunitiesResponse) string { return v.RegionalCommunity }).(pulumi.StringOutput) +} + +// The BGP community associated with the virtual network. +func (o VirtualNetworkBgpCommunitiesResponseOutput) VirtualNetworkCommunity() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkBgpCommunitiesResponse) string { return v.VirtualNetworkCommunity }).(pulumi.StringOutput) +} + +type VirtualNetworkBgpCommunitiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkBgpCommunitiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkBgpCommunitiesResponse)(nil)).Elem() +} + +func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) ToVirtualNetworkBgpCommunitiesResponsePtrOutput() VirtualNetworkBgpCommunitiesResponsePtrOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) ToVirtualNetworkBgpCommunitiesResponsePtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesResponsePtrOutput { + return o +} + +func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) Elem() VirtualNetworkBgpCommunitiesResponseOutput { + return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) VirtualNetworkBgpCommunitiesResponse { + if v != nil { + return *v + } + var ret VirtualNetworkBgpCommunitiesResponse + return ret + }).(VirtualNetworkBgpCommunitiesResponseOutput) +} + +// The BGP community associated with the region of the virtual network. +func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) RegionalCommunity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) *string { + if v == nil { + return nil + } + return &v.RegionalCommunity + }).(pulumi.StringPtrOutput) +} + +// The BGP community associated with the virtual network. +func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) VirtualNetworkCommunity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) *string { + if v == nil { + return nil + } + return &v.VirtualNetworkCommunity + }).(pulumi.StringPtrOutput) +} + +// Reference to DNS forwarding ruleset and associated virtual network link. +type VirtualNetworkDnsForwardingRulesetResponse struct { + // DNS Forwarding Ruleset Resource ID. + Id *string `pulumi:"id"` + // The reference to the virtual network link. + VirtualNetworkLink *SubResourceResponse `pulumi:"virtualNetworkLink"` +} + +// Reference to DNS forwarding ruleset and associated virtual network link. +type VirtualNetworkDnsForwardingRulesetResponseOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkDnsForwardingRulesetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkDnsForwardingRulesetResponse)(nil)).Elem() +} + +func (o VirtualNetworkDnsForwardingRulesetResponseOutput) ToVirtualNetworkDnsForwardingRulesetResponseOutput() VirtualNetworkDnsForwardingRulesetResponseOutput { + return o +} + +func (o VirtualNetworkDnsForwardingRulesetResponseOutput) ToVirtualNetworkDnsForwardingRulesetResponseOutputWithContext(ctx context.Context) VirtualNetworkDnsForwardingRulesetResponseOutput { + return o +} + +// DNS Forwarding Ruleset Resource ID. +func (o VirtualNetworkDnsForwardingRulesetResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkDnsForwardingRulesetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The reference to the virtual network link. +func (o VirtualNetworkDnsForwardingRulesetResponseOutput) VirtualNetworkLink() SubResourceResponsePtrOutput { + return o.ApplyT(func(v VirtualNetworkDnsForwardingRulesetResponse) *SubResourceResponse { return v.VirtualNetworkLink }).(SubResourceResponsePtrOutput) +} + +type VirtualNetworkDnsForwardingRulesetResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkDnsForwardingRulesetResponse)(nil)).Elem() +} + +func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ToVirtualNetworkDnsForwardingRulesetResponseArrayOutput() VirtualNetworkDnsForwardingRulesetResponseArrayOutput { + return o +} + +func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ToVirtualNetworkDnsForwardingRulesetResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkDnsForwardingRulesetResponseArrayOutput { + return o +} + +func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkDnsForwardingRulesetResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkDnsForwardingRulesetResponse { + return vs[0].([]VirtualNetworkDnsForwardingRulesetResponse)[vs[1].(int)] + }).(VirtualNetworkDnsForwardingRulesetResponseOutput) +} + +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +type VirtualNetworkEncryption struct { + // Indicates if encryption is enabled on the virtual network. + Enabled bool `pulumi:"enabled"` + // If the encrypted VNet allows VM that does not support encryption + Enforcement *string `pulumi:"enforcement"` +} + +// VirtualNetworkEncryptionInput is an input type that accepts VirtualNetworkEncryptionArgs and VirtualNetworkEncryptionOutput values. +// You can construct a concrete instance of `VirtualNetworkEncryptionInput` via: +// +// VirtualNetworkEncryptionArgs{...} +type VirtualNetworkEncryptionInput interface { + pulumi.Input + + ToVirtualNetworkEncryptionOutput() VirtualNetworkEncryptionOutput + ToVirtualNetworkEncryptionOutputWithContext(context.Context) VirtualNetworkEncryptionOutput +} + +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +type VirtualNetworkEncryptionArgs struct { + // Indicates if encryption is enabled on the virtual network. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // If the encrypted VNet allows VM that does not support encryption + Enforcement pulumi.StringPtrInput `pulumi:"enforcement"` +} + +func (VirtualNetworkEncryptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkEncryption)(nil)).Elem() +} + +func (i VirtualNetworkEncryptionArgs) ToVirtualNetworkEncryptionOutput() VirtualNetworkEncryptionOutput { + return i.ToVirtualNetworkEncryptionOutputWithContext(context.Background()) +} + +func (i VirtualNetworkEncryptionArgs) ToVirtualNetworkEncryptionOutputWithContext(ctx context.Context) VirtualNetworkEncryptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkEncryptionOutput) +} + +func (i VirtualNetworkEncryptionArgs) ToVirtualNetworkEncryptionPtrOutput() VirtualNetworkEncryptionPtrOutput { + return i.ToVirtualNetworkEncryptionPtrOutputWithContext(context.Background()) +} + +func (i VirtualNetworkEncryptionArgs) ToVirtualNetworkEncryptionPtrOutputWithContext(ctx context.Context) VirtualNetworkEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkEncryptionOutput).ToVirtualNetworkEncryptionPtrOutputWithContext(ctx) +} + +// VirtualNetworkEncryptionPtrInput is an input type that accepts VirtualNetworkEncryptionArgs, VirtualNetworkEncryptionPtr and VirtualNetworkEncryptionPtrOutput values. +// You can construct a concrete instance of `VirtualNetworkEncryptionPtrInput` via: +// +// VirtualNetworkEncryptionArgs{...} +// +// or: +// +// nil +type VirtualNetworkEncryptionPtrInput interface { + pulumi.Input + + ToVirtualNetworkEncryptionPtrOutput() VirtualNetworkEncryptionPtrOutput + ToVirtualNetworkEncryptionPtrOutputWithContext(context.Context) VirtualNetworkEncryptionPtrOutput +} + +type virtualNetworkEncryptionPtrType VirtualNetworkEncryptionArgs + +func VirtualNetworkEncryptionPtr(v *VirtualNetworkEncryptionArgs) VirtualNetworkEncryptionPtrInput { + return (*virtualNetworkEncryptionPtrType)(v) +} + +func (*virtualNetworkEncryptionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkEncryption)(nil)).Elem() +} + +func (i *virtualNetworkEncryptionPtrType) ToVirtualNetworkEncryptionPtrOutput() VirtualNetworkEncryptionPtrOutput { + return i.ToVirtualNetworkEncryptionPtrOutputWithContext(context.Background()) +} + +func (i *virtualNetworkEncryptionPtrType) ToVirtualNetworkEncryptionPtrOutputWithContext(ctx context.Context) VirtualNetworkEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkEncryptionPtrOutput) +} + +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +type VirtualNetworkEncryptionOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkEncryptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkEncryption)(nil)).Elem() +} + +func (o VirtualNetworkEncryptionOutput) ToVirtualNetworkEncryptionOutput() VirtualNetworkEncryptionOutput { + return o +} + +func (o VirtualNetworkEncryptionOutput) ToVirtualNetworkEncryptionOutputWithContext(ctx context.Context) VirtualNetworkEncryptionOutput { + return o +} + +func (o VirtualNetworkEncryptionOutput) ToVirtualNetworkEncryptionPtrOutput() VirtualNetworkEncryptionPtrOutput { + return o.ToVirtualNetworkEncryptionPtrOutputWithContext(context.Background()) +} + +func (o VirtualNetworkEncryptionOutput) ToVirtualNetworkEncryptionPtrOutputWithContext(ctx context.Context) VirtualNetworkEncryptionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualNetworkEncryption) *VirtualNetworkEncryption { + return &v + }).(VirtualNetworkEncryptionPtrOutput) +} + +// Indicates if encryption is enabled on the virtual network. +func (o VirtualNetworkEncryptionOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v VirtualNetworkEncryption) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// If the encrypted VNet allows VM that does not support encryption +func (o VirtualNetworkEncryptionOutput) Enforcement() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkEncryption) *string { return v.Enforcement }).(pulumi.StringPtrOutput) +} + +type VirtualNetworkEncryptionPtrOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkEncryptionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkEncryption)(nil)).Elem() +} + +func (o VirtualNetworkEncryptionPtrOutput) ToVirtualNetworkEncryptionPtrOutput() VirtualNetworkEncryptionPtrOutput { + return o +} + +func (o VirtualNetworkEncryptionPtrOutput) ToVirtualNetworkEncryptionPtrOutputWithContext(ctx context.Context) VirtualNetworkEncryptionPtrOutput { + return o +} + +func (o VirtualNetworkEncryptionPtrOutput) Elem() VirtualNetworkEncryptionOutput { + return o.ApplyT(func(v *VirtualNetworkEncryption) VirtualNetworkEncryption { + if v != nil { + return *v + } + var ret VirtualNetworkEncryption + return ret + }).(VirtualNetworkEncryptionOutput) +} + +// Indicates if encryption is enabled on the virtual network. +func (o VirtualNetworkEncryptionPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkEncryption) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// If the encrypted VNet allows VM that does not support encryption +func (o VirtualNetworkEncryptionPtrOutput) Enforcement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkEncryption) *string { + if v == nil { + return nil + } + return v.Enforcement + }).(pulumi.StringPtrOutput) +} + +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +type VirtualNetworkEncryptionResponse struct { + // Indicates if encryption is enabled on the virtual network. + Enabled bool `pulumi:"enabled"` + // If the encrypted VNet allows VM that does not support encryption + Enforcement *string `pulumi:"enforcement"` +} + +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +type VirtualNetworkEncryptionResponseOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkEncryptionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkEncryptionResponse)(nil)).Elem() +} + +func (o VirtualNetworkEncryptionResponseOutput) ToVirtualNetworkEncryptionResponseOutput() VirtualNetworkEncryptionResponseOutput { + return o +} + +func (o VirtualNetworkEncryptionResponseOutput) ToVirtualNetworkEncryptionResponseOutputWithContext(ctx context.Context) VirtualNetworkEncryptionResponseOutput { + return o +} + +// Indicates if encryption is enabled on the virtual network. +func (o VirtualNetworkEncryptionResponseOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v VirtualNetworkEncryptionResponse) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// If the encrypted VNet allows VM that does not support encryption +func (o VirtualNetworkEncryptionResponseOutput) Enforcement() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkEncryptionResponse) *string { return v.Enforcement }).(pulumi.StringPtrOutput) +} + +type VirtualNetworkEncryptionResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkEncryptionResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkEncryptionResponse)(nil)).Elem() +} + +func (o VirtualNetworkEncryptionResponsePtrOutput) ToVirtualNetworkEncryptionResponsePtrOutput() VirtualNetworkEncryptionResponsePtrOutput { + return o +} + +func (o VirtualNetworkEncryptionResponsePtrOutput) ToVirtualNetworkEncryptionResponsePtrOutputWithContext(ctx context.Context) VirtualNetworkEncryptionResponsePtrOutput { + return o +} + +func (o VirtualNetworkEncryptionResponsePtrOutput) Elem() VirtualNetworkEncryptionResponseOutput { + return o.ApplyT(func(v *VirtualNetworkEncryptionResponse) VirtualNetworkEncryptionResponse { + if v != nil { + return *v + } + var ret VirtualNetworkEncryptionResponse + return ret + }).(VirtualNetworkEncryptionResponseOutput) +} + +// Indicates if encryption is enabled on the virtual network. +func (o VirtualNetworkEncryptionResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkEncryptionResponse) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// If the encrypted VNet allows VM that does not support encryption +func (o VirtualNetworkEncryptionResponsePtrOutput) Enforcement() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkEncryptionResponse) *string { + if v == nil { + return nil + } + return v.Enforcement + }).(pulumi.StringPtrOutput) +} + +// A common class for general resource information. +type VirtualNetworkGatewayType struct { + // ActiveActive flag. + ActiveActive *bool `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState *string `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic *bool `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic *bool `pulumi:"allowVirtualWanTraffic"` + // Virtual network gateway's BGP speaker settings. + BgpSettings *BgpSettings `pulumi:"bgpSettings"` + // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. + CustomRoutes *AddressSpace `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection *bool `pulumi:"disableIPSecReplayProtection"` + // Whether BGP is enabled for this virtual network gateway or not. + EnableBgp *bool `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` + // Whether dns forwarding is enabled or not. + EnableDnsForwarding *bool `pulumi:"enableDnsForwarding"` + // Whether private IP needs to be enabled on this gateway for connections or not. + EnablePrivateIpAddress *bool `pulumi:"enablePrivateIpAddress"` + // The extended location of type local virtual network gateway. + ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` + // The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. + GatewayDefaultSite *SubResource `pulumi:"gatewayDefaultSite"` + // The type of this virtual network gateway. + GatewayType *string `pulumi:"gatewayType"` + // Resource ID. + Id *string `pulumi:"id"` + // IP configurations for virtual network gateway. + IpConfigurations []VirtualNetworkGatewayIPConfiguration `pulumi:"ipConfigurations"` + // Resource location. + Location *string `pulumi:"location"` + // NatRules for virtual network gateway. + NatRules []VirtualNetworkGatewayNatRuleType `pulumi:"natRules"` + // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. + Sku *VirtualNetworkGatewaySku `pulumi:"sku"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. + VNetExtendedLocationResourceId *string `pulumi:"vNetExtendedLocationResourceId"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups []VirtualNetworkGatewayPolicyGroup `pulumi:"virtualNetworkGatewayPolicyGroups"` + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. + VpnClientConfiguration *VpnClientConfiguration `pulumi:"vpnClientConfiguration"` + // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. + VpnGatewayGeneration *string `pulumi:"vpnGatewayGeneration"` + // The type of this virtual network gateway. + VpnType *string `pulumi:"vpnType"` +} + +// VirtualNetworkGatewayTypeInput is an input type that accepts VirtualNetworkGatewayTypeArgs and VirtualNetworkGatewayTypeOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayTypeInput` via: +// +// VirtualNetworkGatewayTypeArgs{...} +type VirtualNetworkGatewayTypeInput interface { + pulumi.Input + + ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput + ToVirtualNetworkGatewayTypeOutputWithContext(context.Context) VirtualNetworkGatewayTypeOutput +} + +// A common class for general resource information. +type VirtualNetworkGatewayTypeArgs struct { + // ActiveActive flag. + ActiveActive pulumi.BoolPtrInput `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState pulumi.StringPtrInput `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic pulumi.BoolPtrInput `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic pulumi.BoolPtrInput `pulumi:"allowVirtualWanTraffic"` + // Virtual network gateway's BGP speaker settings. + BgpSettings BgpSettingsPtrInput `pulumi:"bgpSettings"` + // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. + CustomRoutes AddressSpacePtrInput `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection pulumi.BoolPtrInput `pulumi:"disableIPSecReplayProtection"` + // Whether BGP is enabled for this virtual network gateway or not. + EnableBgp pulumi.BoolPtrInput `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat pulumi.BoolPtrInput `pulumi:"enableBgpRouteTranslationForNat"` + // Whether dns forwarding is enabled or not. + EnableDnsForwarding pulumi.BoolPtrInput `pulumi:"enableDnsForwarding"` + // Whether private IP needs to be enabled on this gateway for connections or not. + EnablePrivateIpAddress pulumi.BoolPtrInput `pulumi:"enablePrivateIpAddress"` + // The extended location of type local virtual network gateway. + ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` + // The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. + GatewayDefaultSite SubResourcePtrInput `pulumi:"gatewayDefaultSite"` + // The type of this virtual network gateway. + GatewayType pulumi.StringPtrInput `pulumi:"gatewayType"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // IP configurations for virtual network gateway. + IpConfigurations VirtualNetworkGatewayIPConfigurationArrayInput `pulumi:"ipConfigurations"` + // Resource location. + Location pulumi.StringPtrInput `pulumi:"location"` + // NatRules for virtual network gateway. + NatRules VirtualNetworkGatewayNatRuleTypeArrayInput `pulumi:"natRules"` + // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. + Sku VirtualNetworkGatewaySkuPtrInput `pulumi:"sku"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. + VNetExtendedLocationResourceId pulumi.StringPtrInput `pulumi:"vNetExtendedLocationResourceId"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups VirtualNetworkGatewayPolicyGroupArrayInput `pulumi:"virtualNetworkGatewayPolicyGroups"` + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. + VpnClientConfiguration VpnClientConfigurationPtrInput `pulumi:"vpnClientConfiguration"` + // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. + VpnGatewayGeneration pulumi.StringPtrInput `pulumi:"vpnGatewayGeneration"` + // The type of this virtual network gateway. + VpnType pulumi.StringPtrInput `pulumi:"vpnType"` +} + +func (VirtualNetworkGatewayTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayType)(nil)).Elem() +} + +func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput { + return i.ToVirtualNetworkGatewayTypeOutputWithContext(context.Background()) +} + +func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypeOutput) +} + +func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { + return i.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +} + +func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypeOutput).ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx) +} + +// VirtualNetworkGatewayTypePtrInput is an input type that accepts VirtualNetworkGatewayTypeArgs, VirtualNetworkGatewayTypePtr and VirtualNetworkGatewayTypePtrOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayTypePtrInput` via: +// +// VirtualNetworkGatewayTypeArgs{...} +// +// or: +// +// nil +type VirtualNetworkGatewayTypePtrInput interface { + pulumi.Input + + ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput + ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Context) VirtualNetworkGatewayTypePtrOutput +} + +type virtualNetworkGatewayTypePtrType VirtualNetworkGatewayTypeArgs + +func VirtualNetworkGatewayTypePtr(v *VirtualNetworkGatewayTypeArgs) VirtualNetworkGatewayTypePtrInput { + return (*virtualNetworkGatewayTypePtrType)(v) +} + +func (*virtualNetworkGatewayTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkGatewayType)(nil)).Elem() +} + +func (i *virtualNetworkGatewayTypePtrType) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { + return i.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +} + +func (i *virtualNetworkGatewayTypePtrType) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypePtrOutput) +} + +// A common class for general resource information. +type VirtualNetworkGatewayTypeOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayType)(nil)).Elem() +} + +func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput { + return o +} + +func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypeOutput { + return o +} + +func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { + return o.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +} + +func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualNetworkGatewayType) *VirtualNetworkGatewayType { + return &v + }).(VirtualNetworkGatewayTypePtrOutput) +} + +// ActiveActive flag. +func (o VirtualNetworkGatewayTypeOutput) ActiveActive() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.ActiveActive }).(pulumi.BoolPtrOutput) +} + +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o VirtualNetworkGatewayTypeOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.AdminState }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o VirtualNetworkGatewayTypeOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.AllowRemoteVnetTraffic }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o VirtualNetworkGatewayTypeOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.AllowVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + +// Virtual network gateway's BGP speaker settings. +func (o VirtualNetworkGatewayTypeOutput) BgpSettings() BgpSettingsPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *BgpSettings { return v.BgpSettings }).(BgpSettingsPtrOutput) +} + +// The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. +func (o VirtualNetworkGatewayTypeOutput) CustomRoutes() AddressSpacePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *AddressSpace { return v.CustomRoutes }).(AddressSpacePtrOutput) +} + +// disableIPSecReplayProtection flag. +func (o VirtualNetworkGatewayTypeOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.DisableIPSecReplayProtection }).(pulumi.BoolPtrOutput) +} + +// Whether BGP is enabled for this virtual network gateway or not. +func (o VirtualNetworkGatewayTypeOutput) EnableBgp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnableBgp }).(pulumi.BoolPtrOutput) +} + +// EnableBgpRouteTranslationForNat flag. +func (o VirtualNetworkGatewayTypeOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + +// Whether dns forwarding is enabled or not. +func (o VirtualNetworkGatewayTypeOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnableDnsForwarding }).(pulumi.BoolPtrOutput) +} + +// Whether private IP needs to be enabled on this gateway for connections or not. +func (o VirtualNetworkGatewayTypeOutput) EnablePrivateIpAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnablePrivateIpAddress }).(pulumi.BoolPtrOutput) +} + +// The extended location of type local virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) +} + +// The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. +func (o VirtualNetworkGatewayTypeOutput) GatewayDefaultSite() SubResourcePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *SubResource { return v.GatewayDefaultSite }).(SubResourcePtrOutput) +} + +// The type of this virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) GatewayType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.GatewayType }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o VirtualNetworkGatewayTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// IP configurations for virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) IpConfigurations() VirtualNetworkGatewayIPConfigurationArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) []VirtualNetworkGatewayIPConfiguration { return v.IpConfigurations }).(VirtualNetworkGatewayIPConfigurationArrayOutput) +} + +// Resource location. +func (o VirtualNetworkGatewayTypeOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// NatRules for virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) NatRules() VirtualNetworkGatewayNatRuleTypeArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) []VirtualNetworkGatewayNatRuleType { return v.NatRules }).(VirtualNetworkGatewayNatRuleTypeArrayOutput) +} + +// The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) Sku() VirtualNetworkGatewaySkuPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *VirtualNetworkGatewaySku { return v.Sku }).(VirtualNetworkGatewaySkuPtrOutput) +} + +// Resource tags. +func (o VirtualNetworkGatewayTypeOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. +func (o VirtualNetworkGatewayTypeOutput) VNetExtendedLocationResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VNetExtendedLocationResourceId }).(pulumi.StringPtrOutput) +} + +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o VirtualNetworkGatewayTypeOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) []VirtualNetworkGatewayPolicyGroup { + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupArrayOutput) +} + +// The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. +func (o VirtualNetworkGatewayTypeOutput) VpnClientConfiguration() VpnClientConfigurationPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *VpnClientConfiguration { return v.VpnClientConfiguration }).(VpnClientConfigurationPtrOutput) +} + +// The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. +func (o VirtualNetworkGatewayTypeOutput) VpnGatewayGeneration() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VpnGatewayGeneration }).(pulumi.StringPtrOutput) +} + +// The type of this virtual network gateway. +func (o VirtualNetworkGatewayTypeOutput) VpnType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VpnType }).(pulumi.StringPtrOutput) +} + +type VirtualNetworkGatewayTypePtrOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualNetworkGatewayType)(nil)).Elem() +} + +func (o VirtualNetworkGatewayTypePtrOutput) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { + return o +} + +func (o VirtualNetworkGatewayTypePtrOutput) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { + return o +} + +func (o VirtualNetworkGatewayTypePtrOutput) Elem() VirtualNetworkGatewayTypeOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) VirtualNetworkGatewayType { + if v != nil { + return *v + } + var ret VirtualNetworkGatewayType + return ret + }).(VirtualNetworkGatewayTypeOutput) +} + +// ActiveActive flag. +func (o VirtualNetworkGatewayTypePtrOutput) ActiveActive() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.ActiveActive + }).(pulumi.BoolPtrOutput) +} + +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o VirtualNetworkGatewayTypePtrOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.AdminState + }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o VirtualNetworkGatewayTypePtrOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.AllowRemoteVnetTraffic + }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o VirtualNetworkGatewayTypePtrOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.AllowVirtualWanTraffic + }).(pulumi.BoolPtrOutput) +} + +// Virtual network gateway's BGP speaker settings. +func (o VirtualNetworkGatewayTypePtrOutput) BgpSettings() BgpSettingsPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *BgpSettings { + if v == nil { + return nil + } + return v.BgpSettings + }).(BgpSettingsPtrOutput) +} + +// The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. +func (o VirtualNetworkGatewayTypePtrOutput) CustomRoutes() AddressSpacePtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *AddressSpace { + if v == nil { + return nil + } + return v.CustomRoutes + }).(AddressSpacePtrOutput) +} + +// disableIPSecReplayProtection flag. +func (o VirtualNetworkGatewayTypePtrOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.DisableIPSecReplayProtection + }).(pulumi.BoolPtrOutput) +} + +// Whether BGP is enabled for this virtual network gateway or not. +func (o VirtualNetworkGatewayTypePtrOutput) EnableBgp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.EnableBgp + }).(pulumi.BoolPtrOutput) +} + +// EnableBgpRouteTranslationForNat flag. +func (o VirtualNetworkGatewayTypePtrOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.EnableBgpRouteTranslationForNat + }).(pulumi.BoolPtrOutput) +} + +// Whether dns forwarding is enabled or not. +func (o VirtualNetworkGatewayTypePtrOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.EnableDnsForwarding + }).(pulumi.BoolPtrOutput) +} + +// Whether private IP needs to be enabled on this gateway for connections or not. +func (o VirtualNetworkGatewayTypePtrOutput) EnablePrivateIpAddress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { + if v == nil { + return nil + } + return v.EnablePrivateIpAddress + }).(pulumi.BoolPtrOutput) +} + +// The extended location of type local virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *ExtendedLocation { + if v == nil { + return nil + } + return v.ExtendedLocation + }).(ExtendedLocationPtrOutput) +} + +// The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. +func (o VirtualNetworkGatewayTypePtrOutput) GatewayDefaultSite() SubResourcePtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *SubResource { + if v == nil { + return nil + } + return v.GatewayDefaultSite + }).(SubResourcePtrOutput) +} + +// The type of this virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) GatewayType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.GatewayType + }).(pulumi.StringPtrOutput) +} + +// Resource ID. +func (o VirtualNetworkGatewayTypePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// IP configurations for virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) IpConfigurations() VirtualNetworkGatewayIPConfigurationArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) []VirtualNetworkGatewayIPConfiguration { + if v == nil { + return nil + } + return v.IpConfigurations + }).(VirtualNetworkGatewayIPConfigurationArrayOutput) +} + +// Resource location. +func (o VirtualNetworkGatewayTypePtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.Location + }).(pulumi.StringPtrOutput) +} + +// NatRules for virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) NatRules() VirtualNetworkGatewayNatRuleTypeArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) []VirtualNetworkGatewayNatRuleType { + if v == nil { + return nil + } + return v.NatRules + }).(VirtualNetworkGatewayNatRuleTypeArrayOutput) +} + +// The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) Sku() VirtualNetworkGatewaySkuPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *VirtualNetworkGatewaySku { + if v == nil { + return nil + } + return v.Sku + }).(VirtualNetworkGatewaySkuPtrOutput) } -// NextHops ip address. -func (o VirtualHubRouteV2ResponseOutput) NextHops() pulumi.StringArrayOutput { - return o.ApplyT(func(v VirtualHubRouteV2Response) []string { return v.NextHops }).(pulumi.StringArrayOutput) +// Resource tags. +func (o VirtualNetworkGatewayTypePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) } -type VirtualHubRouteV2ResponseArrayOutput struct{ *pulumi.OutputState } +// Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. +func (o VirtualNetworkGatewayTypePtrOutput) VNetExtendedLocationResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.VNetExtendedLocationResourceId + }).(pulumi.StringPtrOutput) +} -func (VirtualHubRouteV2ResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualHubRouteV2Response)(nil)).Elem() +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o VirtualNetworkGatewayTypePtrOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) []VirtualNetworkGatewayPolicyGroup { + if v == nil { + return nil + } + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupArrayOutput) } -func (o VirtualHubRouteV2ResponseArrayOutput) ToVirtualHubRouteV2ResponseArrayOutput() VirtualHubRouteV2ResponseArrayOutput { - return o +// The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. +func (o VirtualNetworkGatewayTypePtrOutput) VpnClientConfiguration() VpnClientConfigurationPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *VpnClientConfiguration { + if v == nil { + return nil + } + return v.VpnClientConfiguration + }).(VpnClientConfigurationPtrOutput) } -func (o VirtualHubRouteV2ResponseArrayOutput) ToVirtualHubRouteV2ResponseArrayOutputWithContext(ctx context.Context) VirtualHubRouteV2ResponseArrayOutput { - return o +// The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. +func (o VirtualNetworkGatewayTypePtrOutput) VpnGatewayGeneration() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.VpnGatewayGeneration + }).(pulumi.StringPtrOutput) } -func (o VirtualHubRouteV2ResponseArrayOutput) Index(i pulumi.IntInput) VirtualHubRouteV2ResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualHubRouteV2Response { - return vs[0].([]VirtualHubRouteV2Response)[vs[1].(int)] - }).(VirtualHubRouteV2ResponseOutput) +// The type of this virtual network gateway. +func (o VirtualNetworkGatewayTypePtrOutput) VpnType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { + if v == nil { + return nil + } + return v.VpnType + }).(pulumi.StringPtrOutput) } -// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. -type VirtualNetworkBgpCommunities struct { - // The BGP community associated with the virtual network. - VirtualNetworkCommunity string `pulumi:"virtualNetworkCommunity"` +// IP configuration for virtual network gateway. +type VirtualNetworkGatewayIPConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // The reference to the public IP resource. + PublicIPAddress *SubResource `pulumi:"publicIPAddress"` + // The reference to the subnet resource. + Subnet *SubResource `pulumi:"subnet"` } -// VirtualNetworkBgpCommunitiesInput is an input type that accepts VirtualNetworkBgpCommunitiesArgs and VirtualNetworkBgpCommunitiesOutput values. -// You can construct a concrete instance of `VirtualNetworkBgpCommunitiesInput` via: +// VirtualNetworkGatewayIPConfigurationInput is an input type that accepts VirtualNetworkGatewayIPConfigurationArgs and VirtualNetworkGatewayIPConfigurationOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayIPConfigurationInput` via: // -// VirtualNetworkBgpCommunitiesArgs{...} -type VirtualNetworkBgpCommunitiesInput interface { +// VirtualNetworkGatewayIPConfigurationArgs{...} +type VirtualNetworkGatewayIPConfigurationInput interface { pulumi.Input - ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput - ToVirtualNetworkBgpCommunitiesOutputWithContext(context.Context) VirtualNetworkBgpCommunitiesOutput -} - -// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. -type VirtualNetworkBgpCommunitiesArgs struct { - // The BGP community associated with the virtual network. - VirtualNetworkCommunity pulumi.StringInput `pulumi:"virtualNetworkCommunity"` -} - -func (VirtualNetworkBgpCommunitiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkBgpCommunities)(nil)).Elem() + ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput + ToVirtualNetworkGatewayIPConfigurationOutputWithContext(context.Context) VirtualNetworkGatewayIPConfigurationOutput } -func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput { - return i.ToVirtualNetworkBgpCommunitiesOutputWithContext(context.Background()) +// IP configuration for virtual network gateway. +type VirtualNetworkGatewayIPConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The private IP address allocation method. + PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` + // The reference to the public IP resource. + PublicIPAddress SubResourcePtrInput `pulumi:"publicIPAddress"` + // The reference to the subnet resource. + Subnet SubResourcePtrInput `pulumi:"subnet"` } -func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesOutput) +func (VirtualNetworkGatewayIPConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayIPConfiguration)(nil)).Elem() } -func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { - return i.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +func (i VirtualNetworkGatewayIPConfigurationArgs) ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput { + return i.ToVirtualNetworkGatewayIPConfigurationOutputWithContext(context.Background()) } -func (i VirtualNetworkBgpCommunitiesArgs) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesOutput).ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx) +func (i VirtualNetworkGatewayIPConfigurationArgs) ToVirtualNetworkGatewayIPConfigurationOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayIPConfigurationOutput) } -// VirtualNetworkBgpCommunitiesPtrInput is an input type that accepts VirtualNetworkBgpCommunitiesArgs, VirtualNetworkBgpCommunitiesPtr and VirtualNetworkBgpCommunitiesPtrOutput values. -// You can construct a concrete instance of `VirtualNetworkBgpCommunitiesPtrInput` via: -// -// VirtualNetworkBgpCommunitiesArgs{...} -// -// or: +// VirtualNetworkGatewayIPConfigurationArrayInput is an input type that accepts VirtualNetworkGatewayIPConfigurationArray and VirtualNetworkGatewayIPConfigurationArrayOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayIPConfigurationArrayInput` via: // -// nil -type VirtualNetworkBgpCommunitiesPtrInput interface { +// VirtualNetworkGatewayIPConfigurationArray{ VirtualNetworkGatewayIPConfigurationArgs{...} } +type VirtualNetworkGatewayIPConfigurationArrayInput interface { pulumi.Input - ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput - ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Context) VirtualNetworkBgpCommunitiesPtrOutput + ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput + ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput } -type virtualNetworkBgpCommunitiesPtrType VirtualNetworkBgpCommunitiesArgs - -func VirtualNetworkBgpCommunitiesPtr(v *VirtualNetworkBgpCommunitiesArgs) VirtualNetworkBgpCommunitiesPtrInput { - return (*virtualNetworkBgpCommunitiesPtrType)(v) -} +type VirtualNetworkGatewayIPConfigurationArray []VirtualNetworkGatewayIPConfigurationInput -func (*virtualNetworkBgpCommunitiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualNetworkBgpCommunities)(nil)).Elem() +func (VirtualNetworkGatewayIPConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfiguration)(nil)).Elem() } -func (i *virtualNetworkBgpCommunitiesPtrType) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { - return i.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +func (i VirtualNetworkGatewayIPConfigurationArray) ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput { + return i.ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(context.Background()) } -func (i *virtualNetworkBgpCommunitiesPtrType) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkBgpCommunitiesPtrOutput) +func (i VirtualNetworkGatewayIPConfigurationArray) ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayIPConfigurationArrayOutput) } -// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. -type VirtualNetworkBgpCommunitiesOutput struct{ *pulumi.OutputState } +// IP configuration for virtual network gateway. +type VirtualNetworkGatewayIPConfigurationOutput struct{ *pulumi.OutputState } -func (VirtualNetworkBgpCommunitiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkBgpCommunities)(nil)).Elem() +func (VirtualNetworkGatewayIPConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayIPConfiguration)(nil)).Elem() } -func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesOutput() VirtualNetworkBgpCommunitiesOutput { +func (o VirtualNetworkGatewayIPConfigurationOutput) ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput { return o } -func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesOutput { +func (o VirtualNetworkGatewayIPConfigurationOutput) ToVirtualNetworkGatewayIPConfigurationOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationOutput { return o } -func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { - return o.ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(context.Background()) +// Resource ID. +func (o VirtualNetworkGatewayIPConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o VirtualNetworkBgpCommunitiesOutput) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualNetworkBgpCommunities) *VirtualNetworkBgpCommunities { - return &v - }).(VirtualNetworkBgpCommunitiesPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayIPConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The BGP community associated with the virtual network. -func (o VirtualNetworkBgpCommunitiesOutput) VirtualNetworkCommunity() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkBgpCommunities) string { return v.VirtualNetworkCommunity }).(pulumi.StringOutput) +// The private IP address allocation method. +func (o VirtualNetworkGatewayIPConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) } -type VirtualNetworkBgpCommunitiesPtrOutput struct{ *pulumi.OutputState } +// The reference to the public IP resource. +func (o VirtualNetworkGatewayIPConfigurationOutput) PublicIPAddress() SubResourcePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *SubResource { return v.PublicIPAddress }).(SubResourcePtrOutput) +} -func (VirtualNetworkBgpCommunitiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualNetworkBgpCommunities)(nil)).Elem() +// The reference to the subnet resource. +func (o VirtualNetworkGatewayIPConfigurationOutput) Subnet() SubResourcePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *SubResource { return v.Subnet }).(SubResourcePtrOutput) } -func (o VirtualNetworkBgpCommunitiesPtrOutput) ToVirtualNetworkBgpCommunitiesPtrOutput() VirtualNetworkBgpCommunitiesPtrOutput { - return o +type VirtualNetworkGatewayIPConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayIPConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfiguration)(nil)).Elem() } -func (o VirtualNetworkBgpCommunitiesPtrOutput) ToVirtualNetworkBgpCommunitiesPtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesPtrOutput { +func (o VirtualNetworkGatewayIPConfigurationArrayOutput) ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput { return o } -func (o VirtualNetworkBgpCommunitiesPtrOutput) Elem() VirtualNetworkBgpCommunitiesOutput { - return o.ApplyT(func(v *VirtualNetworkBgpCommunities) VirtualNetworkBgpCommunities { - if v != nil { - return *v - } - var ret VirtualNetworkBgpCommunities - return ret - }).(VirtualNetworkBgpCommunitiesOutput) +func (o VirtualNetworkGatewayIPConfigurationArrayOutput) ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput { + return o } -// The BGP community associated with the virtual network. -func (o VirtualNetworkBgpCommunitiesPtrOutput) VirtualNetworkCommunity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkBgpCommunities) *string { - if v == nil { - return nil - } - return &v.VirtualNetworkCommunity - }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayIPConfigurationArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayIPConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayIPConfiguration { + return vs[0].([]VirtualNetworkGatewayIPConfiguration)[vs[1].(int)] + }).(VirtualNetworkGatewayIPConfigurationOutput) } -// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. -type VirtualNetworkBgpCommunitiesResponse struct { - // The BGP community associated with the region of the virtual network. - RegionalCommunity string `pulumi:"regionalCommunity"` - // The BGP community associated with the virtual network. - VirtualNetworkCommunity string `pulumi:"virtualNetworkCommunity"` +// IP configuration for virtual network gateway. +type VirtualNetworkGatewayIPConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Private IP Address for this gateway. + PrivateIPAddress string `pulumi:"privateIPAddress"` + // The private IP address allocation method. + PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` + // The provisioning state of the virtual network gateway IP configuration resource. + ProvisioningState string `pulumi:"provisioningState"` + // The reference to the public IP resource. + PublicIPAddress *SubResourceResponse `pulumi:"publicIPAddress"` + // The reference to the subnet resource. + Subnet *SubResourceResponse `pulumi:"subnet"` } -// Bgp Communities sent over ExpressRoute with each route corresponding to a prefix in this VNET. -type VirtualNetworkBgpCommunitiesResponseOutput struct{ *pulumi.OutputState } +// IP configuration for virtual network gateway. +type VirtualNetworkGatewayIPConfigurationResponseOutput struct{ *pulumi.OutputState } -func (VirtualNetworkBgpCommunitiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkBgpCommunitiesResponse)(nil)).Elem() +func (VirtualNetworkGatewayIPConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayIPConfigurationResponse)(nil)).Elem() } -func (o VirtualNetworkBgpCommunitiesResponseOutput) ToVirtualNetworkBgpCommunitiesResponseOutput() VirtualNetworkBgpCommunitiesResponseOutput { +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ToVirtualNetworkGatewayIPConfigurationResponseOutput() VirtualNetworkGatewayIPConfigurationResponseOutput { return o } -func (o VirtualNetworkBgpCommunitiesResponseOutput) ToVirtualNetworkBgpCommunitiesResponseOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesResponseOutput { +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ToVirtualNetworkGatewayIPConfigurationResponseOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationResponseOutput { return o } -// The BGP community associated with the region of the virtual network. -func (o VirtualNetworkBgpCommunitiesResponseOutput) RegionalCommunity() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkBgpCommunitiesResponse) string { return v.RegionalCommunity }).(pulumi.StringOutput) -} - -// The BGP community associated with the virtual network. -func (o VirtualNetworkBgpCommunitiesResponseOutput) VirtualNetworkCommunity() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkBgpCommunitiesResponse) string { return v.VirtualNetworkCommunity }).(pulumi.StringOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) } -type VirtualNetworkBgpCommunitiesResponsePtrOutput struct{ *pulumi.OutputState } - -func (VirtualNetworkBgpCommunitiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualNetworkBgpCommunitiesResponse)(nil)).Elem() +// Resource ID. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) ToVirtualNetworkBgpCommunitiesResponsePtrOutput() VirtualNetworkBgpCommunitiesResponsePtrOutput { - return o +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) ToVirtualNetworkBgpCommunitiesResponsePtrOutputWithContext(ctx context.Context) VirtualNetworkBgpCommunitiesResponsePtrOutput { - return o +// Private IP Address for this gateway. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PrivateIPAddress() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.PrivateIPAddress }).(pulumi.StringOutput) } -func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) Elem() VirtualNetworkBgpCommunitiesResponseOutput { - return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) VirtualNetworkBgpCommunitiesResponse { - if v != nil { - return *v - } - var ret VirtualNetworkBgpCommunitiesResponse - return ret - }).(VirtualNetworkBgpCommunitiesResponseOutput) +// The private IP address allocation method. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) } -// The BGP community associated with the region of the virtual network. -func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) RegionalCommunity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) *string { - if v == nil { - return nil - } - return &v.RegionalCommunity - }).(pulumi.StringPtrOutput) +// The provisioning state of the virtual network gateway IP configuration resource. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The BGP community associated with the virtual network. -func (o VirtualNetworkBgpCommunitiesResponsePtrOutput) VirtualNetworkCommunity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkBgpCommunitiesResponse) *string { - if v == nil { - return nil - } - return &v.VirtualNetworkCommunity - }).(pulumi.StringPtrOutput) +// The reference to the public IP resource. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PublicIPAddress() SubResourceResponsePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *SubResourceResponse { return v.PublicIPAddress }).(SubResourceResponsePtrOutput) } -// Reference to DNS forwarding ruleset and associated virtual network link. -type VirtualNetworkDnsForwardingRulesetResponse struct { - // DNS Forwarding Ruleset Resource ID. - Id *string `pulumi:"id"` - // The reference to the virtual network link. - VirtualNetworkLink *SubResourceResponse `pulumi:"virtualNetworkLink"` +// The reference to the subnet resource. +func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Subnet() SubResourceResponsePtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) } -// Reference to DNS forwarding ruleset and associated virtual network link. -type VirtualNetworkDnsForwardingRulesetResponseOutput struct{ *pulumi.OutputState } +type VirtualNetworkGatewayIPConfigurationResponseArrayOutput struct{ *pulumi.OutputState } -func (VirtualNetworkDnsForwardingRulesetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkDnsForwardingRulesetResponse)(nil)).Elem() +func (VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfigurationResponse)(nil)).Elem() } -func (o VirtualNetworkDnsForwardingRulesetResponseOutput) ToVirtualNetworkDnsForwardingRulesetResponseOutput() VirtualNetworkDnsForwardingRulesetResponseOutput { +func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ToVirtualNetworkGatewayIPConfigurationResponseArrayOutput() VirtualNetworkGatewayIPConfigurationResponseArrayOutput { return o } -func (o VirtualNetworkDnsForwardingRulesetResponseOutput) ToVirtualNetworkDnsForwardingRulesetResponseOutputWithContext(ctx context.Context) VirtualNetworkDnsForwardingRulesetResponseOutput { +func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ToVirtualNetworkGatewayIPConfigurationResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationResponseArrayOutput { return o } -// DNS Forwarding Ruleset Resource ID. -func (o VirtualNetworkDnsForwardingRulesetResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkDnsForwardingRulesetResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayIPConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayIPConfigurationResponse { + return vs[0].([]VirtualNetworkGatewayIPConfigurationResponse)[vs[1].(int)] + }).(VirtualNetworkGatewayIPConfigurationResponseOutput) } -// The reference to the virtual network link. -func (o VirtualNetworkDnsForwardingRulesetResponseOutput) VirtualNetworkLink() SubResourceResponsePtrOutput { - return o.ApplyT(func(v VirtualNetworkDnsForwardingRulesetResponse) *SubResourceResponse { return v.VirtualNetworkLink }).(SubResourceResponsePtrOutput) +// VirtualNetworkGatewayNatRule Resource. +type VirtualNetworkGatewayNatRuleType struct { + // The private IP address external mapping for NAT. + ExternalMappings []VpnNatRuleMapping `pulumi:"externalMappings"` + // Resource ID. + Id *string `pulumi:"id"` + // The private IP address internal mapping for NAT. + InternalMappings []VpnNatRuleMapping `pulumi:"internalMappings"` + // The IP Configuration ID this NAT rule applies to. + IpConfigurationId *string `pulumi:"ipConfigurationId"` + // The Source NAT direction of a VPN NAT. + Mode *string `pulumi:"mode"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The type of NAT rule for VPN NAT. + Type *string `pulumi:"type"` } -type VirtualNetworkDnsForwardingRulesetResponseArrayOutput struct{ *pulumi.OutputState } +// VirtualNetworkGatewayNatRuleTypeInput is an input type that accepts VirtualNetworkGatewayNatRuleTypeArgs and VirtualNetworkGatewayNatRuleTypeOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayNatRuleTypeInput` via: +// +// VirtualNetworkGatewayNatRuleTypeArgs{...} +type VirtualNetworkGatewayNatRuleTypeInput interface { + pulumi.Input -func (VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualNetworkDnsForwardingRulesetResponse)(nil)).Elem() + ToVirtualNetworkGatewayNatRuleTypeOutput() VirtualNetworkGatewayNatRuleTypeOutput + ToVirtualNetworkGatewayNatRuleTypeOutputWithContext(context.Context) VirtualNetworkGatewayNatRuleTypeOutput } -func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ToVirtualNetworkDnsForwardingRulesetResponseArrayOutput() VirtualNetworkDnsForwardingRulesetResponseArrayOutput { - return o +// VirtualNetworkGatewayNatRule Resource. +type VirtualNetworkGatewayNatRuleTypeArgs struct { + // The private IP address external mapping for NAT. + ExternalMappings VpnNatRuleMappingArrayInput `pulumi:"externalMappings"` + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The private IP address internal mapping for NAT. + InternalMappings VpnNatRuleMappingArrayInput `pulumi:"internalMappings"` + // The IP Configuration ID this NAT rule applies to. + IpConfigurationId pulumi.StringPtrInput `pulumi:"ipConfigurationId"` + // The Source NAT direction of a VPN NAT. + Mode pulumi.StringPtrInput `pulumi:"mode"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // The type of NAT rule for VPN NAT. + Type pulumi.StringPtrInput `pulumi:"type"` } -func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) ToVirtualNetworkDnsForwardingRulesetResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkDnsForwardingRulesetResponseArrayOutput { - return o +func (VirtualNetworkGatewayNatRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayNatRuleType)(nil)).Elem() } -func (o VirtualNetworkDnsForwardingRulesetResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkDnsForwardingRulesetResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkDnsForwardingRulesetResponse { - return vs[0].([]VirtualNetworkDnsForwardingRulesetResponse)[vs[1].(int)] - }).(VirtualNetworkDnsForwardingRulesetResponseOutput) +func (i VirtualNetworkGatewayNatRuleTypeArgs) ToVirtualNetworkGatewayNatRuleTypeOutput() VirtualNetworkGatewayNatRuleTypeOutput { + return i.ToVirtualNetworkGatewayNatRuleTypeOutputWithContext(context.Background()) } -// A common class for general resource information. -type VirtualNetworkGatewayType struct { - // ActiveActive flag. - ActiveActive *bool `pulumi:"activeActive"` - // Virtual network gateway's BGP speaker settings. - BgpSettings *BgpSettings `pulumi:"bgpSettings"` - // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. - CustomRoutes *AddressSpace `pulumi:"customRoutes"` - // Whether BGP is enabled for this virtual network gateway or not. - EnableBgp *bool `pulumi:"enableBgp"` - // Whether dns forwarding is enabled or not. - EnableDnsForwarding *bool `pulumi:"enableDnsForwarding"` - // Whether private IP needs to be enabled on this gateway for connections or not. - EnablePrivateIpAddress *bool `pulumi:"enablePrivateIpAddress"` - // The extended location of type local virtual network gateway. - ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` - // The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. - GatewayDefaultSite *SubResource `pulumi:"gatewayDefaultSite"` - // The type of this virtual network gateway. - GatewayType *string `pulumi:"gatewayType"` - // Resource ID. - Id *string `pulumi:"id"` - // IP configurations for virtual network gateway. - IpConfigurations []VirtualNetworkGatewayIPConfiguration `pulumi:"ipConfigurations"` - // Resource location. - Location *string `pulumi:"location"` - // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. - Sku *VirtualNetworkGatewaySku `pulumi:"sku"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. - VNetExtendedLocationResourceId *string `pulumi:"vNetExtendedLocationResourceId"` - // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. - VpnClientConfiguration *VpnClientConfiguration `pulumi:"vpnClientConfiguration"` - // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. - VpnGatewayGeneration *string `pulumi:"vpnGatewayGeneration"` - // The type of this virtual network gateway. - VpnType *string `pulumi:"vpnType"` +func (i VirtualNetworkGatewayNatRuleTypeArgs) ToVirtualNetworkGatewayNatRuleTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayNatRuleTypeOutput) } -// VirtualNetworkGatewayTypeInput is an input type that accepts VirtualNetworkGatewayTypeArgs and VirtualNetworkGatewayTypeOutput values. -// You can construct a concrete instance of `VirtualNetworkGatewayTypeInput` via: +// VirtualNetworkGatewayNatRuleTypeArrayInput is an input type that accepts VirtualNetworkGatewayNatRuleTypeArray and VirtualNetworkGatewayNatRuleTypeArrayOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayNatRuleTypeArrayInput` via: // -// VirtualNetworkGatewayTypeArgs{...} -type VirtualNetworkGatewayTypeInput interface { +// VirtualNetworkGatewayNatRuleTypeArray{ VirtualNetworkGatewayNatRuleTypeArgs{...} } +type VirtualNetworkGatewayNatRuleTypeArrayInput interface { pulumi.Input - ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput - ToVirtualNetworkGatewayTypeOutputWithContext(context.Context) VirtualNetworkGatewayTypeOutput + ToVirtualNetworkGatewayNatRuleTypeArrayOutput() VirtualNetworkGatewayNatRuleTypeArrayOutput + ToVirtualNetworkGatewayNatRuleTypeArrayOutputWithContext(context.Context) VirtualNetworkGatewayNatRuleTypeArrayOutput } -// A common class for general resource information. -type VirtualNetworkGatewayTypeArgs struct { - // ActiveActive flag. - ActiveActive pulumi.BoolPtrInput `pulumi:"activeActive"` - // Virtual network gateway's BGP speaker settings. - BgpSettings BgpSettingsPtrInput `pulumi:"bgpSettings"` - // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. - CustomRoutes AddressSpacePtrInput `pulumi:"customRoutes"` - // Whether BGP is enabled for this virtual network gateway or not. - EnableBgp pulumi.BoolPtrInput `pulumi:"enableBgp"` - // Whether dns forwarding is enabled or not. - EnableDnsForwarding pulumi.BoolPtrInput `pulumi:"enableDnsForwarding"` - // Whether private IP needs to be enabled on this gateway for connections or not. - EnablePrivateIpAddress pulumi.BoolPtrInput `pulumi:"enablePrivateIpAddress"` - // The extended location of type local virtual network gateway. - ExtendedLocation ExtendedLocationPtrInput `pulumi:"extendedLocation"` - // The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. - GatewayDefaultSite SubResourcePtrInput `pulumi:"gatewayDefaultSite"` - // The type of this virtual network gateway. - GatewayType pulumi.StringPtrInput `pulumi:"gatewayType"` - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // IP configurations for virtual network gateway. - IpConfigurations VirtualNetworkGatewayIPConfigurationArrayInput `pulumi:"ipConfigurations"` - // Resource location. - Location pulumi.StringPtrInput `pulumi:"location"` - // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. - Sku VirtualNetworkGatewaySkuPtrInput `pulumi:"sku"` - // Resource tags. - Tags pulumi.StringMapInput `pulumi:"tags"` - // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. - VNetExtendedLocationResourceId pulumi.StringPtrInput `pulumi:"vNetExtendedLocationResourceId"` - // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. - VpnClientConfiguration VpnClientConfigurationPtrInput `pulumi:"vpnClientConfiguration"` - // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. - VpnGatewayGeneration pulumi.StringPtrInput `pulumi:"vpnGatewayGeneration"` - // The type of this virtual network gateway. - VpnType pulumi.StringPtrInput `pulumi:"vpnType"` +type VirtualNetworkGatewayNatRuleTypeArray []VirtualNetworkGatewayNatRuleTypeInput + +func (VirtualNetworkGatewayNatRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayNatRuleType)(nil)).Elem() } -func (VirtualNetworkGatewayTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkGatewayType)(nil)).Elem() +func (i VirtualNetworkGatewayNatRuleTypeArray) ToVirtualNetworkGatewayNatRuleTypeArrayOutput() VirtualNetworkGatewayNatRuleTypeArrayOutput { + return i.ToVirtualNetworkGatewayNatRuleTypeArrayOutputWithContext(context.Background()) } -func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput { - return i.ToVirtualNetworkGatewayTypeOutputWithContext(context.Background()) +func (i VirtualNetworkGatewayNatRuleTypeArray) ToVirtualNetworkGatewayNatRuleTypeArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayNatRuleTypeArrayOutput) } -func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypeOutput) +// VirtualNetworkGatewayNatRule Resource. +type VirtualNetworkGatewayNatRuleTypeOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayNatRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayNatRuleType)(nil)).Elem() } -func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { - return i.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +func (o VirtualNetworkGatewayNatRuleTypeOutput) ToVirtualNetworkGatewayNatRuleTypeOutput() VirtualNetworkGatewayNatRuleTypeOutput { + return o } -func (i VirtualNetworkGatewayTypeArgs) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypeOutput).ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx) +func (o VirtualNetworkGatewayNatRuleTypeOutput) ToVirtualNetworkGatewayNatRuleTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleTypeOutput { + return o } -// VirtualNetworkGatewayTypePtrInput is an input type that accepts VirtualNetworkGatewayTypeArgs, VirtualNetworkGatewayTypePtr and VirtualNetworkGatewayTypePtrOutput values. -// You can construct a concrete instance of `VirtualNetworkGatewayTypePtrInput` via: -// -// VirtualNetworkGatewayTypeArgs{...} -// -// or: -// -// nil -type VirtualNetworkGatewayTypePtrInput interface { - pulumi.Input +// The private IP address external mapping for NAT. +func (o VirtualNetworkGatewayNatRuleTypeOutput) ExternalMappings() VpnNatRuleMappingArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) []VpnNatRuleMapping { return v.ExternalMappings }).(VpnNatRuleMappingArrayOutput) +} - ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput - ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Context) VirtualNetworkGatewayTypePtrOutput +// Resource ID. +func (o VirtualNetworkGatewayNatRuleTypeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) *string { return v.Id }).(pulumi.StringPtrOutput) } -type virtualNetworkGatewayTypePtrType VirtualNetworkGatewayTypeArgs +// The private IP address internal mapping for NAT. +func (o VirtualNetworkGatewayNatRuleTypeOutput) InternalMappings() VpnNatRuleMappingArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) []VpnNatRuleMapping { return v.InternalMappings }).(VpnNatRuleMappingArrayOutput) +} -func VirtualNetworkGatewayTypePtr(v *VirtualNetworkGatewayTypeArgs) VirtualNetworkGatewayTypePtrInput { - return (*virtualNetworkGatewayTypePtrType)(v) +// The IP Configuration ID this NAT rule applies to. +func (o VirtualNetworkGatewayNatRuleTypeOutput) IpConfigurationId() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) *string { return v.IpConfigurationId }).(pulumi.StringPtrOutput) } -func (*virtualNetworkGatewayTypePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualNetworkGatewayType)(nil)).Elem() +// The Source NAT direction of a VPN NAT. +func (o VirtualNetworkGatewayNatRuleTypeOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) *string { return v.Mode }).(pulumi.StringPtrOutput) } -func (i *virtualNetworkGatewayTypePtrType) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { - return i.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayNatRuleTypeOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) *string { return v.Name }).(pulumi.StringPtrOutput) } -func (i *virtualNetworkGatewayTypePtrType) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayTypePtrOutput) +// The type of NAT rule for VPN NAT. +func (o VirtualNetworkGatewayNatRuleTypeOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleType) *string { return v.Type }).(pulumi.StringPtrOutput) } -// A common class for general resource information. -type VirtualNetworkGatewayTypeOutput struct{ *pulumi.OutputState } +type VirtualNetworkGatewayNatRuleTypeArrayOutput struct{ *pulumi.OutputState } -func (VirtualNetworkGatewayTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkGatewayType)(nil)).Elem() +func (VirtualNetworkGatewayNatRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayNatRuleType)(nil)).Elem() } -func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypeOutput() VirtualNetworkGatewayTypeOutput { +func (o VirtualNetworkGatewayNatRuleTypeArrayOutput) ToVirtualNetworkGatewayNatRuleTypeArrayOutput() VirtualNetworkGatewayNatRuleTypeArrayOutput { return o } -func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypeOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypeOutput { +func (o VirtualNetworkGatewayNatRuleTypeArrayOutput) ToVirtualNetworkGatewayNatRuleTypeArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleTypeArrayOutput { return o } -func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { - return o.ToVirtualNetworkGatewayTypePtrOutputWithContext(context.Background()) +func (o VirtualNetworkGatewayNatRuleTypeArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayNatRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayNatRuleType { + return vs[0].([]VirtualNetworkGatewayNatRuleType)[vs[1].(int)] + }).(VirtualNetworkGatewayNatRuleTypeOutput) } -func (o VirtualNetworkGatewayTypeOutput) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualNetworkGatewayType) *VirtualNetworkGatewayType { - return &v - }).(VirtualNetworkGatewayTypePtrOutput) +// VirtualNetworkGatewayNatRule Resource. +type VirtualNetworkGatewayNatRuleResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // The private IP address external mapping for NAT. + ExternalMappings []VpnNatRuleMappingResponse `pulumi:"externalMappings"` + // Resource ID. + Id *string `pulumi:"id"` + // The private IP address internal mapping for NAT. + InternalMappings []VpnNatRuleMappingResponse `pulumi:"internalMappings"` + // The IP Configuration ID this NAT rule applies to. + IpConfigurationId *string `pulumi:"ipConfigurationId"` + // The Source NAT direction of a VPN NAT. + Mode *string `pulumi:"mode"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the NAT Rule resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource type. + Type string `pulumi:"type"` } -// ActiveActive flag. -func (o VirtualNetworkGatewayTypeOutput) ActiveActive() pulumi.BoolPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.ActiveActive }).(pulumi.BoolPtrOutput) -} +// VirtualNetworkGatewayNatRule Resource. +type VirtualNetworkGatewayNatRuleResponseOutput struct{ *pulumi.OutputState } -// Virtual network gateway's BGP speaker settings. -func (o VirtualNetworkGatewayTypeOutput) BgpSettings() BgpSettingsPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *BgpSettings { return v.BgpSettings }).(BgpSettingsPtrOutput) +func (VirtualNetworkGatewayNatRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayNatRuleResponse)(nil)).Elem() } -// The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. -func (o VirtualNetworkGatewayTypeOutput) CustomRoutes() AddressSpacePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *AddressSpace { return v.CustomRoutes }).(AddressSpacePtrOutput) +func (o VirtualNetworkGatewayNatRuleResponseOutput) ToVirtualNetworkGatewayNatRuleResponseOutput() VirtualNetworkGatewayNatRuleResponseOutput { + return o } -// Whether BGP is enabled for this virtual network gateway or not. -func (o VirtualNetworkGatewayTypeOutput) EnableBgp() pulumi.BoolPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnableBgp }).(pulumi.BoolPtrOutput) +func (o VirtualNetworkGatewayNatRuleResponseOutput) ToVirtualNetworkGatewayNatRuleResponseOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleResponseOutput { + return o } -// Whether dns forwarding is enabled or not. -func (o VirtualNetworkGatewayTypeOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnableDnsForwarding }).(pulumi.BoolPtrOutput) +// A unique read-only string that changes whenever the resource is updated. +func (o VirtualNetworkGatewayNatRuleResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } -// Whether private IP needs to be enabled on this gateway for connections or not. -func (o VirtualNetworkGatewayTypeOutput) EnablePrivateIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *bool { return v.EnablePrivateIpAddress }).(pulumi.BoolPtrOutput) +// The private IP address external mapping for NAT. +func (o VirtualNetworkGatewayNatRuleResponseOutput) ExternalMappings() VpnNatRuleMappingResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) []VpnNatRuleMappingResponse { return v.ExternalMappings }).(VpnNatRuleMappingResponseArrayOutput) } -// The extended location of type local virtual network gateway. -func (o VirtualNetworkGatewayTypeOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *ExtendedLocation { return v.ExtendedLocation }).(ExtendedLocationPtrOutput) +// Resource ID. +func (o VirtualNetworkGatewayNatRuleResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. -func (o VirtualNetworkGatewayTypeOutput) GatewayDefaultSite() SubResourcePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *SubResource { return v.GatewayDefaultSite }).(SubResourcePtrOutput) +// The private IP address internal mapping for NAT. +func (o VirtualNetworkGatewayNatRuleResponseOutput) InternalMappings() VpnNatRuleMappingResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) []VpnNatRuleMappingResponse { return v.InternalMappings }).(VpnNatRuleMappingResponseArrayOutput) } -// The type of this virtual network gateway. -func (o VirtualNetworkGatewayTypeOutput) GatewayType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.GatewayType }).(pulumi.StringPtrOutput) +// The IP Configuration ID this NAT rule applies to. +func (o VirtualNetworkGatewayNatRuleResponseOutput) IpConfigurationId() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) *string { return v.IpConfigurationId }).(pulumi.StringPtrOutput) } -// Resource ID. -func (o VirtualNetworkGatewayTypeOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.Id }).(pulumi.StringPtrOutput) +// The Source NAT direction of a VPN NAT. +func (o VirtualNetworkGatewayNatRuleResponseOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) *string { return v.Mode }).(pulumi.StringPtrOutput) } -// IP configurations for virtual network gateway. -func (o VirtualNetworkGatewayTypeOutput) IpConfigurations() VirtualNetworkGatewayIPConfigurationArrayOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) []VirtualNetworkGatewayIPConfiguration { return v.IpConfigurations }).(VirtualNetworkGatewayIPConfigurationArrayOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayNatRuleResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Resource location. -func (o VirtualNetworkGatewayTypeOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.Location }).(pulumi.StringPtrOutput) +// The provisioning state of the NAT Rule resource. +func (o VirtualNetworkGatewayNatRuleResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. -func (o VirtualNetworkGatewayTypeOutput) Sku() VirtualNetworkGatewaySkuPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *VirtualNetworkGatewaySku { return v.Sku }).(VirtualNetworkGatewaySkuPtrOutput) +// Resource type. +func (o VirtualNetworkGatewayNatRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayNatRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -// Resource tags. -func (o VirtualNetworkGatewayTypeOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +type VirtualNetworkGatewayNatRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayNatRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayNatRuleResponse)(nil)).Elem() } -// Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. -func (o VirtualNetworkGatewayTypeOutput) VNetExtendedLocationResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VNetExtendedLocationResourceId }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayNatRuleResponseArrayOutput) ToVirtualNetworkGatewayNatRuleResponseArrayOutput() VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o } -// The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. -func (o VirtualNetworkGatewayTypeOutput) VpnClientConfiguration() VpnClientConfigurationPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *VpnClientConfiguration { return v.VpnClientConfiguration }).(VpnClientConfigurationPtrOutput) +func (o VirtualNetworkGatewayNatRuleResponseArrayOutput) ToVirtualNetworkGatewayNatRuleResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o } -// The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. -func (o VirtualNetworkGatewayTypeOutput) VpnGatewayGeneration() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VpnGatewayGeneration }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayNatRuleResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayNatRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayNatRuleResponse { + return vs[0].([]VirtualNetworkGatewayNatRuleResponse)[vs[1].(int)] + }).(VirtualNetworkGatewayNatRuleResponseOutput) } -// The type of this virtual network gateway. -func (o VirtualNetworkGatewayTypeOutput) VpnType() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayType) *string { return v.VpnType }).(pulumi.StringPtrOutput) +// Parameters for VirtualNetworkGatewayPolicyGroup. +type VirtualNetworkGatewayPolicyGroup struct { + // Resource ID. + Id *string `pulumi:"id"` + // Shows if this is a Default VirtualNetworkGatewayPolicyGroup or not. + IsDefault bool `pulumi:"isDefault"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Multiple PolicyMembers for VirtualNetworkGatewayPolicyGroup. + PolicyMembers []VirtualNetworkGatewayPolicyGroupMember `pulumi:"policyMembers"` + // Priority for VirtualNetworkGatewayPolicyGroup. + Priority int `pulumi:"priority"` } -type VirtualNetworkGatewayTypePtrOutput struct{ *pulumi.OutputState } +// VirtualNetworkGatewayPolicyGroupInput is an input type that accepts VirtualNetworkGatewayPolicyGroupArgs and VirtualNetworkGatewayPolicyGroupOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayPolicyGroupInput` via: +// +// VirtualNetworkGatewayPolicyGroupArgs{...} +type VirtualNetworkGatewayPolicyGroupInput interface { + pulumi.Input -func (VirtualNetworkGatewayTypePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**VirtualNetworkGatewayType)(nil)).Elem() + ToVirtualNetworkGatewayPolicyGroupOutput() VirtualNetworkGatewayPolicyGroupOutput + ToVirtualNetworkGatewayPolicyGroupOutputWithContext(context.Context) VirtualNetworkGatewayPolicyGroupOutput } -func (o VirtualNetworkGatewayTypePtrOutput) ToVirtualNetworkGatewayTypePtrOutput() VirtualNetworkGatewayTypePtrOutput { - return o +// Parameters for VirtualNetworkGatewayPolicyGroup. +type VirtualNetworkGatewayPolicyGroupArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Shows if this is a Default VirtualNetworkGatewayPolicyGroup or not. + IsDefault pulumi.BoolInput `pulumi:"isDefault"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // Multiple PolicyMembers for VirtualNetworkGatewayPolicyGroup. + PolicyMembers VirtualNetworkGatewayPolicyGroupMemberArrayInput `pulumi:"policyMembers"` + // Priority for VirtualNetworkGatewayPolicyGroup. + Priority pulumi.IntInput `pulumi:"priority"` } -func (o VirtualNetworkGatewayTypePtrOutput) ToVirtualNetworkGatewayTypePtrOutputWithContext(ctx context.Context) VirtualNetworkGatewayTypePtrOutput { - return o +func (VirtualNetworkGatewayPolicyGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroup)(nil)).Elem() } -func (o VirtualNetworkGatewayTypePtrOutput) Elem() VirtualNetworkGatewayTypeOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) VirtualNetworkGatewayType { - if v != nil { - return *v - } - var ret VirtualNetworkGatewayType - return ret - }).(VirtualNetworkGatewayTypeOutput) +func (i VirtualNetworkGatewayPolicyGroupArgs) ToVirtualNetworkGatewayPolicyGroupOutput() VirtualNetworkGatewayPolicyGroupOutput { + return i.ToVirtualNetworkGatewayPolicyGroupOutputWithContext(context.Background()) } -// ActiveActive flag. -func (o VirtualNetworkGatewayTypePtrOutput) ActiveActive() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { - if v == nil { - return nil - } - return v.ActiveActive - }).(pulumi.BoolPtrOutput) +func (i VirtualNetworkGatewayPolicyGroupArgs) ToVirtualNetworkGatewayPolicyGroupOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayPolicyGroupOutput) } -// Virtual network gateway's BGP speaker settings. -func (o VirtualNetworkGatewayTypePtrOutput) BgpSettings() BgpSettingsPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *BgpSettings { - if v == nil { - return nil - } - return v.BgpSettings - }).(BgpSettingsPtrOutput) -} +// VirtualNetworkGatewayPolicyGroupArrayInput is an input type that accepts VirtualNetworkGatewayPolicyGroupArray and VirtualNetworkGatewayPolicyGroupArrayOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayPolicyGroupArrayInput` via: +// +// VirtualNetworkGatewayPolicyGroupArray{ VirtualNetworkGatewayPolicyGroupArgs{...} } +type VirtualNetworkGatewayPolicyGroupArrayInput interface { + pulumi.Input -// The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. -func (o VirtualNetworkGatewayTypePtrOutput) CustomRoutes() AddressSpacePtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *AddressSpace { - if v == nil { - return nil - } - return v.CustomRoutes - }).(AddressSpacePtrOutput) + ToVirtualNetworkGatewayPolicyGroupArrayOutput() VirtualNetworkGatewayPolicyGroupArrayOutput + ToVirtualNetworkGatewayPolicyGroupArrayOutputWithContext(context.Context) VirtualNetworkGatewayPolicyGroupArrayOutput } -// Whether BGP is enabled for this virtual network gateway or not. -func (o VirtualNetworkGatewayTypePtrOutput) EnableBgp() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { - if v == nil { - return nil - } - return v.EnableBgp - }).(pulumi.BoolPtrOutput) +type VirtualNetworkGatewayPolicyGroupArray []VirtualNetworkGatewayPolicyGroupInput + +func (VirtualNetworkGatewayPolicyGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroup)(nil)).Elem() } -// Whether dns forwarding is enabled or not. -func (o VirtualNetworkGatewayTypePtrOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { - if v == nil { - return nil - } - return v.EnableDnsForwarding - }).(pulumi.BoolPtrOutput) +func (i VirtualNetworkGatewayPolicyGroupArray) ToVirtualNetworkGatewayPolicyGroupArrayOutput() VirtualNetworkGatewayPolicyGroupArrayOutput { + return i.ToVirtualNetworkGatewayPolicyGroupArrayOutputWithContext(context.Background()) } -// Whether private IP needs to be enabled on this gateway for connections or not. -func (o VirtualNetworkGatewayTypePtrOutput) EnablePrivateIpAddress() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *bool { - if v == nil { - return nil - } - return v.EnablePrivateIpAddress - }).(pulumi.BoolPtrOutput) +func (i VirtualNetworkGatewayPolicyGroupArray) ToVirtualNetworkGatewayPolicyGroupArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayPolicyGroupArrayOutput) } -// The extended location of type local virtual network gateway. -func (o VirtualNetworkGatewayTypePtrOutput) ExtendedLocation() ExtendedLocationPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *ExtendedLocation { - if v == nil { - return nil - } - return v.ExtendedLocation - }).(ExtendedLocationPtrOutput) +// Parameters for VirtualNetworkGatewayPolicyGroup. +type VirtualNetworkGatewayPolicyGroupOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayPolicyGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroup)(nil)).Elem() } -// The reference to the LocalNetworkGateway resource which represents local network site having default routes. Assign Null value in case of removing existing default site setting. -func (o VirtualNetworkGatewayTypePtrOutput) GatewayDefaultSite() SubResourcePtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *SubResource { - if v == nil { - return nil - } - return v.GatewayDefaultSite - }).(SubResourcePtrOutput) +func (o VirtualNetworkGatewayPolicyGroupOutput) ToVirtualNetworkGatewayPolicyGroupOutput() VirtualNetworkGatewayPolicyGroupOutput { + return o } -// The type of this virtual network gateway. -func (o VirtualNetworkGatewayTypePtrOutput) GatewayType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.GatewayType - }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupOutput) ToVirtualNetworkGatewayPolicyGroupOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupOutput { + return o } // Resource ID. -func (o VirtualNetworkGatewayTypePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.Id - }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroup) *string { return v.Id }).(pulumi.StringPtrOutput) } -// IP configurations for virtual network gateway. -func (o VirtualNetworkGatewayTypePtrOutput) IpConfigurations() VirtualNetworkGatewayIPConfigurationArrayOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) []VirtualNetworkGatewayIPConfiguration { - if v == nil { - return nil - } - return v.IpConfigurations - }).(VirtualNetworkGatewayIPConfigurationArrayOutput) +// Shows if this is a Default VirtualNetworkGatewayPolicyGroup or not. +func (o VirtualNetworkGatewayPolicyGroupOutput) IsDefault() pulumi.BoolOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroup) bool { return v.IsDefault }).(pulumi.BoolOutput) } -// Resource location. -func (o VirtualNetworkGatewayTypePtrOutput) Location() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.Location - }).(pulumi.StringPtrOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayPolicyGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroup) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. -func (o VirtualNetworkGatewayTypePtrOutput) Sku() VirtualNetworkGatewaySkuPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *VirtualNetworkGatewaySku { - if v == nil { - return nil - } - return v.Sku - }).(VirtualNetworkGatewaySkuPtrOutput) +// Multiple PolicyMembers for VirtualNetworkGatewayPolicyGroup. +func (o VirtualNetworkGatewayPolicyGroupOutput) PolicyMembers() VirtualNetworkGatewayPolicyGroupMemberArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroup) []VirtualNetworkGatewayPolicyGroupMember { + return v.PolicyMembers + }).(VirtualNetworkGatewayPolicyGroupMemberArrayOutput) } - -// Resource tags. -func (o VirtualNetworkGatewayTypePtrOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) map[string]string { - if v == nil { - return nil - } - return v.Tags - }).(pulumi.StringMapOutput) + +// Priority for VirtualNetworkGatewayPolicyGroup. +func (o VirtualNetworkGatewayPolicyGroupOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroup) int { return v.Priority }).(pulumi.IntOutput) } -// Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. -func (o VirtualNetworkGatewayTypePtrOutput) VNetExtendedLocationResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.VNetExtendedLocationResourceId - }).(pulumi.StringPtrOutput) +type VirtualNetworkGatewayPolicyGroupArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayPolicyGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroup)(nil)).Elem() } -// The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. -func (o VirtualNetworkGatewayTypePtrOutput) VpnClientConfiguration() VpnClientConfigurationPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *VpnClientConfiguration { - if v == nil { - return nil - } - return v.VpnClientConfiguration - }).(VpnClientConfigurationPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupArrayOutput) ToVirtualNetworkGatewayPolicyGroupArrayOutput() VirtualNetworkGatewayPolicyGroupArrayOutput { + return o } -// The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. -func (o VirtualNetworkGatewayTypePtrOutput) VpnGatewayGeneration() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.VpnGatewayGeneration - }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupArrayOutput) ToVirtualNetworkGatewayPolicyGroupArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupArrayOutput { + return o } -// The type of this virtual network gateway. -func (o VirtualNetworkGatewayTypePtrOutput) VpnType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *VirtualNetworkGatewayType) *string { - if v == nil { - return nil - } - return v.VpnType - }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayPolicyGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayPolicyGroup { + return vs[0].([]VirtualNetworkGatewayPolicyGroup)[vs[1].(int)] + }).(VirtualNetworkGatewayPolicyGroupOutput) } -// IP configuration for virtual network gateway. -type VirtualNetworkGatewayIPConfiguration struct { - // Resource ID. - Id *string `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. +// Vpn Client Connection configuration PolicyGroup member +type VirtualNetworkGatewayPolicyGroupMember struct { + // The Vpn Policy member attribute type. + AttributeType *string `pulumi:"attributeType"` + // The value of Attribute used for this VirtualNetworkGatewayPolicyGroupMember. + AttributeValue *string `pulumi:"attributeValue"` + // Name of the VirtualNetworkGatewayPolicyGroupMember. Name *string `pulumi:"name"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // The reference to the public IP resource. - PublicIPAddress *SubResource `pulumi:"publicIPAddress"` - // The reference to the subnet resource. - Subnet *SubResource `pulumi:"subnet"` } -// VirtualNetworkGatewayIPConfigurationInput is an input type that accepts VirtualNetworkGatewayIPConfigurationArgs and VirtualNetworkGatewayIPConfigurationOutput values. -// You can construct a concrete instance of `VirtualNetworkGatewayIPConfigurationInput` via: +// VirtualNetworkGatewayPolicyGroupMemberInput is an input type that accepts VirtualNetworkGatewayPolicyGroupMemberArgs and VirtualNetworkGatewayPolicyGroupMemberOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayPolicyGroupMemberInput` via: // -// VirtualNetworkGatewayIPConfigurationArgs{...} -type VirtualNetworkGatewayIPConfigurationInput interface { +// VirtualNetworkGatewayPolicyGroupMemberArgs{...} +type VirtualNetworkGatewayPolicyGroupMemberInput interface { pulumi.Input - ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput - ToVirtualNetworkGatewayIPConfigurationOutputWithContext(context.Context) VirtualNetworkGatewayIPConfigurationOutput + ToVirtualNetworkGatewayPolicyGroupMemberOutput() VirtualNetworkGatewayPolicyGroupMemberOutput + ToVirtualNetworkGatewayPolicyGroupMemberOutputWithContext(context.Context) VirtualNetworkGatewayPolicyGroupMemberOutput } -// IP configuration for virtual network gateway. -type VirtualNetworkGatewayIPConfigurationArgs struct { - // Resource ID. - Id pulumi.StringPtrInput `pulumi:"id"` - // The name of the resource that is unique within a resource group. This name can be used to access the resource. +// Vpn Client Connection configuration PolicyGroup member +type VirtualNetworkGatewayPolicyGroupMemberArgs struct { + // The Vpn Policy member attribute type. + AttributeType pulumi.StringPtrInput `pulumi:"attributeType"` + // The value of Attribute used for this VirtualNetworkGatewayPolicyGroupMember. + AttributeValue pulumi.StringPtrInput `pulumi:"attributeValue"` + // Name of the VirtualNetworkGatewayPolicyGroupMember. Name pulumi.StringPtrInput `pulumi:"name"` - // The private IP address allocation method. - PrivateIPAllocationMethod pulumi.StringPtrInput `pulumi:"privateIPAllocationMethod"` - // The reference to the public IP resource. - PublicIPAddress SubResourcePtrInput `pulumi:"publicIPAddress"` - // The reference to the subnet resource. - Subnet SubResourcePtrInput `pulumi:"subnet"` } -func (VirtualNetworkGatewayIPConfigurationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkGatewayIPConfiguration)(nil)).Elem() +func (VirtualNetworkGatewayPolicyGroupMemberArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroupMember)(nil)).Elem() } -func (i VirtualNetworkGatewayIPConfigurationArgs) ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput { - return i.ToVirtualNetworkGatewayIPConfigurationOutputWithContext(context.Background()) +func (i VirtualNetworkGatewayPolicyGroupMemberArgs) ToVirtualNetworkGatewayPolicyGroupMemberOutput() VirtualNetworkGatewayPolicyGroupMemberOutput { + return i.ToVirtualNetworkGatewayPolicyGroupMemberOutputWithContext(context.Background()) } -func (i VirtualNetworkGatewayIPConfigurationArgs) ToVirtualNetworkGatewayIPConfigurationOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayIPConfigurationOutput) +func (i VirtualNetworkGatewayPolicyGroupMemberArgs) ToVirtualNetworkGatewayPolicyGroupMemberOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayPolicyGroupMemberOutput) } -// VirtualNetworkGatewayIPConfigurationArrayInput is an input type that accepts VirtualNetworkGatewayIPConfigurationArray and VirtualNetworkGatewayIPConfigurationArrayOutput values. -// You can construct a concrete instance of `VirtualNetworkGatewayIPConfigurationArrayInput` via: +// VirtualNetworkGatewayPolicyGroupMemberArrayInput is an input type that accepts VirtualNetworkGatewayPolicyGroupMemberArray and VirtualNetworkGatewayPolicyGroupMemberArrayOutput values. +// You can construct a concrete instance of `VirtualNetworkGatewayPolicyGroupMemberArrayInput` via: // -// VirtualNetworkGatewayIPConfigurationArray{ VirtualNetworkGatewayIPConfigurationArgs{...} } -type VirtualNetworkGatewayIPConfigurationArrayInput interface { +// VirtualNetworkGatewayPolicyGroupMemberArray{ VirtualNetworkGatewayPolicyGroupMemberArgs{...} } +type VirtualNetworkGatewayPolicyGroupMemberArrayInput interface { pulumi.Input - ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput - ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput + ToVirtualNetworkGatewayPolicyGroupMemberArrayOutput() VirtualNetworkGatewayPolicyGroupMemberArrayOutput + ToVirtualNetworkGatewayPolicyGroupMemberArrayOutputWithContext(context.Context) VirtualNetworkGatewayPolicyGroupMemberArrayOutput } -type VirtualNetworkGatewayIPConfigurationArray []VirtualNetworkGatewayIPConfigurationInput +type VirtualNetworkGatewayPolicyGroupMemberArray []VirtualNetworkGatewayPolicyGroupMemberInput -func (VirtualNetworkGatewayIPConfigurationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfiguration)(nil)).Elem() +func (VirtualNetworkGatewayPolicyGroupMemberArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroupMember)(nil)).Elem() } -func (i VirtualNetworkGatewayIPConfigurationArray) ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput { - return i.ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(context.Background()) +func (i VirtualNetworkGatewayPolicyGroupMemberArray) ToVirtualNetworkGatewayPolicyGroupMemberArrayOutput() VirtualNetworkGatewayPolicyGroupMemberArrayOutput { + return i.ToVirtualNetworkGatewayPolicyGroupMemberArrayOutputWithContext(context.Background()) } -func (i VirtualNetworkGatewayIPConfigurationArray) ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayIPConfigurationArrayOutput) +func (i VirtualNetworkGatewayPolicyGroupMemberArray) ToVirtualNetworkGatewayPolicyGroupMemberArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualNetworkGatewayPolicyGroupMemberArrayOutput) } -// IP configuration for virtual network gateway. -type VirtualNetworkGatewayIPConfigurationOutput struct{ *pulumi.OutputState } +// Vpn Client Connection configuration PolicyGroup member +type VirtualNetworkGatewayPolicyGroupMemberOutput struct{ *pulumi.OutputState } -func (VirtualNetworkGatewayIPConfigurationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkGatewayIPConfiguration)(nil)).Elem() +func (VirtualNetworkGatewayPolicyGroupMemberOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroupMember)(nil)).Elem() } -func (o VirtualNetworkGatewayIPConfigurationOutput) ToVirtualNetworkGatewayIPConfigurationOutput() VirtualNetworkGatewayIPConfigurationOutput { +func (o VirtualNetworkGatewayPolicyGroupMemberOutput) ToVirtualNetworkGatewayPolicyGroupMemberOutput() VirtualNetworkGatewayPolicyGroupMemberOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationOutput) ToVirtualNetworkGatewayIPConfigurationOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationOutput { +func (o VirtualNetworkGatewayPolicyGroupMemberOutput) ToVirtualNetworkGatewayPolicyGroupMemberOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberOutput { return o } -// Resource ID. -func (o VirtualNetworkGatewayIPConfigurationOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) +// The Vpn Policy member attribute type. +func (o VirtualNetworkGatewayPolicyGroupMemberOutput) AttributeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMember) *string { return v.AttributeType }).(pulumi.StringPtrOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o VirtualNetworkGatewayIPConfigurationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +// The value of Attribute used for this VirtualNetworkGatewayPolicyGroupMember. +func (o VirtualNetworkGatewayPolicyGroupMemberOutput) AttributeValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMember) *string { return v.AttributeValue }).(pulumi.StringPtrOutput) } -// The private IP address allocation method. -func (o VirtualNetworkGatewayIPConfigurationOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) +// Name of the VirtualNetworkGatewayPolicyGroupMember. +func (o VirtualNetworkGatewayPolicyGroupMemberOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMember) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The reference to the public IP resource. -func (o VirtualNetworkGatewayIPConfigurationOutput) PublicIPAddress() SubResourcePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *SubResource { return v.PublicIPAddress }).(SubResourcePtrOutput) +type VirtualNetworkGatewayPolicyGroupMemberArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayPolicyGroupMemberArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroupMember)(nil)).Elem() } -// The reference to the subnet resource. -func (o VirtualNetworkGatewayIPConfigurationOutput) Subnet() SubResourcePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfiguration) *SubResource { return v.Subnet }).(SubResourcePtrOutput) +func (o VirtualNetworkGatewayPolicyGroupMemberArrayOutput) ToVirtualNetworkGatewayPolicyGroupMemberArrayOutput() VirtualNetworkGatewayPolicyGroupMemberArrayOutput { + return o } -type VirtualNetworkGatewayIPConfigurationArrayOutput struct{ *pulumi.OutputState } +func (o VirtualNetworkGatewayPolicyGroupMemberArrayOutput) ToVirtualNetworkGatewayPolicyGroupMemberArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberArrayOutput { + return o +} -func (VirtualNetworkGatewayIPConfigurationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfiguration)(nil)).Elem() +func (o VirtualNetworkGatewayPolicyGroupMemberArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayPolicyGroupMemberOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayPolicyGroupMember { + return vs[0].([]VirtualNetworkGatewayPolicyGroupMember)[vs[1].(int)] + }).(VirtualNetworkGatewayPolicyGroupMemberOutput) } -func (o VirtualNetworkGatewayIPConfigurationArrayOutput) ToVirtualNetworkGatewayIPConfigurationArrayOutput() VirtualNetworkGatewayIPConfigurationArrayOutput { +// Vpn Client Connection configuration PolicyGroup member +type VirtualNetworkGatewayPolicyGroupMemberResponse struct { + // The Vpn Policy member attribute type. + AttributeType *string `pulumi:"attributeType"` + // The value of Attribute used for this VirtualNetworkGatewayPolicyGroupMember. + AttributeValue *string `pulumi:"attributeValue"` + // Name of the VirtualNetworkGatewayPolicyGroupMember. + Name *string `pulumi:"name"` +} + +// Vpn Client Connection configuration PolicyGroup member +type VirtualNetworkGatewayPolicyGroupMemberResponseOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayPolicyGroupMemberResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroupMemberResponse)(nil)).Elem() +} + +func (o VirtualNetworkGatewayPolicyGroupMemberResponseOutput) ToVirtualNetworkGatewayPolicyGroupMemberResponseOutput() VirtualNetworkGatewayPolicyGroupMemberResponseOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationArrayOutput) ToVirtualNetworkGatewayIPConfigurationArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationArrayOutput { +func (o VirtualNetworkGatewayPolicyGroupMemberResponseOutput) ToVirtualNetworkGatewayPolicyGroupMemberResponseOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberResponseOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayIPConfigurationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayIPConfiguration { - return vs[0].([]VirtualNetworkGatewayIPConfiguration)[vs[1].(int)] - }).(VirtualNetworkGatewayIPConfigurationOutput) +// The Vpn Policy member attribute type. +func (o VirtualNetworkGatewayPolicyGroupMemberResponseOutput) AttributeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMemberResponse) *string { return v.AttributeType }).(pulumi.StringPtrOutput) } -// IP configuration for virtual network gateway. -type VirtualNetworkGatewayIPConfigurationResponse struct { +// The value of Attribute used for this VirtualNetworkGatewayPolicyGroupMember. +func (o VirtualNetworkGatewayPolicyGroupMemberResponseOutput) AttributeValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMemberResponse) *string { return v.AttributeValue }).(pulumi.StringPtrOutput) +} + +// Name of the VirtualNetworkGatewayPolicyGroupMember. +func (o VirtualNetworkGatewayPolicyGroupMemberResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupMemberResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput struct{ *pulumi.OutputState } + +func (VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroupMemberResponse)(nil)).Elem() +} + +func (o VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput) ToVirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput() VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput { + return o +} + +func (o VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput) ToVirtualNetworkGatewayPolicyGroupMemberResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput { + return o +} + +func (o VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayPolicyGroupMemberResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayPolicyGroupMemberResponse { + return vs[0].([]VirtualNetworkGatewayPolicyGroupMemberResponse)[vs[1].(int)] + }).(VirtualNetworkGatewayPolicyGroupMemberResponseOutput) +} + +// Parameters for VirtualNetworkGatewayPolicyGroup. +type VirtualNetworkGatewayPolicyGroupResponse struct { // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` // Resource ID. Id *string `pulumi:"id"` + // Shows if this is a Default VirtualNetworkGatewayPolicyGroup or not. + IsDefault bool `pulumi:"isDefault"` // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name *string `pulumi:"name"` - // Private IP Address for this gateway. - PrivateIPAddress string `pulumi:"privateIPAddress"` - // The private IP address allocation method. - PrivateIPAllocationMethod *string `pulumi:"privateIPAllocationMethod"` - // The provisioning state of the virtual network gateway IP configuration resource. + // Multiple PolicyMembers for VirtualNetworkGatewayPolicyGroup. + PolicyMembers []VirtualNetworkGatewayPolicyGroupMemberResponse `pulumi:"policyMembers"` + // Priority for VirtualNetworkGatewayPolicyGroup. + Priority int `pulumi:"priority"` + // The provisioning state of the VirtualNetworkGatewayPolicyGroup resource. ProvisioningState string `pulumi:"provisioningState"` - // The reference to the public IP resource. - PublicIPAddress *SubResourceResponse `pulumi:"publicIPAddress"` - // The reference to the subnet resource. - Subnet *SubResourceResponse `pulumi:"subnet"` + // List of references to vngClientConnectionConfigurations. + VngClientConnectionConfigurations []SubResourceResponse `pulumi:"vngClientConnectionConfigurations"` } -// IP configuration for virtual network gateway. -type VirtualNetworkGatewayIPConfigurationResponseOutput struct{ *pulumi.OutputState } +// Parameters for VirtualNetworkGatewayPolicyGroup. +type VirtualNetworkGatewayPolicyGroupResponseOutput struct{ *pulumi.OutputState } -func (VirtualNetworkGatewayIPConfigurationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*VirtualNetworkGatewayIPConfigurationResponse)(nil)).Elem() +func (VirtualNetworkGatewayPolicyGroupResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualNetworkGatewayPolicyGroupResponse)(nil)).Elem() } -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ToVirtualNetworkGatewayIPConfigurationResponseOutput() VirtualNetworkGatewayIPConfigurationResponseOutput { +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) ToVirtualNetworkGatewayPolicyGroupResponseOutput() VirtualNetworkGatewayPolicyGroupResponseOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ToVirtualNetworkGatewayIPConfigurationResponseOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationResponseOutput { +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) ToVirtualNetworkGatewayPolicyGroupResponseOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupResponseOutput { return o } // A unique read-only string that changes whenever the resource is updated. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) string { return v.Etag }).(pulumi.StringOutput) } // Resource ID. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The name of the resource that is unique within a resource group. This name can be used to access the resource. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// Shows if this is a Default VirtualNetworkGatewayPolicyGroup or not. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) IsDefault() pulumi.BoolOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) bool { return v.IsDefault }).(pulumi.BoolOutput) } -// Private IP Address for this gateway. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PrivateIPAddress() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.PrivateIPAddress }).(pulumi.StringOutput) +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The private IP address allocation method. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PrivateIPAllocationMethod() pulumi.StringPtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *string { return v.PrivateIPAllocationMethod }).(pulumi.StringPtrOutput) +// Multiple PolicyMembers for VirtualNetworkGatewayPolicyGroup. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) PolicyMembers() VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) []VirtualNetworkGatewayPolicyGroupMemberResponse { + return v.PolicyMembers + }).(VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput) } -// The provisioning state of the virtual network gateway IP configuration resource. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +// Priority for VirtualNetworkGatewayPolicyGroup. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) int { return v.Priority }).(pulumi.IntOutput) } -// The reference to the public IP resource. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) PublicIPAddress() SubResourceResponsePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *SubResourceResponse { return v.PublicIPAddress }).(SubResourceResponsePtrOutput) +// The provisioning state of the VirtualNetworkGatewayPolicyGroup resource. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The reference to the subnet resource. -func (o VirtualNetworkGatewayIPConfigurationResponseOutput) Subnet() SubResourceResponsePtrOutput { - return o.ApplyT(func(v VirtualNetworkGatewayIPConfigurationResponse) *SubResourceResponse { return v.Subnet }).(SubResourceResponsePtrOutput) +// List of references to vngClientConnectionConfigurations. +func (o VirtualNetworkGatewayPolicyGroupResponseOutput) VngClientConnectionConfigurations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayPolicyGroupResponse) []SubResourceResponse { + return v.VngClientConnectionConfigurations + }).(SubResourceResponseArrayOutput) } -type VirtualNetworkGatewayIPConfigurationResponseArrayOutput struct{ *pulumi.OutputState } +type VirtualNetworkGatewayPolicyGroupResponseArrayOutput struct{ *pulumi.OutputState } -func (VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]VirtualNetworkGatewayIPConfigurationResponse)(nil)).Elem() +func (VirtualNetworkGatewayPolicyGroupResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VirtualNetworkGatewayPolicyGroupResponse)(nil)).Elem() } -func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ToVirtualNetworkGatewayIPConfigurationResponseArrayOutput() VirtualNetworkGatewayIPConfigurationResponseArrayOutput { +func (o VirtualNetworkGatewayPolicyGroupResponseArrayOutput) ToVirtualNetworkGatewayPolicyGroupResponseArrayOutput() VirtualNetworkGatewayPolicyGroupResponseArrayOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) ToVirtualNetworkGatewayIPConfigurationResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayIPConfigurationResponseArrayOutput { +func (o VirtualNetworkGatewayPolicyGroupResponseArrayOutput) ToVirtualNetworkGatewayPolicyGroupResponseArrayOutputWithContext(ctx context.Context) VirtualNetworkGatewayPolicyGroupResponseArrayOutput { return o } -func (o VirtualNetworkGatewayIPConfigurationResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayIPConfigurationResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayIPConfigurationResponse { - return vs[0].([]VirtualNetworkGatewayIPConfigurationResponse)[vs[1].(int)] - }).(VirtualNetworkGatewayIPConfigurationResponseOutput) +func (o VirtualNetworkGatewayPolicyGroupResponseArrayOutput) Index(i pulumi.IntInput) VirtualNetworkGatewayPolicyGroupResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VirtualNetworkGatewayPolicyGroupResponse { + return vs[0].([]VirtualNetworkGatewayPolicyGroupResponse)[vs[1].(int)] + }).(VirtualNetworkGatewayPolicyGroupResponseOutput) } // A common class for general resource information. type VirtualNetworkGatewayResponse struct { // ActiveActive flag. ActiveActive *bool `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState *string `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic *bool `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic *bool `pulumi:"allowVirtualWanTraffic"` // Virtual network gateway's BGP speaker settings. BgpSettings *BgpSettingsResponse `pulumi:"bgpSettings"` // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. CustomRoutes *AddressSpaceResponse `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection *bool `pulumi:"disableIPSecReplayProtection"` // Whether BGP is enabled for this virtual network gateway or not. EnableBgp *bool `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` // Whether dns forwarding is enabled or not. EnableDnsForwarding *bool `pulumi:"enableDnsForwarding"` // Whether private IP needs to be enabled on this gateway for connections or not. @@ -8010,6 +17758,8 @@ type VirtualNetworkGatewayResponse struct { Location *string `pulumi:"location"` // Resource name. Name string `pulumi:"name"` + // NatRules for virtual network gateway. + NatRules []VirtualNetworkGatewayNatRuleResponse `pulumi:"natRules"` // The provisioning state of the virtual network gateway resource. ProvisioningState string `pulumi:"provisioningState"` // The resource GUID property of the virtual network gateway resource. @@ -8022,6 +17772,8 @@ type VirtualNetworkGatewayResponse struct { Type string `pulumi:"type"` // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. VNetExtendedLocationResourceId *string `pulumi:"vNetExtendedLocationResourceId"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups []VirtualNetworkGatewayPolicyGroupResponse `pulumi:"virtualNetworkGatewayPolicyGroups"` // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. VpnClientConfiguration *VpnClientConfigurationResponse `pulumi:"vpnClientConfiguration"` // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. @@ -8050,6 +17802,21 @@ func (o VirtualNetworkGatewayResponseOutput) ActiveActive() pulumi.BoolPtrOutput return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.ActiveActive }).(pulumi.BoolPtrOutput) } +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o VirtualNetworkGatewayResponseOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) *string { return v.AdminState }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o VirtualNetworkGatewayResponseOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.AllowRemoteVnetTraffic }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o VirtualNetworkGatewayResponseOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.AllowVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + // Virtual network gateway's BGP speaker settings. func (o VirtualNetworkGatewayResponseOutput) BgpSettings() BgpSettingsResponsePtrOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) *BgpSettingsResponse { return v.BgpSettings }).(BgpSettingsResponsePtrOutput) @@ -8060,11 +17827,21 @@ func (o VirtualNetworkGatewayResponseOutput) CustomRoutes() AddressSpaceResponse return o.ApplyT(func(v VirtualNetworkGatewayResponse) *AddressSpaceResponse { return v.CustomRoutes }).(AddressSpaceResponsePtrOutput) } +// disableIPSecReplayProtection flag. +func (o VirtualNetworkGatewayResponseOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.DisableIPSecReplayProtection }).(pulumi.BoolPtrOutput) +} + // Whether BGP is enabled for this virtual network gateway or not. func (o VirtualNetworkGatewayResponseOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.EnableBgp }).(pulumi.BoolPtrOutput) } +// EnableBgpRouteTranslationForNat flag. +func (o VirtualNetworkGatewayResponseOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + // Whether dns forwarding is enabled or not. func (o VirtualNetworkGatewayResponseOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) *bool { return v.EnableDnsForwarding }).(pulumi.BoolPtrOutput) @@ -8122,6 +17899,11 @@ func (o VirtualNetworkGatewayResponseOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) string { return v.Name }).(pulumi.StringOutput) } +// NatRules for virtual network gateway. +func (o VirtualNetworkGatewayResponseOutput) NatRules() VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) []VirtualNetworkGatewayNatRuleResponse { return v.NatRules }).(VirtualNetworkGatewayNatRuleResponseArrayOutput) +} + // The provisioning state of the virtual network gateway resource. func (o VirtualNetworkGatewayResponseOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) @@ -8152,6 +17934,13 @@ func (o VirtualNetworkGatewayResponseOutput) VNetExtendedLocationResourceId() pu return o.ApplyT(func(v VirtualNetworkGatewayResponse) *string { return v.VNetExtendedLocationResourceId }).(pulumi.StringPtrOutput) } +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o VirtualNetworkGatewayResponseOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v VirtualNetworkGatewayResponse) []VirtualNetworkGatewayPolicyGroupResponse { + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupResponseArrayOutput) +} + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. func (o VirtualNetworkGatewayResponseOutput) VpnClientConfiguration() VpnClientConfigurationResponsePtrOutput { return o.ApplyT(func(v VirtualNetworkGatewayResponse) *VpnClientConfigurationResponse { return v.VpnClientConfiguration }).(VpnClientConfigurationResponsePtrOutput) @@ -8201,6 +17990,36 @@ func (o VirtualNetworkGatewayResponsePtrOutput) ActiveActive() pulumi.BoolPtrOut }).(pulumi.BoolPtrOutput) } +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o VirtualNetworkGatewayResponsePtrOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *string { + if v == nil { + return nil + } + return v.AdminState + }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o VirtualNetworkGatewayResponsePtrOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { + if v == nil { + return nil + } + return v.AllowRemoteVnetTraffic + }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o VirtualNetworkGatewayResponsePtrOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { + if v == nil { + return nil + } + return v.AllowVirtualWanTraffic + }).(pulumi.BoolPtrOutput) +} + // Virtual network gateway's BGP speaker settings. func (o VirtualNetworkGatewayResponsePtrOutput) BgpSettings() BgpSettingsResponsePtrOutput { return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *BgpSettingsResponse { @@ -8221,6 +18040,16 @@ func (o VirtualNetworkGatewayResponsePtrOutput) CustomRoutes() AddressSpaceRespo }).(AddressSpaceResponsePtrOutput) } +// disableIPSecReplayProtection flag. +func (o VirtualNetworkGatewayResponsePtrOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { + if v == nil { + return nil + } + return v.DisableIPSecReplayProtection + }).(pulumi.BoolPtrOutput) +} + // Whether BGP is enabled for this virtual network gateway or not. func (o VirtualNetworkGatewayResponsePtrOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { @@ -8231,6 +18060,16 @@ func (o VirtualNetworkGatewayResponsePtrOutput) EnableBgp() pulumi.BoolPtrOutput }).(pulumi.BoolPtrOutput) } +// EnableBgpRouteTranslationForNat flag. +func (o VirtualNetworkGatewayResponsePtrOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { + if v == nil { + return nil + } + return v.EnableBgpRouteTranslationForNat + }).(pulumi.BoolPtrOutput) +} + // Whether dns forwarding is enabled or not. func (o VirtualNetworkGatewayResponsePtrOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *bool { @@ -8337,8 +18176,18 @@ func (o VirtualNetworkGatewayResponsePtrOutput) Name() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Name - }).(pulumi.StringPtrOutput) + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// NatRules for virtual network gateway. +func (o VirtualNetworkGatewayResponsePtrOutput) NatRules() VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) []VirtualNetworkGatewayNatRuleResponse { + if v == nil { + return nil + } + return v.NatRules + }).(VirtualNetworkGatewayNatRuleResponseArrayOutput) } // The provisioning state of the virtual network gateway resource. @@ -8401,6 +18250,16 @@ func (o VirtualNetworkGatewayResponsePtrOutput) VNetExtendedLocationResourceId() }).(pulumi.StringPtrOutput) } +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o VirtualNetworkGatewayResponsePtrOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayResponse) []VirtualNetworkGatewayPolicyGroupResponse { + if v == nil { + return nil + } + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupResponseArrayOutput) +} + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. func (o VirtualNetworkGatewayResponsePtrOutput) VpnClientConfiguration() VpnClientConfigurationResponsePtrOutput { return o.ApplyT(func(v *VirtualNetworkGatewayResponse) *VpnClientConfigurationResponse { @@ -8700,12 +18559,16 @@ type VirtualNetworkPeeringType struct { Name *string `pulumi:"name"` // The status of the virtual network peering. PeeringState *string `pulumi:"peeringState"` - // The reference to the remote virtual network address space. + // The peering sync status of the virtual network peering. + PeeringSyncLevel *string `pulumi:"peeringSyncLevel"` + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace *AddressSpace `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities *VirtualNetworkBgpCommunities `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork *SubResource `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace *AddressSpace `pulumi:"remoteVirtualNetworkAddressSpace"` // Resource type. Type *string `pulumi:"type"` // If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway. @@ -8739,12 +18602,16 @@ type VirtualNetworkPeeringTypeArgs struct { Name pulumi.StringPtrInput `pulumi:"name"` // The status of the virtual network peering. PeeringState pulumi.StringPtrInput `pulumi:"peeringState"` - // The reference to the remote virtual network address space. + // The peering sync status of the virtual network peering. + PeeringSyncLevel pulumi.StringPtrInput `pulumi:"peeringSyncLevel"` + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace AddressSpacePtrInput `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities VirtualNetworkBgpCommunitiesPtrInput `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork SubResourcePtrInput `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace AddressSpacePtrInput `pulumi:"remoteVirtualNetworkAddressSpace"` // Resource type. Type pulumi.StringPtrInput `pulumi:"type"` // If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway. @@ -8838,7 +18705,12 @@ func (o VirtualNetworkPeeringTypeOutput) PeeringState() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualNetworkPeeringType) *string { return v.PeeringState }).(pulumi.StringPtrOutput) } -// The reference to the remote virtual network address space. +// The peering sync status of the virtual network peering. +func (o VirtualNetworkPeeringTypeOutput) PeeringSyncLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkPeeringType) *string { return v.PeeringSyncLevel }).(pulumi.StringPtrOutput) +} + +// The reference to the address space peered with the remote virtual network. func (o VirtualNetworkPeeringTypeOutput) RemoteAddressSpace() AddressSpacePtrOutput { return o.ApplyT(func(v VirtualNetworkPeeringType) *AddressSpace { return v.RemoteAddressSpace }).(AddressSpacePtrOutput) } @@ -8853,6 +18725,11 @@ func (o VirtualNetworkPeeringTypeOutput) RemoteVirtualNetwork() SubResourcePtrOu return o.ApplyT(func(v VirtualNetworkPeeringType) *SubResource { return v.RemoteVirtualNetwork }).(SubResourcePtrOutput) } +// The reference to the current address space of the remote virtual network. +func (o VirtualNetworkPeeringTypeOutput) RemoteVirtualNetworkAddressSpace() AddressSpacePtrOutput { + return o.ApplyT(func(v VirtualNetworkPeeringType) *AddressSpace { return v.RemoteVirtualNetworkAddressSpace }).(AddressSpacePtrOutput) +} + // Resource type. func (o VirtualNetworkPeeringTypeOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v VirtualNetworkPeeringType) *string { return v.Type }).(pulumi.StringPtrOutput) @@ -8901,14 +18778,20 @@ type VirtualNetworkPeeringResponse struct { Name *string `pulumi:"name"` // The status of the virtual network peering. PeeringState *string `pulumi:"peeringState"` + // The peering sync status of the virtual network peering. + PeeringSyncLevel *string `pulumi:"peeringSyncLevel"` // The provisioning state of the virtual network peering resource. ProvisioningState string `pulumi:"provisioningState"` - // The reference to the remote virtual network address space. + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace *AddressSpaceResponse `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities *VirtualNetworkBgpCommunitiesResponse `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork *SubResourceResponse `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace *AddressSpaceResponse `pulumi:"remoteVirtualNetworkAddressSpace"` + // The reference to the remote virtual network's encryption + RemoteVirtualNetworkEncryption VirtualNetworkEncryptionResponse `pulumi:"remoteVirtualNetworkEncryption"` // The resourceGuid property of the Virtual Network peering resource. ResourceGuid string `pulumi:"resourceGuid"` // Resource type. @@ -8972,12 +18855,17 @@ func (o VirtualNetworkPeeringResponseOutput) PeeringState() pulumi.StringPtrOutp return o.ApplyT(func(v VirtualNetworkPeeringResponse) *string { return v.PeeringState }).(pulumi.StringPtrOutput) } +// The peering sync status of the virtual network peering. +func (o VirtualNetworkPeeringResponseOutput) PeeringSyncLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualNetworkPeeringResponse) *string { return v.PeeringSyncLevel }).(pulumi.StringPtrOutput) +} + // The provisioning state of the virtual network peering resource. func (o VirtualNetworkPeeringResponseOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v VirtualNetworkPeeringResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// The reference to the remote virtual network address space. +// The reference to the address space peered with the remote virtual network. func (o VirtualNetworkPeeringResponseOutput) RemoteAddressSpace() AddressSpaceResponsePtrOutput { return o.ApplyT(func(v VirtualNetworkPeeringResponse) *AddressSpaceResponse { return v.RemoteAddressSpace }).(AddressSpaceResponsePtrOutput) } @@ -8994,6 +18882,18 @@ func (o VirtualNetworkPeeringResponseOutput) RemoteVirtualNetwork() SubResourceR return o.ApplyT(func(v VirtualNetworkPeeringResponse) *SubResourceResponse { return v.RemoteVirtualNetwork }).(SubResourceResponsePtrOutput) } +// The reference to the current address space of the remote virtual network. +func (o VirtualNetworkPeeringResponseOutput) RemoteVirtualNetworkAddressSpace() AddressSpaceResponsePtrOutput { + return o.ApplyT(func(v VirtualNetworkPeeringResponse) *AddressSpaceResponse { return v.RemoteVirtualNetworkAddressSpace }).(AddressSpaceResponsePtrOutput) +} + +// The reference to the remote virtual network's encryption +func (o VirtualNetworkPeeringResponseOutput) RemoteVirtualNetworkEncryption() VirtualNetworkEncryptionResponseOutput { + return o.ApplyT(func(v VirtualNetworkPeeringResponse) VirtualNetworkEncryptionResponse { + return v.RemoteVirtualNetworkEncryption + }).(VirtualNetworkEncryptionResponseOutput) +} + // The resourceGuid property of the Virtual Network peering resource. func (o VirtualNetworkPeeringResponseOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v VirtualNetworkPeeringResponse) string { return v.ResourceGuid }).(pulumi.StringOutput) @@ -9621,10 +19521,212 @@ func (o VirtualNetworkTapResponseArrayOutput) Index(i pulumi.IntInput) VirtualNe }).(VirtualNetworkTapResponseOutput) } +// The VirtualHub Router autoscale configuration. +type VirtualRouterAutoScaleConfiguration struct { + // The minimum number of scale units for VirtualHub Router. + MinCapacity *int `pulumi:"minCapacity"` +} + +// VirtualRouterAutoScaleConfigurationInput is an input type that accepts VirtualRouterAutoScaleConfigurationArgs and VirtualRouterAutoScaleConfigurationOutput values. +// You can construct a concrete instance of `VirtualRouterAutoScaleConfigurationInput` via: +// +// VirtualRouterAutoScaleConfigurationArgs{...} +type VirtualRouterAutoScaleConfigurationInput interface { + pulumi.Input + + ToVirtualRouterAutoScaleConfigurationOutput() VirtualRouterAutoScaleConfigurationOutput + ToVirtualRouterAutoScaleConfigurationOutputWithContext(context.Context) VirtualRouterAutoScaleConfigurationOutput +} + +// The VirtualHub Router autoscale configuration. +type VirtualRouterAutoScaleConfigurationArgs struct { + // The minimum number of scale units for VirtualHub Router. + MinCapacity pulumi.IntPtrInput `pulumi:"minCapacity"` +} + +func (VirtualRouterAutoScaleConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualRouterAutoScaleConfiguration)(nil)).Elem() +} + +func (i VirtualRouterAutoScaleConfigurationArgs) ToVirtualRouterAutoScaleConfigurationOutput() VirtualRouterAutoScaleConfigurationOutput { + return i.ToVirtualRouterAutoScaleConfigurationOutputWithContext(context.Background()) +} + +func (i VirtualRouterAutoScaleConfigurationArgs) ToVirtualRouterAutoScaleConfigurationOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualRouterAutoScaleConfigurationOutput) +} + +func (i VirtualRouterAutoScaleConfigurationArgs) ToVirtualRouterAutoScaleConfigurationPtrOutput() VirtualRouterAutoScaleConfigurationPtrOutput { + return i.ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(context.Background()) +} + +func (i VirtualRouterAutoScaleConfigurationArgs) ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualRouterAutoScaleConfigurationOutput).ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(ctx) +} + +// VirtualRouterAutoScaleConfigurationPtrInput is an input type that accepts VirtualRouterAutoScaleConfigurationArgs, VirtualRouterAutoScaleConfigurationPtr and VirtualRouterAutoScaleConfigurationPtrOutput values. +// You can construct a concrete instance of `VirtualRouterAutoScaleConfigurationPtrInput` via: +// +// VirtualRouterAutoScaleConfigurationArgs{...} +// +// or: +// +// nil +type VirtualRouterAutoScaleConfigurationPtrInput interface { + pulumi.Input + + ToVirtualRouterAutoScaleConfigurationPtrOutput() VirtualRouterAutoScaleConfigurationPtrOutput + ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(context.Context) VirtualRouterAutoScaleConfigurationPtrOutput +} + +type virtualRouterAutoScaleConfigurationPtrType VirtualRouterAutoScaleConfigurationArgs + +func VirtualRouterAutoScaleConfigurationPtr(v *VirtualRouterAutoScaleConfigurationArgs) VirtualRouterAutoScaleConfigurationPtrInput { + return (*virtualRouterAutoScaleConfigurationPtrType)(v) +} + +func (*virtualRouterAutoScaleConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualRouterAutoScaleConfiguration)(nil)).Elem() +} + +func (i *virtualRouterAutoScaleConfigurationPtrType) ToVirtualRouterAutoScaleConfigurationPtrOutput() VirtualRouterAutoScaleConfigurationPtrOutput { + return i.ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *virtualRouterAutoScaleConfigurationPtrType) ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualRouterAutoScaleConfigurationPtrOutput) +} + +// The VirtualHub Router autoscale configuration. +type VirtualRouterAutoScaleConfigurationOutput struct{ *pulumi.OutputState } + +func (VirtualRouterAutoScaleConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualRouterAutoScaleConfiguration)(nil)).Elem() +} + +func (o VirtualRouterAutoScaleConfigurationOutput) ToVirtualRouterAutoScaleConfigurationOutput() VirtualRouterAutoScaleConfigurationOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationOutput) ToVirtualRouterAutoScaleConfigurationOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationOutput) ToVirtualRouterAutoScaleConfigurationPtrOutput() VirtualRouterAutoScaleConfigurationPtrOutput { + return o.ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(context.Background()) +} + +func (o VirtualRouterAutoScaleConfigurationOutput) ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v VirtualRouterAutoScaleConfiguration) *VirtualRouterAutoScaleConfiguration { + return &v + }).(VirtualRouterAutoScaleConfigurationPtrOutput) +} + +// The minimum number of scale units for VirtualHub Router. +func (o VirtualRouterAutoScaleConfigurationOutput) MinCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v VirtualRouterAutoScaleConfiguration) *int { return v.MinCapacity }).(pulumi.IntPtrOutput) +} + +type VirtualRouterAutoScaleConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (VirtualRouterAutoScaleConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualRouterAutoScaleConfiguration)(nil)).Elem() +} + +func (o VirtualRouterAutoScaleConfigurationPtrOutput) ToVirtualRouterAutoScaleConfigurationPtrOutput() VirtualRouterAutoScaleConfigurationPtrOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationPtrOutput) ToVirtualRouterAutoScaleConfigurationPtrOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationPtrOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationPtrOutput) Elem() VirtualRouterAutoScaleConfigurationOutput { + return o.ApplyT(func(v *VirtualRouterAutoScaleConfiguration) VirtualRouterAutoScaleConfiguration { + if v != nil { + return *v + } + var ret VirtualRouterAutoScaleConfiguration + return ret + }).(VirtualRouterAutoScaleConfigurationOutput) +} + +// The minimum number of scale units for VirtualHub Router. +func (o VirtualRouterAutoScaleConfigurationPtrOutput) MinCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualRouterAutoScaleConfiguration) *int { + if v == nil { + return nil + } + return v.MinCapacity + }).(pulumi.IntPtrOutput) +} + +// The VirtualHub Router autoscale configuration. +type VirtualRouterAutoScaleConfigurationResponse struct { + // The minimum number of scale units for VirtualHub Router. + MinCapacity *int `pulumi:"minCapacity"` +} + +// The VirtualHub Router autoscale configuration. +type VirtualRouterAutoScaleConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (VirtualRouterAutoScaleConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualRouterAutoScaleConfigurationResponse)(nil)).Elem() +} + +func (o VirtualRouterAutoScaleConfigurationResponseOutput) ToVirtualRouterAutoScaleConfigurationResponseOutput() VirtualRouterAutoScaleConfigurationResponseOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationResponseOutput) ToVirtualRouterAutoScaleConfigurationResponseOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationResponseOutput { + return o +} + +// The minimum number of scale units for VirtualHub Router. +func (o VirtualRouterAutoScaleConfigurationResponseOutput) MinCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v VirtualRouterAutoScaleConfigurationResponse) *int { return v.MinCapacity }).(pulumi.IntPtrOutput) +} + +type VirtualRouterAutoScaleConfigurationResponsePtrOutput struct{ *pulumi.OutputState } + +func (VirtualRouterAutoScaleConfigurationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualRouterAutoScaleConfigurationResponse)(nil)).Elem() +} + +func (o VirtualRouterAutoScaleConfigurationResponsePtrOutput) ToVirtualRouterAutoScaleConfigurationResponsePtrOutput() VirtualRouterAutoScaleConfigurationResponsePtrOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationResponsePtrOutput) ToVirtualRouterAutoScaleConfigurationResponsePtrOutputWithContext(ctx context.Context) VirtualRouterAutoScaleConfigurationResponsePtrOutput { + return o +} + +func (o VirtualRouterAutoScaleConfigurationResponsePtrOutput) Elem() VirtualRouterAutoScaleConfigurationResponseOutput { + return o.ApplyT(func(v *VirtualRouterAutoScaleConfigurationResponse) VirtualRouterAutoScaleConfigurationResponse { + if v != nil { + return *v + } + var ret VirtualRouterAutoScaleConfigurationResponse + return ret + }).(VirtualRouterAutoScaleConfigurationResponseOutput) +} + +// The minimum number of scale units for VirtualHub Router. +func (o VirtualRouterAutoScaleConfigurationResponsePtrOutput) MinCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualRouterAutoScaleConfigurationResponse) *int { + if v == nil { + return nil + } + return v.MinCapacity + }).(pulumi.IntPtrOutput) +} + // List of routes that control routing from VirtualHub into a virtual network connection. type VnetRoute struct { // List of all Static Routes. StaticRoutes []StaticRoute `pulumi:"staticRoutes"` + // Configuration for static routes on this HubVnetConnection. + StaticRoutesConfig *StaticRoutesConfig `pulumi:"staticRoutesConfig"` } // VnetRouteInput is an input type that accepts VnetRouteArgs and VnetRouteOutput values. @@ -9642,6 +19744,8 @@ type VnetRouteInput interface { type VnetRouteArgs struct { // List of all Static Routes. StaticRoutes StaticRouteArrayInput `pulumi:"staticRoutes"` + // Configuration for static routes on this HubVnetConnection. + StaticRoutesConfig StaticRoutesConfigPtrInput `pulumi:"staticRoutesConfig"` } func (VnetRouteArgs) ElementType() reflect.Type { @@ -9727,6 +19831,11 @@ func (o VnetRouteOutput) StaticRoutes() StaticRouteArrayOutput { return o.ApplyT(func(v VnetRoute) []StaticRoute { return v.StaticRoutes }).(StaticRouteArrayOutput) } +// Configuration for static routes on this HubVnetConnection. +func (o VnetRouteOutput) StaticRoutesConfig() StaticRoutesConfigPtrOutput { + return o.ApplyT(func(v VnetRoute) *StaticRoutesConfig { return v.StaticRoutesConfig }).(StaticRoutesConfigPtrOutput) +} + type VnetRoutePtrOutput struct{ *pulumi.OutputState } func (VnetRoutePtrOutput) ElementType() reflect.Type { @@ -9761,10 +19870,24 @@ func (o VnetRoutePtrOutput) StaticRoutes() StaticRouteArrayOutput { }).(StaticRouteArrayOutput) } +// Configuration for static routes on this HubVnetConnection. +func (o VnetRoutePtrOutput) StaticRoutesConfig() StaticRoutesConfigPtrOutput { + return o.ApplyT(func(v *VnetRoute) *StaticRoutesConfig { + if v == nil { + return nil + } + return v.StaticRoutesConfig + }).(StaticRoutesConfigPtrOutput) +} + // List of routes that control routing from VirtualHub into a virtual network connection. type VnetRouteResponse struct { + // The list of references to HubBgpConnection objects. + BgpConnections []SubResourceResponse `pulumi:"bgpConnections"` // List of all Static Routes. StaticRoutes []StaticRouteResponse `pulumi:"staticRoutes"` + // Configuration for static routes on this HubVnetConnection. + StaticRoutesConfig *StaticRoutesConfigResponse `pulumi:"staticRoutesConfig"` } // List of routes that control routing from VirtualHub into a virtual network connection. @@ -9782,11 +19905,21 @@ func (o VnetRouteResponseOutput) ToVnetRouteResponseOutputWithContext(ctx contex return o } +// The list of references to HubBgpConnection objects. +func (o VnetRouteResponseOutput) BgpConnections() SubResourceResponseArrayOutput { + return o.ApplyT(func(v VnetRouteResponse) []SubResourceResponse { return v.BgpConnections }).(SubResourceResponseArrayOutput) +} + // List of all Static Routes. func (o VnetRouteResponseOutput) StaticRoutes() StaticRouteResponseArrayOutput { return o.ApplyT(func(v VnetRouteResponse) []StaticRouteResponse { return v.StaticRoutes }).(StaticRouteResponseArrayOutput) } +// Configuration for static routes on this HubVnetConnection. +func (o VnetRouteResponseOutput) StaticRoutesConfig() StaticRoutesConfigResponsePtrOutput { + return o.ApplyT(func(v VnetRouteResponse) *StaticRoutesConfigResponse { return v.StaticRoutesConfig }).(StaticRoutesConfigResponsePtrOutput) +} + type VnetRouteResponsePtrOutput struct{ *pulumi.OutputState } func (VnetRouteResponsePtrOutput) ElementType() reflect.Type { @@ -9811,6 +19944,16 @@ func (o VnetRouteResponsePtrOutput) Elem() VnetRouteResponseOutput { }).(VnetRouteResponseOutput) } +// The list of references to HubBgpConnection objects. +func (o VnetRouteResponsePtrOutput) BgpConnections() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *VnetRouteResponse) []SubResourceResponse { + if v == nil { + return nil + } + return v.BgpConnections + }).(SubResourceResponseArrayOutput) +} + // List of all Static Routes. func (o VnetRouteResponsePtrOutput) StaticRoutes() StaticRouteResponseArrayOutput { return o.ApplyT(func(v *VnetRouteResponse) []StaticRouteResponse { @@ -9821,6 +19964,226 @@ func (o VnetRouteResponsePtrOutput) StaticRoutes() StaticRouteResponseArrayOutpu }).(StaticRouteResponseArrayOutput) } +// Configuration for static routes on this HubVnetConnection. +func (o VnetRouteResponsePtrOutput) StaticRoutesConfig() StaticRoutesConfigResponsePtrOutput { + return o.ApplyT(func(v *VnetRouteResponse) *StaticRoutesConfigResponse { + if v == nil { + return nil + } + return v.StaticRoutesConfig + }).(StaticRoutesConfigResponsePtrOutput) +} + +// A vpn client connection configuration for client connection configuration. +type VngClientConnectionConfiguration struct { + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // List of references to virtualNetworkGatewayPolicyGroups + VirtualNetworkGatewayPolicyGroups []SubResource `pulumi:"virtualNetworkGatewayPolicyGroups"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool AddressSpace `pulumi:"vpnClientAddressPool"` +} + +// VngClientConnectionConfigurationInput is an input type that accepts VngClientConnectionConfigurationArgs and VngClientConnectionConfigurationOutput values. +// You can construct a concrete instance of `VngClientConnectionConfigurationInput` via: +// +// VngClientConnectionConfigurationArgs{...} +type VngClientConnectionConfigurationInput interface { + pulumi.Input + + ToVngClientConnectionConfigurationOutput() VngClientConnectionConfigurationOutput + ToVngClientConnectionConfigurationOutputWithContext(context.Context) VngClientConnectionConfigurationOutput +} + +// A vpn client connection configuration for client connection configuration. +type VngClientConnectionConfigurationArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // List of references to virtualNetworkGatewayPolicyGroups + VirtualNetworkGatewayPolicyGroups SubResourceArrayInput `pulumi:"virtualNetworkGatewayPolicyGroups"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool AddressSpaceInput `pulumi:"vpnClientAddressPool"` +} + +func (VngClientConnectionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VngClientConnectionConfiguration)(nil)).Elem() +} + +func (i VngClientConnectionConfigurationArgs) ToVngClientConnectionConfigurationOutput() VngClientConnectionConfigurationOutput { + return i.ToVngClientConnectionConfigurationOutputWithContext(context.Background()) +} + +func (i VngClientConnectionConfigurationArgs) ToVngClientConnectionConfigurationOutputWithContext(ctx context.Context) VngClientConnectionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(VngClientConnectionConfigurationOutput) +} + +// VngClientConnectionConfigurationArrayInput is an input type that accepts VngClientConnectionConfigurationArray and VngClientConnectionConfigurationArrayOutput values. +// You can construct a concrete instance of `VngClientConnectionConfigurationArrayInput` via: +// +// VngClientConnectionConfigurationArray{ VngClientConnectionConfigurationArgs{...} } +type VngClientConnectionConfigurationArrayInput interface { + pulumi.Input + + ToVngClientConnectionConfigurationArrayOutput() VngClientConnectionConfigurationArrayOutput + ToVngClientConnectionConfigurationArrayOutputWithContext(context.Context) VngClientConnectionConfigurationArrayOutput +} + +type VngClientConnectionConfigurationArray []VngClientConnectionConfigurationInput + +func (VngClientConnectionConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VngClientConnectionConfiguration)(nil)).Elem() +} + +func (i VngClientConnectionConfigurationArray) ToVngClientConnectionConfigurationArrayOutput() VngClientConnectionConfigurationArrayOutput { + return i.ToVngClientConnectionConfigurationArrayOutputWithContext(context.Background()) +} + +func (i VngClientConnectionConfigurationArray) ToVngClientConnectionConfigurationArrayOutputWithContext(ctx context.Context) VngClientConnectionConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VngClientConnectionConfigurationArrayOutput) +} + +// A vpn client connection configuration for client connection configuration. +type VngClientConnectionConfigurationOutput struct{ *pulumi.OutputState } + +func (VngClientConnectionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VngClientConnectionConfiguration)(nil)).Elem() +} + +func (o VngClientConnectionConfigurationOutput) ToVngClientConnectionConfigurationOutput() VngClientConnectionConfigurationOutput { + return o +} + +func (o VngClientConnectionConfigurationOutput) ToVngClientConnectionConfigurationOutputWithContext(ctx context.Context) VngClientConnectionConfigurationOutput { + return o +} + +// Resource ID. +func (o VngClientConnectionConfigurationOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VngClientConnectionConfiguration) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VngClientConnectionConfigurationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VngClientConnectionConfiguration) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// List of references to virtualNetworkGatewayPolicyGroups +func (o VngClientConnectionConfigurationOutput) VirtualNetworkGatewayPolicyGroups() SubResourceArrayOutput { + return o.ApplyT(func(v VngClientConnectionConfiguration) []SubResource { return v.VirtualNetworkGatewayPolicyGroups }).(SubResourceArrayOutput) +} + +// The reference to the address space resource which represents Address space for P2S VpnClient. +func (o VngClientConnectionConfigurationOutput) VpnClientAddressPool() AddressSpaceOutput { + return o.ApplyT(func(v VngClientConnectionConfiguration) AddressSpace { return v.VpnClientAddressPool }).(AddressSpaceOutput) +} + +type VngClientConnectionConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (VngClientConnectionConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VngClientConnectionConfiguration)(nil)).Elem() +} + +func (o VngClientConnectionConfigurationArrayOutput) ToVngClientConnectionConfigurationArrayOutput() VngClientConnectionConfigurationArrayOutput { + return o +} + +func (o VngClientConnectionConfigurationArrayOutput) ToVngClientConnectionConfigurationArrayOutputWithContext(ctx context.Context) VngClientConnectionConfigurationArrayOutput { + return o +} + +func (o VngClientConnectionConfigurationArrayOutput) Index(i pulumi.IntInput) VngClientConnectionConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VngClientConnectionConfiguration { + return vs[0].([]VngClientConnectionConfiguration)[vs[1].(int)] + }).(VngClientConnectionConfigurationOutput) +} + +// A vpn client connection configuration for client connection configuration. +type VngClientConnectionConfigurationResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // The provisioning state of the VngClientConnectionConfiguration resource. + ProvisioningState string `pulumi:"provisioningState"` + // List of references to virtualNetworkGatewayPolicyGroups + VirtualNetworkGatewayPolicyGroups []SubResourceResponse `pulumi:"virtualNetworkGatewayPolicyGroups"` + // The reference to the address space resource which represents Address space for P2S VpnClient. + VpnClientAddressPool AddressSpaceResponse `pulumi:"vpnClientAddressPool"` +} + +// A vpn client connection configuration for client connection configuration. +type VngClientConnectionConfigurationResponseOutput struct{ *pulumi.OutputState } + +func (VngClientConnectionConfigurationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VngClientConnectionConfigurationResponse)(nil)).Elem() +} + +func (o VngClientConnectionConfigurationResponseOutput) ToVngClientConnectionConfigurationResponseOutput() VngClientConnectionConfigurationResponseOutput { + return o +} + +func (o VngClientConnectionConfigurationResponseOutput) ToVngClientConnectionConfigurationResponseOutputWithContext(ctx context.Context) VngClientConnectionConfigurationResponseOutput { + return o +} + +// A unique read-only string that changes whenever the resource is updated. +func (o VngClientConnectionConfigurationResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o VngClientConnectionConfigurationResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VngClientConnectionConfigurationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The provisioning state of the VngClientConnectionConfiguration resource. +func (o VngClientConnectionConfigurationResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// List of references to virtualNetworkGatewayPolicyGroups +func (o VngClientConnectionConfigurationResponseOutput) VirtualNetworkGatewayPolicyGroups() SubResourceResponseArrayOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) []SubResourceResponse { + return v.VirtualNetworkGatewayPolicyGroups + }).(SubResourceResponseArrayOutput) +} + +// The reference to the address space resource which represents Address space for P2S VpnClient. +func (o VngClientConnectionConfigurationResponseOutput) VpnClientAddressPool() AddressSpaceResponseOutput { + return o.ApplyT(func(v VngClientConnectionConfigurationResponse) AddressSpaceResponse { return v.VpnClientAddressPool }).(AddressSpaceResponseOutput) +} + +type VngClientConnectionConfigurationResponseArrayOutput struct{ *pulumi.OutputState } + +func (VngClientConnectionConfigurationResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VngClientConnectionConfigurationResponse)(nil)).Elem() +} + +func (o VngClientConnectionConfigurationResponseArrayOutput) ToVngClientConnectionConfigurationResponseArrayOutput() VngClientConnectionConfigurationResponseArrayOutput { + return o +} + +func (o VngClientConnectionConfigurationResponseArrayOutput) ToVngClientConnectionConfigurationResponseArrayOutputWithContext(ctx context.Context) VngClientConnectionConfigurationResponseArrayOutput { + return o +} + +func (o VngClientConnectionConfigurationResponseArrayOutput) Index(i pulumi.IntInput) VngClientConnectionConfigurationResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VngClientConnectionConfigurationResponse { + return vs[0].([]VngClientConnectionConfigurationResponse)[vs[1].(int)] + }).(VngClientConnectionConfigurationResponseOutput) +} + // VpnClientConfiguration for P2S client. type VpnClientConfiguration struct { // The AADAudience property of the VirtualNetworkGateway resource for vpn client connection used for AAD authentication. @@ -9835,6 +20198,8 @@ type VpnClientConfiguration struct { RadiusServerSecret *string `pulumi:"radiusServerSecret"` // The radiusServers property for multiple radius server configuration. RadiusServers []RadiusServer `pulumi:"radiusServers"` + // per ip address pool connection policy for virtual network gateway P2S client. + VngClientConnectionConfigurations []VngClientConnectionConfiguration `pulumi:"vngClientConnectionConfigurations"` // VPN authentication types for the virtual network gateway.. VpnAuthenticationTypes []string `pulumi:"vpnAuthenticationTypes"` // The reference to the address space resource which represents Address space for P2S VpnClient. @@ -9874,6 +20239,8 @@ type VpnClientConfigurationArgs struct { RadiusServerSecret pulumi.StringPtrInput `pulumi:"radiusServerSecret"` // The radiusServers property for multiple radius server configuration. RadiusServers RadiusServerArrayInput `pulumi:"radiusServers"` + // per ip address pool connection policy for virtual network gateway P2S client. + VngClientConnectionConfigurations VngClientConnectionConfigurationArrayInput `pulumi:"vngClientConnectionConfigurations"` // VPN authentication types for the virtual network gateway.. VpnAuthenticationTypes pulumi.StringArrayInput `pulumi:"vpnAuthenticationTypes"` // The reference to the address space resource which represents Address space for P2S VpnClient. @@ -9996,6 +20363,13 @@ func (o VpnClientConfigurationOutput) RadiusServers() RadiusServerArrayOutput { return o.ApplyT(func(v VpnClientConfiguration) []RadiusServer { return v.RadiusServers }).(RadiusServerArrayOutput) } +// per ip address pool connection policy for virtual network gateway P2S client. +func (o VpnClientConfigurationOutput) VngClientConnectionConfigurations() VngClientConnectionConfigurationArrayOutput { + return o.ApplyT(func(v VpnClientConfiguration) []VngClientConnectionConfiguration { + return v.VngClientConnectionConfigurations + }).(VngClientConnectionConfigurationArrayOutput) +} + // VPN authentication types for the virtual network gateway.. func (o VpnClientConfigurationOutput) VpnAuthenticationTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v VpnClientConfiguration) []string { return v.VpnAuthenticationTypes }).(pulumi.StringArrayOutput) @@ -10110,6 +20484,16 @@ func (o VpnClientConfigurationPtrOutput) RadiusServers() RadiusServerArrayOutput }).(RadiusServerArrayOutput) } +// per ip address pool connection policy for virtual network gateway P2S client. +func (o VpnClientConfigurationPtrOutput) VngClientConnectionConfigurations() VngClientConnectionConfigurationArrayOutput { + return o.ApplyT(func(v *VpnClientConfiguration) []VngClientConnectionConfiguration { + if v == nil { + return nil + } + return v.VngClientConnectionConfigurations + }).(VngClientConnectionConfigurationArrayOutput) +} + // VPN authentication types for the virtual network gateway.. func (o VpnClientConfigurationPtrOutput) VpnAuthenticationTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *VpnClientConfiguration) []string { @@ -10184,6 +20568,8 @@ type VpnClientConfigurationResponse struct { RadiusServerSecret *string `pulumi:"radiusServerSecret"` // The radiusServers property for multiple radius server configuration. RadiusServers []RadiusServerResponse `pulumi:"radiusServers"` + // per ip address pool connection policy for virtual network gateway P2S client. + VngClientConnectionConfigurations []VngClientConnectionConfigurationResponse `pulumi:"vngClientConnectionConfigurations"` // VPN authentication types for the virtual network gateway.. VpnAuthenticationTypes []string `pulumi:"vpnAuthenticationTypes"` // The reference to the address space resource which represents Address space for P2S VpnClient. @@ -10243,6 +20629,13 @@ func (o VpnClientConfigurationResponseOutput) RadiusServers() RadiusServerRespon return o.ApplyT(func(v VpnClientConfigurationResponse) []RadiusServerResponse { return v.RadiusServers }).(RadiusServerResponseArrayOutput) } +// per ip address pool connection policy for virtual network gateway P2S client. +func (o VpnClientConfigurationResponseOutput) VngClientConnectionConfigurations() VngClientConnectionConfigurationResponseArrayOutput { + return o.ApplyT(func(v VpnClientConfigurationResponse) []VngClientConnectionConfigurationResponse { + return v.VngClientConnectionConfigurations + }).(VngClientConnectionConfigurationResponseArrayOutput) +} + // VPN authentication types for the virtual network gateway.. func (o VpnClientConfigurationResponseOutput) VpnAuthenticationTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v VpnClientConfigurationResponse) []string { return v.VpnAuthenticationTypes }).(pulumi.StringArrayOutput) @@ -10361,6 +20754,16 @@ func (o VpnClientConfigurationResponsePtrOutput) RadiusServers() RadiusServerRes }).(RadiusServerResponseArrayOutput) } +// per ip address pool connection policy for virtual network gateway P2S client. +func (o VpnClientConfigurationResponsePtrOutput) VngClientConnectionConfigurations() VngClientConnectionConfigurationResponseArrayOutput { + return o.ApplyT(func(v *VpnClientConfigurationResponse) []VngClientConnectionConfigurationResponse { + if v == nil { + return nil + } + return v.VngClientConnectionConfigurations + }).(VngClientConnectionConfigurationResponseArrayOutput) +} + // VPN authentication types for the virtual network gateway.. func (o VpnClientConfigurationResponsePtrOutput) VpnAuthenticationTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v *VpnClientConfigurationResponse) []string { @@ -12218,6 +22621,8 @@ func (o VpnLinkProviderPropertiesResponsePtrOutput) LinkSpeedInMbps() pulumi.Int type VpnNatRuleMapping struct { // Address space for Vpn NatRule mapping. AddressSpace *string `pulumi:"addressSpace"` + // Port range for Vpn NatRule mapping. + PortRange *string `pulumi:"portRange"` } // VpnNatRuleMappingInput is an input type that accepts VpnNatRuleMappingArgs and VpnNatRuleMappingOutput values. @@ -12235,6 +22640,8 @@ type VpnNatRuleMappingInput interface { type VpnNatRuleMappingArgs struct { // Address space for Vpn NatRule mapping. AddressSpace pulumi.StringPtrInput `pulumi:"addressSpace"` + // Port range for Vpn NatRule mapping. + PortRange pulumi.StringPtrInput `pulumi:"portRange"` } func (VpnNatRuleMappingArgs) ElementType() reflect.Type { @@ -12294,6 +22701,11 @@ func (o VpnNatRuleMappingOutput) AddressSpace() pulumi.StringPtrOutput { return o.ApplyT(func(v VpnNatRuleMapping) *string { return v.AddressSpace }).(pulumi.StringPtrOutput) } +// Port range for Vpn NatRule mapping. +func (o VpnNatRuleMappingOutput) PortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnNatRuleMapping) *string { return v.PortRange }).(pulumi.StringPtrOutput) +} + type VpnNatRuleMappingArrayOutput struct{ *pulumi.OutputState } func (VpnNatRuleMappingArrayOutput) ElementType() reflect.Type { @@ -12318,6 +22730,8 @@ func (o VpnNatRuleMappingArrayOutput) Index(i pulumi.IntInput) VpnNatRuleMapping type VpnNatRuleMappingResponse struct { // Address space for Vpn NatRule mapping. AddressSpace *string `pulumi:"addressSpace"` + // Port range for Vpn NatRule mapping. + PortRange *string `pulumi:"portRange"` } // Vpn NatRule mapping. @@ -12340,6 +22754,11 @@ func (o VpnNatRuleMappingResponseOutput) AddressSpace() pulumi.StringPtrOutput { return o.ApplyT(func(v VpnNatRuleMappingResponse) *string { return v.AddressSpace }).(pulumi.StringPtrOutput) } +// Port range for Vpn NatRule mapping. +func (o VpnNatRuleMappingResponseOutput) PortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnNatRuleMappingResponse) *string { return v.PortRange }).(pulumi.StringPtrOutput) +} + type VpnNatRuleMappingResponseArrayOutput struct{ *pulumi.OutputState } func (VpnNatRuleMappingResponseArrayOutput) ElementType() reflect.Type { @@ -13008,6 +23427,144 @@ func (o VpnServerConfigVpnClientRootCertificateResponseArrayOutput) Index(i pulu }).(VpnServerConfigVpnClientRootCertificateResponseOutput) } +// VpnServerConfigurationPolicyGroup Resource. +type VpnServerConfigurationPolicyGroup struct { + // Resource ID. + Id *string `pulumi:"id"` + // Shows if this is a Default VpnServerConfigurationPolicyGroup or not. + IsDefault *bool `pulumi:"isDefault"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // Multiple PolicyMembers for VpnServerConfigurationPolicyGroup. + PolicyMembers []VpnServerConfigurationPolicyGroupMember `pulumi:"policyMembers"` + // Priority for VpnServerConfigurationPolicyGroup. + Priority *int `pulumi:"priority"` +} + +// VpnServerConfigurationPolicyGroupInput is an input type that accepts VpnServerConfigurationPolicyGroupArgs and VpnServerConfigurationPolicyGroupOutput values. +// You can construct a concrete instance of `VpnServerConfigurationPolicyGroupInput` via: +// +// VpnServerConfigurationPolicyGroupArgs{...} +type VpnServerConfigurationPolicyGroupInput interface { + pulumi.Input + + ToVpnServerConfigurationPolicyGroupOutput() VpnServerConfigurationPolicyGroupOutput + ToVpnServerConfigurationPolicyGroupOutputWithContext(context.Context) VpnServerConfigurationPolicyGroupOutput +} + +// VpnServerConfigurationPolicyGroup Resource. +type VpnServerConfigurationPolicyGroupArgs struct { + // Resource ID. + Id pulumi.StringPtrInput `pulumi:"id"` + // Shows if this is a Default VpnServerConfigurationPolicyGroup or not. + IsDefault pulumi.BoolPtrInput `pulumi:"isDefault"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringPtrInput `pulumi:"name"` + // Multiple PolicyMembers for VpnServerConfigurationPolicyGroup. + PolicyMembers VpnServerConfigurationPolicyGroupMemberArrayInput `pulumi:"policyMembers"` + // Priority for VpnServerConfigurationPolicyGroup. + Priority pulumi.IntPtrInput `pulumi:"priority"` +} + +func (VpnServerConfigurationPolicyGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VpnServerConfigurationPolicyGroup)(nil)).Elem() +} + +func (i VpnServerConfigurationPolicyGroupArgs) ToVpnServerConfigurationPolicyGroupOutput() VpnServerConfigurationPolicyGroupOutput { + return i.ToVpnServerConfigurationPolicyGroupOutputWithContext(context.Background()) +} + +func (i VpnServerConfigurationPolicyGroupArgs) ToVpnServerConfigurationPolicyGroupOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpnServerConfigurationPolicyGroupOutput) +} + +// VpnServerConfigurationPolicyGroupArrayInput is an input type that accepts VpnServerConfigurationPolicyGroupArray and VpnServerConfigurationPolicyGroupArrayOutput values. +// You can construct a concrete instance of `VpnServerConfigurationPolicyGroupArrayInput` via: +// +// VpnServerConfigurationPolicyGroupArray{ VpnServerConfigurationPolicyGroupArgs{...} } +type VpnServerConfigurationPolicyGroupArrayInput interface { + pulumi.Input + + ToVpnServerConfigurationPolicyGroupArrayOutput() VpnServerConfigurationPolicyGroupArrayOutput + ToVpnServerConfigurationPolicyGroupArrayOutputWithContext(context.Context) VpnServerConfigurationPolicyGroupArrayOutput +} + +type VpnServerConfigurationPolicyGroupArray []VpnServerConfigurationPolicyGroupInput + +func (VpnServerConfigurationPolicyGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VpnServerConfigurationPolicyGroup)(nil)).Elem() +} + +func (i VpnServerConfigurationPolicyGroupArray) ToVpnServerConfigurationPolicyGroupArrayOutput() VpnServerConfigurationPolicyGroupArrayOutput { + return i.ToVpnServerConfigurationPolicyGroupArrayOutputWithContext(context.Background()) +} + +func (i VpnServerConfigurationPolicyGroupArray) ToVpnServerConfigurationPolicyGroupArrayOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VpnServerConfigurationPolicyGroupArrayOutput) +} + +// VpnServerConfigurationPolicyGroup Resource. +type VpnServerConfigurationPolicyGroupOutput struct{ *pulumi.OutputState } + +func (VpnServerConfigurationPolicyGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VpnServerConfigurationPolicyGroup)(nil)).Elem() +} + +func (o VpnServerConfigurationPolicyGroupOutput) ToVpnServerConfigurationPolicyGroupOutput() VpnServerConfigurationPolicyGroupOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupOutput) ToVpnServerConfigurationPolicyGroupOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupOutput { + return o +} + +// Resource ID. +func (o VpnServerConfigurationPolicyGroupOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroup) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Shows if this is a Default VpnServerConfigurationPolicyGroup or not. +func (o VpnServerConfigurationPolicyGroupOutput) IsDefault() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroup) *bool { return v.IsDefault }).(pulumi.BoolPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VpnServerConfigurationPolicyGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Multiple PolicyMembers for VpnServerConfigurationPolicyGroup. +func (o VpnServerConfigurationPolicyGroupOutput) PolicyMembers() VpnServerConfigurationPolicyGroupMemberArrayOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroup) []VpnServerConfigurationPolicyGroupMember { + return v.PolicyMembers + }).(VpnServerConfigurationPolicyGroupMemberArrayOutput) +} + +// Priority for VpnServerConfigurationPolicyGroup. +func (o VpnServerConfigurationPolicyGroupOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroup) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +type VpnServerConfigurationPolicyGroupArrayOutput struct{ *pulumi.OutputState } + +func (VpnServerConfigurationPolicyGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VpnServerConfigurationPolicyGroup)(nil)).Elem() +} + +func (o VpnServerConfigurationPolicyGroupArrayOutput) ToVpnServerConfigurationPolicyGroupArrayOutput() VpnServerConfigurationPolicyGroupArrayOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupArrayOutput) ToVpnServerConfigurationPolicyGroupArrayOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupArrayOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupArrayOutput) Index(i pulumi.IntInput) VpnServerConfigurationPolicyGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VpnServerConfigurationPolicyGroup { + return vs[0].([]VpnServerConfigurationPolicyGroup)[vs[1].(int)] + }).(VpnServerConfigurationPolicyGroupOutput) +} + // VpnServerConfiguration PolicyGroup member type VpnServerConfigurationPolicyGroupMember struct { // The Vpn Policy member attribute type. @@ -13186,6 +23743,112 @@ func (o VpnServerConfigurationPolicyGroupMemberResponseArrayOutput) Index(i pulu }).(VpnServerConfigurationPolicyGroupMemberResponseOutput) } +// VpnServerConfigurationPolicyGroup Resource. +type VpnServerConfigurationPolicyGroupResponse struct { + // A unique read-only string that changes whenever the resource is updated. + Etag string `pulumi:"etag"` + // Resource ID. + Id *string `pulumi:"id"` + // Shows if this is a Default VpnServerConfigurationPolicyGroup or not. + IsDefault *bool `pulumi:"isDefault"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `pulumi:"name"` + // List of references to P2SConnectionConfigurations. + P2SConnectionConfigurations []SubResourceResponse `pulumi:"p2SConnectionConfigurations"` + // Multiple PolicyMembers for VpnServerConfigurationPolicyGroup. + PolicyMembers []VpnServerConfigurationPolicyGroupMemberResponse `pulumi:"policyMembers"` + // Priority for VpnServerConfigurationPolicyGroup. + Priority *int `pulumi:"priority"` + // The provisioning state of the VpnServerConfigurationPolicyGroup resource. + ProvisioningState string `pulumi:"provisioningState"` + // Resource type. + Type string `pulumi:"type"` +} + +// VpnServerConfigurationPolicyGroup Resource. +type VpnServerConfigurationPolicyGroupResponseOutput struct{ *pulumi.OutputState } + +func (VpnServerConfigurationPolicyGroupResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VpnServerConfigurationPolicyGroupResponse)(nil)).Elem() +} + +func (o VpnServerConfigurationPolicyGroupResponseOutput) ToVpnServerConfigurationPolicyGroupResponseOutput() VpnServerConfigurationPolicyGroupResponseOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupResponseOutput) ToVpnServerConfigurationPolicyGroupResponseOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupResponseOutput { + return o +} + +// A unique read-only string that changes whenever the resource is updated. +func (o VpnServerConfigurationPolicyGroupResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// Resource ID. +func (o VpnServerConfigurationPolicyGroupResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Shows if this is a Default VpnServerConfigurationPolicyGroup or not. +func (o VpnServerConfigurationPolicyGroupResponseOutput) IsDefault() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) *bool { return v.IsDefault }).(pulumi.BoolPtrOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o VpnServerConfigurationPolicyGroupResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// List of references to P2SConnectionConfigurations. +func (o VpnServerConfigurationPolicyGroupResponseOutput) P2SConnectionConfigurations() SubResourceResponseArrayOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) []SubResourceResponse { + return v.P2SConnectionConfigurations + }).(SubResourceResponseArrayOutput) +} + +// Multiple PolicyMembers for VpnServerConfigurationPolicyGroup. +func (o VpnServerConfigurationPolicyGroupResponseOutput) PolicyMembers() VpnServerConfigurationPolicyGroupMemberResponseArrayOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) []VpnServerConfigurationPolicyGroupMemberResponse { + return v.PolicyMembers + }).(VpnServerConfigurationPolicyGroupMemberResponseArrayOutput) +} + +// Priority for VpnServerConfigurationPolicyGroup. +func (o VpnServerConfigurationPolicyGroupResponseOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// The provisioning state of the VpnServerConfigurationPolicyGroup resource. +func (o VpnServerConfigurationPolicyGroupResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Resource type. +func (o VpnServerConfigurationPolicyGroupResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v VpnServerConfigurationPolicyGroupResponse) string { return v.Type }).(pulumi.StringOutput) +} + +type VpnServerConfigurationPolicyGroupResponseArrayOutput struct{ *pulumi.OutputState } + +func (VpnServerConfigurationPolicyGroupResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VpnServerConfigurationPolicyGroupResponse)(nil)).Elem() +} + +func (o VpnServerConfigurationPolicyGroupResponseArrayOutput) ToVpnServerConfigurationPolicyGroupResponseArrayOutput() VpnServerConfigurationPolicyGroupResponseArrayOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupResponseArrayOutput) ToVpnServerConfigurationPolicyGroupResponseArrayOutputWithContext(ctx context.Context) VpnServerConfigurationPolicyGroupResponseArrayOutput { + return o +} + +func (o VpnServerConfigurationPolicyGroupResponseArrayOutput) Index(i pulumi.IntInput) VpnServerConfigurationPolicyGroupResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VpnServerConfigurationPolicyGroupResponse { + return vs[0].([]VpnServerConfigurationPolicyGroupResponse)[vs[1].(int)] + }).(VpnServerConfigurationPolicyGroupResponseOutput) +} + // VpnSiteLink Resource. type VpnSiteLink struct { // The set of bgp properties. @@ -13359,6 +24022,8 @@ type VpnSiteLinkConnection struct { UsePolicyBasedTrafficSelectors *bool `pulumi:"usePolicyBasedTrafficSelectors"` // Connection protocol used for this connection. VpnConnectionProtocolType *string `pulumi:"vpnConnectionProtocolType"` + // vpnGatewayCustomBgpAddresses used by this connection. + VpnGatewayCustomBgpAddresses []GatewayCustomBgpIpAddressIpConfiguration `pulumi:"vpnGatewayCustomBgpAddresses"` // Vpn link connection mode. VpnLinkConnectionMode *string `pulumi:"vpnLinkConnectionMode"` // Id of the connected vpn site link. @@ -13404,6 +24069,8 @@ type VpnSiteLinkConnectionArgs struct { UsePolicyBasedTrafficSelectors pulumi.BoolPtrInput `pulumi:"usePolicyBasedTrafficSelectors"` // Connection protocol used for this connection. VpnConnectionProtocolType pulumi.StringPtrInput `pulumi:"vpnConnectionProtocolType"` + // vpnGatewayCustomBgpAddresses used by this connection. + VpnGatewayCustomBgpAddresses GatewayCustomBgpIpAddressIpConfigurationArrayInput `pulumi:"vpnGatewayCustomBgpAddresses"` // Vpn link connection mode. VpnLinkConnectionMode pulumi.StringPtrInput `pulumi:"vpnLinkConnectionMode"` // Id of the connected vpn site link. @@ -13527,6 +24194,13 @@ func (o VpnSiteLinkConnectionOutput) VpnConnectionProtocolType() pulumi.StringPt return o.ApplyT(func(v VpnSiteLinkConnection) *string { return v.VpnConnectionProtocolType }).(pulumi.StringPtrOutput) } +// vpnGatewayCustomBgpAddresses used by this connection. +func (o VpnSiteLinkConnectionOutput) VpnGatewayCustomBgpAddresses() GatewayCustomBgpIpAddressIpConfigurationArrayOutput { + return o.ApplyT(func(v VpnSiteLinkConnection) []GatewayCustomBgpIpAddressIpConfiguration { + return v.VpnGatewayCustomBgpAddresses + }).(GatewayCustomBgpIpAddressIpConfigurationArrayOutput) +} + // Vpn link connection mode. func (o VpnSiteLinkConnectionOutput) VpnLinkConnectionMode() pulumi.StringPtrOutput { return o.ApplyT(func(v VpnSiteLinkConnection) *string { return v.VpnLinkConnectionMode }).(pulumi.StringPtrOutput) @@ -13597,6 +24271,8 @@ type VpnSiteLinkConnectionResponse struct { UsePolicyBasedTrafficSelectors *bool `pulumi:"usePolicyBasedTrafficSelectors"` // Connection protocol used for this connection. VpnConnectionProtocolType *string `pulumi:"vpnConnectionProtocolType"` + // vpnGatewayCustomBgpAddresses used by this connection. + VpnGatewayCustomBgpAddresses []GatewayCustomBgpIpAddressIpConfigurationResponse `pulumi:"vpnGatewayCustomBgpAddresses"` // Vpn link connection mode. VpnLinkConnectionMode *string `pulumi:"vpnLinkConnectionMode"` // Id of the connected vpn site link. @@ -13713,6 +24389,13 @@ func (o VpnSiteLinkConnectionResponseOutput) VpnConnectionProtocolType() pulumi. return o.ApplyT(func(v VpnSiteLinkConnectionResponse) *string { return v.VpnConnectionProtocolType }).(pulumi.StringPtrOutput) } +// vpnGatewayCustomBgpAddresses used by this connection. +func (o VpnSiteLinkConnectionResponseOutput) VpnGatewayCustomBgpAddresses() GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v VpnSiteLinkConnectionResponse) []GatewayCustomBgpIpAddressIpConfigurationResponse { + return v.VpnGatewayCustomBgpAddresses + }).(GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) +} + // Vpn link connection mode. func (o VpnSiteLinkConnectionResponseOutput) VpnLinkConnectionMode() pulumi.StringPtrOutput { return o.ApplyT(func(v VpnSiteLinkConnectionResponse) *string { return v.VpnLinkConnectionMode }).(pulumi.StringPtrOutput) @@ -13849,14 +24532,22 @@ func (o VpnSiteLinkResponseArrayOutput) Index(i pulumi.IntInput) VpnSiteLinkResp type WebApplicationFirewallCustomRule struct { // Type of Actions. Action string `pulumi:"action"` + // List of user session identifier group by clauses. + GroupByUserSession []GroupByUserSession `pulumi:"groupByUserSession"` // List of match conditions. MatchConditions []MatchCondition `pulumi:"matchConditions"` // The name of the resource that is unique within a policy. This name can be used to access the resource. Name *string `pulumi:"name"` // Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. Priority int `pulumi:"priority"` + // Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. + RateLimitDuration *string `pulumi:"rateLimitDuration"` + // Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1 + RateLimitThreshold *int `pulumi:"rateLimitThreshold"` // The rule type. RuleType string `pulumi:"ruleType"` + // Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. + State *string `pulumi:"state"` } // WebApplicationFirewallCustomRuleInput is an input type that accepts WebApplicationFirewallCustomRuleArgs and WebApplicationFirewallCustomRuleOutput values. @@ -13874,14 +24565,22 @@ type WebApplicationFirewallCustomRuleInput interface { type WebApplicationFirewallCustomRuleArgs struct { // Type of Actions. Action pulumi.StringInput `pulumi:"action"` + // List of user session identifier group by clauses. + GroupByUserSession GroupByUserSessionArrayInput `pulumi:"groupByUserSession"` // List of match conditions. MatchConditions MatchConditionArrayInput `pulumi:"matchConditions"` // The name of the resource that is unique within a policy. This name can be used to access the resource. Name pulumi.StringPtrInput `pulumi:"name"` // Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. Priority pulumi.IntInput `pulumi:"priority"` + // Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. + RateLimitDuration pulumi.StringPtrInput `pulumi:"rateLimitDuration"` + // Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1 + RateLimitThreshold pulumi.IntPtrInput `pulumi:"rateLimitThreshold"` // The rule type. RuleType pulumi.StringInput `pulumi:"ruleType"` + // Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. + State pulumi.StringPtrInput `pulumi:"state"` } func (WebApplicationFirewallCustomRuleArgs) ElementType() reflect.Type { @@ -13941,6 +24640,11 @@ func (o WebApplicationFirewallCustomRuleOutput) Action() pulumi.StringOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRule) string { return v.Action }).(pulumi.StringOutput) } +// List of user session identifier group by clauses. +func (o WebApplicationFirewallCustomRuleOutput) GroupByUserSession() GroupByUserSessionArrayOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRule) []GroupByUserSession { return v.GroupByUserSession }).(GroupByUserSessionArrayOutput) +} + // List of match conditions. func (o WebApplicationFirewallCustomRuleOutput) MatchConditions() MatchConditionArrayOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRule) []MatchCondition { return v.MatchConditions }).(MatchConditionArrayOutput) @@ -13956,11 +24660,26 @@ func (o WebApplicationFirewallCustomRuleOutput) Priority() pulumi.IntOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRule) int { return v.Priority }).(pulumi.IntOutput) } +// Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. +func (o WebApplicationFirewallCustomRuleOutput) RateLimitDuration() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRule) *string { return v.RateLimitDuration }).(pulumi.StringPtrOutput) +} + +// Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1 +func (o WebApplicationFirewallCustomRuleOutput) RateLimitThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRule) *int { return v.RateLimitThreshold }).(pulumi.IntPtrOutput) +} + // The rule type. func (o WebApplicationFirewallCustomRuleOutput) RuleType() pulumi.StringOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRule) string { return v.RuleType }).(pulumi.StringOutput) } +// Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. +func (o WebApplicationFirewallCustomRuleOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRule) *string { return v.State }).(pulumi.StringPtrOutput) +} + type WebApplicationFirewallCustomRuleArrayOutput struct{ *pulumi.OutputState } func (WebApplicationFirewallCustomRuleArrayOutput) ElementType() reflect.Type { @@ -13987,14 +24706,22 @@ type WebApplicationFirewallCustomRuleResponse struct { Action string `pulumi:"action"` // A unique read-only string that changes whenever the resource is updated. Etag string `pulumi:"etag"` + // List of user session identifier group by clauses. + GroupByUserSession []GroupByUserSessionResponse `pulumi:"groupByUserSession"` // List of match conditions. MatchConditions []MatchConditionResponse `pulumi:"matchConditions"` // The name of the resource that is unique within a policy. This name can be used to access the resource. Name *string `pulumi:"name"` // Priority of the rule. Rules with a lower value will be evaluated before rules with a higher value. Priority int `pulumi:"priority"` + // Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. + RateLimitDuration *string `pulumi:"rateLimitDuration"` + // Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1 + RateLimitThreshold *int `pulumi:"rateLimitThreshold"` // The rule type. RuleType string `pulumi:"ruleType"` + // Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. + State *string `pulumi:"state"` } // Defines contents of a web application rule. @@ -14022,6 +24749,13 @@ func (o WebApplicationFirewallCustomRuleResponseOutput) Etag() pulumi.StringOutp return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) string { return v.Etag }).(pulumi.StringOutput) } +// List of user session identifier group by clauses. +func (o WebApplicationFirewallCustomRuleResponseOutput) GroupByUserSession() GroupByUserSessionResponseArrayOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) []GroupByUserSessionResponse { + return v.GroupByUserSession + }).(GroupByUserSessionResponseArrayOutput) +} + // List of match conditions. func (o WebApplicationFirewallCustomRuleResponseOutput) MatchConditions() MatchConditionResponseArrayOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) []MatchConditionResponse { return v.MatchConditions }).(MatchConditionResponseArrayOutput) @@ -14037,11 +24771,26 @@ func (o WebApplicationFirewallCustomRuleResponseOutput) Priority() pulumi.IntOut return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) int { return v.Priority }).(pulumi.IntOutput) } +// Duration over which Rate Limit policy will be applied. Applies only when ruleType is RateLimitRule. +func (o WebApplicationFirewallCustomRuleResponseOutput) RateLimitDuration() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) *string { return v.RateLimitDuration }).(pulumi.StringPtrOutput) +} + +// Rate Limit threshold to apply in case ruleType is RateLimitRule. Must be greater than or equal to 1 +func (o WebApplicationFirewallCustomRuleResponseOutput) RateLimitThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) *int { return v.RateLimitThreshold }).(pulumi.IntPtrOutput) +} + // The rule type. func (o WebApplicationFirewallCustomRuleResponseOutput) RuleType() pulumi.StringOutput { return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) string { return v.RuleType }).(pulumi.StringOutput) } +// Describes if the custom rule is in enabled or disabled state. Defaults to Enabled if not specified. +func (o WebApplicationFirewallCustomRuleResponseOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallCustomRuleResponse) *string { return v.State }).(pulumi.StringPtrOutput) +} + type WebApplicationFirewallCustomRuleResponseArrayOutput struct{ *pulumi.OutputState } func (WebApplicationFirewallCustomRuleResponseArrayOutput) ElementType() reflect.Type { @@ -14062,7 +24811,319 @@ func (o WebApplicationFirewallCustomRuleResponseArrayOutput) Index(i pulumi.IntI }).(WebApplicationFirewallCustomRuleResponseOutput) } +// Allow certain variables to be scrubbed on WAF logs +type WebApplicationFirewallScrubbingRules struct { + // The variable to be scrubbed from the logs. + MatchVariable string `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. + Selector *string `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. + SelectorMatchOperator string `pulumi:"selectorMatchOperator"` + // Defines the state of log scrubbing rule. Default value is Enabled. + State *string `pulumi:"state"` +} + +// WebApplicationFirewallScrubbingRulesInput is an input type that accepts WebApplicationFirewallScrubbingRulesArgs and WebApplicationFirewallScrubbingRulesOutput values. +// You can construct a concrete instance of `WebApplicationFirewallScrubbingRulesInput` via: +// +// WebApplicationFirewallScrubbingRulesArgs{...} +type WebApplicationFirewallScrubbingRulesInput interface { + pulumi.Input + + ToWebApplicationFirewallScrubbingRulesOutput() WebApplicationFirewallScrubbingRulesOutput + ToWebApplicationFirewallScrubbingRulesOutputWithContext(context.Context) WebApplicationFirewallScrubbingRulesOutput +} + +// Allow certain variables to be scrubbed on WAF logs +type WebApplicationFirewallScrubbingRulesArgs struct { + // The variable to be scrubbed from the logs. + MatchVariable pulumi.StringInput `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. + Selector pulumi.StringPtrInput `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. + SelectorMatchOperator pulumi.StringInput `pulumi:"selectorMatchOperator"` + // Defines the state of log scrubbing rule. Default value is Enabled. + State pulumi.StringPtrInput `pulumi:"state"` +} + +func (WebApplicationFirewallScrubbingRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*WebApplicationFirewallScrubbingRules)(nil)).Elem() +} + +func (i WebApplicationFirewallScrubbingRulesArgs) ToWebApplicationFirewallScrubbingRulesOutput() WebApplicationFirewallScrubbingRulesOutput { + return i.ToWebApplicationFirewallScrubbingRulesOutputWithContext(context.Background()) +} + +func (i WebApplicationFirewallScrubbingRulesArgs) ToWebApplicationFirewallScrubbingRulesOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(WebApplicationFirewallScrubbingRulesOutput) +} + +// WebApplicationFirewallScrubbingRulesArrayInput is an input type that accepts WebApplicationFirewallScrubbingRulesArray and WebApplicationFirewallScrubbingRulesArrayOutput values. +// You can construct a concrete instance of `WebApplicationFirewallScrubbingRulesArrayInput` via: +// +// WebApplicationFirewallScrubbingRulesArray{ WebApplicationFirewallScrubbingRulesArgs{...} } +type WebApplicationFirewallScrubbingRulesArrayInput interface { + pulumi.Input + + ToWebApplicationFirewallScrubbingRulesArrayOutput() WebApplicationFirewallScrubbingRulesArrayOutput + ToWebApplicationFirewallScrubbingRulesArrayOutputWithContext(context.Context) WebApplicationFirewallScrubbingRulesArrayOutput +} + +type WebApplicationFirewallScrubbingRulesArray []WebApplicationFirewallScrubbingRulesInput + +func (WebApplicationFirewallScrubbingRulesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]WebApplicationFirewallScrubbingRules)(nil)).Elem() +} + +func (i WebApplicationFirewallScrubbingRulesArray) ToWebApplicationFirewallScrubbingRulesArrayOutput() WebApplicationFirewallScrubbingRulesArrayOutput { + return i.ToWebApplicationFirewallScrubbingRulesArrayOutputWithContext(context.Background()) +} + +func (i WebApplicationFirewallScrubbingRulesArray) ToWebApplicationFirewallScrubbingRulesArrayOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(WebApplicationFirewallScrubbingRulesArrayOutput) +} + +// Allow certain variables to be scrubbed on WAF logs +type WebApplicationFirewallScrubbingRulesOutput struct{ *pulumi.OutputState } + +func (WebApplicationFirewallScrubbingRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WebApplicationFirewallScrubbingRules)(nil)).Elem() +} + +func (o WebApplicationFirewallScrubbingRulesOutput) ToWebApplicationFirewallScrubbingRulesOutput() WebApplicationFirewallScrubbingRulesOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesOutput) ToWebApplicationFirewallScrubbingRulesOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesOutput { + return o +} + +// The variable to be scrubbed from the logs. +func (o WebApplicationFirewallScrubbingRulesOutput) MatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRules) string { return v.MatchVariable }).(pulumi.StringOutput) +} + +// When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. +func (o WebApplicationFirewallScrubbingRulesOutput) Selector() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRules) *string { return v.Selector }).(pulumi.StringPtrOutput) +} + +// When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. +func (o WebApplicationFirewallScrubbingRulesOutput) SelectorMatchOperator() pulumi.StringOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRules) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) +} + +// Defines the state of log scrubbing rule. Default value is Enabled. +func (o WebApplicationFirewallScrubbingRulesOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRules) *string { return v.State }).(pulumi.StringPtrOutput) +} + +type WebApplicationFirewallScrubbingRulesArrayOutput struct{ *pulumi.OutputState } + +func (WebApplicationFirewallScrubbingRulesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]WebApplicationFirewallScrubbingRules)(nil)).Elem() +} + +func (o WebApplicationFirewallScrubbingRulesArrayOutput) ToWebApplicationFirewallScrubbingRulesArrayOutput() WebApplicationFirewallScrubbingRulesArrayOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesArrayOutput) ToWebApplicationFirewallScrubbingRulesArrayOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesArrayOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesArrayOutput) Index(i pulumi.IntInput) WebApplicationFirewallScrubbingRulesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) WebApplicationFirewallScrubbingRules { + return vs[0].([]WebApplicationFirewallScrubbingRules)[vs[1].(int)] + }).(WebApplicationFirewallScrubbingRulesOutput) +} + +// Allow certain variables to be scrubbed on WAF logs +type WebApplicationFirewallScrubbingRulesResponse struct { + // The variable to be scrubbed from the logs. + MatchVariable string `pulumi:"matchVariable"` + // When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. + Selector *string `pulumi:"selector"` + // When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. + SelectorMatchOperator string `pulumi:"selectorMatchOperator"` + // Defines the state of log scrubbing rule. Default value is Enabled. + State *string `pulumi:"state"` +} + +// Allow certain variables to be scrubbed on WAF logs +type WebApplicationFirewallScrubbingRulesResponseOutput struct{ *pulumi.OutputState } + +func (WebApplicationFirewallScrubbingRulesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WebApplicationFirewallScrubbingRulesResponse)(nil)).Elem() +} + +func (o WebApplicationFirewallScrubbingRulesResponseOutput) ToWebApplicationFirewallScrubbingRulesResponseOutput() WebApplicationFirewallScrubbingRulesResponseOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesResponseOutput) ToWebApplicationFirewallScrubbingRulesResponseOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesResponseOutput { + return o +} + +// The variable to be scrubbed from the logs. +func (o WebApplicationFirewallScrubbingRulesResponseOutput) MatchVariable() pulumi.StringOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRulesResponse) string { return v.MatchVariable }).(pulumi.StringOutput) +} + +// When matchVariable is a collection, operator used to specify which elements in the collection this rule applies to. +func (o WebApplicationFirewallScrubbingRulesResponseOutput) Selector() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRulesResponse) *string { return v.Selector }).(pulumi.StringPtrOutput) +} + +// When matchVariable is a collection, operate on the selector to specify which elements in the collection this rule applies to. +func (o WebApplicationFirewallScrubbingRulesResponseOutput) SelectorMatchOperator() pulumi.StringOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRulesResponse) string { return v.SelectorMatchOperator }).(pulumi.StringOutput) +} + +// Defines the state of log scrubbing rule. Default value is Enabled. +func (o WebApplicationFirewallScrubbingRulesResponseOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v WebApplicationFirewallScrubbingRulesResponse) *string { return v.State }).(pulumi.StringPtrOutput) +} + +type WebApplicationFirewallScrubbingRulesResponseArrayOutput struct{ *pulumi.OutputState } + +func (WebApplicationFirewallScrubbingRulesResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]WebApplicationFirewallScrubbingRulesResponse)(nil)).Elem() +} + +func (o WebApplicationFirewallScrubbingRulesResponseArrayOutput) ToWebApplicationFirewallScrubbingRulesResponseArrayOutput() WebApplicationFirewallScrubbingRulesResponseArrayOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesResponseArrayOutput) ToWebApplicationFirewallScrubbingRulesResponseArrayOutputWithContext(ctx context.Context) WebApplicationFirewallScrubbingRulesResponseArrayOutput { + return o +} + +func (o WebApplicationFirewallScrubbingRulesResponseArrayOutput) Index(i pulumi.IntInput) WebApplicationFirewallScrubbingRulesResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) WebApplicationFirewallScrubbingRulesResponse { + return vs[0].([]WebApplicationFirewallScrubbingRulesResponse)[vs[1].(int)] + }).(WebApplicationFirewallScrubbingRulesResponseOutput) +} + func init() { + pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceConnectionStatePtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponseOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponsePtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationArrayOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationResponseOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceIpConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesAutoApprovalOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesAutoApprovalPtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseAutoApprovalOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseAutoApprovalPtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseVisibilityOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesResponseVisibilityPtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesVisibilityOutput{}) + pulumi.RegisterOutputType(PrivateLinkServicePropertiesVisibilityPtrOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceResponseOutput{}) + pulumi.RegisterOutputType(PrivateLinkServiceResponsePtrOutput{}) + pulumi.RegisterOutputType(ProbeOutput{}) + pulumi.RegisterOutputType(ProbeArrayOutput{}) + pulumi.RegisterOutputType(ProbeResponseOutput{}) + pulumi.RegisterOutputType(ProbeResponseArrayOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTablePtrOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableNfvOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableNfvPtrOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableNfvResponseOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableNfvResponsePtrOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableResponseOutput{}) + pulumi.RegisterOutputType(PropagatedRouteTableResponsePtrOutput{}) + pulumi.RegisterOutputType(PtrRecordOutput{}) + pulumi.RegisterOutputType(PtrRecordArrayOutput{}) + pulumi.RegisterOutputType(PtrRecordResponseOutput{}) + pulumi.RegisterOutputType(PtrRecordResponseArrayOutput{}) + pulumi.RegisterOutputType(PublicIPAddressTypeOutput{}) + pulumi.RegisterOutputType(PublicIPAddressTypePtrOutput{}) + pulumi.RegisterOutputType(PublicIPAddressDnsSettingsOutput{}) + pulumi.RegisterOutputType(PublicIPAddressDnsSettingsPtrOutput{}) + pulumi.RegisterOutputType(PublicIPAddressDnsSettingsResponseOutput{}) + pulumi.RegisterOutputType(PublicIPAddressDnsSettingsResponsePtrOutput{}) + pulumi.RegisterOutputType(PublicIPAddressResponseOutput{}) + pulumi.RegisterOutputType(PublicIPAddressResponsePtrOutput{}) + pulumi.RegisterOutputType(PublicIPAddressSkuOutput{}) + pulumi.RegisterOutputType(PublicIPAddressSkuPtrOutput{}) + pulumi.RegisterOutputType(PublicIPAddressSkuResponseOutput{}) + pulumi.RegisterOutputType(PublicIPAddressSkuResponsePtrOutput{}) + pulumi.RegisterOutputType(PublicIPPrefixSkuOutput{}) + pulumi.RegisterOutputType(PublicIPPrefixSkuPtrOutput{}) + pulumi.RegisterOutputType(PublicIPPrefixSkuResponseOutput{}) + pulumi.RegisterOutputType(PublicIPPrefixSkuResponsePtrOutput{}) + pulumi.RegisterOutputType(QosDefinitionOutput{}) + pulumi.RegisterOutputType(QosDefinitionArrayOutput{}) + pulumi.RegisterOutputType(QosDefinitionResponseOutput{}) + pulumi.RegisterOutputType(QosDefinitionResponseArrayOutput{}) + pulumi.RegisterOutputType(QosIpRangeOutput{}) + pulumi.RegisterOutputType(QosIpRangeArrayOutput{}) + pulumi.RegisterOutputType(QosIpRangeResponseOutput{}) + pulumi.RegisterOutputType(QosIpRangeResponseArrayOutput{}) + pulumi.RegisterOutputType(QosPortRangeOutput{}) + pulumi.RegisterOutputType(QosPortRangeArrayOutput{}) + pulumi.RegisterOutputType(QosPortRangeResponseOutput{}) + pulumi.RegisterOutputType(QosPortRangeResponseArrayOutput{}) + pulumi.RegisterOutputType(RadiusServerOutput{}) + pulumi.RegisterOutputType(RadiusServerArrayOutput{}) + pulumi.RegisterOutputType(RadiusServerResponseOutput{}) + pulumi.RegisterOutputType(RadiusServerResponseArrayOutput{}) + pulumi.RegisterOutputType(RecordSetResponseOutput{}) + pulumi.RegisterOutputType(RecordSetResponseArrayOutput{}) + pulumi.RegisterOutputType(ReferencedPublicIpAddressResponseOutput{}) + pulumi.RegisterOutputType(ReferencedPublicIpAddressResponseArrayOutput{}) + pulumi.RegisterOutputType(ResourceNavigationLinkOutput{}) + pulumi.RegisterOutputType(ResourceNavigationLinkArrayOutput{}) + pulumi.RegisterOutputType(ResourceNavigationLinkResponseOutput{}) + pulumi.RegisterOutputType(ResourceNavigationLinkResponseArrayOutput{}) + pulumi.RegisterOutputType(RetentionPolicyParametersOutput{}) + pulumi.RegisterOutputType(RetentionPolicyParametersPtrOutput{}) + pulumi.RegisterOutputType(RetentionPolicyParametersResponseOutput{}) + pulumi.RegisterOutputType(RetentionPolicyParametersResponsePtrOutput{}) + pulumi.RegisterOutputType(RouteTypeOutput{}) + pulumi.RegisterOutputType(RouteTypeArrayOutput{}) + pulumi.RegisterOutputType(RouteFilterRuleTypeOutput{}) + pulumi.RegisterOutputType(RouteFilterRuleTypeArrayOutput{}) + pulumi.RegisterOutputType(RouteFilterRuleResponseOutput{}) + pulumi.RegisterOutputType(RouteFilterRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(RouteMapRuleOutput{}) + pulumi.RegisterOutputType(RouteMapRuleArrayOutput{}) + pulumi.RegisterOutputType(RouteMapRuleResponseOutput{}) + pulumi.RegisterOutputType(RouteMapRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(RouteResponseOutput{}) + pulumi.RegisterOutputType(RouteResponseArrayOutput{}) + pulumi.RegisterOutputType(RouteTableTypeOutput{}) + pulumi.RegisterOutputType(RouteTableTypePtrOutput{}) + pulumi.RegisterOutputType(RouteTableResponseOutput{}) + pulumi.RegisterOutputType(RouteTableResponsePtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvPtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvResponseOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvResponsePtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourceOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourcePtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourceArrayOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourceResponseOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourceResponsePtrOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationNfvSubResourceResponseArrayOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationResponseOutput{}) + pulumi.RegisterOutputType(RoutingConfigurationResponsePtrOutput{}) + pulumi.RegisterOutputType(RoutingPolicyOutput{}) + pulumi.RegisterOutputType(RoutingPolicyArrayOutput{}) + pulumi.RegisterOutputType(RoutingPolicyResponseOutput{}) + pulumi.RegisterOutputType(RoutingPolicyResponseArrayOutput{}) + pulumi.RegisterOutputType(RoutingRuleOutput{}) + pulumi.RegisterOutputType(RoutingRuleArrayOutput{}) + pulumi.RegisterOutputType(RoutingRuleLinkResponseOutput{}) + pulumi.RegisterOutputType(RoutingRuleLinkResponseArrayOutput{}) + pulumi.RegisterOutputType(RoutingRuleResponseOutput{}) + pulumi.RegisterOutputType(RoutingRuleResponseArrayOutput{}) pulumi.RegisterOutputType(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkOutput{}) pulumi.RegisterOutputType(RoutingRuleUpdateParametersResponseWebApplicationFirewallPolicyLinkPtrOutput{}) pulumi.RegisterOutputType(RoutingRuleUpdateParametersWebApplicationFirewallPolicyLinkOutput{}) @@ -14085,6 +25146,8 @@ func init() { pulumi.RegisterOutputType(SecurityRuleTypeArrayOutput{}) pulumi.RegisterOutputType(SecurityRuleResponseOutput{}) pulumi.RegisterOutputType(SecurityRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(ServiceAssociationLinkOutput{}) + pulumi.RegisterOutputType(ServiceAssociationLinkArrayOutput{}) pulumi.RegisterOutputType(ServiceAssociationLinkResponseOutput{}) pulumi.RegisterOutputType(ServiceAssociationLinkResponseArrayOutput{}) pulumi.RegisterOutputType(ServiceEndpointPolicyTypeOutput{}) @@ -14117,6 +25180,10 @@ func init() { pulumi.RegisterOutputType(StaticRouteArrayOutput{}) pulumi.RegisterOutputType(StaticRouteResponseOutput{}) pulumi.RegisterOutputType(StaticRouteResponseArrayOutput{}) + pulumi.RegisterOutputType(StaticRoutesConfigOutput{}) + pulumi.RegisterOutputType(StaticRoutesConfigPtrOutput{}) + pulumi.RegisterOutputType(StaticRoutesConfigResponseOutput{}) + pulumi.RegisterOutputType(StaticRoutesConfigResponsePtrOutput{}) pulumi.RegisterOutputType(SubResourceOutput{}) pulumi.RegisterOutputType(SubResourcePtrOutput{}) pulumi.RegisterOutputType(SubResourceArrayOutput{}) @@ -14158,6 +25225,10 @@ func init() { pulumi.RegisterOutputType(TxtRecordResponseArrayOutput{}) pulumi.RegisterOutputType(VMOutput{}) pulumi.RegisterOutputType(VMResponseOutput{}) + pulumi.RegisterOutputType(VirtualApplianceAdditionalNicPropertiesOutput{}) + pulumi.RegisterOutputType(VirtualApplianceAdditionalNicPropertiesArrayOutput{}) + pulumi.RegisterOutputType(VirtualApplianceAdditionalNicPropertiesResponseOutput{}) + pulumi.RegisterOutputType(VirtualApplianceAdditionalNicPropertiesResponseArrayOutput{}) pulumi.RegisterOutputType(VirtualApplianceNicPropertiesResponseOutput{}) pulumi.RegisterOutputType(VirtualApplianceNicPropertiesResponseArrayOutput{}) pulumi.RegisterOutputType(VirtualApplianceSkuPropertiesOutput{}) @@ -14188,12 +25259,28 @@ func init() { pulumi.RegisterOutputType(VirtualNetworkBgpCommunitiesResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualNetworkDnsForwardingRulesetResponseOutput{}) pulumi.RegisterOutputType(VirtualNetworkDnsForwardingRulesetResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkEncryptionOutput{}) + pulumi.RegisterOutputType(VirtualNetworkEncryptionPtrOutput{}) + pulumi.RegisterOutputType(VirtualNetworkEncryptionResponseOutput{}) + pulumi.RegisterOutputType(VirtualNetworkEncryptionResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayTypeOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayTypePtrOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayIPConfigurationOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayIPConfigurationArrayOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayIPConfigurationResponseOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayIPConfigurationResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayNatRuleTypeOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayNatRuleTypeArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayNatRuleResponseOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayNatRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupMemberOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupMemberArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupMemberResponseOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupMemberResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupResponseOutput{}) + pulumi.RegisterOutputType(VirtualNetworkGatewayPolicyGroupResponseArrayOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayResponseOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewayResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualNetworkGatewaySkuOutput{}) @@ -14210,10 +25297,18 @@ func init() { pulumi.RegisterOutputType(VirtualNetworkTapResponseOutput{}) pulumi.RegisterOutputType(VirtualNetworkTapResponsePtrOutput{}) pulumi.RegisterOutputType(VirtualNetworkTapResponseArrayOutput{}) + pulumi.RegisterOutputType(VirtualRouterAutoScaleConfigurationOutput{}) + pulumi.RegisterOutputType(VirtualRouterAutoScaleConfigurationPtrOutput{}) + pulumi.RegisterOutputType(VirtualRouterAutoScaleConfigurationResponseOutput{}) + pulumi.RegisterOutputType(VirtualRouterAutoScaleConfigurationResponsePtrOutput{}) pulumi.RegisterOutputType(VnetRouteOutput{}) pulumi.RegisterOutputType(VnetRoutePtrOutput{}) pulumi.RegisterOutputType(VnetRouteResponseOutput{}) pulumi.RegisterOutputType(VnetRouteResponsePtrOutput{}) + pulumi.RegisterOutputType(VngClientConnectionConfigurationOutput{}) + pulumi.RegisterOutputType(VngClientConnectionConfigurationArrayOutput{}) + pulumi.RegisterOutputType(VngClientConnectionConfigurationResponseOutput{}) + pulumi.RegisterOutputType(VngClientConnectionConfigurationResponseArrayOutput{}) pulumi.RegisterOutputType(VpnClientConfigurationOutput{}) pulumi.RegisterOutputType(VpnClientConfigurationPtrOutput{}) pulumi.RegisterOutputType(VpnClientConfigurationResponseOutput{}) @@ -14267,10 +25362,14 @@ func init() { pulumi.RegisterOutputType(VpnServerConfigVpnClientRootCertificateArrayOutput{}) pulumi.RegisterOutputType(VpnServerConfigVpnClientRootCertificateResponseOutput{}) pulumi.RegisterOutputType(VpnServerConfigVpnClientRootCertificateResponseArrayOutput{}) + pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupOutput{}) + pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupArrayOutput{}) pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupMemberOutput{}) pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupMemberArrayOutput{}) pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupMemberResponseOutput{}) pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupMemberResponseArrayOutput{}) + pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupResponseOutput{}) + pulumi.RegisterOutputType(VpnServerConfigurationPolicyGroupResponseArrayOutput{}) pulumi.RegisterOutputType(VpnSiteLinkOutput{}) pulumi.RegisterOutputType(VpnSiteLinkArrayOutput{}) pulumi.RegisterOutputType(VpnSiteLinkConnectionOutput{}) @@ -14283,4 +25382,8 @@ func init() { pulumi.RegisterOutputType(WebApplicationFirewallCustomRuleArrayOutput{}) pulumi.RegisterOutputType(WebApplicationFirewallCustomRuleResponseOutput{}) pulumi.RegisterOutputType(WebApplicationFirewallCustomRuleResponseArrayOutput{}) + pulumi.RegisterOutputType(WebApplicationFirewallScrubbingRulesOutput{}) + pulumi.RegisterOutputType(WebApplicationFirewallScrubbingRulesArrayOutput{}) + pulumi.RegisterOutputType(WebApplicationFirewallScrubbingRulesResponseOutput{}) + pulumi.RegisterOutputType(WebApplicationFirewallScrubbingRulesResponseArrayOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/recordSet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/recordSet.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/recordSet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/recordSet.go index f7cc5965..4da68241 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/recordSet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/recordSet.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a DNS record set (a collection of DNS records with the same name and type). -// API Version: 2018-05-01. +// Azure REST API version: 2018-05-01. Prior API version in Azure Native 1.x: 2018-05-01 type RecordSet struct { pulumi.CustomResourceState @@ -89,8 +90,12 @@ func NewRecordSet(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20180501:RecordSet"), }, + { + Type: pulumi.String("azure-native:network/v20230701preview:RecordSet"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RecordSet err := ctx.RegisterResource("azure-native:network:RecordSet", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/route.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/route.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/route.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/route.go index 5baf2fd9..63b11297 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/route.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/route.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Route resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type Route struct { pulumi.CustomResourceState @@ -183,8 +184,21 @@ func NewRoute(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:Route"), }, + { + Type: pulumi.String("azure-native:network/v20221101:Route"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:Route"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:Route"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:Route"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Route err := ctx.RegisterResource("azure-native:network:Route", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilter.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilter.go index 3a32558c..a4eaf67d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilter.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Route Filter Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type RouteFilter struct { pulumi.CustomResourceState @@ -164,8 +165,21 @@ func NewRouteFilter(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:RouteFilter"), }, + { + Type: pulumi.String("azure-native:network/v20221101:RouteFilter"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:RouteFilter"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:RouteFilter"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:RouteFilter"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RouteFilter err := ctx.RegisterResource("azure-native:network:RouteFilter", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilterRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilterRule.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilterRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilterRule.go index cd69c56f..a2f511c8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeFilterRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeFilterRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Route Filter Rule Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type RouteFilterRule struct { pulumi.CustomResourceState @@ -172,8 +173,21 @@ func NewRouteFilterRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:RouteFilterRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:RouteFilterRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:RouteFilterRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:RouteFilterRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:RouteFilterRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RouteFilterRule err := ctx.RegisterResource("azure-native:network:RouteFilterRule", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeMap.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeMap.go new file mode 100644 index 00000000..fcfb0cbc --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeMap.go @@ -0,0 +1,214 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package network + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The RouteMap child resource of a Virtual hub. +// Azure REST API version: 2023-02-01. +type RouteMap struct { + pulumi.CustomResourceState + + // List of connections which have this RoutMap associated for inbound traffic. + AssociatedInboundConnections pulumi.StringArrayOutput `pulumi:"associatedInboundConnections"` + // List of connections which have this RoutMap associated for outbound traffic. + AssociatedOutboundConnections pulumi.StringArrayOutput `pulumi:"associatedOutboundConnections"` + // A unique read-only string that changes whenever the resource is updated. + Etag pulumi.StringOutput `pulumi:"etag"` + // The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name pulumi.StringOutput `pulumi:"name"` + // The provisioning state of the RouteMap resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // List of RouteMap rules to be applied. + Rules RouteMapRuleResponseArrayOutput `pulumi:"rules"` + // Resource type. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewRouteMap registers a new resource with the given unique name, arguments, and options. +func NewRouteMap(ctx *pulumi.Context, + name string, args *RouteMapArgs, opts ...pulumi.ResourceOption) (*RouteMap, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.VirtualHubName == nil { + return nil, errors.New("invalid value for required argument 'VirtualHubName'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:network/v20220501:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20220701:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20220901:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20221101:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:RouteMap"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:RouteMap"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource RouteMap + err := ctx.RegisterResource("azure-native:network:RouteMap", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRouteMap gets an existing RouteMap resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRouteMap(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RouteMapState, opts ...pulumi.ResourceOption) (*RouteMap, error) { + var resource RouteMap + err := ctx.ReadResource("azure-native:network:RouteMap", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RouteMap resources. +type routeMapState struct { +} + +type RouteMapState struct { +} + +func (RouteMapState) ElementType() reflect.Type { + return reflect.TypeOf((*routeMapState)(nil)).Elem() +} + +type routeMapArgs struct { + // List of connections which have this RoutMap associated for inbound traffic. + AssociatedInboundConnections []string `pulumi:"associatedInboundConnections"` + // List of connections which have this RoutMap associated for outbound traffic. + AssociatedOutboundConnections []string `pulumi:"associatedOutboundConnections"` + // Resource ID. + Id *string `pulumi:"id"` + // The resource group name of the RouteMap's resource group. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The name of the RouteMap. + RouteMapName *string `pulumi:"routeMapName"` + // List of RouteMap rules to be applied. + Rules []RouteMapRule `pulumi:"rules"` + // The name of the VirtualHub containing the RouteMap. + VirtualHubName string `pulumi:"virtualHubName"` +} + +// The set of arguments for constructing a RouteMap resource. +type RouteMapArgs struct { + // List of connections which have this RoutMap associated for inbound traffic. + AssociatedInboundConnections pulumi.StringArrayInput + // List of connections which have this RoutMap associated for outbound traffic. + AssociatedOutboundConnections pulumi.StringArrayInput + // Resource ID. + Id pulumi.StringPtrInput + // The resource group name of the RouteMap's resource group. + ResourceGroupName pulumi.StringInput + // The name of the RouteMap. + RouteMapName pulumi.StringPtrInput + // List of RouteMap rules to be applied. + Rules RouteMapRuleArrayInput + // The name of the VirtualHub containing the RouteMap. + VirtualHubName pulumi.StringInput +} + +func (RouteMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*routeMapArgs)(nil)).Elem() +} + +type RouteMapInput interface { + pulumi.Input + + ToRouteMapOutput() RouteMapOutput + ToRouteMapOutputWithContext(ctx context.Context) RouteMapOutput +} + +func (*RouteMap) ElementType() reflect.Type { + return reflect.TypeOf((**RouteMap)(nil)).Elem() +} + +func (i *RouteMap) ToRouteMapOutput() RouteMapOutput { + return i.ToRouteMapOutputWithContext(context.Background()) +} + +func (i *RouteMap) ToRouteMapOutputWithContext(ctx context.Context) RouteMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteMapOutput) +} + +type RouteMapOutput struct{ *pulumi.OutputState } + +func (RouteMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteMap)(nil)).Elem() +} + +func (o RouteMapOutput) ToRouteMapOutput() RouteMapOutput { + return o +} + +func (o RouteMapOutput) ToRouteMapOutputWithContext(ctx context.Context) RouteMapOutput { + return o +} + +// List of connections which have this RoutMap associated for inbound traffic. +func (o RouteMapOutput) AssociatedInboundConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringArrayOutput { return v.AssociatedInboundConnections }).(pulumi.StringArrayOutput) +} + +// List of connections which have this RoutMap associated for outbound traffic. +func (o RouteMapOutput) AssociatedOutboundConnections() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringArrayOutput { return v.AssociatedOutboundConnections }).(pulumi.StringArrayOutput) +} + +// A unique read-only string that changes whenever the resource is updated. +func (o RouteMapOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// The name of the resource that is unique within a resource group. This name can be used to access the resource. +func (o RouteMapOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The provisioning state of the RouteMap resource. +func (o RouteMapOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// List of RouteMap rules to be applied. +func (o RouteMapOutput) Rules() RouteMapRuleResponseArrayOutput { + return o.ApplyT(func(v *RouteMap) RouteMapRuleResponseArrayOutput { return v.Rules }).(RouteMapRuleResponseArrayOutput) +} + +// Resource type. +func (o RouteMapOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *RouteMap) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(RouteMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeTable.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeTable.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeTable.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeTable.go index cfdf56bf..99d334a1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routeTable.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routeTable.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Route table resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type RouteTable struct { pulumi.CustomResourceState @@ -181,8 +182,21 @@ func NewRouteTable(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:RouteTable"), }, + { + Type: pulumi.String("azure-native:network/v20221101:RouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:RouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:RouteTable"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:RouteTable"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RouteTable err := ctx.RegisterResource("azure-native:network:RouteTable", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routingIntent.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routingIntent.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routingIntent.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routingIntent.go index bee1309b..6a9d6463 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/routingIntent.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/routingIntent.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The routing intent child resource of a Virtual hub. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-01-01 type RoutingIntent struct { pulumi.CustomResourceState @@ -60,8 +61,21 @@ func NewRoutingIntent(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:RoutingIntent"), }, + { + Type: pulumi.String("azure-native:network/v20221101:RoutingIntent"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:RoutingIntent"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:RoutingIntent"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:RoutingIntent"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RoutingIntent err := ctx.RegisterResource("azure-native:network:RoutingIntent", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/rulesEngine.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/rulesEngine.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/rulesEngine.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/rulesEngine.go index c0e6cb0b..74868f38 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/rulesEngine.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/rulesEngine.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A rules engine configuration containing a list of rules that will run to modify the runtime behavior of the request and response. -// API Version: 2020-05-01. +// Azure REST API version: 2021-06-01. Prior API version in Azure Native 1.x: 2020-05-01 type RulesEngine struct { pulumi.CustomResourceState @@ -54,6 +55,7 @@ func NewRulesEngine(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource RulesEngine err := ctx.RegisterResource("azure-native:network:RulesEngine", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/scopeConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/scopeConnection.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/scopeConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/scopeConnection.go index 4c813b15..6bbce945 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/scopeConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/scopeConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Scope Connections resource -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-02-01-preview type ScopeConnection struct { pulumi.CustomResourceState @@ -67,8 +68,21 @@ func NewScopeConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ScopeConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ScopeConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ScopeConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ScopeConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ScopeConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ScopeConnection err := ctx.RegisterResource("azure-native:network:ScopeConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityAdminConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityAdminConfiguration.go similarity index 81% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityAdminConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityAdminConfiguration.go index 1846d170..5190d147 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityAdminConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityAdminConfiguration.go @@ -7,29 +7,28 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Defines the security configuration -// API Version: 2021-02-01-preview. +// Defines the security admin configuration +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-02-01-preview type SecurityAdminConfiguration struct { pulumi.CustomResourceState - // Flag if need to delete existing network security groups. - DeleteExistingNSGs pulumi.StringPtrOutput `pulumi:"deleteExistingNSGs"` + // Enum list of network intent policy based services. + ApplyOnNetworkIntentPolicyBasedServices pulumi.StringArrayOutput `pulumi:"applyOnNetworkIntentPolicyBasedServices"` // A description of the security configuration. Description pulumi.StringPtrOutput `pulumi:"description"` - // A display name of the security configuration. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // Security Type. - SecurityType pulumi.StringPtrOutput `pulumi:"securityType"` + // Unique identifier for this resource. + ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -74,8 +73,21 @@ func NewSecurityAdminConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:SecurityAdminConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:SecurityAdminConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:SecurityAdminConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:SecurityAdminConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:SecurityAdminConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SecurityAdminConfiguration err := ctx.RegisterResource("azure-native:network:SecurityAdminConfiguration", name, args, &resource, opts...) if err != nil { @@ -108,38 +120,30 @@ func (SecurityAdminConfigurationState) ElementType() reflect.Type { } type securityAdminConfigurationArgs struct { - // The name of the network manager security Configuration. + // Enum list of network intent policy based services. + ApplyOnNetworkIntentPolicyBasedServices []string `pulumi:"applyOnNetworkIntentPolicyBasedServices"` + // The name of the network manager Security Configuration. ConfigurationName *string `pulumi:"configurationName"` - // Flag if need to delete existing network security groups. - DeleteExistingNSGs *string `pulumi:"deleteExistingNSGs"` // A description of the security configuration. Description *string `pulumi:"description"` - // A display name of the security configuration. - DisplayName *string `pulumi:"displayName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` - // Security Type. - SecurityType *string `pulumi:"securityType"` } // The set of arguments for constructing a SecurityAdminConfiguration resource. type SecurityAdminConfigurationArgs struct { - // The name of the network manager security Configuration. + // Enum list of network intent policy based services. + ApplyOnNetworkIntentPolicyBasedServices pulumi.StringArrayInput + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringPtrInput - // Flag if need to delete existing network security groups. - DeleteExistingNSGs pulumi.StringPtrInput // A description of the security configuration. Description pulumi.StringPtrInput - // A display name of the security configuration. - DisplayName pulumi.StringPtrInput // The name of the network manager. NetworkManagerName pulumi.StringInput // The name of the resource group. ResourceGroupName pulumi.StringInput - // Security Type. - SecurityType pulumi.StringPtrInput } func (SecurityAdminConfigurationArgs) ElementType() reflect.Type { @@ -179,9 +183,11 @@ func (o SecurityAdminConfigurationOutput) ToSecurityAdminConfigurationOutputWith return o } -// Flag if need to delete existing network security groups. -func (o SecurityAdminConfigurationOutput) DeleteExistingNSGs() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringPtrOutput { return v.DeleteExistingNSGs }).(pulumi.StringPtrOutput) +// Enum list of network intent policy based services. +func (o SecurityAdminConfigurationOutput) ApplyOnNetworkIntentPolicyBasedServices() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringArrayOutput { + return v.ApplyOnNetworkIntentPolicyBasedServices + }).(pulumi.StringArrayOutput) } // A description of the security configuration. @@ -189,11 +195,6 @@ func (o SecurityAdminConfigurationOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the security configuration. -func (o SecurityAdminConfigurationOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o SecurityAdminConfigurationOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -209,9 +210,9 @@ func (o SecurityAdminConfigurationOutput) ProvisioningState() pulumi.StringOutpu return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// Security Type. -func (o SecurityAdminConfigurationOutput) SecurityType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringPtrOutput { return v.SecurityType }).(pulumi.StringPtrOutput) +// Unique identifier for this resource. +func (o SecurityAdminConfigurationOutput) ResourceGuid() pulumi.StringOutput { + return o.ApplyT(func(v *SecurityAdminConfiguration) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) } // The system metadata related to this resource. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityPartnerProvider.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityPartnerProvider.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityPartnerProvider.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityPartnerProvider.go index 574f2151..b68cd0ca 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityPartnerProvider.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityPartnerProvider.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Security Partner Provider resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type SecurityPartnerProvider struct { pulumi.CustomResourceState @@ -92,8 +93,21 @@ func NewSecurityPartnerProvider(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:SecurityPartnerProvider"), }, + { + Type: pulumi.String("azure-native:network/v20221101:SecurityPartnerProvider"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:SecurityPartnerProvider"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:SecurityPartnerProvider"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:SecurityPartnerProvider"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SecurityPartnerProvider err := ctx.RegisterResource("azure-native:network:SecurityPartnerProvider", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityRule.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityRule.go index c14e5510..1a8dd46b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Network security rule. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type SecurityRule struct { pulumi.CustomResourceState @@ -37,7 +38,7 @@ type SecurityRule struct { // The name of the resource that is unique within a resource group. This name can be used to access the resource. Name pulumi.StringPtrOutput `pulumi:"name"` // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority pulumi.IntPtrOutput `pulumi:"priority"` + Priority pulumi.IntOutput `pulumi:"priority"` // Network protocol this rule applies to. Protocol pulumi.StringOutput `pulumi:"protocol"` // The provisioning state of the security rule resource. @@ -72,6 +73,9 @@ func NewSecurityRule(ctx *pulumi.Context, if args.NetworkSecurityGroupName == nil { return nil, errors.New("invalid value for required argument 'NetworkSecurityGroupName'") } + if args.Priority == nil { + return nil, errors.New("invalid value for required argument 'Priority'") + } if args.Protocol == nil { return nil, errors.New("invalid value for required argument 'Protocol'") } @@ -211,8 +215,21 @@ func NewSecurityRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:SecurityRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:SecurityRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:SecurityRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:SecurityRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:SecurityRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SecurityRule err := ctx.RegisterResource("azure-native:network:SecurityRule", name, args, &resource, opts...) if err != nil { @@ -268,7 +285,7 @@ type securityRuleArgs struct { // The name of the network security group. NetworkSecurityGroupName string `pulumi:"networkSecurityGroupName"` // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority *int `pulumi:"priority"` + Priority int `pulumi:"priority"` // Network protocol this rule applies to. Protocol string `pulumi:"protocol"` // The name of the resource group. @@ -314,7 +331,7 @@ type SecurityRuleArgs struct { // The name of the network security group. NetworkSecurityGroupName pulumi.StringInput // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. - Priority pulumi.IntPtrInput + Priority pulumi.IntInput // Network protocol this rule applies to. Protocol pulumi.StringInput // The name of the resource group. @@ -425,8 +442,8 @@ func (o SecurityRuleOutput) Name() pulumi.StringPtrOutput { } // The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule. -func (o SecurityRuleOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityRule) pulumi.IntPtrOutput { return v.Priority }).(pulumi.IntPtrOutput) +func (o SecurityRuleOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v *SecurityRule) pulumi.IntOutput { return v.Priority }).(pulumi.IntOutput) } // Network protocol this rule applies to. diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityUserConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityUserConfiguration.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityUserConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityUserConfiguration.go index aaeed6f4..c207af15 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/securityUserConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/securityUserConfiguration.go @@ -7,29 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Defines the security configuration -// API Version: 2021-02-01-preview. +// Defines the security user configuration +// Azure REST API version: 2022-04-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type SecurityUserConfiguration struct { pulumi.CustomResourceState // Flag if need to delete existing network security groups. DeleteExistingNSGs pulumi.StringPtrOutput `pulumi:"deleteExistingNSGs"` - // A description of the security configuration. + // A description of the security user configuration. Description pulumi.StringPtrOutput `pulumi:"description"` - // A display name of the security configuration. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` // The provisioning state of the resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // Security Type. - SecurityType pulumi.StringPtrOutput `pulumi:"securityType"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -64,6 +61,7 @@ func NewSecurityUserConfiguration(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SecurityUserConfiguration err := ctx.RegisterResource("azure-native:network:SecurityUserConfiguration", name, args, &resource, opts...) if err != nil { @@ -96,38 +94,30 @@ func (SecurityUserConfigurationState) ElementType() reflect.Type { } type securityUserConfigurationArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName *string `pulumi:"configurationName"` // Flag if need to delete existing network security groups. DeleteExistingNSGs *string `pulumi:"deleteExistingNSGs"` - // A description of the security configuration. + // A description of the security user configuration. Description *string `pulumi:"description"` - // A display name of the security configuration. - DisplayName *string `pulumi:"displayName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` - // Security Type. - SecurityType *string `pulumi:"securityType"` } // The set of arguments for constructing a SecurityUserConfiguration resource. type SecurityUserConfigurationArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringPtrInput // Flag if need to delete existing network security groups. DeleteExistingNSGs pulumi.StringPtrInput - // A description of the security configuration. + // A description of the security user configuration. Description pulumi.StringPtrInput - // A display name of the security configuration. - DisplayName pulumi.StringPtrInput // The name of the network manager. NetworkManagerName pulumi.StringInput // The name of the resource group. ResourceGroupName pulumi.StringInput - // Security Type. - SecurityType pulumi.StringPtrInput } func (SecurityUserConfigurationArgs) ElementType() reflect.Type { @@ -172,16 +162,11 @@ func (o SecurityUserConfigurationOutput) DeleteExistingNSGs() pulumi.StringPtrOu return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringPtrOutput { return v.DeleteExistingNSGs }).(pulumi.StringPtrOutput) } -// A description of the security configuration. +// A description of the security user configuration. func (o SecurityUserConfigurationOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the security configuration. -func (o SecurityUserConfigurationOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o SecurityUserConfigurationOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -197,11 +182,6 @@ func (o SecurityUserConfigurationOutput) ProvisioningState() pulumi.StringOutput return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// Security Type. -func (o SecurityUserConfigurationOutput) SecurityType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityUserConfiguration) pulumi.StringPtrOutput { return v.SecurityType }).(pulumi.StringPtrOutput) -} - // The system metadata related to this resource. func (o SecurityUserConfigurationOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *SecurityUserConfiguration) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicy.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicy.go index 1bf45eb2..289a0d6b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicy.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Service End point policy resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ServiceEndpointPolicy struct { pulumi.CustomResourceState + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies pulumi.StringArrayOutput `pulumi:"contextualServiceEndpointPolicies"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Kind of service endpoint policy. This is metadata used for the Azure portal experience. @@ -28,6 +31,8 @@ type ServiceEndpointPolicy struct { ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The resource GUID property of the service endpoint policy resource. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` + // The alias indicating if the policy belongs to a service + ServiceAlias pulumi.StringPtrOutput `pulumi:"serviceAlias"` // A collection of service endpoint policy definitions of the service endpoint policy. ServiceEndpointPolicyDefinitions ServiceEndpointPolicyDefinitionResponseArrayOutput `pulumi:"serviceEndpointPolicyDefinitions"` // A collection of references to subnets. @@ -133,8 +138,21 @@ func NewServiceEndpointPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ServiceEndpointPolicy"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ServiceEndpointPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ServiceEndpointPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ServiceEndpointPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ServiceEndpointPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ServiceEndpointPolicy err := ctx.RegisterResource("azure-native:network:ServiceEndpointPolicy", name, args, &resource, opts...) if err != nil { @@ -167,12 +185,16 @@ func (ServiceEndpointPolicyState) ElementType() reflect.Type { } type serviceEndpointPolicyArgs struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies []string `pulumi:"contextualServiceEndpointPolicies"` // Resource ID. Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // The alias indicating if the policy belongs to a service + ServiceAlias *string `pulumi:"serviceAlias"` // A collection of service endpoint policy definitions of the service endpoint policy. ServiceEndpointPolicyDefinitions []ServiceEndpointPolicyDefinitionType `pulumi:"serviceEndpointPolicyDefinitions"` // The name of the service endpoint policy. @@ -183,12 +205,16 @@ type serviceEndpointPolicyArgs struct { // The set of arguments for constructing a ServiceEndpointPolicy resource. type ServiceEndpointPolicyArgs struct { + // A collection of contextual service endpoint policy. + ContextualServiceEndpointPolicies pulumi.StringArrayInput // Resource ID. Id pulumi.StringPtrInput // Resource location. Location pulumi.StringPtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // The alias indicating if the policy belongs to a service + ServiceAlias pulumi.StringPtrInput // A collection of service endpoint policy definitions of the service endpoint policy. ServiceEndpointPolicyDefinitions ServiceEndpointPolicyDefinitionTypeArrayInput // The name of the service endpoint policy. @@ -234,6 +260,11 @@ func (o ServiceEndpointPolicyOutput) ToServiceEndpointPolicyOutputWithContext(ct return o } +// A collection of contextual service endpoint policy. +func (o ServiceEndpointPolicyOutput) ContextualServiceEndpointPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceEndpointPolicy) pulumi.StringArrayOutput { return v.ContextualServiceEndpointPolicies }).(pulumi.StringArrayOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o ServiceEndpointPolicyOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *ServiceEndpointPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -264,6 +295,11 @@ func (o ServiceEndpointPolicyOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *ServiceEndpointPolicy) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) } +// The alias indicating if the policy belongs to a service +func (o ServiceEndpointPolicyOutput) ServiceAlias() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceEndpointPolicy) pulumi.StringPtrOutput { return v.ServiceAlias }).(pulumi.StringPtrOutput) +} + // A collection of service endpoint policy definitions of the service endpoint policy. func (o ServiceEndpointPolicyOutput) ServiceEndpointPolicyDefinitions() ServiceEndpointPolicyDefinitionResponseArrayOutput { return o.ApplyT(func(v *ServiceEndpointPolicy) ServiceEndpointPolicyDefinitionResponseArrayOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicyDefinition.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicyDefinition.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicyDefinition.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicyDefinition.go index b1460915..458f51e5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/serviceEndpointPolicyDefinition.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/serviceEndpointPolicyDefinition.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Service Endpoint policy definitions. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type ServiceEndpointPolicyDefinition struct { pulumi.CustomResourceState @@ -28,6 +29,8 @@ type ServiceEndpointPolicyDefinition struct { Service pulumi.StringPtrOutput `pulumi:"service"` // A list of service resources. ServiceResources pulumi.StringArrayOutput `pulumi:"serviceResources"` + // The type of the resource. + Type pulumi.StringPtrOutput `pulumi:"type"` } // NewServiceEndpointPolicyDefinition registers a new resource with the given unique name, arguments, and options. @@ -128,8 +131,21 @@ func NewServiceEndpointPolicyDefinition(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:ServiceEndpointPolicyDefinition"), }, + { + Type: pulumi.String("azure-native:network/v20221101:ServiceEndpointPolicyDefinition"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:ServiceEndpointPolicyDefinition"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:ServiceEndpointPolicyDefinition"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:ServiceEndpointPolicyDefinition"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ServiceEndpointPolicyDefinition err := ctx.RegisterResource("azure-native:network:ServiceEndpointPolicyDefinition", name, args, &resource, opts...) if err != nil { @@ -178,6 +194,8 @@ type serviceEndpointPolicyDefinitionArgs struct { ServiceEndpointPolicyName string `pulumi:"serviceEndpointPolicyName"` // A list of service resources. ServiceResources []string `pulumi:"serviceResources"` + // The type of the resource. + Type *string `pulumi:"type"` } // The set of arguments for constructing a ServiceEndpointPolicyDefinition resource. @@ -198,6 +216,8 @@ type ServiceEndpointPolicyDefinitionArgs struct { ServiceEndpointPolicyName pulumi.StringInput // A list of service resources. ServiceResources pulumi.StringArrayInput + // The type of the resource. + Type pulumi.StringPtrInput } func (ServiceEndpointPolicyDefinitionArgs) ElementType() reflect.Type { @@ -267,6 +287,11 @@ func (o ServiceEndpointPolicyDefinitionOutput) ServiceResources() pulumi.StringA return o.ApplyT(func(v *ServiceEndpointPolicyDefinition) pulumi.StringArrayOutput { return v.ServiceResources }).(pulumi.StringArrayOutput) } +// The type of the resource. +func (o ServiceEndpointPolicyDefinitionOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceEndpointPolicyDefinition) pulumi.StringPtrOutput { return v.Type }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterOutputType(ServiceEndpointPolicyDefinitionOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/staticMember.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/staticMember.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/staticMember.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/staticMember.go index 9f530b8d..946580cf 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/staticMember.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/staticMember.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // StaticMember Item. -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-02-01-preview type StaticMember struct { pulumi.CustomResourceState @@ -20,6 +21,10 @@ type StaticMember struct { Etag pulumi.StringOutput `pulumi:"etag"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` + // The provisioning state of the scope assignment resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Resource region. + Region pulumi.StringOutput `pulumi:"region"` // Resource Id. ResourceId pulumi.StringPtrOutput `pulumi:"resourceId"` // The system metadata related to this resource. @@ -66,8 +71,21 @@ func NewStaticMember(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:StaticMember"), }, + { + Type: pulumi.String("azure-native:network/v20221101:StaticMember"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:StaticMember"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:StaticMember"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:StaticMember"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource StaticMember err := ctx.RegisterResource("azure-native:network:StaticMember", name, args, &resource, opts...) if err != nil { @@ -173,6 +191,16 @@ func (o StaticMemberOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *StaticMember) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// The provisioning state of the scope assignment resource. +func (o StaticMemberOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *StaticMember) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// Resource region. +func (o StaticMemberOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *StaticMember) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + // Resource Id. func (o StaticMemberOutput) ResourceId() pulumi.StringPtrOutput { return o.ApplyT(func(v *StaticMember) pulumi.StringPtrOutput { return v.ResourceId }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subnet.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subnet.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subnet.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subnet.go index c9460063..8c684ab9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subnet.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subnet.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Subnet in a virtual network resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type Subnet struct { pulumi.CustomResourceState @@ -21,7 +22,7 @@ type Subnet struct { // List of address prefixes for the subnet. AddressPrefixes pulumi.StringArrayOutput `pulumi:"addressPrefixes"` // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations ApplicationGatewayIPConfigurationResponseArrayOutput `pulumi:"applicationGatewayIpConfigurations"` + ApplicationGatewayIPConfigurations ApplicationGatewayIPConfigurationResponseArrayOutput `pulumi:"applicationGatewayIPConfigurations"` // An array of references to the delegations on the subnet. Delegations DelegationResponseArrayOutput `pulumi:"delegations"` // A unique read-only string that changes whenever the resource is updated. @@ -75,10 +76,10 @@ func NewSubnet(ctx *pulumi.Context, if args.VirtualNetworkName == nil { return nil, errors.New("invalid value for required argument 'VirtualNetworkName'") } - if isZero(args.PrivateEndpointNetworkPolicies) { - args.PrivateEndpointNetworkPolicies = pulumi.StringPtr("Enabled") + if args.PrivateEndpointNetworkPolicies == nil { + args.PrivateEndpointNetworkPolicies = pulumi.StringPtr("Disabled") } - if isZero(args.PrivateLinkServiceNetworkPolicies) { + if args.PrivateLinkServiceNetworkPolicies == nil { args.PrivateLinkServiceNetworkPolicies = pulumi.StringPtr("Enabled") } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -214,8 +215,21 @@ func NewSubnet(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:Subnet"), }, + { + Type: pulumi.String("azure-native:network/v20221101:Subnet"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:Subnet"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:Subnet"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:Subnet"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Subnet err := ctx.RegisterResource("azure-native:network:Subnet", name, args, &resource, opts...) if err != nil { @@ -253,7 +267,7 @@ type subnetArgs struct { // List of address prefixes for the subnet. AddressPrefixes []string `pulumi:"addressPrefixes"` // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations []ApplicationGatewayIPConfiguration `pulumi:"applicationGatewayIpConfigurations"` + ApplicationGatewayIPConfigurations []ApplicationGatewayIPConfiguration `pulumi:"applicationGatewayIPConfigurations"` // An array of references to the delegations on the subnet. Delegations []Delegation `pulumi:"delegations"` // Resource ID. @@ -293,7 +307,7 @@ type SubnetArgs struct { // List of address prefixes for the subnet. AddressPrefixes pulumi.StringArrayInput // Application gateway IP configurations of virtual network resource. - ApplicationGatewayIpConfigurations ApplicationGatewayIPConfigurationArrayInput + ApplicationGatewayIPConfigurations ApplicationGatewayIPConfigurationArrayInput // An array of references to the delegations on the subnet. Delegations DelegationArrayInput // Resource ID. @@ -374,9 +388,9 @@ func (o SubnetOutput) AddressPrefixes() pulumi.StringArrayOutput { } // Application gateway IP configurations of virtual network resource. -func (o SubnetOutput) ApplicationGatewayIpConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { +func (o SubnetOutput) ApplicationGatewayIPConfigurations() ApplicationGatewayIPConfigurationResponseArrayOutput { return o.ApplyT(func(v *Subnet) ApplicationGatewayIPConfigurationResponseArrayOutput { - return v.ApplicationGatewayIpConfigurations + return v.ApplicationGatewayIPConfigurations }).(ApplicationGatewayIPConfigurationResponseArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subscriptionNetworkManagerConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subscriptionNetworkManagerConnection.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subscriptionNetworkManagerConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subscriptionNetworkManagerConnection.go index 69911506..4853250a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/subscriptionNetworkManagerConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/subscriptionNetworkManagerConnection.go @@ -7,15 +7,16 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Network Manager Connection resource -// API Version: 2022-02-01-preview. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-02-01-preview type SubscriptionNetworkManagerConnection struct { pulumi.CustomResourceState - // A description of the scope connection. + // A description of the network manager connection. Description pulumi.StringPtrOutput `pulumi:"description"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` @@ -58,8 +59,21 @@ func NewSubscriptionNetworkManagerConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:SubscriptionNetworkManagerConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:SubscriptionNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:SubscriptionNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:SubscriptionNetworkManagerConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:SubscriptionNetworkManagerConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource SubscriptionNetworkManagerConnection err := ctx.RegisterResource("azure-native:network:SubscriptionNetworkManagerConnection", name, args, &resource, opts...) if err != nil { @@ -92,7 +106,7 @@ func (SubscriptionNetworkManagerConnectionState) ElementType() reflect.Type { } type subscriptionNetworkManagerConnectionArgs struct { - // A description of the scope connection. + // A description of the network manager connection. Description *string `pulumi:"description"` // Name for the network manager connection. NetworkManagerConnectionName *string `pulumi:"networkManagerConnectionName"` @@ -102,7 +116,7 @@ type subscriptionNetworkManagerConnectionArgs struct { // The set of arguments for constructing a SubscriptionNetworkManagerConnection resource. type SubscriptionNetworkManagerConnectionArgs struct { - // A description of the scope connection. + // A description of the network manager connection. Description pulumi.StringPtrInput // Name for the network manager connection. NetworkManagerConnectionName pulumi.StringPtrInput @@ -147,7 +161,7 @@ func (o SubscriptionNetworkManagerConnectionOutput) ToSubscriptionNetworkManager return o } -// A description of the scope connection. +// A description of the network manager connection. func (o SubscriptionNetworkManagerConnectionOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SubscriptionNetworkManagerConnection) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/trafficManagerUserMetricsKey.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/trafficManagerUserMetricsKey.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/trafficManagerUserMetricsKey.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/trafficManagerUserMetricsKey.go index bb21159f..eab191b4 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/trafficManagerUserMetricsKey.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/trafficManagerUserMetricsKey.go @@ -7,11 +7,12 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Class representing Traffic Manager User Metrics. -// API Version: 2018-08-01. +// Azure REST API version: 2022-04-01. Prior API version in Azure Native 1.x: 2018-08-01 type TrafficManagerUserMetricsKey struct { pulumi.CustomResourceState @@ -37,11 +38,15 @@ func NewTrafficManagerUserMetricsKey(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20180801:TrafficManagerUserMetricsKey"), }, + { + Type: pulumi.String("azure-native:network/v20220401:TrafficManagerUserMetricsKey"), + }, { Type: pulumi.String("azure-native:network/v20220401preview:TrafficManagerUserMetricsKey"), }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource TrafficManagerUserMetricsKey err := ctx.RegisterResource("azure-native:network:TrafficManagerUserMetricsKey", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRule.go similarity index 55% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRule.go index de0d49da..2cd11be7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRule.go @@ -7,23 +7,39 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Network base rule. -// API Version: 2021-02-01-preview. -// -// Deprecated: Please use one of the variants: DefaultUserRule, UserRule. +// Network security user rule. +// Azure REST API version: 2022-04-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type UserRule struct { pulumi.CustomResourceState + // A description for this rule. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges pulumi.StringArrayOutput `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations AddressPrefixItemResponseArrayOutput `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction pulumi.StringOutput `pulumi:"direction"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Whether the rule is custom or default. + // Expected value is 'Custom'. Kind pulumi.StringOutput `pulumi:"kind"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` + // Network protocol this rule applies to. + Protocol pulumi.StringOutput `pulumi:"protocol"` + // The provisioning state of the security configuration user rule resource. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // The source port ranges. + SourcePortRanges pulumi.StringArrayOutput `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources AddressPrefixItemResponseArrayOutput `pulumi:"sources"` // The system metadata related to this resource. SystemData SystemDataResponseOutput `pulumi:"systemData"` // Resource type. @@ -40,18 +56,25 @@ func NewUserRule(ctx *pulumi.Context, if args.ConfigurationName == nil { return nil, errors.New("invalid value for required argument 'ConfigurationName'") } + if args.Direction == nil { + return nil, errors.New("invalid value for required argument 'Direction'") + } if args.Kind == nil { return nil, errors.New("invalid value for required argument 'Kind'") } if args.NetworkManagerName == nil { return nil, errors.New("invalid value for required argument 'NetworkManagerName'") } + if args.Protocol == nil { + return nil, errors.New("invalid value for required argument 'Protocol'") + } if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } if args.RuleCollectionName == nil { return nil, errors.New("invalid value for required argument 'RuleCollectionName'") } + args.Kind = pulumi.String("Custom") aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:network/v20210201preview:UserRule"), @@ -67,6 +90,7 @@ func NewUserRule(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource UserRule err := ctx.RegisterResource("azure-native:network:UserRule", name, args, &resource, opts...) if err != nil { @@ -99,34 +123,64 @@ func (UserRuleState) ElementType() reflect.Type { } type userRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` + // A description for this rule. + Description *string `pulumi:"description"` + // The destination port ranges. + DestinationPortRanges []string `pulumi:"destinationPortRanges"` + // The destination address prefixes. CIDR or destination IP ranges. + Destinations []AddressPrefixItem `pulumi:"destinations"` + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction string `pulumi:"direction"` // Whether the rule is custom or default. + // Expected value is 'Custom'. Kind string `pulumi:"kind"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` + // Network protocol this rule applies to. + Protocol string `pulumi:"protocol"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // The name of the network manager security Configuration rule collection. RuleCollectionName string `pulumi:"ruleCollectionName"` // The name of the rule. RuleName *string `pulumi:"ruleName"` + // The source port ranges. + SourcePortRanges []string `pulumi:"sourcePortRanges"` + // The CIDR or source IP ranges. + Sources []AddressPrefixItem `pulumi:"sources"` } // The set of arguments for constructing a UserRule resource. type UserRuleArgs struct { - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput + // A description for this rule. + Description pulumi.StringPtrInput + // The destination port ranges. + DestinationPortRanges pulumi.StringArrayInput + // The destination address prefixes. CIDR or destination IP ranges. + Destinations AddressPrefixItemArrayInput + // Indicates if the traffic matched against the rule in inbound or outbound. + Direction pulumi.StringInput // Whether the rule is custom or default. + // Expected value is 'Custom'. Kind pulumi.StringInput // The name of the network manager. NetworkManagerName pulumi.StringInput + // Network protocol this rule applies to. + Protocol pulumi.StringInput // The name of the resource group. ResourceGroupName pulumi.StringInput // The name of the network manager security Configuration rule collection. RuleCollectionName pulumi.StringInput // The name of the rule. RuleName pulumi.StringPtrInput + // The source port ranges. + SourcePortRanges pulumi.StringArrayInput + // The CIDR or source IP ranges. + Sources AddressPrefixItemArrayInput } func (UserRuleArgs) ElementType() reflect.Type { @@ -166,12 +220,33 @@ func (o UserRuleOutput) ToUserRuleOutputWithContext(ctx context.Context) UserRul return o } +// A description for this rule. +func (o UserRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The destination port ranges. +func (o UserRuleOutput) DestinationPortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringArrayOutput { return v.DestinationPortRanges }).(pulumi.StringArrayOutput) +} + +// The destination address prefixes. CIDR or destination IP ranges. +func (o UserRuleOutput) Destinations() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v *UserRule) AddressPrefixItemResponseArrayOutput { return v.Destinations }).(AddressPrefixItemResponseArrayOutput) +} + +// Indicates if the traffic matched against the rule in inbound or outbound. +func (o UserRuleOutput) Direction() pulumi.StringOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o UserRuleOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } // Whether the rule is custom or default. +// Expected value is 'Custom'. func (o UserRuleOutput) Kind() pulumi.StringOutput { return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) } @@ -181,6 +256,26 @@ func (o UserRuleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// Network protocol this rule applies to. +func (o UserRuleOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) +} + +// The provisioning state of the security configuration user rule resource. +func (o UserRuleOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// The source port ranges. +func (o UserRuleOutput) SourcePortRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserRule) pulumi.StringArrayOutput { return v.SourcePortRanges }).(pulumi.StringArrayOutput) +} + +// The CIDR or source IP ranges. +func (o UserRuleOutput) Sources() AddressPrefixItemResponseArrayOutput { + return o.ApplyT(func(v *UserRule) AddressPrefixItemResponseArrayOutput { return v.Sources }).(AddressPrefixItemResponseArrayOutput) +} + // The system metadata related to this resource. func (o UserRuleOutput) SystemData() SystemDataResponseOutput { return o.ApplyT(func(v *UserRule) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRuleCollection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRuleCollection.go similarity index 89% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRuleCollection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRuleCollection.go index ce67696b..940927b9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/userRuleCollection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/userRuleCollection.go @@ -7,21 +7,20 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Defines the rule collection. -// API Version: 2021-02-01-preview. +// Defines the user rule collection. +// Azure REST API version: 2022-04-01-preview. Prior API version in Azure Native 1.x: 2021-02-01-preview type UserRuleCollection struct { pulumi.CustomResourceState // Groups for configuration AppliesToGroups NetworkManagerSecurityGroupItemResponseArrayOutput `pulumi:"appliesToGroups"` - // A description of the rule collection. + // A description of the user rule collection. Description pulumi.StringPtrOutput `pulumi:"description"` - // A display name of the rule collection. - DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource name. @@ -41,6 +40,9 @@ func NewUserRuleCollection(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } + if args.AppliesToGroups == nil { + return nil, errors.New("invalid value for required argument 'AppliesToGroups'") + } if args.ConfigurationName == nil { return nil, errors.New("invalid value for required argument 'ConfigurationName'") } @@ -65,6 +67,7 @@ func NewUserRuleCollection(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource UserRuleCollection err := ctx.RegisterResource("azure-native:network:UserRuleCollection", name, args, &resource, opts...) if err != nil { @@ -99,12 +102,10 @@ func (UserRuleCollectionState) ElementType() reflect.Type { type userRuleCollectionArgs struct { // Groups for configuration AppliesToGroups []NetworkManagerSecurityGroupItem `pulumi:"appliesToGroups"` - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName string `pulumi:"configurationName"` - // A description of the rule collection. + // A description of the user rule collection. Description *string `pulumi:"description"` - // A display name of the rule collection. - DisplayName *string `pulumi:"displayName"` // The name of the network manager. NetworkManagerName string `pulumi:"networkManagerName"` // The name of the resource group. @@ -117,12 +118,10 @@ type userRuleCollectionArgs struct { type UserRuleCollectionArgs struct { // Groups for configuration AppliesToGroups NetworkManagerSecurityGroupItemArrayInput - // The name of the network manager security Configuration. + // The name of the network manager Security Configuration. ConfigurationName pulumi.StringInput - // A description of the rule collection. + // A description of the user rule collection. Description pulumi.StringPtrInput - // A display name of the rule collection. - DisplayName pulumi.StringPtrInput // The name of the network manager. NetworkManagerName pulumi.StringInput // The name of the resource group. @@ -175,16 +174,11 @@ func (o UserRuleCollectionOutput) AppliesToGroups() NetworkManagerSecurityGroupI }).(NetworkManagerSecurityGroupItemResponseArrayOutput) } -// A description of the rule collection. +// A description of the user rule collection. func (o UserRuleCollectionOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *UserRuleCollection) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } -// A display name of the rule collection. -func (o UserRuleCollectionOutput) DisplayName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *UserRuleCollection) pulumi.StringPtrOutput { return v.DisplayName }).(pulumi.StringPtrOutput) -} - // A unique read-only string that changes whenever the resource is updated. func (o UserRuleCollectionOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *UserRuleCollection) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualApplianceSite.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualApplianceSite.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualApplianceSite.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualApplianceSite.go index 97673ca4..571dd6ed 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualApplianceSite.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualApplianceSite.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Virtual Appliance Site resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualApplianceSite struct { pulumi.CustomResourceState @@ -83,8 +84,21 @@ func NewVirtualApplianceSite(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualApplianceSite"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualApplianceSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualApplianceSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualApplianceSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualApplianceSite"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualApplianceSite err := ctx.RegisterResource("azure-native:network:VirtualApplianceSite", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHub.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHub.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHub.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHub.go index 2326483e..10eee923 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHub.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHub.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VirtualHub Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualHub struct { pulumi.CustomResourceState @@ -28,16 +29,24 @@ type VirtualHub struct { Etag pulumi.StringOutput `pulumi:"etag"` // The expressRouteGateway associated with this VirtualHub. ExpressRouteGateway SubResourceResponsePtrOutput `pulumi:"expressRouteGateway"` + // The hubRoutingPreference of this VirtualHub. + HubRoutingPreference pulumi.StringPtrOutput `pulumi:"hubRoutingPreference"` // List of references to IpConfigurations. IpConfigurations SubResourceResponseArrayOutput `pulumi:"ipConfigurations"` + // Kind of service virtual hub. This is metadata used for the Azure portal experience for Route Server. + Kind pulumi.StringOutput `pulumi:"kind"` // Resource location. Location pulumi.StringOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` // The P2SVpnGateway associated with this VirtualHub. P2SVpnGateway SubResourceResponsePtrOutput `pulumi:"p2SVpnGateway"` + // The preferred gateway to route on-prem traffic + PreferredRoutingGateway pulumi.StringPtrOutput `pulumi:"preferredRoutingGateway"` // The provisioning state of the virtual hub resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // List of references to RouteMaps. + RouteMaps SubResourceResponseArrayOutput `pulumi:"routeMaps"` // The routeTable associated with this virtual hub. RouteTable VirtualHubRouteTableResponsePtrOutput `pulumi:"routeTable"` // The routing state. @@ -56,6 +65,8 @@ type VirtualHub struct { VirtualHubRouteTableV2s VirtualHubRouteTableV2ResponseArrayOutput `pulumi:"virtualHubRouteTableV2s"` // VirtualRouter ASN. VirtualRouterAsn pulumi.Float64PtrOutput `pulumi:"virtualRouterAsn"` + // The VirtualHub Router autoscale configuration. + VirtualRouterAutoScaleConfiguration VirtualRouterAutoScaleConfigurationResponsePtrOutput `pulumi:"virtualRouterAutoScaleConfiguration"` // VirtualRouter IPs. VirtualRouterIps pulumi.StringArrayOutput `pulumi:"virtualRouterIps"` // The VirtualWAN to which the VirtualHub belongs. @@ -165,8 +176,21 @@ func NewVirtualHub(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualHub"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualHub"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualHub"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualHub"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualHub"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualHub err := ctx.RegisterResource("azure-native:network:VirtualHub", name, args, &resource, opts...) if err != nil { @@ -207,12 +231,16 @@ type virtualHubArgs struct { AzureFirewall *SubResource `pulumi:"azureFirewall"` // The expressRouteGateway associated with this VirtualHub. ExpressRouteGateway *SubResource `pulumi:"expressRouteGateway"` + // The hubRoutingPreference of this VirtualHub. + HubRoutingPreference *string `pulumi:"hubRoutingPreference"` // Resource ID. Id *string `pulumi:"id"` // Resource location. Location *string `pulumi:"location"` // The P2SVpnGateway associated with this VirtualHub. P2SVpnGateway *SubResource `pulumi:"p2SVpnGateway"` + // The preferred gateway to route on-prem traffic + PreferredRoutingGateway *string `pulumi:"preferredRoutingGateway"` // The resource group name of the VirtualHub. ResourceGroupName string `pulumi:"resourceGroupName"` // The routeTable associated with this virtual hub. @@ -231,6 +259,8 @@ type virtualHubArgs struct { VirtualHubRouteTableV2s []VirtualHubRouteTableV2Type `pulumi:"virtualHubRouteTableV2s"` // VirtualRouter ASN. VirtualRouterAsn *float64 `pulumi:"virtualRouterAsn"` + // The VirtualHub Router autoscale configuration. + VirtualRouterAutoScaleConfiguration *VirtualRouterAutoScaleConfiguration `pulumi:"virtualRouterAutoScaleConfiguration"` // VirtualRouter IPs. VirtualRouterIps []string `pulumi:"virtualRouterIps"` // The VirtualWAN to which the VirtualHub belongs. @@ -249,12 +279,16 @@ type VirtualHubArgs struct { AzureFirewall SubResourcePtrInput // The expressRouteGateway associated with this VirtualHub. ExpressRouteGateway SubResourcePtrInput + // The hubRoutingPreference of this VirtualHub. + HubRoutingPreference pulumi.StringPtrInput // Resource ID. Id pulumi.StringPtrInput // Resource location. Location pulumi.StringPtrInput // The P2SVpnGateway associated with this VirtualHub. P2SVpnGateway SubResourcePtrInput + // The preferred gateway to route on-prem traffic + PreferredRoutingGateway pulumi.StringPtrInput // The resource group name of the VirtualHub. ResourceGroupName pulumi.StringInput // The routeTable associated with this virtual hub. @@ -273,6 +307,8 @@ type VirtualHubArgs struct { VirtualHubRouteTableV2s VirtualHubRouteTableV2TypeArrayInput // VirtualRouter ASN. VirtualRouterAsn pulumi.Float64PtrInput + // The VirtualHub Router autoscale configuration. + VirtualRouterAutoScaleConfiguration VirtualRouterAutoScaleConfigurationPtrInput // VirtualRouter IPs. VirtualRouterIps pulumi.StringArrayInput // The VirtualWAN to which the VirtualHub belongs. @@ -348,11 +384,21 @@ func (o VirtualHubOutput) ExpressRouteGateway() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualHub) SubResourceResponsePtrOutput { return v.ExpressRouteGateway }).(SubResourceResponsePtrOutput) } +// The hubRoutingPreference of this VirtualHub. +func (o VirtualHubOutput) HubRoutingPreference() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualHub) pulumi.StringPtrOutput { return v.HubRoutingPreference }).(pulumi.StringPtrOutput) +} + // List of references to IpConfigurations. func (o VirtualHubOutput) IpConfigurations() SubResourceResponseArrayOutput { return o.ApplyT(func(v *VirtualHub) SubResourceResponseArrayOutput { return v.IpConfigurations }).(SubResourceResponseArrayOutput) } +// Kind of service virtual hub. This is metadata used for the Azure portal experience for Route Server. +func (o VirtualHubOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualHub) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + // Resource location. func (o VirtualHubOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *VirtualHub) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) @@ -368,11 +414,21 @@ func (o VirtualHubOutput) P2SVpnGateway() SubResourceResponsePtrOutput { return o.ApplyT(func(v *VirtualHub) SubResourceResponsePtrOutput { return v.P2SVpnGateway }).(SubResourceResponsePtrOutput) } +// The preferred gateway to route on-prem traffic +func (o VirtualHubOutput) PreferredRoutingGateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualHub) pulumi.StringPtrOutput { return v.PreferredRoutingGateway }).(pulumi.StringPtrOutput) +} + // The provisioning state of the virtual hub resource. func (o VirtualHubOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualHub) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// List of references to RouteMaps. +func (o VirtualHubOutput) RouteMaps() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *VirtualHub) SubResourceResponseArrayOutput { return v.RouteMaps }).(SubResourceResponseArrayOutput) +} + // The routeTable associated with this virtual hub. func (o VirtualHubOutput) RouteTable() VirtualHubRouteTableResponsePtrOutput { return o.ApplyT(func(v *VirtualHub) VirtualHubRouteTableResponsePtrOutput { return v.RouteTable }).(VirtualHubRouteTableResponsePtrOutput) @@ -418,6 +474,13 @@ func (o VirtualHubOutput) VirtualRouterAsn() pulumi.Float64PtrOutput { return o.ApplyT(func(v *VirtualHub) pulumi.Float64PtrOutput { return v.VirtualRouterAsn }).(pulumi.Float64PtrOutput) } +// The VirtualHub Router autoscale configuration. +func (o VirtualHubOutput) VirtualRouterAutoScaleConfiguration() VirtualRouterAutoScaleConfigurationResponsePtrOutput { + return o.ApplyT(func(v *VirtualHub) VirtualRouterAutoScaleConfigurationResponsePtrOutput { + return v.VirtualRouterAutoScaleConfiguration + }).(VirtualRouterAutoScaleConfigurationResponsePtrOutput) +} + // VirtualRouter IPs. func (o VirtualHubOutput) VirtualRouterIps() pulumi.StringArrayOutput { return o.ApplyT(func(v *VirtualHub) pulumi.StringArrayOutput { return v.VirtualRouterIps }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubBgpConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubBgpConnection.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubBgpConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubBgpConnection.go index 3839d23d..275e95be 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubBgpConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubBgpConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Virtual Appliance Site resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualHubBgpConnection struct { pulumi.CustomResourceState @@ -20,6 +21,8 @@ type VirtualHubBgpConnection struct { ConnectionState pulumi.StringOutput `pulumi:"connectionState"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` + // The reference to the HubVirtualNetworkConnection resource. + HubVirtualNetworkConnection SubResourceResponsePtrOutput `pulumi:"hubVirtualNetworkConnection"` // Name of the connection. Name pulumi.StringPtrOutput `pulumi:"name"` // Peer ASN. @@ -85,8 +88,21 @@ func NewVirtualHubBgpConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualHubBgpConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualHubBgpConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualHubBgpConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualHubBgpConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualHubBgpConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualHubBgpConnection err := ctx.RegisterResource("azure-native:network:VirtualHubBgpConnection", name, args, &resource, opts...) if err != nil { @@ -121,6 +137,8 @@ func (VirtualHubBgpConnectionState) ElementType() reflect.Type { type virtualHubBgpConnectionArgs struct { // The name of the connection. ConnectionName *string `pulumi:"connectionName"` + // The reference to the HubVirtualNetworkConnection resource. + HubVirtualNetworkConnection *SubResource `pulumi:"hubVirtualNetworkConnection"` // Resource ID. Id *string `pulumi:"id"` // Name of the connection. @@ -139,6 +157,8 @@ type virtualHubBgpConnectionArgs struct { type VirtualHubBgpConnectionArgs struct { // The name of the connection. ConnectionName pulumi.StringPtrInput + // The reference to the HubVirtualNetworkConnection resource. + HubVirtualNetworkConnection SubResourcePtrInput // Resource ID. Id pulumi.StringPtrInput // Name of the connection. @@ -200,6 +220,11 @@ func (o VirtualHubBgpConnectionOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *VirtualHubBgpConnection) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) } +// The reference to the HubVirtualNetworkConnection resource. +func (o VirtualHubBgpConnectionOutput) HubVirtualNetworkConnection() SubResourceResponsePtrOutput { + return o.ApplyT(func(v *VirtualHubBgpConnection) SubResourceResponsePtrOutput { return v.HubVirtualNetworkConnection }).(SubResourceResponsePtrOutput) +} + // Name of the connection. func (o VirtualHubBgpConnectionOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualHubBgpConnection) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubIpConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubIpConfiguration.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubIpConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubIpConfiguration.go index e4fbf11d..4694f8b0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubIpConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubIpConfiguration.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // IpConfigurations. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualHubIpConfiguration struct { pulumi.CustomResourceState @@ -90,8 +91,21 @@ func NewVirtualHubIpConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualHubIpConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualHubIpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualHubIpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualHubIpConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualHubIpConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualHubIpConfiguration err := ctx.RegisterResource("azure-native:network:VirtualHubIpConfiguration", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubRouteTableV2.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubRouteTableV2.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubRouteTableV2.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubRouteTableV2.go index 2ead9d7a..c5129b90 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualHubRouteTableV2.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualHubRouteTableV2.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VirtualHubRouteTableV2 Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualHubRouteTableV2 struct { pulumi.CustomResourceState @@ -96,8 +97,21 @@ func NewVirtualHubRouteTableV2(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualHubRouteTableV2"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualHubRouteTableV2"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualHubRouteTableV2"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualHubRouteTableV2"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualHubRouteTableV2"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualHubRouteTableV2 err := ctx.RegisterResource("azure-native:network:VirtualHubRouteTableV2", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetwork.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetwork.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetwork.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetwork.go index 20c412cf..aa603014 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetwork.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetwork.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Virtual Network resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualNetwork struct { pulumi.CustomResourceState @@ -28,10 +29,16 @@ type VirtualNetwork struct { EnableDdosProtection pulumi.BoolPtrOutput `pulumi:"enableDdosProtection"` // Indicates if VM protection is enabled for all the subnets in the virtual network. EnableVmProtection pulumi.BoolPtrOutput `pulumi:"enableVmProtection"` + // Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. + Encryption VirtualNetworkEncryptionResponsePtrOutput `pulumi:"encryption"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // The extended location of the virtual network. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` + // A collection of references to flow log resources. + FlowLogs FlowLogResponseArrayOutput `pulumi:"flowLogs"` + // The FlowTimeout value (in minutes) for the Virtual Network + FlowTimeoutInMinutes pulumi.IntPtrOutput `pulumi:"flowTimeoutInMinutes"` // Array of IpAllocation which reference this VNET. IpAllocations SubResourceResponseArrayOutput `pulumi:"ipAllocations"` // Resource location. @@ -62,10 +69,10 @@ func NewVirtualNetwork(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } - if isZero(args.EnableDdosProtection) { + if args.EnableDdosProtection == nil { args.EnableDdosProtection = pulumi.BoolPtr(false) } - if isZero(args.EnableVmProtection) { + if args.EnableVmProtection == nil { args.EnableVmProtection = pulumi.BoolPtr(false) } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -201,8 +208,21 @@ func NewVirtualNetwork(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetwork"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetwork"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetwork"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetwork"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetwork"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetwork err := ctx.RegisterResource("azure-native:network:VirtualNetwork", name, args, &resource, opts...) if err != nil { @@ -247,8 +267,12 @@ type virtualNetworkArgs struct { EnableDdosProtection *bool `pulumi:"enableDdosProtection"` // Indicates if VM protection is enabled for all the subnets in the virtual network. EnableVmProtection *bool `pulumi:"enableVmProtection"` + // Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. + Encryption *VirtualNetworkEncryption `pulumi:"encryption"` // The extended location of the virtual network. ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` + // The FlowTimeout value (in minutes) for the Virtual Network + FlowTimeoutInMinutes *int `pulumi:"flowTimeoutInMinutes"` // Resource ID. Id *string `pulumi:"id"` // Array of IpAllocation which reference this VNET. @@ -281,8 +305,12 @@ type VirtualNetworkArgs struct { EnableDdosProtection pulumi.BoolPtrInput // Indicates if VM protection is enabled for all the subnets in the virtual network. EnableVmProtection pulumi.BoolPtrInput + // Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. + Encryption VirtualNetworkEncryptionPtrInput // The extended location of the virtual network. ExtendedLocation ExtendedLocationPtrInput + // The FlowTimeout value (in minutes) for the Virtual Network + FlowTimeoutInMinutes pulumi.IntPtrInput // Resource ID. Id pulumi.StringPtrInput // Array of IpAllocation which reference this VNET. @@ -368,6 +396,11 @@ func (o VirtualNetworkOutput) EnableVmProtection() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetwork) pulumi.BoolPtrOutput { return v.EnableVmProtection }).(pulumi.BoolPtrOutput) } +// Indicates if encryption is enabled on virtual network and if VM without encryption is allowed in encrypted VNet. +func (o VirtualNetworkOutput) Encryption() VirtualNetworkEncryptionResponsePtrOutput { + return o.ApplyT(func(v *VirtualNetwork) VirtualNetworkEncryptionResponsePtrOutput { return v.Encryption }).(VirtualNetworkEncryptionResponsePtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o VirtualNetworkOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetwork) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -378,6 +411,16 @@ func (o VirtualNetworkOutput) ExtendedLocation() ExtendedLocationResponsePtrOutp return o.ApplyT(func(v *VirtualNetwork) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) } +// A collection of references to flow log resources. +func (o VirtualNetworkOutput) FlowLogs() FlowLogResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetwork) FlowLogResponseArrayOutput { return v.FlowLogs }).(FlowLogResponseArrayOutput) +} + +// The FlowTimeout value (in minutes) for the Virtual Network +func (o VirtualNetworkOutput) FlowTimeoutInMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualNetwork) pulumi.IntPtrOutput { return v.FlowTimeoutInMinutes }).(pulumi.IntPtrOutput) +} + // Array of IpAllocation which reference this VNET. func (o VirtualNetworkOutput) IpAllocations() SubResourceResponseArrayOutput { return o.ApplyT(func(v *VirtualNetwork) SubResourceResponseArrayOutput { return v.IpAllocations }).(SubResourceResponseArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGateway.go similarity index 77% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGateway.go index 5061692b..4aaaffe7 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGateway.go @@ -7,23 +7,34 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A common class for general resource information. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualNetworkGateway struct { pulumi.CustomResourceState // ActiveActive flag. ActiveActive pulumi.BoolPtrOutput `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState pulumi.StringPtrOutput `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic pulumi.BoolPtrOutput `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic pulumi.BoolPtrOutput `pulumi:"allowVirtualWanTraffic"` // Virtual network gateway's BGP speaker settings. BgpSettings BgpSettingsResponsePtrOutput `pulumi:"bgpSettings"` // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. CustomRoutes AddressSpaceResponsePtrOutput `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection pulumi.BoolPtrOutput `pulumi:"disableIPSecReplayProtection"` // Whether BGP is enabled for this virtual network gateway or not. EnableBgp pulumi.BoolPtrOutput `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat pulumi.BoolPtrOutput `pulumi:"enableBgpRouteTranslationForNat"` // Whether dns forwarding is enabled or not. EnableDnsForwarding pulumi.BoolPtrOutput `pulumi:"enableDnsForwarding"` // Whether private IP needs to be enabled on this gateway for connections or not. @@ -44,6 +55,8 @@ type VirtualNetworkGateway struct { Location pulumi.StringPtrOutput `pulumi:"location"` // Resource name. Name pulumi.StringOutput `pulumi:"name"` + // NatRules for virtual network gateway. + NatRules VirtualNetworkGatewayNatRuleResponseArrayOutput `pulumi:"natRules"` // The provisioning state of the virtual network gateway resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` // The resource GUID property of the virtual network gateway resource. @@ -56,6 +69,8 @@ type VirtualNetworkGateway struct { Type pulumi.StringOutput `pulumi:"type"` // Customer vnet resource id. VirtualNetworkGateway of type local gateway is associated with the customer vnet. VNetExtendedLocationResourceId pulumi.StringPtrOutput `pulumi:"vNetExtendedLocationResourceId"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups VirtualNetworkGatewayPolicyGroupResponseArrayOutput `pulumi:"virtualNetworkGatewayPolicyGroups"` // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. VpnClientConfiguration VpnClientConfigurationResponsePtrOutput `pulumi:"vpnClientConfiguration"` // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. @@ -204,8 +219,21 @@ func NewVirtualNetworkGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetworkGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetworkGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetworkGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkGateway err := ctx.RegisterResource("azure-native:network:VirtualNetworkGateway", name, args, &resource, opts...) if err != nil { @@ -240,12 +268,22 @@ func (VirtualNetworkGatewayState) ElementType() reflect.Type { type virtualNetworkGatewayArgs struct { // ActiveActive flag. ActiveActive *bool `pulumi:"activeActive"` + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState *string `pulumi:"adminState"` + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic *bool `pulumi:"allowRemoteVnetTraffic"` + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic *bool `pulumi:"allowVirtualWanTraffic"` // Virtual network gateway's BGP speaker settings. BgpSettings *BgpSettings `pulumi:"bgpSettings"` // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. CustomRoutes *AddressSpace `pulumi:"customRoutes"` + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection *bool `pulumi:"disableIPSecReplayProtection"` // Whether BGP is enabled for this virtual network gateway or not. EnableBgp *bool `pulumi:"enableBgp"` + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` // Whether dns forwarding is enabled or not. EnableDnsForwarding *bool `pulumi:"enableDnsForwarding"` // Whether private IP needs to be enabled on this gateway for connections or not. @@ -262,6 +300,8 @@ type virtualNetworkGatewayArgs struct { IpConfigurations []VirtualNetworkGatewayIPConfiguration `pulumi:"ipConfigurations"` // Resource location. Location *string `pulumi:"location"` + // NatRules for virtual network gateway. + NatRules []VirtualNetworkGatewayNatRuleType `pulumi:"natRules"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. @@ -272,6 +312,8 @@ type virtualNetworkGatewayArgs struct { VNetExtendedLocationResourceId *string `pulumi:"vNetExtendedLocationResourceId"` // The name of the virtual network gateway. VirtualNetworkGatewayName *string `pulumi:"virtualNetworkGatewayName"` + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups []VirtualNetworkGatewayPolicyGroup `pulumi:"virtualNetworkGatewayPolicyGroups"` // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. VpnClientConfiguration *VpnClientConfiguration `pulumi:"vpnClientConfiguration"` // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. @@ -284,12 +326,22 @@ type virtualNetworkGatewayArgs struct { type VirtualNetworkGatewayArgs struct { // ActiveActive flag. ActiveActive pulumi.BoolPtrInput + // Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet + AdminState pulumi.StringPtrInput + // Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. + AllowRemoteVnetTraffic pulumi.BoolPtrInput + // Configures this gateway to accept traffic from remote Virtual WAN networks. + AllowVirtualWanTraffic pulumi.BoolPtrInput // Virtual network gateway's BGP speaker settings. BgpSettings BgpSettingsPtrInput // The reference to the address space resource which represents the custom routes address space specified by the customer for virtual network gateway and VpnClient. CustomRoutes AddressSpacePtrInput + // disableIPSecReplayProtection flag. + DisableIPSecReplayProtection pulumi.BoolPtrInput // Whether BGP is enabled for this virtual network gateway or not. EnableBgp pulumi.BoolPtrInput + // EnableBgpRouteTranslationForNat flag. + EnableBgpRouteTranslationForNat pulumi.BoolPtrInput // Whether dns forwarding is enabled or not. EnableDnsForwarding pulumi.BoolPtrInput // Whether private IP needs to be enabled on this gateway for connections or not. @@ -306,6 +358,8 @@ type VirtualNetworkGatewayArgs struct { IpConfigurations VirtualNetworkGatewayIPConfigurationArrayInput // Resource location. Location pulumi.StringPtrInput + // NatRules for virtual network gateway. + NatRules VirtualNetworkGatewayNatRuleTypeArrayInput // The name of the resource group. ResourceGroupName pulumi.StringInput // The reference to the VirtualNetworkGatewaySku resource which represents the SKU selected for Virtual network gateway. @@ -316,6 +370,8 @@ type VirtualNetworkGatewayArgs struct { VNetExtendedLocationResourceId pulumi.StringPtrInput // The name of the virtual network gateway. VirtualNetworkGatewayName pulumi.StringPtrInput + // The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. + VirtualNetworkGatewayPolicyGroups VirtualNetworkGatewayPolicyGroupArrayInput // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. VpnClientConfiguration VpnClientConfigurationPtrInput // The generation for this VirtualNetworkGateway. Must be None if gatewayType is not VPN. @@ -366,6 +422,21 @@ func (o VirtualNetworkGatewayOutput) ActiveActive() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.ActiveActive }).(pulumi.BoolPtrOutput) } +// Property to indicate if the Express Route Gateway serves traffic when there are multiple Express Route Gateways in the vnet +func (o VirtualNetworkGatewayOutput) AdminState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.StringPtrOutput { return v.AdminState }).(pulumi.StringPtrOutput) +} + +// Configure this gateway to accept traffic from other Azure Virtual Networks. This configuration does not support connectivity to Azure Virtual WAN. +func (o VirtualNetworkGatewayOutput) AllowRemoteVnetTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.AllowRemoteVnetTraffic }).(pulumi.BoolPtrOutput) +} + +// Configures this gateway to accept traffic from remote Virtual WAN networks. +func (o VirtualNetworkGatewayOutput) AllowVirtualWanTraffic() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.AllowVirtualWanTraffic }).(pulumi.BoolPtrOutput) +} + // Virtual network gateway's BGP speaker settings. func (o VirtualNetworkGatewayOutput) BgpSettings() BgpSettingsResponsePtrOutput { return o.ApplyT(func(v *VirtualNetworkGateway) BgpSettingsResponsePtrOutput { return v.BgpSettings }).(BgpSettingsResponsePtrOutput) @@ -376,11 +447,21 @@ func (o VirtualNetworkGatewayOutput) CustomRoutes() AddressSpaceResponsePtrOutpu return o.ApplyT(func(v *VirtualNetworkGateway) AddressSpaceResponsePtrOutput { return v.CustomRoutes }).(AddressSpaceResponsePtrOutput) } +// disableIPSecReplayProtection flag. +func (o VirtualNetworkGatewayOutput) DisableIPSecReplayProtection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.DisableIPSecReplayProtection }).(pulumi.BoolPtrOutput) +} + // Whether BGP is enabled for this virtual network gateway or not. func (o VirtualNetworkGatewayOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.EnableBgp }).(pulumi.BoolPtrOutput) } +// EnableBgpRouteTranslationForNat flag. +func (o VirtualNetworkGatewayOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + // Whether dns forwarding is enabled or not. func (o VirtualNetworkGatewayOutput) EnableDnsForwarding() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.BoolPtrOutput { return v.EnableDnsForwarding }).(pulumi.BoolPtrOutput) @@ -433,6 +514,11 @@ func (o VirtualNetworkGatewayOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// NatRules for virtual network gateway. +func (o VirtualNetworkGatewayOutput) NatRules() VirtualNetworkGatewayNatRuleResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) VirtualNetworkGatewayNatRuleResponseArrayOutput { return v.NatRules }).(VirtualNetworkGatewayNatRuleResponseArrayOutput) +} + // The provisioning state of the virtual network gateway resource. func (o VirtualNetworkGatewayOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) @@ -463,6 +549,13 @@ func (o VirtualNetworkGatewayOutput) VNetExtendedLocationResourceId() pulumi.Str return o.ApplyT(func(v *VirtualNetworkGateway) pulumi.StringPtrOutput { return v.VNetExtendedLocationResourceId }).(pulumi.StringPtrOutput) } +// The reference to the VirtualNetworkGatewayPolicyGroup resource which represents the available VirtualNetworkGatewayPolicyGroup for the gateway. +func (o VirtualNetworkGatewayOutput) VirtualNetworkGatewayPolicyGroups() VirtualNetworkGatewayPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGateway) VirtualNetworkGatewayPolicyGroupResponseArrayOutput { + return v.VirtualNetworkGatewayPolicyGroups + }).(VirtualNetworkGatewayPolicyGroupResponseArrayOutput) +} + // The reference to the VpnClientConfiguration resource which represents the P2S VpnClient configurations. func (o VirtualNetworkGatewayOutput) VpnClientConfiguration() VpnClientConfigurationResponsePtrOutput { return o.ApplyT(func(v *VirtualNetworkGateway) VpnClientConfigurationResponsePtrOutput { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayConnection.go similarity index 86% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayConnection.go index 92065936..ecf33cfb 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // A common class for general resource information. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualNetworkGatewayConnection struct { pulumi.CustomResourceState @@ -30,14 +31,22 @@ type VirtualNetworkGatewayConnection struct { DpdTimeoutSeconds pulumi.IntPtrOutput `pulumi:"dpdTimeoutSeconds"` // The egress bytes transferred in this connection. EgressBytesTransferred pulumi.Float64Output `pulumi:"egressBytesTransferred"` + // List of egress NatRules. + EgressNatRules SubResourceResponseArrayOutput `pulumi:"egressNatRules"` // EnableBgp flag. EnableBgp pulumi.BoolPtrOutput `pulumi:"enableBgp"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath pulumi.BoolPtrOutput `pulumi:"enablePrivateLinkFastPath"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Bypass ExpressRoute Gateway for data forwarding. ExpressRouteGatewayBypass pulumi.BoolPtrOutput `pulumi:"expressRouteGatewayBypass"` + // GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. + GatewayCustomBgpIpAddresses GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput `pulumi:"gatewayCustomBgpIpAddresses"` // The ingress bytes transferred in this connection. IngressBytesTransferred pulumi.Float64Output `pulumi:"ingressBytesTransferred"` + // List of ingress NatRules. + IngressNatRules SubResourceResponseArrayOutput `pulumi:"ingressNatRules"` // The IPSec Policies to be considered by this connection. IpsecPolicies IpsecPolicyResponseArrayOutput `pulumi:"ipsecPolicies"` // The reference to local network gateway resource. @@ -220,8 +229,21 @@ func NewVirtualNetworkGatewayConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetworkGatewayConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetworkGatewayConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetworkGatewayConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetworkGatewayConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetworkGatewayConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkGatewayConnection err := ctx.RegisterResource("azure-native:network:VirtualNetworkGatewayConnection", name, args, &resource, opts...) if err != nil { @@ -264,12 +286,20 @@ type virtualNetworkGatewayConnectionArgs struct { ConnectionType string `pulumi:"connectionType"` // The dead peer detection timeout of this connection in seconds. DpdTimeoutSeconds *int `pulumi:"dpdTimeoutSeconds"` + // List of egress NatRules. + EgressNatRules []SubResource `pulumi:"egressNatRules"` // EnableBgp flag. EnableBgp *bool `pulumi:"enableBgp"` + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath *bool `pulumi:"enablePrivateLinkFastPath"` // Bypass ExpressRoute Gateway for data forwarding. ExpressRouteGatewayBypass *bool `pulumi:"expressRouteGatewayBypass"` + // GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. + GatewayCustomBgpIpAddresses []GatewayCustomBgpIpAddressIpConfiguration `pulumi:"gatewayCustomBgpIpAddresses"` // Resource ID. Id *string `pulumi:"id"` + // List of ingress NatRules. + IngressNatRules []SubResource `pulumi:"ingressNatRules"` // The IPSec Policies to be considered by this connection. IpsecPolicies []IpsecPolicy `pulumi:"ipsecPolicies"` // The reference to local network gateway resource. @@ -312,12 +342,20 @@ type VirtualNetworkGatewayConnectionArgs struct { ConnectionType pulumi.StringInput // The dead peer detection timeout of this connection in seconds. DpdTimeoutSeconds pulumi.IntPtrInput + // List of egress NatRules. + EgressNatRules SubResourceArrayInput // EnableBgp flag. EnableBgp pulumi.BoolPtrInput + // Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. + EnablePrivateLinkFastPath pulumi.BoolPtrInput // Bypass ExpressRoute Gateway for data forwarding. ExpressRouteGatewayBypass pulumi.BoolPtrInput + // GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. + GatewayCustomBgpIpAddresses GatewayCustomBgpIpAddressIpConfigurationArrayInput // Resource ID. Id pulumi.StringPtrInput + // List of ingress NatRules. + IngressNatRules SubResourceArrayInput // The IPSec Policies to be considered by this connection. IpsecPolicies IpsecPolicyArrayInput // The reference to local network gateway resource. @@ -420,11 +458,21 @@ func (o VirtualNetworkGatewayConnectionOutput) EgressBytesTransferred() pulumi.F return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.Float64Output { return v.EgressBytesTransferred }).(pulumi.Float64Output) } +// List of egress NatRules. +func (o VirtualNetworkGatewayConnectionOutput) EgressNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayConnection) SubResourceResponseArrayOutput { return v.EgressNatRules }).(SubResourceResponseArrayOutput) +} + // EnableBgp flag. func (o VirtualNetworkGatewayConnectionOutput) EnableBgp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.BoolPtrOutput { return v.EnableBgp }).(pulumi.BoolPtrOutput) } +// Bypass the ExpressRoute gateway when accessing private-links. ExpressRoute FastPath (expressRouteGatewayBypass) must be enabled. +func (o VirtualNetworkGatewayConnectionOutput) EnablePrivateLinkFastPath() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.BoolPtrOutput { return v.EnablePrivateLinkFastPath }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o VirtualNetworkGatewayConnectionOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -435,11 +483,23 @@ func (o VirtualNetworkGatewayConnectionOutput) ExpressRouteGatewayBypass() pulum return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.BoolPtrOutput { return v.ExpressRouteGatewayBypass }).(pulumi.BoolPtrOutput) } +// GatewayCustomBgpIpAddresses to be used for virtual network gateway Connection. +func (o VirtualNetworkGatewayConnectionOutput) GatewayCustomBgpIpAddresses() GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayConnection) GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput { + return v.GatewayCustomBgpIpAddresses + }).(GatewayCustomBgpIpAddressIpConfigurationResponseArrayOutput) +} + // The ingress bytes transferred in this connection. func (o VirtualNetworkGatewayConnectionOutput) IngressBytesTransferred() pulumi.Float64Output { return o.ApplyT(func(v *VirtualNetworkGatewayConnection) pulumi.Float64Output { return v.IngressBytesTransferred }).(pulumi.Float64Output) } +// List of ingress NatRules. +func (o VirtualNetworkGatewayConnectionOutput) IngressNatRules() SubResourceResponseArrayOutput { + return o.ApplyT(func(v *VirtualNetworkGatewayConnection) SubResourceResponseArrayOutput { return v.IngressNatRules }).(SubResourceResponseArrayOutput) +} + // The IPSec Policies to be considered by this connection. func (o VirtualNetworkGatewayConnectionOutput) IpsecPolicies() IpsecPolicyResponseArrayOutput { return o.ApplyT(func(v *VirtualNetworkGatewayConnection) IpsecPolicyResponseArrayOutput { return v.IpsecPolicies }).(IpsecPolicyResponseArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayNatRule.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayNatRule.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayNatRule.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayNatRule.go index 266b53a2..7c6dc963 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkGatewayNatRule.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkGatewayNatRule.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VirtualNetworkGatewayNatRule Resource. -// API Version: 2021-03-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2021-03-01 type VirtualNetworkGatewayNatRule struct { pulumi.CustomResourceState @@ -72,8 +73,21 @@ func NewVirtualNetworkGatewayNatRule(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetworkGatewayNatRule"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetworkGatewayNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetworkGatewayNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetworkGatewayNatRule"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetworkGatewayNatRule"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkGatewayNatRule err := ctx.RegisterResource("azure-native:network:VirtualNetworkGatewayNatRule", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkLink.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkLink.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkLink.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkLink.go index 62757d06..ad3ed9b0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkLink.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkLink.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a link to virtual network for a Private DNS zone. -// API Version: 2020-06-01. +// Azure REST API version: 2020-06-01. Prior API version in Azure Native 1.x: 2020-06-01 type VirtualNetworkLink struct { pulumi.CustomResourceState @@ -61,6 +62,7 @@ func NewVirtualNetworkLink(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkLink err := ctx.RegisterResource("azure-native:network:VirtualNetworkLink", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkPeering.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkPeering.go index f4342cca..f3ae9ccb 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkPeering.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Peerings in a virtual network resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualNetworkPeering struct { pulumi.CustomResourceState @@ -30,14 +31,20 @@ type VirtualNetworkPeering struct { Name pulumi.StringPtrOutput `pulumi:"name"` // The status of the virtual network peering. PeeringState pulumi.StringPtrOutput `pulumi:"peeringState"` + // The peering sync status of the virtual network peering. + PeeringSyncLevel pulumi.StringPtrOutput `pulumi:"peeringSyncLevel"` // The provisioning state of the virtual network peering resource. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` - // The reference to the remote virtual network address space. + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace AddressSpaceResponsePtrOutput `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities VirtualNetworkBgpCommunitiesResponsePtrOutput `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork SubResourceResponsePtrOutput `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace AddressSpaceResponsePtrOutput `pulumi:"remoteVirtualNetworkAddressSpace"` + // The reference to the remote virtual network's encryption + RemoteVirtualNetworkEncryption VirtualNetworkEncryptionResponseOutput `pulumi:"remoteVirtualNetworkEncryption"` // The resourceGuid property of the Virtual Network peering resource. ResourceGuid pulumi.StringOutput `pulumi:"resourceGuid"` // Resource type. @@ -183,8 +190,21 @@ func NewVirtualNetworkPeering(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetworkPeering"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetworkPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetworkPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetworkPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetworkPeering"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkPeering err := ctx.RegisterResource("azure-native:network:VirtualNetworkPeering", name, args, &resource, opts...) if err != nil { @@ -231,14 +251,20 @@ type virtualNetworkPeeringArgs struct { Name *string `pulumi:"name"` // The status of the virtual network peering. PeeringState *string `pulumi:"peeringState"` - // The reference to the remote virtual network address space. + // The peering sync status of the virtual network peering. + PeeringSyncLevel *string `pulumi:"peeringSyncLevel"` + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace *AddressSpace `pulumi:"remoteAddressSpace"` // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities *VirtualNetworkBgpCommunities `pulumi:"remoteBgpCommunities"` // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork *SubResource `pulumi:"remoteVirtualNetwork"` + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace *AddressSpace `pulumi:"remoteVirtualNetworkAddressSpace"` // The name of the resource group. ResourceGroupName string `pulumi:"resourceGroupName"` + // Parameter indicates the intention to sync the peering with the current address space on the remote vNet after it's updated. + SyncRemoteAddressSpace *string `pulumi:"syncRemoteAddressSpace"` // Resource type. Type *string `pulumi:"type"` // If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway. @@ -265,14 +291,20 @@ type VirtualNetworkPeeringArgs struct { Name pulumi.StringPtrInput // The status of the virtual network peering. PeeringState pulumi.StringPtrInput - // The reference to the remote virtual network address space. + // The peering sync status of the virtual network peering. + PeeringSyncLevel pulumi.StringPtrInput + // The reference to the address space peered with the remote virtual network. RemoteAddressSpace AddressSpacePtrInput // The reference to the remote virtual network's Bgp Communities. RemoteBgpCommunities VirtualNetworkBgpCommunitiesPtrInput // The reference to the remote virtual network. The remote virtual network can be in the same or different region (preview). See here to register for the preview and learn more (https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-create-peering). RemoteVirtualNetwork SubResourcePtrInput + // The reference to the current address space of the remote virtual network. + RemoteVirtualNetworkAddressSpace AddressSpacePtrInput // The name of the resource group. ResourceGroupName pulumi.StringInput + // Parameter indicates the intention to sync the peering with the current address space on the remote vNet after it's updated. + SyncRemoteAddressSpace pulumi.StringPtrInput // Resource type. Type pulumi.StringPtrInput // If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway. @@ -355,12 +387,17 @@ func (o VirtualNetworkPeeringOutput) PeeringState() pulumi.StringPtrOutput { return o.ApplyT(func(v *VirtualNetworkPeering) pulumi.StringPtrOutput { return v.PeeringState }).(pulumi.StringPtrOutput) } +// The peering sync status of the virtual network peering. +func (o VirtualNetworkPeeringOutput) PeeringSyncLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualNetworkPeering) pulumi.StringPtrOutput { return v.PeeringSyncLevel }).(pulumi.StringPtrOutput) +} + // The provisioning state of the virtual network peering resource. func (o VirtualNetworkPeeringOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetworkPeering) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } -// The reference to the remote virtual network address space. +// The reference to the address space peered with the remote virtual network. func (o VirtualNetworkPeeringOutput) RemoteAddressSpace() AddressSpaceResponsePtrOutput { return o.ApplyT(func(v *VirtualNetworkPeering) AddressSpaceResponsePtrOutput { return v.RemoteAddressSpace }).(AddressSpaceResponsePtrOutput) } @@ -377,6 +414,20 @@ func (o VirtualNetworkPeeringOutput) RemoteVirtualNetwork() SubResourceResponseP return o.ApplyT(func(v *VirtualNetworkPeering) SubResourceResponsePtrOutput { return v.RemoteVirtualNetwork }).(SubResourceResponsePtrOutput) } +// The reference to the current address space of the remote virtual network. +func (o VirtualNetworkPeeringOutput) RemoteVirtualNetworkAddressSpace() AddressSpaceResponsePtrOutput { + return o.ApplyT(func(v *VirtualNetworkPeering) AddressSpaceResponsePtrOutput { + return v.RemoteVirtualNetworkAddressSpace + }).(AddressSpaceResponsePtrOutput) +} + +// The reference to the remote virtual network's encryption +func (o VirtualNetworkPeeringOutput) RemoteVirtualNetworkEncryption() VirtualNetworkEncryptionResponseOutput { + return o.ApplyT(func(v *VirtualNetworkPeering) VirtualNetworkEncryptionResponseOutput { + return v.RemoteVirtualNetworkEncryption + }).(VirtualNetworkEncryptionResponseOutput) +} + // The resourceGuid property of the Virtual Network peering resource. func (o VirtualNetworkPeeringOutput) ResourceGuid() pulumi.StringOutput { return o.ApplyT(func(v *VirtualNetworkPeering) pulumi.StringOutput { return v.ResourceGuid }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkTap.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkTap.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkTap.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkTap.go index f78efdcb..45037c59 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualNetworkTap.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualNetworkTap.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Virtual Network Tap resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualNetworkTap struct { pulumi.CustomResourceState @@ -138,8 +139,21 @@ func NewVirtualNetworkTap(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualNetworkTap"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualNetworkTap"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualNetworkTap"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualNetworkTap"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualNetworkTap"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualNetworkTap err := ctx.RegisterResource("azure-native:network:VirtualNetworkTap", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouter.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouter.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouter.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouter.go index 8f2a2d94..56360807 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouter.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouter.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VirtualRouter Resource. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-01-01 type VirtualRouter struct { pulumi.CustomResourceState @@ -111,8 +112,21 @@ func NewVirtualRouter(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualRouter"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualRouter"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualRouter"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualRouter"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualRouter"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualRouter err := ctx.RegisterResource("azure-native:network:VirtualRouter", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouterPeering.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouterPeering.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouterPeering.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouterPeering.go index b830c7ab..fd88eb89 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualRouterPeering.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualRouterPeering.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Virtual Router Peering resource. -// API Version: 2022-01-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2022-01-01 type VirtualRouterPeering struct { pulumi.CustomResourceState @@ -104,8 +105,21 @@ func NewVirtualRouterPeering(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualRouterPeering"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualRouterPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualRouterPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualRouterPeering"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualRouterPeering"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualRouterPeering err := ctx.RegisterResource("azure-native:network:VirtualRouterPeering", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualWan.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualWan.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualWan.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualWan.go index 7e3a430f..3492e860 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/virtualWan.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/virtualWan.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VirtualWAN Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VirtualWan struct { pulumi.CustomResourceState @@ -143,8 +144,21 @@ func NewVirtualWan(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VirtualWan"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VirtualWan"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VirtualWan"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VirtualWan"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VirtualWan"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VirtualWan err := ctx.RegisterResource("azure-native:network:VirtualWan", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnConnection.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnConnection.go index 6015fe12..0ad3b564 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnConnection Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VpnConnection struct { pulumi.CustomResourceState @@ -164,8 +165,21 @@ func NewVpnConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VpnConnection"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VpnConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VpnConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VpnConnection"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VpnConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VpnConnection err := ctx.RegisterResource("azure-native:network:VpnConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnGateway.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnGateway.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnGateway.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnGateway.go index 4fa5754f..e60eaa62 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnGateway.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnGateway.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnGateway Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VpnGateway struct { pulumi.CustomResourceState @@ -20,6 +21,8 @@ type VpnGateway struct { BgpSettings BgpSettingsResponsePtrOutput `pulumi:"bgpSettings"` // List of all vpn connections to the gateway. Connections VpnConnectionResponseArrayOutput `pulumi:"connections"` + // Enable BGP routes translation for NAT on this VpnGateway. + EnableBgpRouteTranslationForNat pulumi.BoolPtrOutput `pulumi:"enableBgpRouteTranslationForNat"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // List of all IPs configured on the gateway. @@ -145,8 +148,21 @@ func NewVpnGateway(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VpnGateway"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VpnGateway"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VpnGateway"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VpnGateway err := ctx.RegisterResource("azure-native:network:VpnGateway", name, args, &resource, opts...) if err != nil { @@ -183,6 +199,8 @@ type vpnGatewayArgs struct { BgpSettings *BgpSettings `pulumi:"bgpSettings"` // List of all vpn connections to the gateway. Connections []VpnConnectionType `pulumi:"connections"` + // Enable BGP routes translation for NAT on this VpnGateway. + EnableBgpRouteTranslationForNat *bool `pulumi:"enableBgpRouteTranslationForNat"` // The name of the gateway. GatewayName *string `pulumi:"gatewayName"` // Resource ID. @@ -209,6 +227,8 @@ type VpnGatewayArgs struct { BgpSettings BgpSettingsPtrInput // List of all vpn connections to the gateway. Connections VpnConnectionTypeArrayInput + // Enable BGP routes translation for NAT on this VpnGateway. + EnableBgpRouteTranslationForNat pulumi.BoolPtrInput // The name of the gateway. GatewayName pulumi.StringPtrInput // Resource ID. @@ -276,6 +296,11 @@ func (o VpnGatewayOutput) Connections() VpnConnectionResponseArrayOutput { return o.ApplyT(func(v *VpnGateway) VpnConnectionResponseArrayOutput { return v.Connections }).(VpnConnectionResponseArrayOutput) } +// Enable BGP routes translation for NAT on this VpnGateway. +func (o VpnGatewayOutput) EnableBgpRouteTranslationForNat() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VpnGateway) pulumi.BoolPtrOutput { return v.EnableBgpRouteTranslationForNat }).(pulumi.BoolPtrOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o VpnGatewayOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *VpnGateway) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnServerConfiguration.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnServerConfiguration.go similarity index 92% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnServerConfiguration.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnServerConfiguration.go index 7226f73e..5394f4ab 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnServerConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnServerConfiguration.go @@ -7,17 +7,20 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnServerConfiguration Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VpnServerConfiguration struct { pulumi.CustomResourceState // The set of aad vpn authentication parameters. AadAuthenticationParameters AadAuthenticationParametersResponsePtrOutput `pulumi:"aadAuthenticationParameters"` + // List of all VpnServerConfigurationPolicyGroups. + ConfigurationPolicyGroups VpnServerConfigurationPolicyGroupResponseArrayOutput `pulumi:"configurationPolicyGroups"` // A unique read-only string that changes whenever the resource is updated. Etag pulumi.StringOutput `pulumi:"etag"` // Resource location. @@ -122,8 +125,21 @@ func NewVpnServerConfiguration(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VpnServerConfiguration"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VpnServerConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VpnServerConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VpnServerConfiguration"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VpnServerConfiguration"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VpnServerConfiguration err := ctx.RegisterResource("azure-native:network:VpnServerConfiguration", name, args, &resource, opts...) if err != nil { @@ -158,6 +174,8 @@ func (VpnServerConfigurationState) ElementType() reflect.Type { type vpnServerConfigurationArgs struct { // The set of aad vpn authentication parameters. AadAuthenticationParameters *AadAuthenticationParameters `pulumi:"aadAuthenticationParameters"` + // List of all VpnServerConfigurationPolicyGroups. + ConfigurationPolicyGroups []VpnServerConfigurationPolicyGroup `pulumi:"configurationPolicyGroups"` // Resource ID. Id *string `pulumi:"id"` // Resource location. @@ -196,6 +214,8 @@ type vpnServerConfigurationArgs struct { type VpnServerConfigurationArgs struct { // The set of aad vpn authentication parameters. AadAuthenticationParameters AadAuthenticationParametersPtrInput + // List of all VpnServerConfigurationPolicyGroups. + ConfigurationPolicyGroups VpnServerConfigurationPolicyGroupArrayInput // Resource ID. Id pulumi.StringPtrInput // Resource location. @@ -274,6 +294,13 @@ func (o VpnServerConfigurationOutput) AadAuthenticationParameters() AadAuthentic }).(AadAuthenticationParametersResponsePtrOutput) } +// List of all VpnServerConfigurationPolicyGroups. +func (o VpnServerConfigurationOutput) ConfigurationPolicyGroups() VpnServerConfigurationPolicyGroupResponseArrayOutput { + return o.ApplyT(func(v *VpnServerConfiguration) VpnServerConfigurationPolicyGroupResponseArrayOutput { + return v.ConfigurationPolicyGroups + }).(VpnServerConfigurationPolicyGroupResponseArrayOutput) +} + // A unique read-only string that changes whenever the resource is updated. func (o VpnServerConfigurationOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *VpnServerConfiguration) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnSite.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnSite.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnSite.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnSite.go index 7e2403ae..8b96aab3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/vpnSite.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/vpnSite.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // VpnSite Resource. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type VpnSite struct { pulumi.CustomResourceState @@ -149,8 +150,21 @@ func NewVpnSite(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:VpnSite"), }, + { + Type: pulumi.String("azure-native:network/v20221101:VpnSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:VpnSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:VpnSite"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:VpnSite"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource VpnSite err := ctx.RegisterResource("azure-native:network:VpnSite", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/webApplicationFirewallPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/webApplicationFirewallPolicy.go similarity index 93% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/webApplicationFirewallPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/webApplicationFirewallPolicy.go index 69befd3b..47a6d95d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/webApplicationFirewallPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/webApplicationFirewallPolicy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Defines web application firewall policy. -// API Version: 2020-11-01. +// Azure REST API version: 2023-02-01. Prior API version in Azure Native 1.x: 2020-11-01 type WebApplicationFirewallPolicy struct { pulumi.CustomResourceState @@ -57,6 +58,9 @@ func NewWebApplicationFirewallPolicy(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } + if args.PolicySettings != nil { + args.PolicySettings = args.PolicySettings.ToPolicySettingsPtrOutput().ApplyT(func(v *PolicySettings) *PolicySettings { return v.Defaults() }).(PolicySettingsPtrOutput) + } aliases := pulumi.Aliases([]pulumi.Alias{ { Type: pulumi.String("azure-native:network/v20181201:WebApplicationFirewallPolicy"), @@ -130,8 +134,21 @@ func NewWebApplicationFirewallPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20220901:WebApplicationFirewallPolicy"), }, + { + Type: pulumi.String("azure-native:network/v20221101:WebApplicationFirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230201:WebApplicationFirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230401:WebApplicationFirewallPolicy"), + }, + { + Type: pulumi.String("azure-native:network/v20230501:WebApplicationFirewallPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource WebApplicationFirewallPolicy err := ctx.RegisterResource("azure-native:network:WebApplicationFirewallPolicy", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/zone.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/zone.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/zone.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/zone.go index 32f52df9..bec98cf5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/zone.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/v2/zone.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Describes a DNS zone. -// API Version: 2018-05-01. +// Azure REST API version: 2018-05-01. Prior API version in Azure Native 1.x: 2018-05-01 type Zone struct { pulumi.CustomResourceState @@ -52,7 +53,7 @@ func NewZone(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } - if isZero(args.ZoneType) { + if args.ZoneType == nil { args.ZoneType = ZoneType("Public") } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -74,8 +75,12 @@ func NewZone(ctx *pulumi.Context, { Type: pulumi.String("azure-native:network/v20180501:Zone"), }, + { + Type: pulumi.String("azure-native:network/v20230701preview:Zone"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Zone err := ctx.RegisterResource("azure-native:network:Zone", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/provider.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/provider.go deleted file mode 100644 index 33be2200..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/provider.go +++ /dev/null @@ -1,142 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package pulumiazurenativesdk - -import ( - "context" - "reflect" - - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// The provider type for the native Azure package. -type Provider struct { - pulumi.ProviderResourceState -} - -// NewProvider registers a new resource with the given unique name, arguments, and options. -func NewProvider(ctx *pulumi.Context, - name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) { - if args == nil { - args = &ProviderArgs{} - } - - if isZero(args.Environment) { - args.Environment = pulumi.StringPtr("public") - } - if isZero(args.UseMsi) { - args.UseMsi = pulumi.BoolPtr(false) - } - if args.ClientCertificatePassword != nil { - args.ClientCertificatePassword = pulumi.ToSecret(args.ClientCertificatePassword).(pulumi.StringPtrInput) - } - if args.ClientId != nil { - args.ClientId = pulumi.ToSecret(args.ClientId).(pulumi.StringPtrInput) - } - if args.ClientSecret != nil { - args.ClientSecret = pulumi.ToSecret(args.ClientSecret).(pulumi.StringPtrInput) - } - var resource Provider - err := ctx.RegisterResource("pulumi:providers:azure-native", name, args, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -type providerArgs struct { - // Any additional Tenant IDs which should be used for authentication. - AuxiliaryTenantIds []string `pulumi:"auxiliaryTenantIds"` - // The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate - ClientCertificatePassword *string `pulumi:"clientCertificatePassword"` - // The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate. - ClientCertificatePath *string `pulumi:"clientCertificatePath"` - // The Client ID which should be used. - ClientId *string `pulumi:"clientId"` - // The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret. - ClientSecret *string `pulumi:"clientSecret"` - // This will disable the Pulumi Partner ID which is used if a custom `partnerId` isn't specified. - DisablePulumiPartnerId *bool `pulumi:"disablePulumiPartnerId"` - // The Cloud Environment which should be used. Possible values are public, usgovernment, german, and china. Defaults to public. - Environment *string `pulumi:"environment"` - // The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. - MsiEndpoint *string `pulumi:"msiEndpoint"` - // A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution. - PartnerId *string `pulumi:"partnerId"` - // The Subscription ID which should be used. - SubscriptionId *string `pulumi:"subscriptionId"` - // The Tenant ID which should be used. - TenantId *string `pulumi:"tenantId"` - // Allowed Managed Service Identity be used for Authentication. - UseMsi *bool `pulumi:"useMsi"` -} - -// The set of arguments for constructing a Provider resource. -type ProviderArgs struct { - // Any additional Tenant IDs which should be used for authentication. - AuxiliaryTenantIds pulumi.StringArrayInput - // The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client Certificate - ClientCertificatePassword pulumi.StringPtrInput - // The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service Principal using a Client Certificate. - ClientCertificatePath pulumi.StringPtrInput - // The Client ID which should be used. - ClientId pulumi.StringPtrInput - // The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret. - ClientSecret pulumi.StringPtrInput - // This will disable the Pulumi Partner ID which is used if a custom `partnerId` isn't specified. - DisablePulumiPartnerId pulumi.BoolPtrInput - // The Cloud Environment which should be used. Possible values are public, usgovernment, german, and china. Defaults to public. - Environment pulumi.StringPtrInput - // The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected automatically. - MsiEndpoint pulumi.StringPtrInput - // A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution. - PartnerId pulumi.StringPtrInput - // The Subscription ID which should be used. - SubscriptionId pulumi.StringPtrInput - // The Tenant ID which should be used. - TenantId pulumi.StringPtrInput - // Allowed Managed Service Identity be used for Authentication. - UseMsi pulumi.BoolPtrInput -} - -func (ProviderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*providerArgs)(nil)).Elem() -} - -type ProviderInput interface { - pulumi.Input - - ToProviderOutput() ProviderOutput - ToProviderOutputWithContext(ctx context.Context) ProviderOutput -} - -func (*Provider) ElementType() reflect.Type { - return reflect.TypeOf((**Provider)(nil)).Elem() -} - -func (i *Provider) ToProviderOutput() ProviderOutput { - return i.ToProviderOutputWithContext(context.Background()) -} - -func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput) -} - -type ProviderOutput struct{ *pulumi.OutputState } - -func (ProviderOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Provider)(nil)).Elem() -} - -func (o ProviderOutput) ToProviderOutput() ProviderOutput { - return o -} - -func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { - return o -} - -func init() { - pulumi.RegisterOutputType(ProviderOutput{}) -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumiUtilities.go deleted file mode 100644 index 275425fe..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumiUtilities.go +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package pulumiazurenativesdk - -import ( - "fmt" - "os" - "reflect" - "regexp" - "strconv" - "strings" - - "github.com/blang/semver" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -type envParser func(v string) interface{} - -func parseEnvBool(v string) interface{} { - b, err := strconv.ParseBool(v) - if err != nil { - return nil - } - return b -} - -func parseEnvInt(v string) interface{} { - i, err := strconv.ParseInt(v, 0, 0) - if err != nil { - return nil - } - return int(i) -} - -func parseEnvFloat(v string) interface{} { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - return nil - } - return f -} - -func parseEnvStringArray(v string) interface{} { - var result pulumi.StringArray - for _, item := range strings.Split(v, ";") { - result = append(result, pulumi.String(item)) - } - return result -} - -func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { - for _, v := range vars { - if value := os.Getenv(v); value != "" { - if parser != nil { - return parser(value) - } - return value - } - } - return def -} - -// PkgVersion uses reflection to determine the version of the current package. -// If a version cannot be determined, v1 will be assumed. The second return -// value is always nil. -func PkgVersion() (semver.Version, error) { - type sentinal struct{} - pkgPath := reflect.TypeOf(sentinal{}).PkgPath() - re := regexp.MustCompile("^.*/pulumi-azure-native/sdk(/v\\d+)?") - if match := re.FindStringSubmatch(pkgPath); match != nil { - vStr := match[1] - if len(vStr) == 0 { // If the version capture group was empty, default to v1. - return semver.Version{Major: 1}, nil - } - return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil - } - return semver.Version{Major: 1}, nil -} - -// isZero is a null safe check for if a value is it's types zero value. -func isZero(v interface{}) bool { - if v == nil { - return true - } - return reflect.ValueOf(v).IsZero() -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentScript.go deleted file mode 100644 index 22f0405b..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentScript.go +++ /dev/null @@ -1,195 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package resources - -import ( - "context" - "reflect" - - "github.com/pkg/errors" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// Deployment script object. -// API Version: 2020-10-01. -// -// Deprecated: Please use one of the variants: AzureCliScript, AzurePowerShellScript. -type DeploymentScript struct { - pulumi.CustomResourceState - - // Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. - Identity ManagedServiceIdentityResponsePtrOutput `pulumi:"identity"` - // Type of the script. - Kind pulumi.StringOutput `pulumi:"kind"` - // The location of the ACI and the storage account for the deployment script. - Location pulumi.StringOutput `pulumi:"location"` - // Name of this resource. - Name pulumi.StringOutput `pulumi:"name"` - // The system metadata related to this resource. - SystemData SystemDataResponseOutput `pulumi:"systemData"` - // Resource tags. - Tags pulumi.StringMapOutput `pulumi:"tags"` - // Type of this resource. - Type pulumi.StringOutput `pulumi:"type"` -} - -// NewDeploymentScript registers a new resource with the given unique name, arguments, and options. -func NewDeploymentScript(ctx *pulumi.Context, - name string, args *DeploymentScriptArgs, opts ...pulumi.ResourceOption) (*DeploymentScript, error) { - if args == nil { - return nil, errors.New("missing one or more required arguments") - } - - if args.Kind == nil { - return nil, errors.New("invalid value for required argument 'Kind'") - } - if args.ResourceGroupName == nil { - return nil, errors.New("invalid value for required argument 'ResourceGroupName'") - } - aliases := pulumi.Aliases([]pulumi.Alias{ - { - Type: pulumi.String("azure-native:resources/v20191001preview:DeploymentScript"), - }, - { - Type: pulumi.String("azure-native:resources/v20201001:DeploymentScript"), - }, - }) - opts = append(opts, aliases) - var resource DeploymentScript - err := ctx.RegisterResource("azure-native:resources:DeploymentScript", name, args, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// GetDeploymentScript gets an existing DeploymentScript resource's state with the given name, ID, and optional -// state properties that are used to uniquely qualify the lookup (nil if not required). -func GetDeploymentScript(ctx *pulumi.Context, - name string, id pulumi.IDInput, state *DeploymentScriptState, opts ...pulumi.ResourceOption) (*DeploymentScript, error) { - var resource DeploymentScript - err := ctx.ReadResource("azure-native:resources:DeploymentScript", name, id, state, &resource, opts...) - if err != nil { - return nil, err - } - return &resource, nil -} - -// Input properties used for looking up and filtering DeploymentScript resources. -type deploymentScriptState struct { -} - -type DeploymentScriptState struct { -} - -func (DeploymentScriptState) ElementType() reflect.Type { - return reflect.TypeOf((*deploymentScriptState)(nil)).Elem() -} - -type deploymentScriptArgs struct { - // Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. - Identity *ManagedServiceIdentity `pulumi:"identity"` - // Type of the script. - Kind string `pulumi:"kind"` - // The location of the ACI and the storage account for the deployment script. - Location *string `pulumi:"location"` - // The name of the resource group. The name is case insensitive. - ResourceGroupName string `pulumi:"resourceGroupName"` - // Name of the deployment script. - ScriptName *string `pulumi:"scriptName"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` -} - -// The set of arguments for constructing a DeploymentScript resource. -type DeploymentScriptArgs struct { - // Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. - Identity ManagedServiceIdentityPtrInput - // Type of the script. - Kind pulumi.StringInput - // The location of the ACI and the storage account for the deployment script. - Location pulumi.StringPtrInput - // The name of the resource group. The name is case insensitive. - ResourceGroupName pulumi.StringInput - // Name of the deployment script. - ScriptName pulumi.StringPtrInput - // Resource tags. - Tags pulumi.StringMapInput -} - -func (DeploymentScriptArgs) ElementType() reflect.Type { - return reflect.TypeOf((*deploymentScriptArgs)(nil)).Elem() -} - -type DeploymentScriptInput interface { - pulumi.Input - - ToDeploymentScriptOutput() DeploymentScriptOutput - ToDeploymentScriptOutputWithContext(ctx context.Context) DeploymentScriptOutput -} - -func (*DeploymentScript) ElementType() reflect.Type { - return reflect.TypeOf((**DeploymentScript)(nil)).Elem() -} - -func (i *DeploymentScript) ToDeploymentScriptOutput() DeploymentScriptOutput { - return i.ToDeploymentScriptOutputWithContext(context.Background()) -} - -func (i *DeploymentScript) ToDeploymentScriptOutputWithContext(ctx context.Context) DeploymentScriptOutput { - return pulumi.ToOutputWithContext(ctx, i).(DeploymentScriptOutput) -} - -type DeploymentScriptOutput struct{ *pulumi.OutputState } - -func (DeploymentScriptOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DeploymentScript)(nil)).Elem() -} - -func (o DeploymentScriptOutput) ToDeploymentScriptOutput() DeploymentScriptOutput { - return o -} - -func (o DeploymentScriptOutput) ToDeploymentScriptOutputWithContext(ctx context.Context) DeploymentScriptOutput { - return o -} - -// Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. -func (o DeploymentScriptOutput) Identity() ManagedServiceIdentityResponsePtrOutput { - return o.ApplyT(func(v *DeploymentScript) ManagedServiceIdentityResponsePtrOutput { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) -} - -// Type of the script. -func (o DeploymentScriptOutput) Kind() pulumi.StringOutput { - return o.ApplyT(func(v *DeploymentScript) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) -} - -// The location of the ACI and the storage account for the deployment script. -func (o DeploymentScriptOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v *DeploymentScript) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) -} - -// Name of this resource. -func (o DeploymentScriptOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v *DeploymentScript) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) -} - -// The system metadata related to this resource. -func (o DeploymentScriptOutput) SystemData() SystemDataResponseOutput { - return o.ApplyT(func(v *DeploymentScript) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) -} - -// Resource tags. -func (o DeploymentScriptOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v *DeploymentScript) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) -} - -// Type of this resource. -func (o DeploymentScriptOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v *DeploymentScript) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) -} - -func init() { - pulumi.RegisterOutputType(DeploymentScriptOutput{}) -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentScript.go deleted file mode 100644 index 73f5c5e6..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentScript.go +++ /dev/null @@ -1,134 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package resources - -import ( - "context" - "reflect" - - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// Gets a deployment script with a given name. -// API Version: 2020-10-01. -// -// Deprecated: Please use one of the variants: AzureCliScript, AzurePowerShellScript. -func LookupDeploymentScript(ctx *pulumi.Context, args *LookupDeploymentScriptArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentScriptResult, error) { - var rv LookupDeploymentScriptResult - err := ctx.Invoke("azure-native:resources:getDeploymentScript", args, &rv, opts...) - if err != nil { - return nil, err - } - return &rv, nil -} - -type LookupDeploymentScriptArgs struct { - // The name of the resource group. The name is case insensitive. - ResourceGroupName string `pulumi:"resourceGroupName"` - // Name of the deployment script. - ScriptName string `pulumi:"scriptName"` -} - -// Deployment script object. -type LookupDeploymentScriptResult struct { - // String Id used to locate any resource on Azure. - Id string `pulumi:"id"` - // Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. - Identity *ManagedServiceIdentityResponse `pulumi:"identity"` - // Type of the script. - Kind string `pulumi:"kind"` - // The location of the ACI and the storage account for the deployment script. - Location string `pulumi:"location"` - // Name of this resource. - Name string `pulumi:"name"` - // The system metadata related to this resource. - SystemData SystemDataResponse `pulumi:"systemData"` - // Resource tags. - Tags map[string]string `pulumi:"tags"` - // Type of this resource. - Type string `pulumi:"type"` -} - -func LookupDeploymentScriptOutput(ctx *pulumi.Context, args LookupDeploymentScriptOutputArgs, opts ...pulumi.InvokeOption) LookupDeploymentScriptResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). - ApplyT(func(v interface{}) (LookupDeploymentScriptResult, error) { - args := v.(LookupDeploymentScriptArgs) - r, err := LookupDeploymentScript(ctx, &args, opts...) - var s LookupDeploymentScriptResult - if r != nil { - s = *r - } - return s, err - }).(LookupDeploymentScriptResultOutput) -} - -type LookupDeploymentScriptOutputArgs struct { - // The name of the resource group. The name is case insensitive. - ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` - // Name of the deployment script. - ScriptName pulumi.StringInput `pulumi:"scriptName"` -} - -func (LookupDeploymentScriptOutputArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LookupDeploymentScriptArgs)(nil)).Elem() -} - -// Deployment script object. -type LookupDeploymentScriptResultOutput struct{ *pulumi.OutputState } - -func (LookupDeploymentScriptResultOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LookupDeploymentScriptResult)(nil)).Elem() -} - -func (o LookupDeploymentScriptResultOutput) ToLookupDeploymentScriptResultOutput() LookupDeploymentScriptResultOutput { - return o -} - -func (o LookupDeploymentScriptResultOutput) ToLookupDeploymentScriptResultOutputWithContext(ctx context.Context) LookupDeploymentScriptResultOutput { - return o -} - -// String Id used to locate any resource on Azure. -func (o LookupDeploymentScriptResultOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) string { return v.Id }).(pulumi.StringOutput) -} - -// Optional property. Managed identity to be used for this deployment script. Currently, only user-assigned MSI is supported. -func (o LookupDeploymentScriptResultOutput) Identity() ManagedServiceIdentityResponsePtrOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) *ManagedServiceIdentityResponse { return v.Identity }).(ManagedServiceIdentityResponsePtrOutput) -} - -// Type of the script. -func (o LookupDeploymentScriptResultOutput) Kind() pulumi.StringOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) string { return v.Kind }).(pulumi.StringOutput) -} - -// The location of the ACI and the storage account for the deployment script. -func (o LookupDeploymentScriptResultOutput) Location() pulumi.StringOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) string { return v.Location }).(pulumi.StringOutput) -} - -// Name of this resource. -func (o LookupDeploymentScriptResultOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) string { return v.Name }).(pulumi.StringOutput) -} - -// The system metadata related to this resource. -func (o LookupDeploymentScriptResultOutput) SystemData() SystemDataResponseOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) -} - -// Resource tags. -func (o LookupDeploymentScriptResultOutput) Tags() pulumi.StringMapOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) -} - -// Type of this resource. -func (o LookupDeploymentScriptResultOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v LookupDeploymentScriptResult) string { return v.Type }).(pulumi.StringOutput) -} - -func init() { - pulumi.RegisterOutputType(LookupDeploymentScriptResultOutput{}) -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/network/LICENSE b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/LICENSE similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/network/LICENSE rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/LICENSE diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azureCliScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azureCliScript.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azureCliScript.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azureCliScript.go index 8eb09eb1..a2c86485 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azureCliScript.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azureCliScript.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Object model for the Azure CLI script. -// API Version: 2020-10-01. +// Azure REST API version: 2020-10-01. Prior API version in Azure Native 1.x: 2020-10-01 type AzureCliScript struct { pulumi.CustomResourceState @@ -82,11 +83,11 @@ func NewAzureCliScript(ctx *pulumi.Context, if args.RetentionInterval == nil { return nil, errors.New("invalid value for required argument 'RetentionInterval'") } - if isZero(args.CleanupPreference) { + if args.CleanupPreference == nil { args.CleanupPreference = pulumi.StringPtr("Always") } args.Kind = pulumi.String("AzureCLI") - if isZero(args.Timeout) { + if args.Timeout == nil { args.Timeout = pulumi.StringPtr("P1D") } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -98,6 +99,7 @@ func NewAzureCliScript(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource AzureCliScript err := ctx.RegisterResource("azure-native:resources:AzureCliScript", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azurePowerShellScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azurePowerShellScript.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azurePowerShellScript.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azurePowerShellScript.go index 18fc4efd..e0664a9b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/azurePowerShellScript.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/azurePowerShellScript.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Object model for the Azure PowerShell script. -// API Version: 2020-10-01. +// Azure REST API version: 2020-10-01. Prior API version in Azure Native 1.x: 2020-10-01 type AzurePowerShellScript struct { pulumi.CustomResourceState @@ -82,11 +83,11 @@ func NewAzurePowerShellScript(ctx *pulumi.Context, if args.RetentionInterval == nil { return nil, errors.New("invalid value for required argument 'RetentionInterval'") } - if isZero(args.CleanupPreference) { + if args.CleanupPreference == nil { args.CleanupPreference = pulumi.StringPtr("Always") } args.Kind = pulumi.String("AzurePowerShell") - if isZero(args.Timeout) { + if args.Timeout == nil { args.Timeout = pulumi.StringPtr("P1D") } aliases := pulumi.Aliases([]pulumi.Alias{ @@ -98,6 +99,7 @@ func NewAzurePowerShellScript(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource AzurePowerShellScript err := ctx.RegisterResource("azure-native:resources:AzurePowerShellScript", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deployment.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deployment.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deployment.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deployment.go index ed2b3dda..8ac568bf 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deployment.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deployment.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Deployment information. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-01-01 type Deployment struct { pulumi.CustomResourceState @@ -99,8 +100,12 @@ func NewDeployment(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:Deployment"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:Deployment"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Deployment err := ctx.RegisterResource("azure-native:resources:Deployment", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtManagementGroupScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtManagementGroupScope.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtManagementGroupScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtManagementGroupScope.go index ef25d41c..058618a3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtManagementGroupScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtManagementGroupScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Deployment information. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-01-01 type DeploymentAtManagementGroupScope struct { pulumi.CustomResourceState @@ -75,8 +76,12 @@ func NewDeploymentAtManagementGroupScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:DeploymentAtManagementGroupScope"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:DeploymentAtManagementGroupScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DeploymentAtManagementGroupScope err := ctx.RegisterResource("azure-native:resources:DeploymentAtManagementGroupScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtScope.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtScope.go index f3666fce..aa3bc79b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Deployment information. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-01-01 type DeploymentAtScope struct { pulumi.CustomResourceState @@ -69,8 +70,12 @@ func NewDeploymentAtScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:DeploymentAtScope"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:DeploymentAtScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DeploymentAtScope err := ctx.RegisterResource("azure-native:resources:DeploymentAtScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtSubscriptionScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtSubscriptionScope.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtSubscriptionScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtSubscriptionScope.go index ffcce123..42904824 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtSubscriptionScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtSubscriptionScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Deployment information. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-01-01 type DeploymentAtSubscriptionScope struct { pulumi.CustomResourceState @@ -78,8 +79,12 @@ func NewDeploymentAtSubscriptionScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:DeploymentAtSubscriptionScope"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:DeploymentAtSubscriptionScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DeploymentAtSubscriptionScope err := ctx.RegisterResource("azure-native:resources:DeploymentAtSubscriptionScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtTenantScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtTenantScope.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtTenantScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtTenantScope.go index a255f0aa..f7338b4a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/deploymentAtTenantScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentAtTenantScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Deployment information. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-01-01 type DeploymentAtTenantScope struct { pulumi.CustomResourceState @@ -66,8 +67,12 @@ func NewDeploymentAtTenantScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:DeploymentAtTenantScope"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:DeploymentAtTenantScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource DeploymentAtTenantScope err := ctx.RegisterResource("azure-native:resources:DeploymentAtTenantScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtManagementGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtManagementGroup.go new file mode 100644 index 00000000..93ede9a3 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtManagementGroup.go @@ -0,0 +1,335 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Deployment stack object. +// Azure REST API version: 2022-08-01-preview. +type DeploymentStackAtManagementGroup struct { + pulumi.CustomResourceState + + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanageOutput `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingResponsePtrOutput `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources ResourceReferenceResponseArrayOutput `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponseOutput `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId pulumi.StringOutput `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrOutput `pulumi:"deploymentScope"` + // Deployment stack description. + Description pulumi.StringPtrOutput `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources ResourceReferenceResponseArrayOutput `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration pulumi.StringOutput `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error ErrorResponseResponsePtrOutput `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources ResourceReferenceExtendedResponseArrayOutput `pulumi:"failedResources"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrOutput `pulumi:"location"` + // Name of this resource. + Name pulumi.StringOutput `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs pulumi.AnyOutput `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.AnyOutput `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkResponsePtrOutput `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources ManagedResourceReferenceResponseArrayOutput `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponseOutput `pulumi:"systemData"` + // Deployment stack resource tags. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Type of this resource. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewDeploymentStackAtManagementGroup registers a new resource with the given unique name, arguments, and options. +func NewDeploymentStackAtManagementGroup(ctx *pulumi.Context, + name string, args *DeploymentStackAtManagementGroupArgs, opts ...pulumi.ResourceOption) (*DeploymentStackAtManagementGroup, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ActionOnUnmanage == nil { + return nil, errors.New("invalid value for required argument 'ActionOnUnmanage'") + } + if args.DenySettings == nil { + return nil, errors.New("invalid value for required argument 'DenySettings'") + } + if args.ManagementGroupId == nil { + return nil, errors.New("invalid value for required argument 'ManagementGroupId'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:resources/v20220801preview:DeploymentStackAtManagementGroup"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeploymentStackAtManagementGroup + err := ctx.RegisterResource("azure-native:resources:DeploymentStackAtManagementGroup", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeploymentStackAtManagementGroup gets an existing DeploymentStackAtManagementGroup resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeploymentStackAtManagementGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeploymentStackAtManagementGroupState, opts ...pulumi.ResourceOption) (*DeploymentStackAtManagementGroup, error) { + var resource DeploymentStackAtManagementGroup + err := ctx.ReadResource("azure-native:resources:DeploymentStackAtManagementGroup", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeploymentStackAtManagementGroup resources. +type deploymentStackAtManagementGroupState struct { +} + +type DeploymentStackAtManagementGroupState struct { +} + +func (DeploymentStackAtManagementGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtManagementGroupState)(nil)).Elem() +} + +type deploymentStackAtManagementGroupArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSetting `pulumi:"debugSetting"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettings `pulumi:"denySettings"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Name of the deployment stack. + DeploymentStackName *string `pulumi:"deploymentStackName"` + // Deployment stack description. + Description *string `pulumi:"description"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Management Group. + ManagementGroupId string `pulumi:"managementGroupId"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLink `pulumi:"parametersLink"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template interface{} `pulumi:"template"` + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink *DeploymentStacksTemplateLink `pulumi:"templateLink"` +} + +// The set of arguments for constructing a DeploymentStackAtManagementGroup resource. +type DeploymentStackAtManagementGroupArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanageInput + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingPtrInput + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsInput + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrInput + // Name of the deployment stack. + DeploymentStackName pulumi.StringPtrInput + // Deployment stack description. + Description pulumi.StringPtrInput + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrInput + // Management Group. + ManagementGroupId pulumi.StringInput + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.Input + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkPtrInput + // Deployment stack resource tags. + Tags pulumi.StringMapInput + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template pulumi.Input + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink DeploymentStacksTemplateLinkPtrInput +} + +func (DeploymentStackAtManagementGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtManagementGroupArgs)(nil)).Elem() +} + +type DeploymentStackAtManagementGroupInput interface { + pulumi.Input + + ToDeploymentStackAtManagementGroupOutput() DeploymentStackAtManagementGroupOutput + ToDeploymentStackAtManagementGroupOutputWithContext(ctx context.Context) DeploymentStackAtManagementGroupOutput +} + +func (*DeploymentStackAtManagementGroup) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtManagementGroup)(nil)).Elem() +} + +func (i *DeploymentStackAtManagementGroup) ToDeploymentStackAtManagementGroupOutput() DeploymentStackAtManagementGroupOutput { + return i.ToDeploymentStackAtManagementGroupOutputWithContext(context.Background()) +} + +func (i *DeploymentStackAtManagementGroup) ToDeploymentStackAtManagementGroupOutputWithContext(ctx context.Context) DeploymentStackAtManagementGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStackAtManagementGroupOutput) +} + +type DeploymentStackAtManagementGroupOutput struct{ *pulumi.OutputState } + +func (DeploymentStackAtManagementGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtManagementGroup)(nil)).Elem() +} + +func (o DeploymentStackAtManagementGroupOutput) ToDeploymentStackAtManagementGroupOutput() DeploymentStackAtManagementGroupOutput { + return o +} + +func (o DeploymentStackAtManagementGroupOutput) ToDeploymentStackAtManagementGroupOutputWithContext(ctx context.Context) DeploymentStackAtManagementGroupOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o DeploymentStackAtManagementGroupOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o DeploymentStackAtManagementGroupOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) DeploymentStacksDebugSettingResponsePtrOutput { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o DeploymentStackAtManagementGroupOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) ResourceReferenceResponseArrayOutput { + return v.DeletedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o DeploymentStackAtManagementGroupOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) DenySettingsResponseOutput { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o DeploymentStackAtManagementGroupOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringOutput { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o DeploymentStackAtManagementGroupOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringPtrOutput { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o DeploymentStackAtManagementGroupOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o DeploymentStackAtManagementGroupOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) ResourceReferenceResponseArrayOutput { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o DeploymentStackAtManagementGroupOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringOutput { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o DeploymentStackAtManagementGroupOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) ErrorResponseResponsePtrOutput { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o DeploymentStackAtManagementGroupOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) ResourceReferenceExtendedResponseArrayOutput { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o DeploymentStackAtManagementGroupOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o DeploymentStackAtManagementGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o DeploymentStackAtManagementGroupOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.AnyOutput { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o DeploymentStackAtManagementGroupOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.AnyOutput { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o DeploymentStackAtManagementGroupOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) DeploymentStacksParametersLinkResponsePtrOutput { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o DeploymentStackAtManagementGroupOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o DeploymentStackAtManagementGroupOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) ManagedResourceReferenceResponseArrayOutput { + return v.Resources + }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o DeploymentStackAtManagementGroupOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o DeploymentStackAtManagementGroupOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o DeploymentStackAtManagementGroupOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtManagementGroup) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(DeploymentStackAtManagementGroupOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtResourceGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtResourceGroup.go new file mode 100644 index 00000000..49ebfbda --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtResourceGroup.go @@ -0,0 +1,335 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Deployment stack object. +// Azure REST API version: 2022-08-01-preview. +type DeploymentStackAtResourceGroup struct { + pulumi.CustomResourceState + + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanageOutput `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingResponsePtrOutput `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources ResourceReferenceResponseArrayOutput `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponseOutput `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId pulumi.StringOutput `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrOutput `pulumi:"deploymentScope"` + // Deployment stack description. + Description pulumi.StringPtrOutput `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources ResourceReferenceResponseArrayOutput `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration pulumi.StringOutput `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error ErrorResponseResponsePtrOutput `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources ResourceReferenceExtendedResponseArrayOutput `pulumi:"failedResources"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrOutput `pulumi:"location"` + // Name of this resource. + Name pulumi.StringOutput `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs pulumi.AnyOutput `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.AnyOutput `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkResponsePtrOutput `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources ManagedResourceReferenceResponseArrayOutput `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponseOutput `pulumi:"systemData"` + // Deployment stack resource tags. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Type of this resource. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewDeploymentStackAtResourceGroup registers a new resource with the given unique name, arguments, and options. +func NewDeploymentStackAtResourceGroup(ctx *pulumi.Context, + name string, args *DeploymentStackAtResourceGroupArgs, opts ...pulumi.ResourceOption) (*DeploymentStackAtResourceGroup, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ActionOnUnmanage == nil { + return nil, errors.New("invalid value for required argument 'ActionOnUnmanage'") + } + if args.DenySettings == nil { + return nil, errors.New("invalid value for required argument 'DenySettings'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:resources/v20220801preview:DeploymentStackAtResourceGroup"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeploymentStackAtResourceGroup + err := ctx.RegisterResource("azure-native:resources:DeploymentStackAtResourceGroup", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeploymentStackAtResourceGroup gets an existing DeploymentStackAtResourceGroup resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeploymentStackAtResourceGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeploymentStackAtResourceGroupState, opts ...pulumi.ResourceOption) (*DeploymentStackAtResourceGroup, error) { + var resource DeploymentStackAtResourceGroup + err := ctx.ReadResource("azure-native:resources:DeploymentStackAtResourceGroup", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeploymentStackAtResourceGroup resources. +type deploymentStackAtResourceGroupState struct { +} + +type DeploymentStackAtResourceGroupState struct { +} + +func (DeploymentStackAtResourceGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtResourceGroupState)(nil)).Elem() +} + +type deploymentStackAtResourceGroupArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSetting `pulumi:"debugSetting"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettings `pulumi:"denySettings"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Name of the deployment stack. + DeploymentStackName *string `pulumi:"deploymentStackName"` + // Deployment stack description. + Description *string `pulumi:"description"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLink `pulumi:"parametersLink"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName string `pulumi:"resourceGroupName"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template interface{} `pulumi:"template"` + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink *DeploymentStacksTemplateLink `pulumi:"templateLink"` +} + +// The set of arguments for constructing a DeploymentStackAtResourceGroup resource. +type DeploymentStackAtResourceGroupArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanageInput + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingPtrInput + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsInput + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrInput + // Name of the deployment stack. + DeploymentStackName pulumi.StringPtrInput + // Deployment stack description. + Description pulumi.StringPtrInput + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrInput + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.Input + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkPtrInput + // The name of the resource group. The name is case insensitive. + ResourceGroupName pulumi.StringInput + // Deployment stack resource tags. + Tags pulumi.StringMapInput + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template pulumi.Input + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink DeploymentStacksTemplateLinkPtrInput +} + +func (DeploymentStackAtResourceGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtResourceGroupArgs)(nil)).Elem() +} + +type DeploymentStackAtResourceGroupInput interface { + pulumi.Input + + ToDeploymentStackAtResourceGroupOutput() DeploymentStackAtResourceGroupOutput + ToDeploymentStackAtResourceGroupOutputWithContext(ctx context.Context) DeploymentStackAtResourceGroupOutput +} + +func (*DeploymentStackAtResourceGroup) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtResourceGroup)(nil)).Elem() +} + +func (i *DeploymentStackAtResourceGroup) ToDeploymentStackAtResourceGroupOutput() DeploymentStackAtResourceGroupOutput { + return i.ToDeploymentStackAtResourceGroupOutputWithContext(context.Background()) +} + +func (i *DeploymentStackAtResourceGroup) ToDeploymentStackAtResourceGroupOutputWithContext(ctx context.Context) DeploymentStackAtResourceGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStackAtResourceGroupOutput) +} + +type DeploymentStackAtResourceGroupOutput struct{ *pulumi.OutputState } + +func (DeploymentStackAtResourceGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtResourceGroup)(nil)).Elem() +} + +func (o DeploymentStackAtResourceGroupOutput) ToDeploymentStackAtResourceGroupOutput() DeploymentStackAtResourceGroupOutput { + return o +} + +func (o DeploymentStackAtResourceGroupOutput) ToDeploymentStackAtResourceGroupOutputWithContext(ctx context.Context) DeploymentStackAtResourceGroupOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o DeploymentStackAtResourceGroupOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o DeploymentStackAtResourceGroupOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) DeploymentStacksDebugSettingResponsePtrOutput { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o DeploymentStackAtResourceGroupOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) ResourceReferenceResponseArrayOutput { + return v.DeletedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o DeploymentStackAtResourceGroupOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) DenySettingsResponseOutput { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o DeploymentStackAtResourceGroupOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringOutput { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o DeploymentStackAtResourceGroupOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringPtrOutput { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o DeploymentStackAtResourceGroupOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o DeploymentStackAtResourceGroupOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) ResourceReferenceResponseArrayOutput { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o DeploymentStackAtResourceGroupOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringOutput { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o DeploymentStackAtResourceGroupOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) ErrorResponseResponsePtrOutput { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o DeploymentStackAtResourceGroupOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) ResourceReferenceExtendedResponseArrayOutput { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o DeploymentStackAtResourceGroupOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o DeploymentStackAtResourceGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o DeploymentStackAtResourceGroupOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.AnyOutput { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o DeploymentStackAtResourceGroupOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.AnyOutput { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o DeploymentStackAtResourceGroupOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) DeploymentStacksParametersLinkResponsePtrOutput { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o DeploymentStackAtResourceGroupOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o DeploymentStackAtResourceGroupOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) ManagedResourceReferenceResponseArrayOutput { + return v.Resources + }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o DeploymentStackAtResourceGroupOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o DeploymentStackAtResourceGroupOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o DeploymentStackAtResourceGroupOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtResourceGroup) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(DeploymentStackAtResourceGroupOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtSubscription.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtSubscription.go new file mode 100644 index 00000000..4191f228 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/deploymentStackAtSubscription.go @@ -0,0 +1,324 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Deployment stack object. +// Azure REST API version: 2022-08-01-preview. +type DeploymentStackAtSubscription struct { + pulumi.CustomResourceState + + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanageOutput `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingResponsePtrOutput `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources ResourceReferenceResponseArrayOutput `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponseOutput `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId pulumi.StringOutput `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrOutput `pulumi:"deploymentScope"` + // Deployment stack description. + Description pulumi.StringPtrOutput `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources ResourceReferenceResponseArrayOutput `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration pulumi.StringOutput `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error ErrorResponseResponsePtrOutput `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources ResourceReferenceExtendedResponseArrayOutput `pulumi:"failedResources"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrOutput `pulumi:"location"` + // Name of this resource. + Name pulumi.StringOutput `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs pulumi.AnyOutput `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.AnyOutput `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkResponsePtrOutput `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources ManagedResourceReferenceResponseArrayOutput `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponseOutput `pulumi:"systemData"` + // Deployment stack resource tags. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Type of this resource. + Type pulumi.StringOutput `pulumi:"type"` +} + +// NewDeploymentStackAtSubscription registers a new resource with the given unique name, arguments, and options. +func NewDeploymentStackAtSubscription(ctx *pulumi.Context, + name string, args *DeploymentStackAtSubscriptionArgs, opts ...pulumi.ResourceOption) (*DeploymentStackAtSubscription, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ActionOnUnmanage == nil { + return nil, errors.New("invalid value for required argument 'ActionOnUnmanage'") + } + if args.DenySettings == nil { + return nil, errors.New("invalid value for required argument 'DenySettings'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("azure-native:resources/v20220801preview:DeploymentStackAtSubscription"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeploymentStackAtSubscription + err := ctx.RegisterResource("azure-native:resources:DeploymentStackAtSubscription", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeploymentStackAtSubscription gets an existing DeploymentStackAtSubscription resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeploymentStackAtSubscription(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeploymentStackAtSubscriptionState, opts ...pulumi.ResourceOption) (*DeploymentStackAtSubscription, error) { + var resource DeploymentStackAtSubscription + err := ctx.ReadResource("azure-native:resources:DeploymentStackAtSubscription", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeploymentStackAtSubscription resources. +type deploymentStackAtSubscriptionState struct { +} + +type DeploymentStackAtSubscriptionState struct { +} + +func (DeploymentStackAtSubscriptionState) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtSubscriptionState)(nil)).Elem() +} + +type deploymentStackAtSubscriptionArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSetting `pulumi:"debugSetting"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettings `pulumi:"denySettings"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Name of the deployment stack. + DeploymentStackName *string `pulumi:"deploymentStackName"` + // Deployment stack description. + Description *string `pulumi:"description"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLink `pulumi:"parametersLink"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template interface{} `pulumi:"template"` + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink *DeploymentStacksTemplateLink `pulumi:"templateLink"` +} + +// The set of arguments for constructing a DeploymentStackAtSubscription resource. +type DeploymentStackAtSubscriptionArgs struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesActionOnUnmanageInput + // The debug setting of the deployment. + DebugSetting DeploymentStacksDebugSettingPtrInput + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsInput + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope pulumi.StringPtrInput + // Name of the deployment stack. + DeploymentStackName pulumi.StringPtrInput + // Deployment stack description. + Description pulumi.StringPtrInput + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location pulumi.StringPtrInput + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters pulumi.Input + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink DeploymentStacksParametersLinkPtrInput + // Deployment stack resource tags. + Tags pulumi.StringMapInput + // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. + Template pulumi.Input + // The URI of the template. Use either the templateLink property or the template property, but not both. + TemplateLink DeploymentStacksTemplateLinkPtrInput +} + +func (DeploymentStackAtSubscriptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deploymentStackAtSubscriptionArgs)(nil)).Elem() +} + +type DeploymentStackAtSubscriptionInput interface { + pulumi.Input + + ToDeploymentStackAtSubscriptionOutput() DeploymentStackAtSubscriptionOutput + ToDeploymentStackAtSubscriptionOutputWithContext(ctx context.Context) DeploymentStackAtSubscriptionOutput +} + +func (*DeploymentStackAtSubscription) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtSubscription)(nil)).Elem() +} + +func (i *DeploymentStackAtSubscription) ToDeploymentStackAtSubscriptionOutput() DeploymentStackAtSubscriptionOutput { + return i.ToDeploymentStackAtSubscriptionOutputWithContext(context.Background()) +} + +func (i *DeploymentStackAtSubscription) ToDeploymentStackAtSubscriptionOutputWithContext(ctx context.Context) DeploymentStackAtSubscriptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStackAtSubscriptionOutput) +} + +type DeploymentStackAtSubscriptionOutput struct{ *pulumi.OutputState } + +func (DeploymentStackAtSubscriptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStackAtSubscription)(nil)).Elem() +} + +func (o DeploymentStackAtSubscriptionOutput) ToDeploymentStackAtSubscriptionOutput() DeploymentStackAtSubscriptionOutput { + return o +} + +func (o DeploymentStackAtSubscriptionOutput) ToDeploymentStackAtSubscriptionOutputWithContext(ctx context.Context) DeploymentStackAtSubscriptionOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o DeploymentStackAtSubscriptionOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o DeploymentStackAtSubscriptionOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) DeploymentStacksDebugSettingResponsePtrOutput { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o DeploymentStackAtSubscriptionOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) ResourceReferenceResponseArrayOutput { return v.DeletedResources }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o DeploymentStackAtSubscriptionOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) DenySettingsResponseOutput { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o DeploymentStackAtSubscriptionOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringOutput { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o DeploymentStackAtSubscriptionOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringPtrOutput { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o DeploymentStackAtSubscriptionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o DeploymentStackAtSubscriptionOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) ResourceReferenceResponseArrayOutput { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o DeploymentStackAtSubscriptionOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringOutput { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o DeploymentStackAtSubscriptionOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) ErrorResponseResponsePtrOutput { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o DeploymentStackAtSubscriptionOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) ResourceReferenceExtendedResponseArrayOutput { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o DeploymentStackAtSubscriptionOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o DeploymentStackAtSubscriptionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o DeploymentStackAtSubscriptionOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.AnyOutput { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o DeploymentStackAtSubscriptionOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.AnyOutput { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o DeploymentStackAtSubscriptionOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) DeploymentStacksParametersLinkResponsePtrOutput { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o DeploymentStackAtSubscriptionOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o DeploymentStackAtSubscriptionOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) ManagedResourceReferenceResponseArrayOutput { return v.Resources }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o DeploymentStackAtSubscriptionOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) SystemDataResponseOutput { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o DeploymentStackAtSubscriptionOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o DeploymentStackAtSubscriptionOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *DeploymentStackAtSubscription) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(DeploymentStackAtSubscriptionOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzureCliScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzureCliScript.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzureCliScript.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzureCliScript.go index e773d6c4..cb0cea73 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzureCliScript.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzureCliScript.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment script with a given name. -// API Version: 2020-10-01. +// Azure REST API version: 2020-10-01. func LookupAzureCliScript(ctx *pulumi.Context, args *LookupAzureCliScriptArgs, opts ...pulumi.InvokeOption) (*LookupAzureCliScriptResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAzureCliScriptResult err := ctx.Invoke("azure-native:resources:getAzureCliScript", args, &rv, opts...) if err != nil { @@ -85,11 +87,11 @@ func (val *LookupAzureCliScriptResult) Defaults() *LookupAzureCliScriptResult { return nil } tmp := *val - if isZero(tmp.CleanupPreference) { + if tmp.CleanupPreference == nil { cleanupPreference_ := "Always" tmp.CleanupPreference = &cleanupPreference_ } - if isZero(tmp.Timeout) { + if tmp.Timeout == nil { timeout_ := "P1D" tmp.Timeout = &timeout_ } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzurePowerShellScript.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzurePowerShellScript.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzurePowerShellScript.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzurePowerShellScript.go index 7aa27d05..b37f1150 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getAzurePowerShellScript.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getAzurePowerShellScript.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment script with a given name. -// API Version: 2020-10-01. +// Azure REST API version: 2020-10-01. func LookupAzurePowerShellScript(ctx *pulumi.Context, args *LookupAzurePowerShellScriptArgs, opts ...pulumi.InvokeOption) (*LookupAzurePowerShellScriptResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupAzurePowerShellScriptResult err := ctx.Invoke("azure-native:resources:getAzurePowerShellScript", args, &rv, opts...) if err != nil { @@ -85,11 +87,11 @@ func (val *LookupAzurePowerShellScriptResult) Defaults() *LookupAzurePowerShellS return nil } tmp := *val - if isZero(tmp.CleanupPreference) { + if tmp.CleanupPreference == nil { cleanupPreference_ := "Always" tmp.CleanupPreference = &cleanupPreference_ } - if isZero(tmp.Timeout) { + if tmp.Timeout == nil { timeout_ := "P1D" tmp.Timeout = &timeout_ } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeployment.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeployment.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeployment.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeployment.go index f534c264..0e5410ef 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeployment.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeployment.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. func LookupDeployment(ctx *pulumi.Context, args *LookupDeploymentArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDeploymentResult err := ctx.Invoke("azure-native:resources:getDeployment", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtManagementGroupScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtManagementGroupScope.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtManagementGroupScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtManagementGroupScope.go index fe2f32c0..f64e7806 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtManagementGroupScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtManagementGroupScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. func LookupDeploymentAtManagementGroupScope(ctx *pulumi.Context, args *LookupDeploymentAtManagementGroupScopeArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentAtManagementGroupScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDeploymentAtManagementGroupScopeResult err := ctx.Invoke("azure-native:resources:getDeploymentAtManagementGroupScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtScope.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtScope.go index f6ea4902..ecd1013f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. func LookupDeploymentAtScope(ctx *pulumi.Context, args *LookupDeploymentAtScopeArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentAtScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDeploymentAtScopeResult err := ctx.Invoke("azure-native:resources:getDeploymentAtScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtSubscriptionScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtSubscriptionScope.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtSubscriptionScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtSubscriptionScope.go index 0ebf7fc0..6f636e5f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtSubscriptionScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtSubscriptionScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. func LookupDeploymentAtSubscriptionScope(ctx *pulumi.Context, args *LookupDeploymentAtSubscriptionScopeArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentAtSubscriptionScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDeploymentAtSubscriptionScopeResult err := ctx.Invoke("azure-native:resources:getDeploymentAtSubscriptionScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtTenantScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtTenantScope.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtTenantScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtTenantScope.go index df3a597c..9ff9c3b2 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getDeploymentAtTenantScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentAtTenantScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a deployment. -// API Version: 2021-01-01. +// Azure REST API version: 2022-09-01. func LookupDeploymentAtTenantScope(ctx *pulumi.Context, args *LookupDeploymentAtTenantScopeArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentAtTenantScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupDeploymentAtTenantScopeResult err := ctx.Invoke("azure-native:resources:getDeploymentAtTenantScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtManagementGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtManagementGroup.go new file mode 100644 index 00000000..71f8e64d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtManagementGroup.go @@ -0,0 +1,246 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets a Deployment Stack with a given name. +// Azure REST API version: 2022-08-01-preview. +func LookupDeploymentStackAtManagementGroup(ctx *pulumi.Context, args *LookupDeploymentStackAtManagementGroupArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentStackAtManagementGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupDeploymentStackAtManagementGroupResult + err := ctx.Invoke("azure-native:resources:getDeploymentStackAtManagementGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDeploymentStackAtManagementGroupArgs struct { + // Name of the deployment stack. + DeploymentStackName string `pulumi:"deploymentStackName"` + // Management Group. + ManagementGroupId string `pulumi:"managementGroupId"` +} + +// Deployment stack object. +type LookupDeploymentStackAtManagementGroupResult struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSettingResponse `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources []ResourceReferenceResponse `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponse `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId string `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Deployment stack description. + Description *string `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources []ResourceReferenceResponse `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration string `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error *ErrorResponseResponse `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources []ResourceReferenceExtendedResponse `pulumi:"failedResources"` + // String Id used to locate any resource on Azure. + Id string `pulumi:"id"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Name of this resource. + Name string `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs interface{} `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLinkResponse `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState string `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources []ManagedResourceReferenceResponse `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponse `pulumi:"systemData"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // Type of this resource. + Type string `pulumi:"type"` +} + +func LookupDeploymentStackAtManagementGroupOutput(ctx *pulumi.Context, args LookupDeploymentStackAtManagementGroupOutputArgs, opts ...pulumi.InvokeOption) LookupDeploymentStackAtManagementGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDeploymentStackAtManagementGroupResult, error) { + args := v.(LookupDeploymentStackAtManagementGroupArgs) + r, err := LookupDeploymentStackAtManagementGroup(ctx, &args, opts...) + var s LookupDeploymentStackAtManagementGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupDeploymentStackAtManagementGroupResultOutput) +} + +type LookupDeploymentStackAtManagementGroupOutputArgs struct { + // Name of the deployment stack. + DeploymentStackName pulumi.StringInput `pulumi:"deploymentStackName"` + // Management Group. + ManagementGroupId pulumi.StringInput `pulumi:"managementGroupId"` +} + +func (LookupDeploymentStackAtManagementGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtManagementGroupArgs)(nil)).Elem() +} + +// Deployment stack object. +type LookupDeploymentStackAtManagementGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupDeploymentStackAtManagementGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtManagementGroupResult)(nil)).Elem() +} + +func (o LookupDeploymentStackAtManagementGroupResultOutput) ToLookupDeploymentStackAtManagementGroupResultOutput() LookupDeploymentStackAtManagementGroupResultOutput { + return o +} + +func (o LookupDeploymentStackAtManagementGroupResultOutput) ToLookupDeploymentStackAtManagementGroupResultOutputWithContext(ctx context.Context) LookupDeploymentStackAtManagementGroupResultOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o LookupDeploymentStackAtManagementGroupResultOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) DeploymentStackPropertiesResponseActionOnUnmanage { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o LookupDeploymentStackAtManagementGroupResultOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *DeploymentStacksDebugSettingResponse { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o LookupDeploymentStackAtManagementGroupResultOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) []ResourceReferenceResponse { + return v.DeletedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o LookupDeploymentStackAtManagementGroupResultOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) DenySettingsResponse { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o LookupDeploymentStackAtManagementGroupResultOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o LookupDeploymentStackAtManagementGroupResultOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *string { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o LookupDeploymentStackAtManagementGroupResultOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) []ResourceReferenceResponse { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o LookupDeploymentStackAtManagementGroupResultOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *ErrorResponseResponse { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o LookupDeploymentStackAtManagementGroupResultOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) []ResourceReferenceExtendedResponse { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// String Id used to locate any resource on Azure. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) interface{} { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) interface{} { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o LookupDeploymentStackAtManagementGroupResultOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) *DeploymentStacksParametersLinkResponse { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o LookupDeploymentStackAtManagementGroupResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) []ManagedResourceReferenceResponse { + return v.Resources + }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o LookupDeploymentStackAtManagementGroupResultOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o LookupDeploymentStackAtManagementGroupResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtManagementGroupResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDeploymentStackAtManagementGroupResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtResourceGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtResourceGroup.go new file mode 100644 index 00000000..7548bc2b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtResourceGroup.go @@ -0,0 +1,246 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets a Deployment Stack with a given name. +// Azure REST API version: 2022-08-01-preview. +func LookupDeploymentStackAtResourceGroup(ctx *pulumi.Context, args *LookupDeploymentStackAtResourceGroupArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentStackAtResourceGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupDeploymentStackAtResourceGroupResult + err := ctx.Invoke("azure-native:resources:getDeploymentStackAtResourceGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDeploymentStackAtResourceGroupArgs struct { + // Name of the deployment stack. + DeploymentStackName string `pulumi:"deploymentStackName"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName string `pulumi:"resourceGroupName"` +} + +// Deployment stack object. +type LookupDeploymentStackAtResourceGroupResult struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSettingResponse `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources []ResourceReferenceResponse `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponse `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId string `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Deployment stack description. + Description *string `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources []ResourceReferenceResponse `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration string `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error *ErrorResponseResponse `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources []ResourceReferenceExtendedResponse `pulumi:"failedResources"` + // String Id used to locate any resource on Azure. + Id string `pulumi:"id"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Name of this resource. + Name string `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs interface{} `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLinkResponse `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState string `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources []ManagedResourceReferenceResponse `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponse `pulumi:"systemData"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // Type of this resource. + Type string `pulumi:"type"` +} + +func LookupDeploymentStackAtResourceGroupOutput(ctx *pulumi.Context, args LookupDeploymentStackAtResourceGroupOutputArgs, opts ...pulumi.InvokeOption) LookupDeploymentStackAtResourceGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDeploymentStackAtResourceGroupResult, error) { + args := v.(LookupDeploymentStackAtResourceGroupArgs) + r, err := LookupDeploymentStackAtResourceGroup(ctx, &args, opts...) + var s LookupDeploymentStackAtResourceGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupDeploymentStackAtResourceGroupResultOutput) +} + +type LookupDeploymentStackAtResourceGroupOutputArgs struct { + // Name of the deployment stack. + DeploymentStackName pulumi.StringInput `pulumi:"deploymentStackName"` + // The name of the resource group. The name is case insensitive. + ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` +} + +func (LookupDeploymentStackAtResourceGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtResourceGroupArgs)(nil)).Elem() +} + +// Deployment stack object. +type LookupDeploymentStackAtResourceGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupDeploymentStackAtResourceGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtResourceGroupResult)(nil)).Elem() +} + +func (o LookupDeploymentStackAtResourceGroupResultOutput) ToLookupDeploymentStackAtResourceGroupResultOutput() LookupDeploymentStackAtResourceGroupResultOutput { + return o +} + +func (o LookupDeploymentStackAtResourceGroupResultOutput) ToLookupDeploymentStackAtResourceGroupResultOutputWithContext(ctx context.Context) LookupDeploymentStackAtResourceGroupResultOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o LookupDeploymentStackAtResourceGroupResultOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) DeploymentStackPropertiesResponseActionOnUnmanage { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o LookupDeploymentStackAtResourceGroupResultOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *DeploymentStacksDebugSettingResponse { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o LookupDeploymentStackAtResourceGroupResultOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) []ResourceReferenceResponse { + return v.DeletedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o LookupDeploymentStackAtResourceGroupResultOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) DenySettingsResponse { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o LookupDeploymentStackAtResourceGroupResultOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o LookupDeploymentStackAtResourceGroupResultOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *string { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o LookupDeploymentStackAtResourceGroupResultOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) []ResourceReferenceResponse { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o LookupDeploymentStackAtResourceGroupResultOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *ErrorResponseResponse { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o LookupDeploymentStackAtResourceGroupResultOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) []ResourceReferenceExtendedResponse { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// String Id used to locate any resource on Azure. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) interface{} { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) interface{} { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o LookupDeploymentStackAtResourceGroupResultOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) *DeploymentStacksParametersLinkResponse { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o LookupDeploymentStackAtResourceGroupResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) []ManagedResourceReferenceResponse { + return v.Resources + }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o LookupDeploymentStackAtResourceGroupResultOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o LookupDeploymentStackAtResourceGroupResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtResourceGroupResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDeploymentStackAtResourceGroupResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtSubscription.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtSubscription.go new file mode 100644 index 00000000..c37987ef --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getDeploymentStackAtSubscription.go @@ -0,0 +1,242 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package resources + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Gets a Deployment Stack with a given name. +// Azure REST API version: 2022-08-01-preview. +func LookupDeploymentStackAtSubscription(ctx *pulumi.Context, args *LookupDeploymentStackAtSubscriptionArgs, opts ...pulumi.InvokeOption) (*LookupDeploymentStackAtSubscriptionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) + var rv LookupDeploymentStackAtSubscriptionResult + err := ctx.Invoke("azure-native:resources:getDeploymentStackAtSubscription", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDeploymentStackAtSubscriptionArgs struct { + // Name of the deployment stack. + DeploymentStackName string `pulumi:"deploymentStackName"` +} + +// Deployment stack object. +type LookupDeploymentStackAtSubscriptionResult struct { + // Defines the behavior of resources that are not managed immediately after the stack is updated. + ActionOnUnmanage DeploymentStackPropertiesResponseActionOnUnmanage `pulumi:"actionOnUnmanage"` + // The debug setting of the deployment. + DebugSetting *DeploymentStacksDebugSettingResponse `pulumi:"debugSetting"` + // An array of resources that were deleted during the most recent update. + DeletedResources []ResourceReferenceResponse `pulumi:"deletedResources"` + // Defines how resources deployed by the stack are locked. + DenySettings DenySettingsResponse `pulumi:"denySettings"` + // The resourceId of the deployment resource created by the deployment stack. + DeploymentId string `pulumi:"deploymentId"` + // The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). + DeploymentScope *string `pulumi:"deploymentScope"` + // Deployment stack description. + Description *string `pulumi:"description"` + // An array of resources that were detached during the most recent update. + DetachedResources []ResourceReferenceResponse `pulumi:"detachedResources"` + // The duration of the deployment stack update. + Duration string `pulumi:"duration"` + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error *ErrorResponseResponse `pulumi:"error"` + // An array of resources that failed to reach goal state during the most recent update. + FailedResources []ResourceReferenceExtendedResponse `pulumi:"failedResources"` + // String Id used to locate any resource on Azure. + Id string `pulumi:"id"` + // The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. + Location *string `pulumi:"location"` + // Name of this resource. + Name string `pulumi:"name"` + // The outputs of the underlying deployment. + Outputs interface{} `pulumi:"outputs"` + // Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. + Parameters interface{} `pulumi:"parameters"` + // The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. + ParametersLink *DeploymentStacksParametersLinkResponse `pulumi:"parametersLink"` + // State of the deployment stack. + ProvisioningState string `pulumi:"provisioningState"` + // An array of resources currently managed by the deployment stack. + Resources []ManagedResourceReferenceResponse `pulumi:"resources"` + // Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData SystemDataResponse `pulumi:"systemData"` + // Deployment stack resource tags. + Tags map[string]string `pulumi:"tags"` + // Type of this resource. + Type string `pulumi:"type"` +} + +func LookupDeploymentStackAtSubscriptionOutput(ctx *pulumi.Context, args LookupDeploymentStackAtSubscriptionOutputArgs, opts ...pulumi.InvokeOption) LookupDeploymentStackAtSubscriptionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDeploymentStackAtSubscriptionResult, error) { + args := v.(LookupDeploymentStackAtSubscriptionArgs) + r, err := LookupDeploymentStackAtSubscription(ctx, &args, opts...) + var s LookupDeploymentStackAtSubscriptionResult + if r != nil { + s = *r + } + return s, err + }).(LookupDeploymentStackAtSubscriptionResultOutput) +} + +type LookupDeploymentStackAtSubscriptionOutputArgs struct { + // Name of the deployment stack. + DeploymentStackName pulumi.StringInput `pulumi:"deploymentStackName"` +} + +func (LookupDeploymentStackAtSubscriptionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtSubscriptionArgs)(nil)).Elem() +} + +// Deployment stack object. +type LookupDeploymentStackAtSubscriptionResultOutput struct{ *pulumi.OutputState } + +func (LookupDeploymentStackAtSubscriptionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDeploymentStackAtSubscriptionResult)(nil)).Elem() +} + +func (o LookupDeploymentStackAtSubscriptionResultOutput) ToLookupDeploymentStackAtSubscriptionResultOutput() LookupDeploymentStackAtSubscriptionResultOutput { + return o +} + +func (o LookupDeploymentStackAtSubscriptionResultOutput) ToLookupDeploymentStackAtSubscriptionResultOutputWithContext(ctx context.Context) LookupDeploymentStackAtSubscriptionResultOutput { + return o +} + +// Defines the behavior of resources that are not managed immediately after the stack is updated. +func (o LookupDeploymentStackAtSubscriptionResultOutput) ActionOnUnmanage() DeploymentStackPropertiesResponseActionOnUnmanageOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) DeploymentStackPropertiesResponseActionOnUnmanage { + return v.ActionOnUnmanage + }).(DeploymentStackPropertiesResponseActionOnUnmanageOutput) +} + +// The debug setting of the deployment. +func (o LookupDeploymentStackAtSubscriptionResultOutput) DebugSetting() DeploymentStacksDebugSettingResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *DeploymentStacksDebugSettingResponse { + return v.DebugSetting + }).(DeploymentStacksDebugSettingResponsePtrOutput) +} + +// An array of resources that were deleted during the most recent update. +func (o LookupDeploymentStackAtSubscriptionResultOutput) DeletedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) []ResourceReferenceResponse { + return v.DeletedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// Defines how resources deployed by the stack are locked. +func (o LookupDeploymentStackAtSubscriptionResultOutput) DenySettings() DenySettingsResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) DenySettingsResponse { return v.DenySettings }).(DenySettingsResponseOutput) +} + +// The resourceId of the deployment resource created by the deployment stack. +func (o LookupDeploymentStackAtSubscriptionResultOutput) DeploymentId() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.DeploymentId }).(pulumi.StringOutput) +} + +// The scope at which the initial deployment should be created. If a scope is not specified, it will default to the scope of the deployment stack. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroupId}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}'). +func (o LookupDeploymentStackAtSubscriptionResultOutput) DeploymentScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *string { return v.DeploymentScope }).(pulumi.StringPtrOutput) +} + +// Deployment stack description. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// An array of resources that were detached during the most recent update. +func (o LookupDeploymentStackAtSubscriptionResultOutput) DetachedResources() ResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) []ResourceReferenceResponse { + return v.DetachedResources + }).(ResourceReferenceResponseArrayOutput) +} + +// The duration of the deployment stack update. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.Duration }).(pulumi.StringOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o LookupDeploymentStackAtSubscriptionResultOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *ErrorResponseResponse { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// An array of resources that failed to reach goal state during the most recent update. +func (o LookupDeploymentStackAtSubscriptionResultOutput) FailedResources() ResourceReferenceExtendedResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) []ResourceReferenceExtendedResponse { + return v.FailedResources + }).(ResourceReferenceExtendedResponseArrayOutput) +} + +// String Id used to locate any resource on Azure. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The location of the deployment stack. It cannot be changed after creation. It must be one of the supported Azure locations. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *string { return v.Location }).(pulumi.StringPtrOutput) +} + +// Name of this resource. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The outputs of the underlying deployment. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Outputs() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) interface{} { return v.Outputs }).(pulumi.AnyOutput) +} + +// Name and value pairs that define the deployment parameters for the template. Use this element when providing the parameter values directly in the request, rather than linking to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Parameters() pulumi.AnyOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) interface{} { return v.Parameters }).(pulumi.AnyOutput) +} + +// The URI of parameters file. Use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. +func (o LookupDeploymentStackAtSubscriptionResultOutput) ParametersLink() DeploymentStacksParametersLinkResponsePtrOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) *DeploymentStacksParametersLinkResponse { + return v.ParametersLink + }).(DeploymentStacksParametersLinkResponsePtrOutput) +} + +// State of the deployment stack. +func (o LookupDeploymentStackAtSubscriptionResultOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.ProvisioningState }).(pulumi.StringOutput) +} + +// An array of resources currently managed by the deployment stack. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Resources() ManagedResourceReferenceResponseArrayOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) []ManagedResourceReferenceResponse { + return v.Resources + }).(ManagedResourceReferenceResponseArrayOutput) +} + +// Azure Resource Manager metadata containing createdBy and modifiedBy information. +func (o LookupDeploymentStackAtSubscriptionResultOutput) SystemData() SystemDataResponseOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) SystemDataResponse { return v.SystemData }).(SystemDataResponseOutput) +} + +// Deployment stack resource tags. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Type of this resource. +func (o LookupDeploymentStackAtSubscriptionResultOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v LookupDeploymentStackAtSubscriptionResult) string { return v.Type }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDeploymentStackAtSubscriptionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResource.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResource.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResource.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResource.go index 9f2d8f3a..3d5aca77 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResource.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResource.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a resource. -// API Version: 2019-05-01. +// Azure REST API version: 2022-09-01. func LookupResource(ctx *pulumi.Context, args *LookupResourceArgs, opts ...pulumi.InvokeOption) (*LookupResourceResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupResourceResult err := ctx.Invoke("azure-native:resources:getResource", args, &rv, opts...) if err != nil { @@ -36,6 +38,8 @@ type LookupResourceArgs struct { // Resource information. type LookupResourceResult struct { + // Resource extended location. + ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` // Resource ID Id string `pulumi:"id"` // The identity of the resource. @@ -105,6 +109,11 @@ func (o LookupResourceResultOutput) ToLookupResourceResultOutputWithContext(ctx return o } +// Resource extended location. +func (o LookupResourceResultOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v LookupResourceResult) *ExtendedLocationResponse { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +} + // Resource ID func (o LookupResourceResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v LookupResourceResult) string { return v.Id }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResourceGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResourceGroup.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResourceGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResourceGroup.go index 0f167d3e..fba2d76c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getResourceGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getResourceGroup.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a resource group. -// API Version: 2019-05-01. +// Azure REST API version: 2022-09-01. func LookupResourceGroup(ctx *pulumi.Context, args *LookupResourceGroupArgs, opts ...pulumi.InvokeOption) (*LookupResourceGroupResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupResourceGroupResult err := ctx.Invoke("azure-native:resources:getResourceGroup", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTagAtScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTagAtScope.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTagAtScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTagAtScope.go index bd2a0179..f75c41ce 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTagAtScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTagAtScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Wrapper resource for tags API requests and responses. -// API Version: 2019-10-01. +// Azure REST API version: 2022-09-01. func LookupTagAtScope(ctx *pulumi.Context, args *LookupTagAtScopeArgs, opts ...pulumi.InvokeOption) (*LookupTagAtScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTagAtScopeResult err := ctx.Invoke("azure-native:resources:getTagAtScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpec.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpec.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpec.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpec.go index 4990dada..314d5fed 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpec.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpec.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Template Spec with a given name. -// API Version: 2022-02-01. +// Azure REST API version: 2022-02-01. func LookupTemplateSpec(ctx *pulumi.Context, args *LookupTemplateSpecArgs, opts ...pulumi.InvokeOption) (*LookupTemplateSpecResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTemplateSpecResult err := ctx.Invoke("azure-native:resources:getTemplateSpec", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpecVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpecVersion.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpecVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpecVersion.go index 107e93b5..263be945 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/getTemplateSpecVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/getTemplateSpecVersion.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets a Template Spec version from a specific Template Spec. -// API Version: 2022-02-01. +// Azure REST API version: 2022-02-01. func LookupTemplateSpecVersion(ctx *pulumi.Context, args *LookupTemplateSpecVersionArgs, opts ...pulumi.InvokeOption) (*LookupTemplateSpecVersionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTemplateSpecVersionResult err := ctx.Invoke("azure-native:resources:getTemplateSpecVersion", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/init.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/init.go similarity index 80% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/init.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/init.go index ac96ec5c..8458cd0c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/init.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-azure-native-sdk" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -35,8 +35,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &DeploymentAtSubscriptionScope{} case "azure-native:resources:DeploymentAtTenantScope": r = &DeploymentAtTenantScope{} - case "azure-native:resources:DeploymentScript": - r = &DeploymentScript{} + case "azure-native:resources:DeploymentStackAtManagementGroup": + r = &DeploymentStackAtManagementGroup{} + case "azure-native:resources:DeploymentStackAtResourceGroup": + r = &DeploymentStackAtResourceGroup{} + case "azure-native:resources:DeploymentStackAtSubscription": + r = &DeploymentStackAtSubscription{} case "azure-native:resources:Resource": r = &Resource{} case "azure-native:resources:ResourceGroup": @@ -56,7 +60,7 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi } func init() { - version, err := pulumiazurenativesdk.PkgVersion() + version, err := utilities.PkgVersion() if err != nil { version = semver.Version{Major: 1} } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumi-plugin.json similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/pulumi-plugin.json rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumi-plugin.json diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiEnums.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiEnums.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiEnums.go index d2076d32..d0424587 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiEnums.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiEnums.go @@ -19,6 +19,18 @@ const ( CleanupOptionsOnExpiration = CleanupOptions("OnExpiration") ) +// denySettings Mode. +type DenySettingsMode string + +const ( + // Authorized users are able to read and modify the resources, but cannot delete. + DenySettingsModeDenyDelete = DenySettingsMode("denyDelete") + // Authorized users can only read from a resource, but cannot modify or delete it. + DenySettingsModeDenyWriteAndDelete = DenySettingsMode("denyWriteAndDelete") + // No denyAssignments have been applied. + DenySettingsModeNone = DenySettingsMode("none") +) + // The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources. type DeploymentMode string @@ -184,6 +196,14 @@ func (in *deploymentModePtr) ToDeploymentModePtrOutputWithContext(ctx context.Co return pulumi.ToOutputWithContext(ctx, in).(DeploymentModePtrOutput) } +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +type DeploymentStacksDeleteDetachEnum string + +const ( + DeploymentStacksDeleteDetachEnumDelete = DeploymentStacksDeleteDetachEnum("delete") + DeploymentStacksDeleteDetachEnumDetach = DeploymentStacksDeleteDetachEnum("detach") +) + // The scope to be used for evaluation of parameters, variables and functions in a nested template. type ExpressionEvaluationOptionsScopeType string @@ -193,6 +213,13 @@ const ( ExpressionEvaluationOptionsScopeTypeInner = ExpressionEvaluationOptionsScopeType("Inner") ) +// The extended location type. +type ExtendedLocationType string + +const ( + ExtendedLocationTypeEdgeZone = ExtendedLocationType("EdgeZone") +) + // Type of the managed identity. type ManagedServiceIdentityType string diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiTypes.go similarity index 68% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiTypes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiTypes.go index 47fca126..10ef3302 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/pulumiTypes.go @@ -7,9 +7,12 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +var _ = utilities.GetEnvOrDefault + type AliasPathMetadataResponse struct { // The attributes of the token that the alias path is referring to. Attributes string `pulumi:"attributes"` @@ -760,6 +763,135 @@ func (o DebugSettingResponseOutput) DetailLevel() pulumi.StringPtrOutput { return o.ApplyT(func(v DebugSettingResponse) *string { return v.DetailLevel }).(pulumi.StringPtrOutput) } +// Defines how resources deployed by the deployment stack are locked. +type DenySettings struct { + // DenySettings will be applied to child scopes. + ApplyToChildScopes *bool `pulumi:"applyToChildScopes"` + // List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed. + ExcludedActions []string `pulumi:"excludedActions"` + // List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted. + ExcludedPrincipals []string `pulumi:"excludedPrincipals"` + // denySettings Mode. + Mode string `pulumi:"mode"` +} + +// DenySettingsInput is an input type that accepts DenySettingsArgs and DenySettingsOutput values. +// You can construct a concrete instance of `DenySettingsInput` via: +// +// DenySettingsArgs{...} +type DenySettingsInput interface { + pulumi.Input + + ToDenySettingsOutput() DenySettingsOutput + ToDenySettingsOutputWithContext(context.Context) DenySettingsOutput +} + +// Defines how resources deployed by the deployment stack are locked. +type DenySettingsArgs struct { + // DenySettings will be applied to child scopes. + ApplyToChildScopes pulumi.BoolPtrInput `pulumi:"applyToChildScopes"` + // List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed. + ExcludedActions pulumi.StringArrayInput `pulumi:"excludedActions"` + // List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted. + ExcludedPrincipals pulumi.StringArrayInput `pulumi:"excludedPrincipals"` + // denySettings Mode. + Mode pulumi.StringInput `pulumi:"mode"` +} + +func (DenySettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DenySettings)(nil)).Elem() +} + +func (i DenySettingsArgs) ToDenySettingsOutput() DenySettingsOutput { + return i.ToDenySettingsOutputWithContext(context.Background()) +} + +func (i DenySettingsArgs) ToDenySettingsOutputWithContext(ctx context.Context) DenySettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DenySettingsOutput) +} + +// Defines how resources deployed by the deployment stack are locked. +type DenySettingsOutput struct{ *pulumi.OutputState } + +func (DenySettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DenySettings)(nil)).Elem() +} + +func (o DenySettingsOutput) ToDenySettingsOutput() DenySettingsOutput { + return o +} + +func (o DenySettingsOutput) ToDenySettingsOutputWithContext(ctx context.Context) DenySettingsOutput { + return o +} + +// DenySettings will be applied to child scopes. +func (o DenySettingsOutput) ApplyToChildScopes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DenySettings) *bool { return v.ApplyToChildScopes }).(pulumi.BoolPtrOutput) +} + +// List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed. +func (o DenySettingsOutput) ExcludedActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DenySettings) []string { return v.ExcludedActions }).(pulumi.StringArrayOutput) +} + +// List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted. +func (o DenySettingsOutput) ExcludedPrincipals() pulumi.StringArrayOutput { + return o.ApplyT(func(v DenySettings) []string { return v.ExcludedPrincipals }).(pulumi.StringArrayOutput) +} + +// denySettings Mode. +func (o DenySettingsOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v DenySettings) string { return v.Mode }).(pulumi.StringOutput) +} + +// Defines how resources deployed by the deployment stack are locked. +type DenySettingsResponse struct { + // DenySettings will be applied to child scopes. + ApplyToChildScopes *bool `pulumi:"applyToChildScopes"` + // List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed. + ExcludedActions []string `pulumi:"excludedActions"` + // List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted. + ExcludedPrincipals []string `pulumi:"excludedPrincipals"` + // denySettings Mode. + Mode string `pulumi:"mode"` +} + +// Defines how resources deployed by the deployment stack are locked. +type DenySettingsResponseOutput struct{ *pulumi.OutputState } + +func (DenySettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DenySettingsResponse)(nil)).Elem() +} + +func (o DenySettingsResponseOutput) ToDenySettingsResponseOutput() DenySettingsResponseOutput { + return o +} + +func (o DenySettingsResponseOutput) ToDenySettingsResponseOutputWithContext(ctx context.Context) DenySettingsResponseOutput { + return o +} + +// DenySettings will be applied to child scopes. +func (o DenySettingsResponseOutput) ApplyToChildScopes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DenySettingsResponse) *bool { return v.ApplyToChildScopes }).(pulumi.BoolPtrOutput) +} + +// List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed. +func (o DenySettingsResponseOutput) ExcludedActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DenySettingsResponse) []string { return v.ExcludedActions }).(pulumi.StringArrayOutput) +} + +// List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted. +func (o DenySettingsResponseOutput) ExcludedPrincipals() pulumi.StringArrayOutput { + return o.ApplyT(func(v DenySettingsResponse) []string { return v.ExcludedPrincipals }).(pulumi.StringArrayOutput) +} + +// denySettings Mode. +func (o DenySettingsResponseOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v DenySettingsResponse) string { return v.Mode }).(pulumi.StringOutput) +} + // Deployment dependency information. type DependencyResponse struct { // The list of dependencies. @@ -827,6 +959,115 @@ func (o DependencyResponseArrayOutput) Index(i pulumi.IntInput) DependencyRespon }).(DependencyResponseOutput) } +// Deployment parameter for the template. +type DeploymentParameter struct { + // Azure Key Vault parameter reference. + Reference *KeyVaultParameterReference `pulumi:"reference"` + // Input value to the parameter . + Value interface{} `pulumi:"value"` +} + +// DeploymentParameterInput is an input type that accepts DeploymentParameterArgs and DeploymentParameterOutput values. +// You can construct a concrete instance of `DeploymentParameterInput` via: +// +// DeploymentParameterArgs{...} +type DeploymentParameterInput interface { + pulumi.Input + + ToDeploymentParameterOutput() DeploymentParameterOutput + ToDeploymentParameterOutputWithContext(context.Context) DeploymentParameterOutput +} + +// Deployment parameter for the template. +type DeploymentParameterArgs struct { + // Azure Key Vault parameter reference. + Reference KeyVaultParameterReferencePtrInput `pulumi:"reference"` + // Input value to the parameter . + Value pulumi.Input `pulumi:"value"` +} + +func (DeploymentParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentParameter)(nil)).Elem() +} + +func (i DeploymentParameterArgs) ToDeploymentParameterOutput() DeploymentParameterOutput { + return i.ToDeploymentParameterOutputWithContext(context.Background()) +} + +func (i DeploymentParameterArgs) ToDeploymentParameterOutputWithContext(ctx context.Context) DeploymentParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentParameterOutput) +} + +// DeploymentParameterMapInput is an input type that accepts DeploymentParameterMap and DeploymentParameterMapOutput values. +// You can construct a concrete instance of `DeploymentParameterMapInput` via: +// +// DeploymentParameterMap{ "key": DeploymentParameterArgs{...} } +type DeploymentParameterMapInput interface { + pulumi.Input + + ToDeploymentParameterMapOutput() DeploymentParameterMapOutput + ToDeploymentParameterMapOutputWithContext(context.Context) DeploymentParameterMapOutput +} + +type DeploymentParameterMap map[string]DeploymentParameterInput + +func (DeploymentParameterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeploymentParameter)(nil)).Elem() +} + +func (i DeploymentParameterMap) ToDeploymentParameterMapOutput() DeploymentParameterMapOutput { + return i.ToDeploymentParameterMapOutputWithContext(context.Background()) +} + +func (i DeploymentParameterMap) ToDeploymentParameterMapOutputWithContext(ctx context.Context) DeploymentParameterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentParameterMapOutput) +} + +// Deployment parameter for the template. +type DeploymentParameterOutput struct{ *pulumi.OutputState } + +func (DeploymentParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentParameter)(nil)).Elem() +} + +func (o DeploymentParameterOutput) ToDeploymentParameterOutput() DeploymentParameterOutput { + return o +} + +func (o DeploymentParameterOutput) ToDeploymentParameterOutputWithContext(ctx context.Context) DeploymentParameterOutput { + return o +} + +// Azure Key Vault parameter reference. +func (o DeploymentParameterOutput) Reference() KeyVaultParameterReferencePtrOutput { + return o.ApplyT(func(v DeploymentParameter) *KeyVaultParameterReference { return v.Reference }).(KeyVaultParameterReferencePtrOutput) +} + +// Input value to the parameter . +func (o DeploymentParameterOutput) Value() pulumi.AnyOutput { + return o.ApplyT(func(v DeploymentParameter) interface{} { return v.Value }).(pulumi.AnyOutput) +} + +type DeploymentParameterMapOutput struct{ *pulumi.OutputState } + +func (DeploymentParameterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeploymentParameter)(nil)).Elem() +} + +func (o DeploymentParameterMapOutput) ToDeploymentParameterMapOutput() DeploymentParameterMapOutput { + return o +} + +func (o DeploymentParameterMapOutput) ToDeploymentParameterMapOutputWithContext(ctx context.Context) DeploymentParameterMapOutput { + return o +} + +func (o DeploymentParameterMapOutput) MapIndex(k pulumi.StringInput) DeploymentParameterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DeploymentParameter { + return vs[0].(map[string]DeploymentParameter)[vs[1].(string)] + }).(DeploymentParameterOutput) +} + // Deployment properties. type DeploymentProperties struct { // The debug setting of the deployment. @@ -838,7 +1079,7 @@ type DeploymentProperties struct { // The deployment on error behavior. OnErrorDeployment *OnErrorDeployment `pulumi:"onErrorDeployment"` // Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. - Parameters interface{} `pulumi:"parameters"` + Parameters map[string]DeploymentParameter `pulumi:"parameters"` // The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. ParametersLink *ParametersLink `pulumi:"parametersLink"` // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. @@ -869,7 +1110,7 @@ type DeploymentPropertiesArgs struct { // The deployment on error behavior. OnErrorDeployment OnErrorDeploymentPtrInput `pulumi:"onErrorDeployment"` // Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. - Parameters pulumi.Input `pulumi:"parameters"` + Parameters DeploymentParameterMapInput `pulumi:"parameters"` // The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. ParametersLink ParametersLinkPtrInput `pulumi:"parametersLink"` // The template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both. @@ -926,8 +1167,8 @@ func (o DeploymentPropertiesOutput) OnErrorDeployment() OnErrorDeploymentPtrOutp } // Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string. -func (o DeploymentPropertiesOutput) Parameters() pulumi.AnyOutput { - return o.ApplyT(func(v DeploymentProperties) interface{} { return v.Parameters }).(pulumi.AnyOutput) +func (o DeploymentPropertiesOutput) Parameters() DeploymentParameterMapOutput { + return o.ApplyT(func(v DeploymentProperties) map[string]DeploymentParameter { return v.Parameters }).(DeploymentParameterMapOutput) } // The URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both. @@ -1085,210 +1326,975 @@ func (o DeploymentPropertiesExtendedResponseOutput) ValidatedResources() Resourc return o.ApplyT(func(v DeploymentPropertiesExtendedResponse) []ResourceReferenceResponse { return v.ValidatedResources }).(ResourceReferenceResponseArrayOutput) } -// The environment variable to pass to the script in the container instance. -type EnvironmentVariable struct { - // The name of the environment variable. - Name string `pulumi:"name"` - // The value of the secure environment variable. - SecureValue *string `pulumi:"secureValue"` - // The value of the environment variable. - Value *string `pulumi:"value"` +// Defines the behavior of resources that are not managed immediately after the stack is updated. +type DeploymentStackPropertiesActionOnUnmanage struct { + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ManagementGroups *string `pulumi:"managementGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ResourceGroups *string `pulumi:"resourceGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + Resources string `pulumi:"resources"` } -// EnvironmentVariableInput is an input type that accepts EnvironmentVariableArgs and EnvironmentVariableOutput values. -// You can construct a concrete instance of `EnvironmentVariableInput` via: +// DeploymentStackPropertiesActionOnUnmanageInput is an input type that accepts DeploymentStackPropertiesActionOnUnmanageArgs and DeploymentStackPropertiesActionOnUnmanageOutput values. +// You can construct a concrete instance of `DeploymentStackPropertiesActionOnUnmanageInput` via: // -// EnvironmentVariableArgs{...} -type EnvironmentVariableInput interface { +// DeploymentStackPropertiesActionOnUnmanageArgs{...} +type DeploymentStackPropertiesActionOnUnmanageInput interface { pulumi.Input - ToEnvironmentVariableOutput() EnvironmentVariableOutput - ToEnvironmentVariableOutputWithContext(context.Context) EnvironmentVariableOutput + ToDeploymentStackPropertiesActionOnUnmanageOutput() DeploymentStackPropertiesActionOnUnmanageOutput + ToDeploymentStackPropertiesActionOnUnmanageOutputWithContext(context.Context) DeploymentStackPropertiesActionOnUnmanageOutput } -// The environment variable to pass to the script in the container instance. -type EnvironmentVariableArgs struct { - // The name of the environment variable. - Name pulumi.StringInput `pulumi:"name"` - // The value of the secure environment variable. - SecureValue pulumi.StringPtrInput `pulumi:"secureValue"` - // The value of the environment variable. - Value pulumi.StringPtrInput `pulumi:"value"` +// Defines the behavior of resources that are not managed immediately after the stack is updated. +type DeploymentStackPropertiesActionOnUnmanageArgs struct { + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ManagementGroups pulumi.StringPtrInput `pulumi:"managementGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ResourceGroups pulumi.StringPtrInput `pulumi:"resourceGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + Resources pulumi.StringInput `pulumi:"resources"` } -func (EnvironmentVariableArgs) ElementType() reflect.Type { - return reflect.TypeOf((*EnvironmentVariable)(nil)).Elem() +func (DeploymentStackPropertiesActionOnUnmanageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStackPropertiesActionOnUnmanage)(nil)).Elem() } -func (i EnvironmentVariableArgs) ToEnvironmentVariableOutput() EnvironmentVariableOutput { - return i.ToEnvironmentVariableOutputWithContext(context.Background()) +func (i DeploymentStackPropertiesActionOnUnmanageArgs) ToDeploymentStackPropertiesActionOnUnmanageOutput() DeploymentStackPropertiesActionOnUnmanageOutput { + return i.ToDeploymentStackPropertiesActionOnUnmanageOutputWithContext(context.Background()) } -func (i EnvironmentVariableArgs) ToEnvironmentVariableOutputWithContext(ctx context.Context) EnvironmentVariableOutput { - return pulumi.ToOutputWithContext(ctx, i).(EnvironmentVariableOutput) +func (i DeploymentStackPropertiesActionOnUnmanageArgs) ToDeploymentStackPropertiesActionOnUnmanageOutputWithContext(ctx context.Context) DeploymentStackPropertiesActionOnUnmanageOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStackPropertiesActionOnUnmanageOutput) } -// EnvironmentVariableArrayInput is an input type that accepts EnvironmentVariableArray and EnvironmentVariableArrayOutput values. -// You can construct a concrete instance of `EnvironmentVariableArrayInput` via: -// -// EnvironmentVariableArray{ EnvironmentVariableArgs{...} } -type EnvironmentVariableArrayInput interface { - pulumi.Input +// Defines the behavior of resources that are not managed immediately after the stack is updated. +type DeploymentStackPropertiesActionOnUnmanageOutput struct{ *pulumi.OutputState } - ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput - ToEnvironmentVariableArrayOutputWithContext(context.Context) EnvironmentVariableArrayOutput +func (DeploymentStackPropertiesActionOnUnmanageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStackPropertiesActionOnUnmanage)(nil)).Elem() } -type EnvironmentVariableArray []EnvironmentVariableInput +func (o DeploymentStackPropertiesActionOnUnmanageOutput) ToDeploymentStackPropertiesActionOnUnmanageOutput() DeploymentStackPropertiesActionOnUnmanageOutput { + return o +} -func (EnvironmentVariableArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]EnvironmentVariable)(nil)).Elem() +func (o DeploymentStackPropertiesActionOnUnmanageOutput) ToDeploymentStackPropertiesActionOnUnmanageOutputWithContext(ctx context.Context) DeploymentStackPropertiesActionOnUnmanageOutput { + return o } -func (i EnvironmentVariableArray) ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput { - return i.ToEnvironmentVariableArrayOutputWithContext(context.Background()) +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesActionOnUnmanageOutput) ManagementGroups() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStackPropertiesActionOnUnmanage) *string { return v.ManagementGroups }).(pulumi.StringPtrOutput) } -func (i EnvironmentVariableArray) ToEnvironmentVariableArrayOutputWithContext(ctx context.Context) EnvironmentVariableArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(EnvironmentVariableArrayOutput) +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesActionOnUnmanageOutput) ResourceGroups() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStackPropertiesActionOnUnmanage) *string { return v.ResourceGroups }).(pulumi.StringPtrOutput) } -// The environment variable to pass to the script in the container instance. -type EnvironmentVariableOutput struct{ *pulumi.OutputState } +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesActionOnUnmanageOutput) Resources() pulumi.StringOutput { + return o.ApplyT(func(v DeploymentStackPropertiesActionOnUnmanage) string { return v.Resources }).(pulumi.StringOutput) +} -func (EnvironmentVariableOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EnvironmentVariable)(nil)).Elem() +// Defines the behavior of resources that are not managed immediately after the stack is updated. +type DeploymentStackPropertiesResponseActionOnUnmanage struct { + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ManagementGroups *string `pulumi:"managementGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + ResourceGroups *string `pulumi:"resourceGroups"` + // Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. + Resources string `pulumi:"resources"` } -func (o EnvironmentVariableOutput) ToEnvironmentVariableOutput() EnvironmentVariableOutput { +// Defines the behavior of resources that are not managed immediately after the stack is updated. +type DeploymentStackPropertiesResponseActionOnUnmanageOutput struct{ *pulumi.OutputState } + +func (DeploymentStackPropertiesResponseActionOnUnmanageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStackPropertiesResponseActionOnUnmanage)(nil)).Elem() +} + +func (o DeploymentStackPropertiesResponseActionOnUnmanageOutput) ToDeploymentStackPropertiesResponseActionOnUnmanageOutput() DeploymentStackPropertiesResponseActionOnUnmanageOutput { return o } -func (o EnvironmentVariableOutput) ToEnvironmentVariableOutputWithContext(ctx context.Context) EnvironmentVariableOutput { +func (o DeploymentStackPropertiesResponseActionOnUnmanageOutput) ToDeploymentStackPropertiesResponseActionOnUnmanageOutputWithContext(ctx context.Context) DeploymentStackPropertiesResponseActionOnUnmanageOutput { return o } -// The name of the environment variable. -func (o EnvironmentVariableOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v EnvironmentVariable) string { return v.Name }).(pulumi.StringOutput) +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesResponseActionOnUnmanageOutput) ManagementGroups() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStackPropertiesResponseActionOnUnmanage) *string { return v.ManagementGroups }).(pulumi.StringPtrOutput) } -// The value of the secure environment variable. -func (o EnvironmentVariableOutput) SecureValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v EnvironmentVariable) *string { return v.SecureValue }).(pulumi.StringPtrOutput) +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesResponseActionOnUnmanageOutput) ResourceGroups() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStackPropertiesResponseActionOnUnmanage) *string { return v.ResourceGroups }).(pulumi.StringPtrOutput) } -// The value of the environment variable. -func (o EnvironmentVariableOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v EnvironmentVariable) *string { return v.Value }).(pulumi.StringPtrOutput) +// Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state. +func (o DeploymentStackPropertiesResponseActionOnUnmanageOutput) Resources() pulumi.StringOutput { + return o.ApplyT(func(v DeploymentStackPropertiesResponseActionOnUnmanage) string { return v.Resources }).(pulumi.StringOutput) } -type EnvironmentVariableArrayOutput struct{ *pulumi.OutputState } +// The debug setting. +type DeploymentStacksDebugSetting struct { + // Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. + DetailLevel *string `pulumi:"detailLevel"` +} -func (EnvironmentVariableArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]EnvironmentVariable)(nil)).Elem() +// DeploymentStacksDebugSettingInput is an input type that accepts DeploymentStacksDebugSettingArgs and DeploymentStacksDebugSettingOutput values. +// You can construct a concrete instance of `DeploymentStacksDebugSettingInput` via: +// +// DeploymentStacksDebugSettingArgs{...} +type DeploymentStacksDebugSettingInput interface { + pulumi.Input + + ToDeploymentStacksDebugSettingOutput() DeploymentStacksDebugSettingOutput + ToDeploymentStacksDebugSettingOutputWithContext(context.Context) DeploymentStacksDebugSettingOutput } -func (o EnvironmentVariableArrayOutput) ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput { - return o +// The debug setting. +type DeploymentStacksDebugSettingArgs struct { + // Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. + DetailLevel pulumi.StringPtrInput `pulumi:"detailLevel"` } -func (o EnvironmentVariableArrayOutput) ToEnvironmentVariableArrayOutputWithContext(ctx context.Context) EnvironmentVariableArrayOutput { - return o +func (DeploymentStacksDebugSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksDebugSetting)(nil)).Elem() } -func (o EnvironmentVariableArrayOutput) Index(i pulumi.IntInput) EnvironmentVariableOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) EnvironmentVariable { - return vs[0].([]EnvironmentVariable)[vs[1].(int)] - }).(EnvironmentVariableOutput) +func (i DeploymentStacksDebugSettingArgs) ToDeploymentStacksDebugSettingOutput() DeploymentStacksDebugSettingOutput { + return i.ToDeploymentStacksDebugSettingOutputWithContext(context.Background()) } -// The environment variable to pass to the script in the container instance. -type EnvironmentVariableResponse struct { - // The name of the environment variable. - Name string `pulumi:"name"` - // The value of the secure environment variable. - SecureValue *string `pulumi:"secureValue"` - // The value of the environment variable. - Value *string `pulumi:"value"` +func (i DeploymentStacksDebugSettingArgs) ToDeploymentStacksDebugSettingOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksDebugSettingOutput) } -// The environment variable to pass to the script in the container instance. -type EnvironmentVariableResponseOutput struct{ *pulumi.OutputState } +func (i DeploymentStacksDebugSettingArgs) ToDeploymentStacksDebugSettingPtrOutput() DeploymentStacksDebugSettingPtrOutput { + return i.ToDeploymentStacksDebugSettingPtrOutputWithContext(context.Background()) +} -func (EnvironmentVariableResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EnvironmentVariableResponse)(nil)).Elem() +func (i DeploymentStacksDebugSettingArgs) ToDeploymentStacksDebugSettingPtrOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksDebugSettingOutput).ToDeploymentStacksDebugSettingPtrOutputWithContext(ctx) } -func (o EnvironmentVariableResponseOutput) ToEnvironmentVariableResponseOutput() EnvironmentVariableResponseOutput { - return o +// DeploymentStacksDebugSettingPtrInput is an input type that accepts DeploymentStacksDebugSettingArgs, DeploymentStacksDebugSettingPtr and DeploymentStacksDebugSettingPtrOutput values. +// You can construct a concrete instance of `DeploymentStacksDebugSettingPtrInput` via: +// +// DeploymentStacksDebugSettingArgs{...} +// +// or: +// +// nil +type DeploymentStacksDebugSettingPtrInput interface { + pulumi.Input + + ToDeploymentStacksDebugSettingPtrOutput() DeploymentStacksDebugSettingPtrOutput + ToDeploymentStacksDebugSettingPtrOutputWithContext(context.Context) DeploymentStacksDebugSettingPtrOutput } -func (o EnvironmentVariableResponseOutput) ToEnvironmentVariableResponseOutputWithContext(ctx context.Context) EnvironmentVariableResponseOutput { - return o +type deploymentStacksDebugSettingPtrType DeploymentStacksDebugSettingArgs + +func DeploymentStacksDebugSettingPtr(v *DeploymentStacksDebugSettingArgs) DeploymentStacksDebugSettingPtrInput { + return (*deploymentStacksDebugSettingPtrType)(v) } -// The name of the environment variable. -func (o EnvironmentVariableResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v EnvironmentVariableResponse) string { return v.Name }).(pulumi.StringOutput) +func (*deploymentStacksDebugSettingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksDebugSetting)(nil)).Elem() } -// The value of the secure environment variable. -func (o EnvironmentVariableResponseOutput) SecureValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v EnvironmentVariableResponse) *string { return v.SecureValue }).(pulumi.StringPtrOutput) +func (i *deploymentStacksDebugSettingPtrType) ToDeploymentStacksDebugSettingPtrOutput() DeploymentStacksDebugSettingPtrOutput { + return i.ToDeploymentStacksDebugSettingPtrOutputWithContext(context.Background()) } -// The value of the environment variable. -func (o EnvironmentVariableResponseOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v EnvironmentVariableResponse) *string { return v.Value }).(pulumi.StringPtrOutput) +func (i *deploymentStacksDebugSettingPtrType) ToDeploymentStacksDebugSettingPtrOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksDebugSettingPtrOutput) } -type EnvironmentVariableResponseArrayOutput struct{ *pulumi.OutputState } +// The debug setting. +type DeploymentStacksDebugSettingOutput struct{ *pulumi.OutputState } -func (EnvironmentVariableResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]EnvironmentVariableResponse)(nil)).Elem() +func (DeploymentStacksDebugSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksDebugSetting)(nil)).Elem() } -func (o EnvironmentVariableResponseArrayOutput) ToEnvironmentVariableResponseArrayOutput() EnvironmentVariableResponseArrayOutput { +func (o DeploymentStacksDebugSettingOutput) ToDeploymentStacksDebugSettingOutput() DeploymentStacksDebugSettingOutput { return o } -func (o EnvironmentVariableResponseArrayOutput) ToEnvironmentVariableResponseArrayOutputWithContext(ctx context.Context) EnvironmentVariableResponseArrayOutput { +func (o DeploymentStacksDebugSettingOutput) ToDeploymentStacksDebugSettingOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingOutput { return o } -func (o EnvironmentVariableResponseArrayOutput) Index(i pulumi.IntInput) EnvironmentVariableResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) EnvironmentVariableResponse { - return vs[0].([]EnvironmentVariableResponse)[vs[1].(int)] - }).(EnvironmentVariableResponseOutput) +func (o DeploymentStacksDebugSettingOutput) ToDeploymentStacksDebugSettingPtrOutput() DeploymentStacksDebugSettingPtrOutput { + return o.ToDeploymentStacksDebugSettingPtrOutputWithContext(context.Background()) } -// The resource management error additional info. -type ErrorAdditionalInfoResponse struct { - // The additional info. - Info interface{} `pulumi:"info"` - // The additional info type. - Type string `pulumi:"type"` +func (o DeploymentStacksDebugSettingOutput) ToDeploymentStacksDebugSettingPtrOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentStacksDebugSetting) *DeploymentStacksDebugSetting { + return &v + }).(DeploymentStacksDebugSettingPtrOutput) } -// The resource management error additional info. -type ErrorAdditionalInfoResponseOutput struct{ *pulumi.OutputState } +// Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. +func (o DeploymentStacksDebugSettingOutput) DetailLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksDebugSetting) *string { return v.DetailLevel }).(pulumi.StringPtrOutput) +} -func (ErrorAdditionalInfoResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ErrorAdditionalInfoResponse)(nil)).Elem() +type DeploymentStacksDebugSettingPtrOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksDebugSettingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksDebugSetting)(nil)).Elem() } -func (o ErrorAdditionalInfoResponseOutput) ToErrorAdditionalInfoResponseOutput() ErrorAdditionalInfoResponseOutput { +func (o DeploymentStacksDebugSettingPtrOutput) ToDeploymentStacksDebugSettingPtrOutput() DeploymentStacksDebugSettingPtrOutput { return o } -func (o ErrorAdditionalInfoResponseOutput) ToErrorAdditionalInfoResponseOutputWithContext(ctx context.Context) ErrorAdditionalInfoResponseOutput { +func (o DeploymentStacksDebugSettingPtrOutput) ToDeploymentStacksDebugSettingPtrOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingPtrOutput { return o } -// The additional info. -func (o ErrorAdditionalInfoResponseOutput) Info() pulumi.AnyOutput { - return o.ApplyT(func(v ErrorAdditionalInfoResponse) interface{} { return v.Info }).(pulumi.AnyOutput) +func (o DeploymentStacksDebugSettingPtrOutput) Elem() DeploymentStacksDebugSettingOutput { + return o.ApplyT(func(v *DeploymentStacksDebugSetting) DeploymentStacksDebugSetting { + if v != nil { + return *v + } + var ret DeploymentStacksDebugSetting + return ret + }).(DeploymentStacksDebugSettingOutput) +} + +// Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. +func (o DeploymentStacksDebugSettingPtrOutput) DetailLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksDebugSetting) *string { + if v == nil { + return nil + } + return v.DetailLevel + }).(pulumi.StringPtrOutput) +} + +// The debug setting. +type DeploymentStacksDebugSettingResponse struct { + // Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. + DetailLevel *string `pulumi:"detailLevel"` +} + +// The debug setting. +type DeploymentStacksDebugSettingResponseOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksDebugSettingResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksDebugSettingResponse)(nil)).Elem() +} + +func (o DeploymentStacksDebugSettingResponseOutput) ToDeploymentStacksDebugSettingResponseOutput() DeploymentStacksDebugSettingResponseOutput { + return o +} + +func (o DeploymentStacksDebugSettingResponseOutput) ToDeploymentStacksDebugSettingResponseOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingResponseOutput { + return o +} + +// Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. +func (o DeploymentStacksDebugSettingResponseOutput) DetailLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksDebugSettingResponse) *string { return v.DetailLevel }).(pulumi.StringPtrOutput) +} + +type DeploymentStacksDebugSettingResponsePtrOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksDebugSettingResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksDebugSettingResponse)(nil)).Elem() +} + +func (o DeploymentStacksDebugSettingResponsePtrOutput) ToDeploymentStacksDebugSettingResponsePtrOutput() DeploymentStacksDebugSettingResponsePtrOutput { + return o +} + +func (o DeploymentStacksDebugSettingResponsePtrOutput) ToDeploymentStacksDebugSettingResponsePtrOutputWithContext(ctx context.Context) DeploymentStacksDebugSettingResponsePtrOutput { + return o +} + +func (o DeploymentStacksDebugSettingResponsePtrOutput) Elem() DeploymentStacksDebugSettingResponseOutput { + return o.ApplyT(func(v *DeploymentStacksDebugSettingResponse) DeploymentStacksDebugSettingResponse { + if v != nil { + return *v + } + var ret DeploymentStacksDebugSettingResponse + return ret + }).(DeploymentStacksDebugSettingResponseOutput) +} + +// Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information that is being passed in during deployment. By logging information about the request or response, sensitive data that is retrieved through the deployment operations could potentially be exposed. +func (o DeploymentStacksDebugSettingResponsePtrOutput) DetailLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksDebugSettingResponse) *string { + if v == nil { + return nil + } + return v.DetailLevel + }).(pulumi.StringPtrOutput) +} + +// Entity representing the reference to the deployment parameters. +type DeploymentStacksParametersLink struct { + // If included, must match the ContentVersion in the template. + ContentVersion *string `pulumi:"contentVersion"` + // The URI of the parameters file. + Uri string `pulumi:"uri"` +} + +// DeploymentStacksParametersLinkInput is an input type that accepts DeploymentStacksParametersLinkArgs and DeploymentStacksParametersLinkOutput values. +// You can construct a concrete instance of `DeploymentStacksParametersLinkInput` via: +// +// DeploymentStacksParametersLinkArgs{...} +type DeploymentStacksParametersLinkInput interface { + pulumi.Input + + ToDeploymentStacksParametersLinkOutput() DeploymentStacksParametersLinkOutput + ToDeploymentStacksParametersLinkOutputWithContext(context.Context) DeploymentStacksParametersLinkOutput +} + +// Entity representing the reference to the deployment parameters. +type DeploymentStacksParametersLinkArgs struct { + // If included, must match the ContentVersion in the template. + ContentVersion pulumi.StringPtrInput `pulumi:"contentVersion"` + // The URI of the parameters file. + Uri pulumi.StringInput `pulumi:"uri"` +} + +func (DeploymentStacksParametersLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksParametersLink)(nil)).Elem() +} + +func (i DeploymentStacksParametersLinkArgs) ToDeploymentStacksParametersLinkOutput() DeploymentStacksParametersLinkOutput { + return i.ToDeploymentStacksParametersLinkOutputWithContext(context.Background()) +} + +func (i DeploymentStacksParametersLinkArgs) ToDeploymentStacksParametersLinkOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksParametersLinkOutput) +} + +func (i DeploymentStacksParametersLinkArgs) ToDeploymentStacksParametersLinkPtrOutput() DeploymentStacksParametersLinkPtrOutput { + return i.ToDeploymentStacksParametersLinkPtrOutputWithContext(context.Background()) +} + +func (i DeploymentStacksParametersLinkArgs) ToDeploymentStacksParametersLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksParametersLinkOutput).ToDeploymentStacksParametersLinkPtrOutputWithContext(ctx) +} + +// DeploymentStacksParametersLinkPtrInput is an input type that accepts DeploymentStacksParametersLinkArgs, DeploymentStacksParametersLinkPtr and DeploymentStacksParametersLinkPtrOutput values. +// You can construct a concrete instance of `DeploymentStacksParametersLinkPtrInput` via: +// +// DeploymentStacksParametersLinkArgs{...} +// +// or: +// +// nil +type DeploymentStacksParametersLinkPtrInput interface { + pulumi.Input + + ToDeploymentStacksParametersLinkPtrOutput() DeploymentStacksParametersLinkPtrOutput + ToDeploymentStacksParametersLinkPtrOutputWithContext(context.Context) DeploymentStacksParametersLinkPtrOutput +} + +type deploymentStacksParametersLinkPtrType DeploymentStacksParametersLinkArgs + +func DeploymentStacksParametersLinkPtr(v *DeploymentStacksParametersLinkArgs) DeploymentStacksParametersLinkPtrInput { + return (*deploymentStacksParametersLinkPtrType)(v) +} + +func (*deploymentStacksParametersLinkPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksParametersLink)(nil)).Elem() +} + +func (i *deploymentStacksParametersLinkPtrType) ToDeploymentStacksParametersLinkPtrOutput() DeploymentStacksParametersLinkPtrOutput { + return i.ToDeploymentStacksParametersLinkPtrOutputWithContext(context.Background()) +} + +func (i *deploymentStacksParametersLinkPtrType) ToDeploymentStacksParametersLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksParametersLinkPtrOutput) +} + +// Entity representing the reference to the deployment parameters. +type DeploymentStacksParametersLinkOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksParametersLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksParametersLink)(nil)).Elem() +} + +func (o DeploymentStacksParametersLinkOutput) ToDeploymentStacksParametersLinkOutput() DeploymentStacksParametersLinkOutput { + return o +} + +func (o DeploymentStacksParametersLinkOutput) ToDeploymentStacksParametersLinkOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkOutput { + return o +} + +func (o DeploymentStacksParametersLinkOutput) ToDeploymentStacksParametersLinkPtrOutput() DeploymentStacksParametersLinkPtrOutput { + return o.ToDeploymentStacksParametersLinkPtrOutputWithContext(context.Background()) +} + +func (o DeploymentStacksParametersLinkOutput) ToDeploymentStacksParametersLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentStacksParametersLink) *DeploymentStacksParametersLink { + return &v + }).(DeploymentStacksParametersLinkPtrOutput) +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksParametersLinkOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksParametersLink) *string { return v.ContentVersion }).(pulumi.StringPtrOutput) +} + +// The URI of the parameters file. +func (o DeploymentStacksParametersLinkOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v DeploymentStacksParametersLink) string { return v.Uri }).(pulumi.StringOutput) +} + +type DeploymentStacksParametersLinkPtrOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksParametersLinkPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksParametersLink)(nil)).Elem() +} + +func (o DeploymentStacksParametersLinkPtrOutput) ToDeploymentStacksParametersLinkPtrOutput() DeploymentStacksParametersLinkPtrOutput { + return o +} + +func (o DeploymentStacksParametersLinkPtrOutput) ToDeploymentStacksParametersLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkPtrOutput { + return o +} + +func (o DeploymentStacksParametersLinkPtrOutput) Elem() DeploymentStacksParametersLinkOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLink) DeploymentStacksParametersLink { + if v != nil { + return *v + } + var ret DeploymentStacksParametersLink + return ret + }).(DeploymentStacksParametersLinkOutput) +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksParametersLinkPtrOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLink) *string { + if v == nil { + return nil + } + return v.ContentVersion + }).(pulumi.StringPtrOutput) +} + +// The URI of the parameters file. +func (o DeploymentStacksParametersLinkPtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLink) *string { + if v == nil { + return nil + } + return &v.Uri + }).(pulumi.StringPtrOutput) +} + +// Entity representing the reference to the deployment parameters. +type DeploymentStacksParametersLinkResponse struct { + // If included, must match the ContentVersion in the template. + ContentVersion *string `pulumi:"contentVersion"` + // The URI of the parameters file. + Uri string `pulumi:"uri"` +} + +// Entity representing the reference to the deployment parameters. +type DeploymentStacksParametersLinkResponseOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksParametersLinkResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksParametersLinkResponse)(nil)).Elem() +} + +func (o DeploymentStacksParametersLinkResponseOutput) ToDeploymentStacksParametersLinkResponseOutput() DeploymentStacksParametersLinkResponseOutput { + return o +} + +func (o DeploymentStacksParametersLinkResponseOutput) ToDeploymentStacksParametersLinkResponseOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkResponseOutput { + return o +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksParametersLinkResponseOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksParametersLinkResponse) *string { return v.ContentVersion }).(pulumi.StringPtrOutput) +} + +// The URI of the parameters file. +func (o DeploymentStacksParametersLinkResponseOutput) Uri() pulumi.StringOutput { + return o.ApplyT(func(v DeploymentStacksParametersLinkResponse) string { return v.Uri }).(pulumi.StringOutput) +} + +type DeploymentStacksParametersLinkResponsePtrOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksParametersLinkResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksParametersLinkResponse)(nil)).Elem() +} + +func (o DeploymentStacksParametersLinkResponsePtrOutput) ToDeploymentStacksParametersLinkResponsePtrOutput() DeploymentStacksParametersLinkResponsePtrOutput { + return o +} + +func (o DeploymentStacksParametersLinkResponsePtrOutput) ToDeploymentStacksParametersLinkResponsePtrOutputWithContext(ctx context.Context) DeploymentStacksParametersLinkResponsePtrOutput { + return o +} + +func (o DeploymentStacksParametersLinkResponsePtrOutput) Elem() DeploymentStacksParametersLinkResponseOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLinkResponse) DeploymentStacksParametersLinkResponse { + if v != nil { + return *v + } + var ret DeploymentStacksParametersLinkResponse + return ret + }).(DeploymentStacksParametersLinkResponseOutput) +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksParametersLinkResponsePtrOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLinkResponse) *string { + if v == nil { + return nil + } + return v.ContentVersion + }).(pulumi.StringPtrOutput) +} + +// The URI of the parameters file. +func (o DeploymentStacksParametersLinkResponsePtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksParametersLinkResponse) *string { + if v == nil { + return nil + } + return &v.Uri + }).(pulumi.StringPtrOutput) +} + +// Entity representing the reference to the template. +type DeploymentStacksTemplateLink struct { + // If included, must match the ContentVersion in the template. + ContentVersion *string `pulumi:"contentVersion"` + // The resource id of a Template Spec. Use either the id or uri property, but not both. + Id *string `pulumi:"id"` + // The query string (for example, a SAS token) to be used with the templateLink URI. + QueryString *string `pulumi:"queryString"` + // The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs + RelativePath *string `pulumi:"relativePath"` + // The URI of the template to deploy. Use either the uri or id property, but not both. + Uri *string `pulumi:"uri"` +} + +// DeploymentStacksTemplateLinkInput is an input type that accepts DeploymentStacksTemplateLinkArgs and DeploymentStacksTemplateLinkOutput values. +// You can construct a concrete instance of `DeploymentStacksTemplateLinkInput` via: +// +// DeploymentStacksTemplateLinkArgs{...} +type DeploymentStacksTemplateLinkInput interface { + pulumi.Input + + ToDeploymentStacksTemplateLinkOutput() DeploymentStacksTemplateLinkOutput + ToDeploymentStacksTemplateLinkOutputWithContext(context.Context) DeploymentStacksTemplateLinkOutput +} + +// Entity representing the reference to the template. +type DeploymentStacksTemplateLinkArgs struct { + // If included, must match the ContentVersion in the template. + ContentVersion pulumi.StringPtrInput `pulumi:"contentVersion"` + // The resource id of a Template Spec. Use either the id or uri property, but not both. + Id pulumi.StringPtrInput `pulumi:"id"` + // The query string (for example, a SAS token) to be used with the templateLink URI. + QueryString pulumi.StringPtrInput `pulumi:"queryString"` + // The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs + RelativePath pulumi.StringPtrInput `pulumi:"relativePath"` + // The URI of the template to deploy. Use either the uri or id property, but not both. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (DeploymentStacksTemplateLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksTemplateLink)(nil)).Elem() +} + +func (i DeploymentStacksTemplateLinkArgs) ToDeploymentStacksTemplateLinkOutput() DeploymentStacksTemplateLinkOutput { + return i.ToDeploymentStacksTemplateLinkOutputWithContext(context.Background()) +} + +func (i DeploymentStacksTemplateLinkArgs) ToDeploymentStacksTemplateLinkOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksTemplateLinkOutput) +} + +func (i DeploymentStacksTemplateLinkArgs) ToDeploymentStacksTemplateLinkPtrOutput() DeploymentStacksTemplateLinkPtrOutput { + return i.ToDeploymentStacksTemplateLinkPtrOutputWithContext(context.Background()) +} + +func (i DeploymentStacksTemplateLinkArgs) ToDeploymentStacksTemplateLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksTemplateLinkOutput).ToDeploymentStacksTemplateLinkPtrOutputWithContext(ctx) +} + +// DeploymentStacksTemplateLinkPtrInput is an input type that accepts DeploymentStacksTemplateLinkArgs, DeploymentStacksTemplateLinkPtr and DeploymentStacksTemplateLinkPtrOutput values. +// You can construct a concrete instance of `DeploymentStacksTemplateLinkPtrInput` via: +// +// DeploymentStacksTemplateLinkArgs{...} +// +// or: +// +// nil +type DeploymentStacksTemplateLinkPtrInput interface { + pulumi.Input + + ToDeploymentStacksTemplateLinkPtrOutput() DeploymentStacksTemplateLinkPtrOutput + ToDeploymentStacksTemplateLinkPtrOutputWithContext(context.Context) DeploymentStacksTemplateLinkPtrOutput +} + +type deploymentStacksTemplateLinkPtrType DeploymentStacksTemplateLinkArgs + +func DeploymentStacksTemplateLinkPtr(v *DeploymentStacksTemplateLinkArgs) DeploymentStacksTemplateLinkPtrInput { + return (*deploymentStacksTemplateLinkPtrType)(v) +} + +func (*deploymentStacksTemplateLinkPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksTemplateLink)(nil)).Elem() +} + +func (i *deploymentStacksTemplateLinkPtrType) ToDeploymentStacksTemplateLinkPtrOutput() DeploymentStacksTemplateLinkPtrOutput { + return i.ToDeploymentStacksTemplateLinkPtrOutputWithContext(context.Background()) +} + +func (i *deploymentStacksTemplateLinkPtrType) ToDeploymentStacksTemplateLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeploymentStacksTemplateLinkPtrOutput) +} + +// Entity representing the reference to the template. +type DeploymentStacksTemplateLinkOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksTemplateLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeploymentStacksTemplateLink)(nil)).Elem() +} + +func (o DeploymentStacksTemplateLinkOutput) ToDeploymentStacksTemplateLinkOutput() DeploymentStacksTemplateLinkOutput { + return o +} + +func (o DeploymentStacksTemplateLinkOutput) ToDeploymentStacksTemplateLinkOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkOutput { + return o +} + +func (o DeploymentStacksTemplateLinkOutput) ToDeploymentStacksTemplateLinkPtrOutput() DeploymentStacksTemplateLinkPtrOutput { + return o.ToDeploymentStacksTemplateLinkPtrOutputWithContext(context.Background()) +} + +func (o DeploymentStacksTemplateLinkOutput) ToDeploymentStacksTemplateLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeploymentStacksTemplateLink) *DeploymentStacksTemplateLink { + return &v + }).(DeploymentStacksTemplateLinkPtrOutput) +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksTemplateLinkOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksTemplateLink) *string { return v.ContentVersion }).(pulumi.StringPtrOutput) +} + +// The resource id of a Template Spec. Use either the id or uri property, but not both. +func (o DeploymentStacksTemplateLinkOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksTemplateLink) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The query string (for example, a SAS token) to be used with the templateLink URI. +func (o DeploymentStacksTemplateLinkOutput) QueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksTemplateLink) *string { return v.QueryString }).(pulumi.StringPtrOutput) +} + +// The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs +func (o DeploymentStacksTemplateLinkOutput) RelativePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksTemplateLink) *string { return v.RelativePath }).(pulumi.StringPtrOutput) +} + +// The URI of the template to deploy. Use either the uri or id property, but not both. +func (o DeploymentStacksTemplateLinkOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeploymentStacksTemplateLink) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type DeploymentStacksTemplateLinkPtrOutput struct{ *pulumi.OutputState } + +func (DeploymentStacksTemplateLinkPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeploymentStacksTemplateLink)(nil)).Elem() +} + +func (o DeploymentStacksTemplateLinkPtrOutput) ToDeploymentStacksTemplateLinkPtrOutput() DeploymentStacksTemplateLinkPtrOutput { + return o +} + +func (o DeploymentStacksTemplateLinkPtrOutput) ToDeploymentStacksTemplateLinkPtrOutputWithContext(ctx context.Context) DeploymentStacksTemplateLinkPtrOutput { + return o +} + +func (o DeploymentStacksTemplateLinkPtrOutput) Elem() DeploymentStacksTemplateLinkOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) DeploymentStacksTemplateLink { + if v != nil { + return *v + } + var ret DeploymentStacksTemplateLink + return ret + }).(DeploymentStacksTemplateLinkOutput) +} + +// If included, must match the ContentVersion in the template. +func (o DeploymentStacksTemplateLinkPtrOutput) ContentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) *string { + if v == nil { + return nil + } + return v.ContentVersion + }).(pulumi.StringPtrOutput) +} + +// The resource id of a Template Spec. Use either the id or uri property, but not both. +func (o DeploymentStacksTemplateLinkPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// The query string (for example, a SAS token) to be used with the templateLink URI. +func (o DeploymentStacksTemplateLinkPtrOutput) QueryString() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) *string { + if v == nil { + return nil + } + return v.QueryString + }).(pulumi.StringPtrOutput) +} + +// The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs +func (o DeploymentStacksTemplateLinkPtrOutput) RelativePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) *string { + if v == nil { + return nil + } + return v.RelativePath + }).(pulumi.StringPtrOutput) +} + +// The URI of the template to deploy. Use either the uri or id property, but not both. +func (o DeploymentStacksTemplateLinkPtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeploymentStacksTemplateLink) *string { + if v == nil { + return nil + } + return v.Uri + }).(pulumi.StringPtrOutput) +} + +// The environment variable to pass to the script in the container instance. +type EnvironmentVariable struct { + // The name of the environment variable. + Name string `pulumi:"name"` + // The value of the secure environment variable. + SecureValue *string `pulumi:"secureValue"` + // The value of the environment variable. + Value *string `pulumi:"value"` +} + +// EnvironmentVariableInput is an input type that accepts EnvironmentVariableArgs and EnvironmentVariableOutput values. +// You can construct a concrete instance of `EnvironmentVariableInput` via: +// +// EnvironmentVariableArgs{...} +type EnvironmentVariableInput interface { + pulumi.Input + + ToEnvironmentVariableOutput() EnvironmentVariableOutput + ToEnvironmentVariableOutputWithContext(context.Context) EnvironmentVariableOutput +} + +// The environment variable to pass to the script in the container instance. +type EnvironmentVariableArgs struct { + // The name of the environment variable. + Name pulumi.StringInput `pulumi:"name"` + // The value of the secure environment variable. + SecureValue pulumi.StringPtrInput `pulumi:"secureValue"` + // The value of the environment variable. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EnvironmentVariableArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentVariable)(nil)).Elem() +} + +func (i EnvironmentVariableArgs) ToEnvironmentVariableOutput() EnvironmentVariableOutput { + return i.ToEnvironmentVariableOutputWithContext(context.Background()) +} + +func (i EnvironmentVariableArgs) ToEnvironmentVariableOutputWithContext(ctx context.Context) EnvironmentVariableOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentVariableOutput) +} + +// EnvironmentVariableArrayInput is an input type that accepts EnvironmentVariableArray and EnvironmentVariableArrayOutput values. +// You can construct a concrete instance of `EnvironmentVariableArrayInput` via: +// +// EnvironmentVariableArray{ EnvironmentVariableArgs{...} } +type EnvironmentVariableArrayInput interface { + pulumi.Input + + ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput + ToEnvironmentVariableArrayOutputWithContext(context.Context) EnvironmentVariableArrayOutput +} + +type EnvironmentVariableArray []EnvironmentVariableInput + +func (EnvironmentVariableArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EnvironmentVariable)(nil)).Elem() +} + +func (i EnvironmentVariableArray) ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput { + return i.ToEnvironmentVariableArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentVariableArray) ToEnvironmentVariableArrayOutputWithContext(ctx context.Context) EnvironmentVariableArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentVariableArrayOutput) +} + +// The environment variable to pass to the script in the container instance. +type EnvironmentVariableOutput struct{ *pulumi.OutputState } + +func (EnvironmentVariableOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentVariable)(nil)).Elem() +} + +func (o EnvironmentVariableOutput) ToEnvironmentVariableOutput() EnvironmentVariableOutput { + return o +} + +func (o EnvironmentVariableOutput) ToEnvironmentVariableOutputWithContext(ctx context.Context) EnvironmentVariableOutput { + return o +} + +// The name of the environment variable. +func (o EnvironmentVariableOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentVariable) string { return v.Name }).(pulumi.StringOutput) +} + +// The value of the secure environment variable. +func (o EnvironmentVariableOutput) SecureValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentVariable) *string { return v.SecureValue }).(pulumi.StringPtrOutput) +} + +// The value of the environment variable. +func (o EnvironmentVariableOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentVariable) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EnvironmentVariableArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentVariableArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EnvironmentVariable)(nil)).Elem() +} + +func (o EnvironmentVariableArrayOutput) ToEnvironmentVariableArrayOutput() EnvironmentVariableArrayOutput { + return o +} + +func (o EnvironmentVariableArrayOutput) ToEnvironmentVariableArrayOutputWithContext(ctx context.Context) EnvironmentVariableArrayOutput { + return o +} + +func (o EnvironmentVariableArrayOutput) Index(i pulumi.IntInput) EnvironmentVariableOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EnvironmentVariable { + return vs[0].([]EnvironmentVariable)[vs[1].(int)] + }).(EnvironmentVariableOutput) +} + +// The environment variable to pass to the script in the container instance. +type EnvironmentVariableResponse struct { + // The name of the environment variable. + Name string `pulumi:"name"` + // The value of the secure environment variable. + SecureValue *string `pulumi:"secureValue"` + // The value of the environment variable. + Value *string `pulumi:"value"` +} + +// The environment variable to pass to the script in the container instance. +type EnvironmentVariableResponseOutput struct{ *pulumi.OutputState } + +func (EnvironmentVariableResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EnvironmentVariableResponse)(nil)).Elem() +} + +func (o EnvironmentVariableResponseOutput) ToEnvironmentVariableResponseOutput() EnvironmentVariableResponseOutput { + return o +} + +func (o EnvironmentVariableResponseOutput) ToEnvironmentVariableResponseOutputWithContext(ctx context.Context) EnvironmentVariableResponseOutput { + return o +} + +// The name of the environment variable. +func (o EnvironmentVariableResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v EnvironmentVariableResponse) string { return v.Name }).(pulumi.StringOutput) +} + +// The value of the secure environment variable. +func (o EnvironmentVariableResponseOutput) SecureValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentVariableResponse) *string { return v.SecureValue }).(pulumi.StringPtrOutput) +} + +// The value of the environment variable. +func (o EnvironmentVariableResponseOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentVariableResponse) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EnvironmentVariableResponseArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentVariableResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EnvironmentVariableResponse)(nil)).Elem() +} + +func (o EnvironmentVariableResponseArrayOutput) ToEnvironmentVariableResponseArrayOutput() EnvironmentVariableResponseArrayOutput { + return o +} + +func (o EnvironmentVariableResponseArrayOutput) ToEnvironmentVariableResponseArrayOutputWithContext(ctx context.Context) EnvironmentVariableResponseArrayOutput { + return o +} + +func (o EnvironmentVariableResponseArrayOutput) Index(i pulumi.IntInput) EnvironmentVariableResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EnvironmentVariableResponse { + return vs[0].([]EnvironmentVariableResponse)[vs[1].(int)] + }).(EnvironmentVariableResponseOutput) +} + +// The resource management error additional info. +type ErrorAdditionalInfoResponse struct { + // The additional info. + Info interface{} `pulumi:"info"` + // The additional info type. + Type string `pulumi:"type"` +} + +// The resource management error additional info. +type ErrorAdditionalInfoResponseOutput struct{ *pulumi.OutputState } + +func (ErrorAdditionalInfoResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ErrorAdditionalInfoResponse)(nil)).Elem() +} + +func (o ErrorAdditionalInfoResponseOutput) ToErrorAdditionalInfoResponseOutput() ErrorAdditionalInfoResponseOutput { + return o +} + +func (o ErrorAdditionalInfoResponseOutput) ToErrorAdditionalInfoResponseOutputWithContext(ctx context.Context) ErrorAdditionalInfoResponseOutput { + return o +} + +// The additional info. +func (o ErrorAdditionalInfoResponseOutput) Info() pulumi.AnyOutput { + return o.ApplyT(func(v ErrorAdditionalInfoResponse) interface{} { return v.Info }).(pulumi.AnyOutput) } // The additional info type. @@ -1296,41 +2302,191 @@ func (o ErrorAdditionalInfoResponseOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v ErrorAdditionalInfoResponse) string { return v.Type }).(pulumi.StringOutput) } -type ErrorAdditionalInfoResponseArrayOutput struct{ *pulumi.OutputState } +type ErrorAdditionalInfoResponseArrayOutput struct{ *pulumi.OutputState } + +func (ErrorAdditionalInfoResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ErrorAdditionalInfoResponse)(nil)).Elem() +} + +func (o ErrorAdditionalInfoResponseArrayOutput) ToErrorAdditionalInfoResponseArrayOutput() ErrorAdditionalInfoResponseArrayOutput { + return o +} + +func (o ErrorAdditionalInfoResponseArrayOutput) ToErrorAdditionalInfoResponseArrayOutputWithContext(ctx context.Context) ErrorAdditionalInfoResponseArrayOutput { + return o +} + +func (o ErrorAdditionalInfoResponseArrayOutput) Index(i pulumi.IntInput) ErrorAdditionalInfoResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ErrorAdditionalInfoResponse { + return vs[0].([]ErrorAdditionalInfoResponse)[vs[1].(int)] + }).(ErrorAdditionalInfoResponseOutput) +} + +// The error detail. +type ErrorDetailResponse struct { + // The error additional info. + AdditionalInfo []ErrorAdditionalInfoResponse `pulumi:"additionalInfo"` + // The error code. + Code string `pulumi:"code"` + // The error details. + Details []ErrorDetailResponse `pulumi:"details"` + // The error message. + Message string `pulumi:"message"` + // The error target. + Target string `pulumi:"target"` +} + +// The error detail. +type ErrorDetailResponseOutput struct{ *pulumi.OutputState } -func (ErrorAdditionalInfoResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ErrorAdditionalInfoResponse)(nil)).Elem() +func (ErrorDetailResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ErrorDetailResponse)(nil)).Elem() } -func (o ErrorAdditionalInfoResponseArrayOutput) ToErrorAdditionalInfoResponseArrayOutput() ErrorAdditionalInfoResponseArrayOutput { +func (o ErrorDetailResponseOutput) ToErrorDetailResponseOutput() ErrorDetailResponseOutput { return o } -func (o ErrorAdditionalInfoResponseArrayOutput) ToErrorAdditionalInfoResponseArrayOutputWithContext(ctx context.Context) ErrorAdditionalInfoResponseArrayOutput { +func (o ErrorDetailResponseOutput) ToErrorDetailResponseOutputWithContext(ctx context.Context) ErrorDetailResponseOutput { return o } -func (o ErrorAdditionalInfoResponseArrayOutput) Index(i pulumi.IntInput) ErrorAdditionalInfoResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ErrorAdditionalInfoResponse { - return vs[0].([]ErrorAdditionalInfoResponse)[vs[1].(int)] - }).(ErrorAdditionalInfoResponseOutput) +// The error additional info. +func (o ErrorDetailResponseOutput) AdditionalInfo() ErrorAdditionalInfoResponseArrayOutput { + return o.ApplyT(func(v ErrorDetailResponse) []ErrorAdditionalInfoResponse { return v.AdditionalInfo }).(ErrorAdditionalInfoResponseArrayOutput) +} + +// The error code. +func (o ErrorDetailResponseOutput) Code() pulumi.StringOutput { + return o.ApplyT(func(v ErrorDetailResponse) string { return v.Code }).(pulumi.StringOutput) +} + +// The error details. +func (o ErrorDetailResponseOutput) Details() ErrorDetailResponseArrayOutput { + return o.ApplyT(func(v ErrorDetailResponse) []ErrorDetailResponse { return v.Details }).(ErrorDetailResponseArrayOutput) +} + +// The error message. +func (o ErrorDetailResponseOutput) Message() pulumi.StringOutput { + return o.ApplyT(func(v ErrorDetailResponse) string { return v.Message }).(pulumi.StringOutput) +} + +// The error target. +func (o ErrorDetailResponseOutput) Target() pulumi.StringOutput { + return o.ApplyT(func(v ErrorDetailResponse) string { return v.Target }).(pulumi.StringOutput) +} + +type ErrorDetailResponsePtrOutput struct{ *pulumi.OutputState } + +func (ErrorDetailResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ErrorDetailResponse)(nil)).Elem() +} + +func (o ErrorDetailResponsePtrOutput) ToErrorDetailResponsePtrOutput() ErrorDetailResponsePtrOutput { + return o +} + +func (o ErrorDetailResponsePtrOutput) ToErrorDetailResponsePtrOutputWithContext(ctx context.Context) ErrorDetailResponsePtrOutput { + return o +} + +func (o ErrorDetailResponsePtrOutput) Elem() ErrorDetailResponseOutput { + return o.ApplyT(func(v *ErrorDetailResponse) ErrorDetailResponse { + if v != nil { + return *v + } + var ret ErrorDetailResponse + return ret + }).(ErrorDetailResponseOutput) +} + +// The error additional info. +func (o ErrorDetailResponsePtrOutput) AdditionalInfo() ErrorAdditionalInfoResponseArrayOutput { + return o.ApplyT(func(v *ErrorDetailResponse) []ErrorAdditionalInfoResponse { + if v == nil { + return nil + } + return v.AdditionalInfo + }).(ErrorAdditionalInfoResponseArrayOutput) +} + +// The error code. +func (o ErrorDetailResponsePtrOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ErrorDetailResponse) *string { + if v == nil { + return nil + } + return &v.Code + }).(pulumi.StringPtrOutput) +} + +// The error details. +func (o ErrorDetailResponsePtrOutput) Details() ErrorDetailResponseArrayOutput { + return o.ApplyT(func(v *ErrorDetailResponse) []ErrorDetailResponse { + if v == nil { + return nil + } + return v.Details + }).(ErrorDetailResponseArrayOutput) +} + +// The error message. +func (o ErrorDetailResponsePtrOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ErrorDetailResponse) *string { + if v == nil { + return nil + } + return &v.Message + }).(pulumi.StringPtrOutput) +} + +// The error target. +func (o ErrorDetailResponsePtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ErrorDetailResponse) *string { + if v == nil { + return nil + } + return &v.Target + }).(pulumi.StringPtrOutput) +} + +type ErrorDetailResponseArrayOutput struct{ *pulumi.OutputState } + +func (ErrorDetailResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ErrorDetailResponse)(nil)).Elem() +} + +func (o ErrorDetailResponseArrayOutput) ToErrorDetailResponseArrayOutput() ErrorDetailResponseArrayOutput { + return o } -// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.) +func (o ErrorDetailResponseArrayOutput) ToErrorDetailResponseArrayOutputWithContext(ctx context.Context) ErrorDetailResponseArrayOutput { + return o +} + +func (o ErrorDetailResponseArrayOutput) Index(i pulumi.IntInput) ErrorDetailResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ErrorDetailResponse { + return vs[0].([]ErrorDetailResponse)[vs[1].(int)] + }).(ErrorDetailResponseOutput) +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). type ErrorResponseResponse struct { // The error additional info. AdditionalInfo []ErrorAdditionalInfoResponse `pulumi:"additionalInfo"` // The error code. - Code string `pulumi:"code"` + Code *string `pulumi:"code"` // The error details. Details []ErrorResponseResponse `pulumi:"details"` + // The error object. + Error *ErrorDetailResponse `pulumi:"error"` // The error message. - Message string `pulumi:"message"` + Message *string `pulumi:"message"` // The error target. - Target string `pulumi:"target"` + Target *string `pulumi:"target"` } -// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.) +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). type ErrorResponseResponseOutput struct{ *pulumi.OutputState } func (ErrorResponseResponseOutput) ElementType() reflect.Type { @@ -1351,8 +2507,8 @@ func (o ErrorResponseResponseOutput) AdditionalInfo() ErrorAdditionalInfoRespons } // The error code. -func (o ErrorResponseResponseOutput) Code() pulumi.StringOutput { - return o.ApplyT(func(v ErrorResponseResponse) string { return v.Code }).(pulumi.StringOutput) +func (o ErrorResponseResponseOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v ErrorResponseResponse) *string { return v.Code }).(pulumi.StringPtrOutput) } // The error details. @@ -1360,14 +2516,19 @@ func (o ErrorResponseResponseOutput) Details() ErrorResponseResponseArrayOutput return o.ApplyT(func(v ErrorResponseResponse) []ErrorResponseResponse { return v.Details }).(ErrorResponseResponseArrayOutput) } +// The error object. +func (o ErrorResponseResponseOutput) Error() ErrorDetailResponsePtrOutput { + return o.ApplyT(func(v ErrorResponseResponse) *ErrorDetailResponse { return v.Error }).(ErrorDetailResponsePtrOutput) +} + // The error message. -func (o ErrorResponseResponseOutput) Message() pulumi.StringOutput { - return o.ApplyT(func(v ErrorResponseResponse) string { return v.Message }).(pulumi.StringOutput) +func (o ErrorResponseResponseOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ErrorResponseResponse) *string { return v.Message }).(pulumi.StringPtrOutput) } // The error target. -func (o ErrorResponseResponseOutput) Target() pulumi.StringOutput { - return o.ApplyT(func(v ErrorResponseResponse) string { return v.Target }).(pulumi.StringOutput) +func (o ErrorResponseResponseOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v ErrorResponseResponse) *string { return v.Target }).(pulumi.StringPtrOutput) } type ErrorResponseResponsePtrOutput struct{ *pulumi.OutputState } @@ -1410,7 +2571,7 @@ func (o ErrorResponseResponsePtrOutput) Code() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Code + return v.Code }).(pulumi.StringPtrOutput) } @@ -1424,13 +2585,23 @@ func (o ErrorResponseResponsePtrOutput) Details() ErrorResponseResponseArrayOutp }).(ErrorResponseResponseArrayOutput) } +// The error object. +func (o ErrorResponseResponsePtrOutput) Error() ErrorDetailResponsePtrOutput { + return o.ApplyT(func(v *ErrorResponseResponse) *ErrorDetailResponse { + if v == nil { + return nil + } + return v.Error + }).(ErrorDetailResponsePtrOutput) +} + // The error message. func (o ErrorResponseResponsePtrOutput) Message() pulumi.StringPtrOutput { return o.ApplyT(func(v *ErrorResponseResponse) *string { if v == nil { return nil } - return &v.Message + return v.Message }).(pulumi.StringPtrOutput) } @@ -1440,7 +2611,7 @@ func (o ErrorResponseResponsePtrOutput) Target() pulumi.StringPtrOutput { if v == nil { return nil } - return &v.Target + return v.Target }).(pulumi.StringPtrOutput) } @@ -1559,48 +2730,284 @@ func (o ExpressionEvaluationOptionsOutput) ToExpressionEvaluationOptionsPtrOutpu return o.ToExpressionEvaluationOptionsPtrOutputWithContext(context.Background()) } -func (o ExpressionEvaluationOptionsOutput) ToExpressionEvaluationOptionsPtrOutputWithContext(ctx context.Context) ExpressionEvaluationOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ExpressionEvaluationOptions) *ExpressionEvaluationOptions { - return &v - }).(ExpressionEvaluationOptionsPtrOutput) +func (o ExpressionEvaluationOptionsOutput) ToExpressionEvaluationOptionsPtrOutputWithContext(ctx context.Context) ExpressionEvaluationOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExpressionEvaluationOptions) *ExpressionEvaluationOptions { + return &v + }).(ExpressionEvaluationOptionsPtrOutput) +} + +// The scope to be used for evaluation of parameters, variables and functions in a nested template. +func (o ExpressionEvaluationOptionsOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressionEvaluationOptions) *string { return v.Scope }).(pulumi.StringPtrOutput) +} + +type ExpressionEvaluationOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ExpressionEvaluationOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExpressionEvaluationOptions)(nil)).Elem() +} + +func (o ExpressionEvaluationOptionsPtrOutput) ToExpressionEvaluationOptionsPtrOutput() ExpressionEvaluationOptionsPtrOutput { + return o +} + +func (o ExpressionEvaluationOptionsPtrOutput) ToExpressionEvaluationOptionsPtrOutputWithContext(ctx context.Context) ExpressionEvaluationOptionsPtrOutput { + return o +} + +func (o ExpressionEvaluationOptionsPtrOutput) Elem() ExpressionEvaluationOptionsOutput { + return o.ApplyT(func(v *ExpressionEvaluationOptions) ExpressionEvaluationOptions { + if v != nil { + return *v + } + var ret ExpressionEvaluationOptions + return ret + }).(ExpressionEvaluationOptionsOutput) +} + +// The scope to be used for evaluation of parameters, variables and functions in a nested template. +func (o ExpressionEvaluationOptionsPtrOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExpressionEvaluationOptions) *string { + if v == nil { + return nil + } + return v.Scope + }).(pulumi.StringPtrOutput) +} + +// Resource extended location. +type ExtendedLocation struct { + // The extended location name. + Name *string `pulumi:"name"` + // The extended location type. + Type *string `pulumi:"type"` +} + +// ExtendedLocationInput is an input type that accepts ExtendedLocationArgs and ExtendedLocationOutput values. +// You can construct a concrete instance of `ExtendedLocationInput` via: +// +// ExtendedLocationArgs{...} +type ExtendedLocationInput interface { + pulumi.Input + + ToExtendedLocationOutput() ExtendedLocationOutput + ToExtendedLocationOutputWithContext(context.Context) ExtendedLocationOutput +} + +// Resource extended location. +type ExtendedLocationArgs struct { + // The extended location name. + Name pulumi.StringPtrInput `pulumi:"name"` + // The extended location type. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (ExtendedLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() +} + +func (i ExtendedLocationArgs) ToExtendedLocationOutput() ExtendedLocationOutput { + return i.ToExtendedLocationOutputWithContext(context.Background()) +} + +func (i ExtendedLocationArgs) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput) +} + +func (i ExtendedLocationArgs) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return i.ToExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (i ExtendedLocationArgs) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput).ToExtendedLocationPtrOutputWithContext(ctx) +} + +// ExtendedLocationPtrInput is an input type that accepts ExtendedLocationArgs, ExtendedLocationPtr and ExtendedLocationPtrOutput values. +// You can construct a concrete instance of `ExtendedLocationPtrInput` via: +// +// ExtendedLocationArgs{...} +// +// or: +// +// nil +type ExtendedLocationPtrInput interface { + pulumi.Input + + ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput + ToExtendedLocationPtrOutputWithContext(context.Context) ExtendedLocationPtrOutput +} + +type extendedLocationPtrType ExtendedLocationArgs + +func ExtendedLocationPtr(v *ExtendedLocationArgs) ExtendedLocationPtrInput { + return (*extendedLocationPtrType)(v) +} + +func (*extendedLocationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() +} + +func (i *extendedLocationPtrType) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return i.ToExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (i *extendedLocationPtrType) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationPtrOutput) +} + +// Resource extended location. +type ExtendedLocationOutput struct{ *pulumi.OutputState } + +func (ExtendedLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() +} + +func (o ExtendedLocationOutput) ToExtendedLocationOutput() ExtendedLocationOutput { + return o +} + +func (o ExtendedLocationOutput) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { + return o +} + +func (o ExtendedLocationOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return o.ToExtendedLocationPtrOutputWithContext(context.Background()) +} + +func (o ExtendedLocationOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExtendedLocation) *ExtendedLocation { + return &v + }).(ExtendedLocationPtrOutput) +} + +// The extended location name. +func (o ExtendedLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The extended location type. +func (o ExtendedLocationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ExtendedLocationPtrOutput struct{ *pulumi.OutputState } + +func (ExtendedLocationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() +} + +func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return o +} + +func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return o +} + +func (o ExtendedLocationPtrOutput) Elem() ExtendedLocationOutput { + return o.ApplyT(func(v *ExtendedLocation) ExtendedLocation { + if v != nil { + return *v + } + var ret ExtendedLocation + return ret + }).(ExtendedLocationOutput) +} + +// The extended location name. +func (o ExtendedLocationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocation) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The extended location type. +func (o ExtendedLocationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocation) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// Resource extended location. +type ExtendedLocationResponse struct { + // The extended location name. + Name *string `pulumi:"name"` + // The extended location type. + Type *string `pulumi:"type"` +} + +// Resource extended location. +type ExtendedLocationResponseOutput struct{ *pulumi.OutputState } + +func (ExtendedLocationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocationResponse)(nil)).Elem() +} + +func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutput() ExtendedLocationResponseOutput { + return o +} + +func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutputWithContext(ctx context.Context) ExtendedLocationResponseOutput { + return o +} + +// The extended location name. +func (o ExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// The scope to be used for evaluation of parameters, variables and functions in a nested template. -func (o ExpressionEvaluationOptionsOutput) Scope() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExpressionEvaluationOptions) *string { return v.Scope }).(pulumi.StringPtrOutput) +// The extended location type. +func (o ExtendedLocationResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Type }).(pulumi.StringPtrOutput) } -type ExpressionEvaluationOptionsPtrOutput struct{ *pulumi.OutputState } +type ExtendedLocationResponsePtrOutput struct{ *pulumi.OutputState } -func (ExpressionEvaluationOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ExpressionEvaluationOptions)(nil)).Elem() +func (ExtendedLocationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocationResponse)(nil)).Elem() } -func (o ExpressionEvaluationOptionsPtrOutput) ToExpressionEvaluationOptionsPtrOutput() ExpressionEvaluationOptionsPtrOutput { +func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutput() ExtendedLocationResponsePtrOutput { return o } -func (o ExpressionEvaluationOptionsPtrOutput) ToExpressionEvaluationOptionsPtrOutputWithContext(ctx context.Context) ExpressionEvaluationOptionsPtrOutput { +func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutputWithContext(ctx context.Context) ExtendedLocationResponsePtrOutput { return o } -func (o ExpressionEvaluationOptionsPtrOutput) Elem() ExpressionEvaluationOptionsOutput { - return o.ApplyT(func(v *ExpressionEvaluationOptions) ExpressionEvaluationOptions { +func (o ExtendedLocationResponsePtrOutput) Elem() ExtendedLocationResponseOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) ExtendedLocationResponse { if v != nil { return *v } - var ret ExpressionEvaluationOptions + var ret ExtendedLocationResponse return ret - }).(ExpressionEvaluationOptionsOutput) + }).(ExtendedLocationResponseOutput) } -// The scope to be used for evaluation of parameters, variables and functions in a nested template. -func (o ExpressionEvaluationOptionsPtrOutput) Scope() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ExpressionEvaluationOptions) *string { +// The extended location name. +func (o ExtendedLocationResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) *string { if v == nil { return nil } - return v.Scope + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The extended location type. +func (o ExtendedLocationResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) *string { + if v == nil { + return nil + } + return v.Type }).(pulumi.StringPtrOutput) } @@ -1609,7 +3016,7 @@ type Identity struct { // The identity type. Type *ResourceIdentityType `pulumi:"type"` // The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // IdentityInput is an input type that accepts IdentityArgs and IdentityOutput values. @@ -1628,7 +3035,7 @@ type IdentityArgs struct { // The identity type. Type ResourceIdentityTypePtrInput `pulumi:"type"` // The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (IdentityArgs) ElementType() reflect.Type { @@ -1715,8 +3122,8 @@ func (o IdentityOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o IdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v Identity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +func (o IdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v Identity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) } type IdentityPtrOutput struct{ *pulumi.OutputState } @@ -1754,13 +3161,13 @@ func (o IdentityPtrOutput) Type() ResourceIdentityTypePtrOutput { } // The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. -func (o IdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *Identity) map[string]interface{} { +func (o IdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Identity) []string { if v == nil { return nil } return v.UserAssignedIdentities - }).(pulumi.MapOutput) + }).(pulumi.StringArrayOutput) } // Identity for the resource. @@ -1927,6 +3334,324 @@ func (o IdentityResponseUserAssignedIdentitiesMapOutput) MapIndex(k pulumi.Strin }).(IdentityResponseUserAssignedIdentitiesOutput) } +// Azure Key Vault parameter reference. +type KeyVaultParameterReference struct { + // Azure Key Vault reference. + KeyVault KeyVaultReference `pulumi:"keyVault"` + // Azure Key Vault secret name. + SecretName string `pulumi:"secretName"` + // Azure Key Vault secret version. + SecretVersion *string `pulumi:"secretVersion"` +} + +// KeyVaultParameterReferenceInput is an input type that accepts KeyVaultParameterReferenceArgs and KeyVaultParameterReferenceOutput values. +// You can construct a concrete instance of `KeyVaultParameterReferenceInput` via: +// +// KeyVaultParameterReferenceArgs{...} +type KeyVaultParameterReferenceInput interface { + pulumi.Input + + ToKeyVaultParameterReferenceOutput() KeyVaultParameterReferenceOutput + ToKeyVaultParameterReferenceOutputWithContext(context.Context) KeyVaultParameterReferenceOutput +} + +// Azure Key Vault parameter reference. +type KeyVaultParameterReferenceArgs struct { + // Azure Key Vault reference. + KeyVault KeyVaultReferenceInput `pulumi:"keyVault"` + // Azure Key Vault secret name. + SecretName pulumi.StringInput `pulumi:"secretName"` + // Azure Key Vault secret version. + SecretVersion pulumi.StringPtrInput `pulumi:"secretVersion"` +} + +func (KeyVaultParameterReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultParameterReference)(nil)).Elem() +} + +func (i KeyVaultParameterReferenceArgs) ToKeyVaultParameterReferenceOutput() KeyVaultParameterReferenceOutput { + return i.ToKeyVaultParameterReferenceOutputWithContext(context.Background()) +} + +func (i KeyVaultParameterReferenceArgs) ToKeyVaultParameterReferenceOutputWithContext(ctx context.Context) KeyVaultParameterReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultParameterReferenceOutput) +} + +func (i KeyVaultParameterReferenceArgs) ToKeyVaultParameterReferencePtrOutput() KeyVaultParameterReferencePtrOutput { + return i.ToKeyVaultParameterReferencePtrOutputWithContext(context.Background()) +} + +func (i KeyVaultParameterReferenceArgs) ToKeyVaultParameterReferencePtrOutputWithContext(ctx context.Context) KeyVaultParameterReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultParameterReferenceOutput).ToKeyVaultParameterReferencePtrOutputWithContext(ctx) +} + +// KeyVaultParameterReferencePtrInput is an input type that accepts KeyVaultParameterReferenceArgs, KeyVaultParameterReferencePtr and KeyVaultParameterReferencePtrOutput values. +// You can construct a concrete instance of `KeyVaultParameterReferencePtrInput` via: +// +// KeyVaultParameterReferenceArgs{...} +// +// or: +// +// nil +type KeyVaultParameterReferencePtrInput interface { + pulumi.Input + + ToKeyVaultParameterReferencePtrOutput() KeyVaultParameterReferencePtrOutput + ToKeyVaultParameterReferencePtrOutputWithContext(context.Context) KeyVaultParameterReferencePtrOutput +} + +type keyVaultParameterReferencePtrType KeyVaultParameterReferenceArgs + +func KeyVaultParameterReferencePtr(v *KeyVaultParameterReferenceArgs) KeyVaultParameterReferencePtrInput { + return (*keyVaultParameterReferencePtrType)(v) +} + +func (*keyVaultParameterReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultParameterReference)(nil)).Elem() +} + +func (i *keyVaultParameterReferencePtrType) ToKeyVaultParameterReferencePtrOutput() KeyVaultParameterReferencePtrOutput { + return i.ToKeyVaultParameterReferencePtrOutputWithContext(context.Background()) +} + +func (i *keyVaultParameterReferencePtrType) ToKeyVaultParameterReferencePtrOutputWithContext(ctx context.Context) KeyVaultParameterReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultParameterReferencePtrOutput) +} + +// Azure Key Vault parameter reference. +type KeyVaultParameterReferenceOutput struct{ *pulumi.OutputState } + +func (KeyVaultParameterReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultParameterReference)(nil)).Elem() +} + +func (o KeyVaultParameterReferenceOutput) ToKeyVaultParameterReferenceOutput() KeyVaultParameterReferenceOutput { + return o +} + +func (o KeyVaultParameterReferenceOutput) ToKeyVaultParameterReferenceOutputWithContext(ctx context.Context) KeyVaultParameterReferenceOutput { + return o +} + +func (o KeyVaultParameterReferenceOutput) ToKeyVaultParameterReferencePtrOutput() KeyVaultParameterReferencePtrOutput { + return o.ToKeyVaultParameterReferencePtrOutputWithContext(context.Background()) +} + +func (o KeyVaultParameterReferenceOutput) ToKeyVaultParameterReferencePtrOutputWithContext(ctx context.Context) KeyVaultParameterReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyVaultParameterReference) *KeyVaultParameterReference { + return &v + }).(KeyVaultParameterReferencePtrOutput) +} + +// Azure Key Vault reference. +func (o KeyVaultParameterReferenceOutput) KeyVault() KeyVaultReferenceOutput { + return o.ApplyT(func(v KeyVaultParameterReference) KeyVaultReference { return v.KeyVault }).(KeyVaultReferenceOutput) +} + +// Azure Key Vault secret name. +func (o KeyVaultParameterReferenceOutput) SecretName() pulumi.StringOutput { + return o.ApplyT(func(v KeyVaultParameterReference) string { return v.SecretName }).(pulumi.StringOutput) +} + +// Azure Key Vault secret version. +func (o KeyVaultParameterReferenceOutput) SecretVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultParameterReference) *string { return v.SecretVersion }).(pulumi.StringPtrOutput) +} + +type KeyVaultParameterReferencePtrOutput struct{ *pulumi.OutputState } + +func (KeyVaultParameterReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultParameterReference)(nil)).Elem() +} + +func (o KeyVaultParameterReferencePtrOutput) ToKeyVaultParameterReferencePtrOutput() KeyVaultParameterReferencePtrOutput { + return o +} + +func (o KeyVaultParameterReferencePtrOutput) ToKeyVaultParameterReferencePtrOutputWithContext(ctx context.Context) KeyVaultParameterReferencePtrOutput { + return o +} + +func (o KeyVaultParameterReferencePtrOutput) Elem() KeyVaultParameterReferenceOutput { + return o.ApplyT(func(v *KeyVaultParameterReference) KeyVaultParameterReference { + if v != nil { + return *v + } + var ret KeyVaultParameterReference + return ret + }).(KeyVaultParameterReferenceOutput) +} + +// Azure Key Vault reference. +func (o KeyVaultParameterReferencePtrOutput) KeyVault() KeyVaultReferencePtrOutput { + return o.ApplyT(func(v *KeyVaultParameterReference) *KeyVaultReference { + if v == nil { + return nil + } + return &v.KeyVault + }).(KeyVaultReferencePtrOutput) +} + +// Azure Key Vault secret name. +func (o KeyVaultParameterReferencePtrOutput) SecretName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultParameterReference) *string { + if v == nil { + return nil + } + return &v.SecretName + }).(pulumi.StringPtrOutput) +} + +// Azure Key Vault secret version. +func (o KeyVaultParameterReferencePtrOutput) SecretVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultParameterReference) *string { + if v == nil { + return nil + } + return v.SecretVersion + }).(pulumi.StringPtrOutput) +} + +// Azure Key Vault reference. +type KeyVaultReference struct { + // Azure Key Vault resource id. + Id string `pulumi:"id"` +} + +// KeyVaultReferenceInput is an input type that accepts KeyVaultReferenceArgs and KeyVaultReferenceOutput values. +// You can construct a concrete instance of `KeyVaultReferenceInput` via: +// +// KeyVaultReferenceArgs{...} +type KeyVaultReferenceInput interface { + pulumi.Input + + ToKeyVaultReferenceOutput() KeyVaultReferenceOutput + ToKeyVaultReferenceOutputWithContext(context.Context) KeyVaultReferenceOutput +} + +// Azure Key Vault reference. +type KeyVaultReferenceArgs struct { + // Azure Key Vault resource id. + Id pulumi.StringInput `pulumi:"id"` +} + +func (KeyVaultReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultReference)(nil)).Elem() +} + +func (i KeyVaultReferenceArgs) ToKeyVaultReferenceOutput() KeyVaultReferenceOutput { + return i.ToKeyVaultReferenceOutputWithContext(context.Background()) +} + +func (i KeyVaultReferenceArgs) ToKeyVaultReferenceOutputWithContext(ctx context.Context) KeyVaultReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultReferenceOutput) +} + +func (i KeyVaultReferenceArgs) ToKeyVaultReferencePtrOutput() KeyVaultReferencePtrOutput { + return i.ToKeyVaultReferencePtrOutputWithContext(context.Background()) +} + +func (i KeyVaultReferenceArgs) ToKeyVaultReferencePtrOutputWithContext(ctx context.Context) KeyVaultReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultReferenceOutput).ToKeyVaultReferencePtrOutputWithContext(ctx) +} + +// KeyVaultReferencePtrInput is an input type that accepts KeyVaultReferenceArgs, KeyVaultReferencePtr and KeyVaultReferencePtrOutput values. +// You can construct a concrete instance of `KeyVaultReferencePtrInput` via: +// +// KeyVaultReferenceArgs{...} +// +// or: +// +// nil +type KeyVaultReferencePtrInput interface { + pulumi.Input + + ToKeyVaultReferencePtrOutput() KeyVaultReferencePtrOutput + ToKeyVaultReferencePtrOutputWithContext(context.Context) KeyVaultReferencePtrOutput +} + +type keyVaultReferencePtrType KeyVaultReferenceArgs + +func KeyVaultReferencePtr(v *KeyVaultReferenceArgs) KeyVaultReferencePtrInput { + return (*keyVaultReferencePtrType)(v) +} + +func (*keyVaultReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultReference)(nil)).Elem() +} + +func (i *keyVaultReferencePtrType) ToKeyVaultReferencePtrOutput() KeyVaultReferencePtrOutput { + return i.ToKeyVaultReferencePtrOutputWithContext(context.Background()) +} + +func (i *keyVaultReferencePtrType) ToKeyVaultReferencePtrOutputWithContext(ctx context.Context) KeyVaultReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultReferencePtrOutput) +} + +// Azure Key Vault reference. +type KeyVaultReferenceOutput struct{ *pulumi.OutputState } + +func (KeyVaultReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultReference)(nil)).Elem() +} + +func (o KeyVaultReferenceOutput) ToKeyVaultReferenceOutput() KeyVaultReferenceOutput { + return o +} + +func (o KeyVaultReferenceOutput) ToKeyVaultReferenceOutputWithContext(ctx context.Context) KeyVaultReferenceOutput { + return o +} + +func (o KeyVaultReferenceOutput) ToKeyVaultReferencePtrOutput() KeyVaultReferencePtrOutput { + return o.ToKeyVaultReferencePtrOutputWithContext(context.Background()) +} + +func (o KeyVaultReferenceOutput) ToKeyVaultReferencePtrOutputWithContext(ctx context.Context) KeyVaultReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyVaultReference) *KeyVaultReference { + return &v + }).(KeyVaultReferencePtrOutput) +} + +// Azure Key Vault resource id. +func (o KeyVaultReferenceOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v KeyVaultReference) string { return v.Id }).(pulumi.StringOutput) +} + +type KeyVaultReferencePtrOutput struct{ *pulumi.OutputState } + +func (KeyVaultReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultReference)(nil)).Elem() +} + +func (o KeyVaultReferencePtrOutput) ToKeyVaultReferencePtrOutput() KeyVaultReferencePtrOutput { + return o +} + +func (o KeyVaultReferencePtrOutput) ToKeyVaultReferencePtrOutputWithContext(ctx context.Context) KeyVaultReferencePtrOutput { + return o +} + +func (o KeyVaultReferencePtrOutput) Elem() KeyVaultReferenceOutput { + return o.ApplyT(func(v *KeyVaultReference) KeyVaultReference { + if v != nil { + return *v + } + var ret KeyVaultReference + return ret + }).(KeyVaultReferenceOutput) +} + +// Azure Key Vault resource id. +func (o KeyVaultReferencePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultReference) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + // Represents a Template Spec artifact containing an embedded Azure Resource Manager template for use as a linked template. type LinkedTemplateArtifact struct { // A filesystem safe relative path of the artifact. @@ -2089,12 +3814,89 @@ func (o LinkedTemplateArtifactResponseArrayOutput) Index(i pulumi.IntInput) Link }).(LinkedTemplateArtifactResponseOutput) } +// The managed resource model. +type ManagedResourceReferenceResponse struct { + // denyAssignment settings applied to the resource. + DenyStatus *string `pulumi:"denyStatus"` + // The resourceId of a resource managed by the deployment stack. + Id string `pulumi:"id"` + // Current management state of the resource in the deployment stack. + Status *string `pulumi:"status"` +} + +// Defaults sets the appropriate defaults for ManagedResourceReferenceResponse +func (val *ManagedResourceReferenceResponse) Defaults() *ManagedResourceReferenceResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.DenyStatus == nil { + denyStatus_ := "None" + tmp.DenyStatus = &denyStatus_ + } + if tmp.Status == nil { + status_ := "None" + tmp.Status = &status_ + } + return &tmp +} + +// The managed resource model. +type ManagedResourceReferenceResponseOutput struct{ *pulumi.OutputState } + +func (ManagedResourceReferenceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagedResourceReferenceResponse)(nil)).Elem() +} + +func (o ManagedResourceReferenceResponseOutput) ToManagedResourceReferenceResponseOutput() ManagedResourceReferenceResponseOutput { + return o +} + +func (o ManagedResourceReferenceResponseOutput) ToManagedResourceReferenceResponseOutputWithContext(ctx context.Context) ManagedResourceReferenceResponseOutput { + return o +} + +// denyAssignment settings applied to the resource. +func (o ManagedResourceReferenceResponseOutput) DenyStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagedResourceReferenceResponse) *string { return v.DenyStatus }).(pulumi.StringPtrOutput) +} + +// The resourceId of a resource managed by the deployment stack. +func (o ManagedResourceReferenceResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v ManagedResourceReferenceResponse) string { return v.Id }).(pulumi.StringOutput) +} + +// Current management state of the resource in the deployment stack. +func (o ManagedResourceReferenceResponseOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v ManagedResourceReferenceResponse) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type ManagedResourceReferenceResponseArrayOutput struct{ *pulumi.OutputState } + +func (ManagedResourceReferenceResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagedResourceReferenceResponse)(nil)).Elem() +} + +func (o ManagedResourceReferenceResponseArrayOutput) ToManagedResourceReferenceResponseArrayOutput() ManagedResourceReferenceResponseArrayOutput { + return o +} + +func (o ManagedResourceReferenceResponseArrayOutput) ToManagedResourceReferenceResponseArrayOutputWithContext(ctx context.Context) ManagedResourceReferenceResponseArrayOutput { + return o +} + +func (o ManagedResourceReferenceResponseArrayOutput) Index(i pulumi.IntInput) ManagedResourceReferenceResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagedResourceReferenceResponse { + return vs[0].([]ManagedResourceReferenceResponse)[vs[1].(int)] + }).(ManagedResourceReferenceResponseOutput) +} + // Managed identity generic object. type ManagedServiceIdentity struct { // Type of the managed identity. Type *string `pulumi:"type"` // The list of user-assigned managed identities associated with the resource. Key is the Azure resource Id of the managed identity. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` } // ManagedServiceIdentityInput is an input type that accepts ManagedServiceIdentityArgs and ManagedServiceIdentityOutput values. @@ -2113,7 +3915,7 @@ type ManagedServiceIdentityArgs struct { // Type of the managed identity. Type pulumi.StringPtrInput `pulumi:"type"` // The list of user-assigned managed identities associated with the resource. Key is the Azure resource Id of the managed identity. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` } func (ManagedServiceIdentityArgs) ElementType() reflect.Type { @@ -2200,8 +4002,8 @@ func (o ManagedServiceIdentityOutput) Type() pulumi.StringPtrOutput { } // The list of user-assigned managed identities associated with the resource. Key is the Azure resource Id of the managed identity. -func (o ManagedServiceIdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v ManagedServiceIdentity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +func (o ManagedServiceIdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagedServiceIdentity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) } type ManagedServiceIdentityPtrOutput struct{ *pulumi.OutputState } @@ -2239,13 +4041,13 @@ func (o ManagedServiceIdentityPtrOutput) Type() pulumi.StringPtrOutput { } // The list of user-assigned managed identities associated with the resource. Key is the Azure resource Id of the managed identity. -func (o ManagedServiceIdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *ManagedServiceIdentity) map[string]interface{} { +func (o ManagedServiceIdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagedServiceIdentity) []string { if v == nil { return nil } return v.UserAssignedIdentities - }).(pulumi.MapOutput) + }).(pulumi.StringArrayOutput) } // Managed identity generic object. @@ -3252,6 +5054,8 @@ type ProviderResponse struct { Id string `pulumi:"id"` // The namespace of the resource provider. Namespace *string `pulumi:"namespace"` + // The provider authorization consent state. + ProviderAuthorizationConsentState *string `pulumi:"providerAuthorizationConsentState"` // The registration policy of the resource provider. RegistrationPolicy string `pulumi:"registrationPolicy"` // The registration state of the resource provider. @@ -3285,6 +5089,11 @@ func (o ProviderResponseOutput) Namespace() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderResponse) *string { return v.Namespace }).(pulumi.StringPtrOutput) } +// The provider authorization consent state. +func (o ProviderResponseOutput) ProviderAuthorizationConsentState() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderResponse) *string { return v.ProviderAuthorizationConsentState }).(pulumi.StringPtrOutput) +} + // The registration policy of the resource provider. func (o ProviderResponseOutput) RegistrationPolicy() pulumi.StringOutput { return o.ApplyT(func(v ProviderResponse) string { return v.RegistrationPolicy }).(pulumi.StringOutput) @@ -3346,9 +5155,62 @@ func (o ResourceGroupPropertiesResponseOutput) ProvisioningState() pulumi.String return o.ApplyT(func(v ResourceGroupPropertiesResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// The resource Id extended model. +type ResourceReferenceExtendedResponse struct { + // Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + Error *ErrorResponseResponse `pulumi:"error"` + // The resourceId of a resource managed by the deployment stack. + Id string `pulumi:"id"` +} + +// The resource Id extended model. +type ResourceReferenceExtendedResponseOutput struct{ *pulumi.OutputState } + +func (ResourceReferenceExtendedResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceReferenceExtendedResponse)(nil)).Elem() +} + +func (o ResourceReferenceExtendedResponseOutput) ToResourceReferenceExtendedResponseOutput() ResourceReferenceExtendedResponseOutput { + return o +} + +func (o ResourceReferenceExtendedResponseOutput) ToResourceReferenceExtendedResponseOutputWithContext(ctx context.Context) ResourceReferenceExtendedResponseOutput { + return o +} + +// Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). +func (o ResourceReferenceExtendedResponseOutput) Error() ErrorResponseResponsePtrOutput { + return o.ApplyT(func(v ResourceReferenceExtendedResponse) *ErrorResponseResponse { return v.Error }).(ErrorResponseResponsePtrOutput) +} + +// The resourceId of a resource managed by the deployment stack. +func (o ResourceReferenceExtendedResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v ResourceReferenceExtendedResponse) string { return v.Id }).(pulumi.StringOutput) +} + +type ResourceReferenceExtendedResponseArrayOutput struct{ *pulumi.OutputState } + +func (ResourceReferenceExtendedResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceReferenceExtendedResponse)(nil)).Elem() +} + +func (o ResourceReferenceExtendedResponseArrayOutput) ToResourceReferenceExtendedResponseArrayOutput() ResourceReferenceExtendedResponseArrayOutput { + return o +} + +func (o ResourceReferenceExtendedResponseArrayOutput) ToResourceReferenceExtendedResponseArrayOutputWithContext(ctx context.Context) ResourceReferenceExtendedResponseArrayOutput { + return o +} + +func (o ResourceReferenceExtendedResponseArrayOutput) Index(i pulumi.IntInput) ResourceReferenceExtendedResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceReferenceExtendedResponse { + return vs[0].([]ResourceReferenceExtendedResponse)[vs[1].(int)] + }).(ResourceReferenceExtendedResponseOutput) +} + // The resource Id model. type ResourceReferenceResponse struct { - // The fully qualified resource Id. + // The resourceId of a resource managed by the deployment stack. Id string `pulumi:"id"` } @@ -3367,7 +5229,7 @@ func (o ResourceReferenceResponseOutput) ToResourceReferenceResponseOutputWithCo return o } -// The fully qualified resource Id. +// The resourceId of a resource managed by the deployment stack. func (o ResourceReferenceResponseOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v ResourceReferenceResponse) string { return v.Id }).(pulumi.StringOutput) } @@ -4657,31 +6519,60 @@ func init() { pulumi.RegisterOutputType(DebugSettingOutput{}) pulumi.RegisterOutputType(DebugSettingPtrOutput{}) pulumi.RegisterOutputType(DebugSettingResponseOutput{}) + pulumi.RegisterOutputType(DenySettingsOutput{}) + pulumi.RegisterOutputType(DenySettingsResponseOutput{}) pulumi.RegisterOutputType(DependencyResponseOutput{}) pulumi.RegisterOutputType(DependencyResponseArrayOutput{}) + pulumi.RegisterOutputType(DeploymentParameterOutput{}) + pulumi.RegisterOutputType(DeploymentParameterMapOutput{}) pulumi.RegisterOutputType(DeploymentPropertiesOutput{}) pulumi.RegisterOutputType(DeploymentPropertiesExtendedResponseOutput{}) + pulumi.RegisterOutputType(DeploymentStackPropertiesActionOnUnmanageOutput{}) + pulumi.RegisterOutputType(DeploymentStackPropertiesResponseActionOnUnmanageOutput{}) + pulumi.RegisterOutputType(DeploymentStacksDebugSettingOutput{}) + pulumi.RegisterOutputType(DeploymentStacksDebugSettingPtrOutput{}) + pulumi.RegisterOutputType(DeploymentStacksDebugSettingResponseOutput{}) + pulumi.RegisterOutputType(DeploymentStacksDebugSettingResponsePtrOutput{}) + pulumi.RegisterOutputType(DeploymentStacksParametersLinkOutput{}) + pulumi.RegisterOutputType(DeploymentStacksParametersLinkPtrOutput{}) + pulumi.RegisterOutputType(DeploymentStacksParametersLinkResponseOutput{}) + pulumi.RegisterOutputType(DeploymentStacksParametersLinkResponsePtrOutput{}) + pulumi.RegisterOutputType(DeploymentStacksTemplateLinkOutput{}) + pulumi.RegisterOutputType(DeploymentStacksTemplateLinkPtrOutput{}) pulumi.RegisterOutputType(EnvironmentVariableOutput{}) pulumi.RegisterOutputType(EnvironmentVariableArrayOutput{}) pulumi.RegisterOutputType(EnvironmentVariableResponseOutput{}) pulumi.RegisterOutputType(EnvironmentVariableResponseArrayOutput{}) pulumi.RegisterOutputType(ErrorAdditionalInfoResponseOutput{}) pulumi.RegisterOutputType(ErrorAdditionalInfoResponseArrayOutput{}) + pulumi.RegisterOutputType(ErrorDetailResponseOutput{}) + pulumi.RegisterOutputType(ErrorDetailResponsePtrOutput{}) + pulumi.RegisterOutputType(ErrorDetailResponseArrayOutput{}) pulumi.RegisterOutputType(ErrorResponseResponseOutput{}) pulumi.RegisterOutputType(ErrorResponseResponsePtrOutput{}) pulumi.RegisterOutputType(ErrorResponseResponseArrayOutput{}) pulumi.RegisterOutputType(ExpressionEvaluationOptionsOutput{}) pulumi.RegisterOutputType(ExpressionEvaluationOptionsPtrOutput{}) + pulumi.RegisterOutputType(ExtendedLocationOutput{}) + pulumi.RegisterOutputType(ExtendedLocationPtrOutput{}) + pulumi.RegisterOutputType(ExtendedLocationResponseOutput{}) + pulumi.RegisterOutputType(ExtendedLocationResponsePtrOutput{}) pulumi.RegisterOutputType(IdentityOutput{}) pulumi.RegisterOutputType(IdentityPtrOutput{}) pulumi.RegisterOutputType(IdentityResponseOutput{}) pulumi.RegisterOutputType(IdentityResponsePtrOutput{}) pulumi.RegisterOutputType(IdentityResponseUserAssignedIdentitiesOutput{}) pulumi.RegisterOutputType(IdentityResponseUserAssignedIdentitiesMapOutput{}) + pulumi.RegisterOutputType(KeyVaultParameterReferenceOutput{}) + pulumi.RegisterOutputType(KeyVaultParameterReferencePtrOutput{}) + pulumi.RegisterOutputType(KeyVaultReferenceOutput{}) + pulumi.RegisterOutputType(KeyVaultReferencePtrOutput{}) pulumi.RegisterOutputType(LinkedTemplateArtifactOutput{}) pulumi.RegisterOutputType(LinkedTemplateArtifactArrayOutput{}) pulumi.RegisterOutputType(LinkedTemplateArtifactResponseOutput{}) pulumi.RegisterOutputType(LinkedTemplateArtifactResponseArrayOutput{}) + pulumi.RegisterOutputType(ManagedResourceReferenceResponseOutput{}) + pulumi.RegisterOutputType(ManagedResourceReferenceResponseArrayOutput{}) pulumi.RegisterOutputType(ManagedServiceIdentityOutput{}) pulumi.RegisterOutputType(ManagedServiceIdentityPtrOutput{}) pulumi.RegisterOutputType(ManagedServiceIdentityResponseOutput{}) @@ -4703,6 +6594,8 @@ func init() { pulumi.RegisterOutputType(ProviderResponseOutput{}) pulumi.RegisterOutputType(ProviderResponseArrayOutput{}) pulumi.RegisterOutputType(ResourceGroupPropertiesResponseOutput{}) + pulumi.RegisterOutputType(ResourceReferenceExtendedResponseOutput{}) + pulumi.RegisterOutputType(ResourceReferenceExtendedResponseArrayOutput{}) pulumi.RegisterOutputType(ResourceReferenceResponseOutput{}) pulumi.RegisterOutputType(ResourceReferenceResponseArrayOutput{}) pulumi.RegisterOutputType(ScriptStatusResponseOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resource.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resource.go similarity index 91% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resource.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resource.go index 5053592c..948504da 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resource.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resource.go @@ -7,15 +7,18 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Resource information. -// API Version: 2019-05-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2019-05-01 type Resource struct { pulumi.CustomResourceState + // Resource extended location. + ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` // The identity of the resource. Identity IdentityResponsePtrOutput `pulumi:"identity"` // The kind of the resource. @@ -115,8 +118,12 @@ func NewResource(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:Resource"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:Resource"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Resource err := ctx.RegisterResource("azure-native:resources:Resource", name, args, &resource, opts...) if err != nil { @@ -149,6 +156,8 @@ func (ResourceState) ElementType() reflect.Type { } type resourceArgs struct { + // Resource extended location. + ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` // The identity of the resource. Identity *Identity `pulumi:"identity"` // The kind of the resource. @@ -179,6 +188,8 @@ type resourceArgs struct { // The set of arguments for constructing a Resource resource. type ResourceArgs struct { + // Resource extended location. + ExtendedLocation ExtendedLocationPtrInput // The identity of the resource. Identity IdentityPtrInput // The kind of the resource. @@ -244,6 +255,11 @@ func (o ResourceOutput) ToResourceOutputWithContext(ctx context.Context) Resourc return o } +// Resource extended location. +func (o ResourceOutput) ExtendedLocation() ExtendedLocationResponsePtrOutput { + return o.ApplyT(func(v *Resource) ExtendedLocationResponsePtrOutput { return v.ExtendedLocation }).(ExtendedLocationResponsePtrOutput) +} + // The identity of the resource. func (o ResourceOutput) Identity() IdentityResponsePtrOutput { return o.ApplyT(func(v *Resource) IdentityResponsePtrOutput { return v.Identity }).(IdentityResponsePtrOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resourceGroup.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resourceGroup.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resourceGroup.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resourceGroup.go index 959f1e89..ee1a7271 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/resourceGroup.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/resourceGroup.go @@ -7,11 +7,12 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Resource group information. -// API Version: 2019-05-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2019-05-01 type ResourceGroup struct { pulumi.CustomResourceState @@ -94,8 +95,12 @@ func NewResourceGroup(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:ResourceGroup"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:ResourceGroup"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ResourceGroup err := ctx.RegisterResource("azure-native:resources:ResourceGroup", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/tagAtScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/tagAtScope.go similarity index 94% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/tagAtScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/tagAtScope.go index c7b5b05c..7e96ac8d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/tagAtScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/tagAtScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Wrapper resource for tags API requests and responses. -// API Version: 2019-10-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2019-10-01 type TagAtScope struct { pulumi.CustomResourceState @@ -59,8 +60,12 @@ func NewTagAtScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:resources/v20220901:TagAtScope"), }, + { + Type: pulumi.String("azure-native:resources/v20230701:TagAtScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource TagAtScope err := ctx.RegisterResource("azure-native:resources:TagAtScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpec.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpec.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpec.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpec.go index f550c445..9f0bbb10 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpec.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpec.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Template Spec object. -// API Version: 2022-02-01. +// Azure REST API version: 2022-02-01. Prior API version in Azure Native 1.x: 2022-02-01 type TemplateSpec struct { pulumi.CustomResourceState @@ -61,6 +62,7 @@ func NewTemplateSpec(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource TemplateSpec err := ctx.RegisterResource("azure-native:resources:TemplateSpec", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpecVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpecVersion.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpecVersion.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpecVersion.go index 3fcbd6a6..cba33626 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/templateSpecVersion.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/v2/templateSpecVersion.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Template Spec Version object. -// API Version: 2022-02-01. +// Azure REST API version: 2022-02-01. Prior API version in Azure Native 1.x: 2022-02-01 type TemplateSpecVersion struct { pulumi.CustomResourceState @@ -66,6 +67,7 @@ func NewTemplateSpecVersion(ctx *pulumi.Context, }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource TemplateSpecVersion err := ctx.RegisterResource("azure-native:resources:TemplateSpecVersion", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumi-plugin.json deleted file mode 100644 index 5c2ae8b5..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumi-plugin.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "resource": true, - "name": "azure-native" -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiUtilities.go deleted file mode 100644 index 67a845ed..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiUtilities.go +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by the Pulumi SDK Generator DO NOT EDIT. -// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** - -package storage - -import ( - "fmt" - "os" - "reflect" - "regexp" - "strconv" - "strings" - - "github.com/blang/semver" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -type envParser func(v string) interface{} - -func parseEnvBool(v string) interface{} { - b, err := strconv.ParseBool(v) - if err != nil { - return nil - } - return b -} - -func parseEnvInt(v string) interface{} { - i, err := strconv.ParseInt(v, 0, 0) - if err != nil { - return nil - } - return int(i) -} - -func parseEnvFloat(v string) interface{} { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - return nil - } - return f -} - -func parseEnvStringArray(v string) interface{} { - var result pulumi.StringArray - for _, item := range strings.Split(v, ";") { - result = append(result, pulumi.String(item)) - } - return result -} - -func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { - for _, v := range vars { - if value := os.Getenv(v); value != "" { - if parser != nil { - return parser(value) - } - return value - } - } - return def -} - -// PkgVersion uses reflection to determine the version of the current package. -// If a version cannot be determined, v1 will be assumed. The second return -// value is always nil. -func PkgVersion() (semver.Version, error) { - type sentinal struct{} - pkgPath := reflect.TypeOf(sentinal{}).PkgPath() - re := regexp.MustCompile("^.*/pulumi-azure-native/sdk(/v\\d+)?") - if match := re.FindStringSubmatch(pkgPath); match != nil { - vStr := match[1] - if len(vStr) == 0 { // If the version capture group was empty, default to v1. - return semver.Version{Major: 1}, nil - } - return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil - } - return semver.Version{Major: 1}, nil -} - -// isZero is a null safe check for if a value is it's types zero value. -func isZero(v interface{}) bool { - if v == nil { - return true - } - return reflect.ValueOf(v).IsZero() -} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/LICENSE b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/LICENSE similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/LICENSE rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/LICENSE diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blob.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blob.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blob.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blob.go index cc5aa2ce..a12ec155 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blob.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blob.go @@ -7,7 +7,8 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -47,9 +48,10 @@ func NewBlob(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } - if isZero(args.Type) { + if args.Type == nil { args.Type = BlobType("Block") } + opts = utilities.PkgResourceDefaultOpts(opts) var resource Blob err := ctx.RegisterResource("azure-native:storage:Blob", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainer.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainer.go similarity index 83% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainer.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainer.go index bff81803..59de88a3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainer.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainer.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Properties of the blob container, including Id, resource name, resource type, Etag. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type BlobContainer struct { pulumi.CustomResourceState @@ -24,6 +25,10 @@ type BlobContainer struct { DeletedTime pulumi.StringOutput `pulumi:"deletedTime"` // Block override of encryption scope from the container default. DenyEncryptionScopeOverride pulumi.BoolPtrOutput `pulumi:"denyEncryptionScopeOverride"` + // Enable NFSv3 all squash on blob container. + EnableNfsV3AllSquash pulumi.BoolPtrOutput `pulumi:"enableNfsV3AllSquash"` + // Enable NFSv3 root squash on blob container. + EnableNfsV3RootSquash pulumi.BoolPtrOutput `pulumi:"enableNfsV3RootSquash"` // Resource Etag. Etag pulumi.StringOutput `pulumi:"etag"` // The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container. @@ -32,6 +37,8 @@ type BlobContainer struct { HasLegalHold pulumi.BoolOutput `pulumi:"hasLegalHold"` // The ImmutabilityPolicy property of the container. ImmutabilityPolicy ImmutabilityPolicyPropertiesResponseOutput `pulumi:"immutabilityPolicy"` + // The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. + ImmutableStorageWithVersioning ImmutableStorageWithVersioningResponsePtrOutput `pulumi:"immutableStorageWithVersioning"` // Returns the date and time the container was last modified. LastModifiedTime pulumi.StringOutput `pulumi:"lastModifiedTime"` // Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased. @@ -115,8 +122,12 @@ func NewBlobContainer(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:BlobContainer"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:BlobContainer"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource BlobContainer err := ctx.RegisterResource("azure-native:storage:BlobContainer", name, args, &resource, opts...) if err != nil { @@ -157,6 +168,12 @@ type blobContainerArgs struct { DefaultEncryptionScope *string `pulumi:"defaultEncryptionScope"` // Block override of encryption scope from the container default. DenyEncryptionScopeOverride *bool `pulumi:"denyEncryptionScopeOverride"` + // Enable NFSv3 all squash on blob container. + EnableNfsV3AllSquash *bool `pulumi:"enableNfsV3AllSquash"` + // Enable NFSv3 root squash on blob container. + EnableNfsV3RootSquash *bool `pulumi:"enableNfsV3RootSquash"` + // The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. + ImmutableStorageWithVersioning *ImmutableStorageWithVersioning `pulumi:"immutableStorageWithVersioning"` // A name-value pair to associate with the container as metadata. Metadata map[string]string `pulumi:"metadata"` // Specifies whether data in the container may be accessed publicly and the level of access. @@ -175,6 +192,12 @@ type BlobContainerArgs struct { DefaultEncryptionScope pulumi.StringPtrInput // Block override of encryption scope from the container default. DenyEncryptionScopeOverride pulumi.BoolPtrInput + // Enable NFSv3 all squash on blob container. + EnableNfsV3AllSquash pulumi.BoolPtrInput + // Enable NFSv3 root squash on blob container. + EnableNfsV3RootSquash pulumi.BoolPtrInput + // The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. + ImmutableStorageWithVersioning ImmutableStorageWithVersioningPtrInput // A name-value pair to associate with the container as metadata. Metadata pulumi.StringMapInput // Specifies whether data in the container may be accessed publicly and the level of access. @@ -240,6 +263,16 @@ func (o BlobContainerOutput) DenyEncryptionScopeOverride() pulumi.BoolPtrOutput return o.ApplyT(func(v *BlobContainer) pulumi.BoolPtrOutput { return v.DenyEncryptionScopeOverride }).(pulumi.BoolPtrOutput) } +// Enable NFSv3 all squash on blob container. +func (o BlobContainerOutput) EnableNfsV3AllSquash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobContainer) pulumi.BoolPtrOutput { return v.EnableNfsV3AllSquash }).(pulumi.BoolPtrOutput) +} + +// Enable NFSv3 root squash on blob container. +func (o BlobContainerOutput) EnableNfsV3RootSquash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobContainer) pulumi.BoolPtrOutput { return v.EnableNfsV3RootSquash }).(pulumi.BoolPtrOutput) +} + // Resource Etag. func (o BlobContainerOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *BlobContainer) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) @@ -260,6 +293,13 @@ func (o BlobContainerOutput) ImmutabilityPolicy() ImmutabilityPolicyPropertiesRe return o.ApplyT(func(v *BlobContainer) ImmutabilityPolicyPropertiesResponseOutput { return v.ImmutabilityPolicy }).(ImmutabilityPolicyPropertiesResponseOutput) } +// The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. +func (o BlobContainerOutput) ImmutableStorageWithVersioning() ImmutableStorageWithVersioningResponsePtrOutput { + return o.ApplyT(func(v *BlobContainer) ImmutableStorageWithVersioningResponsePtrOutput { + return v.ImmutableStorageWithVersioning + }).(ImmutableStorageWithVersioningResponsePtrOutput) +} + // Returns the date and time the container was last modified. func (o BlobContainerOutput) LastModifiedTime() pulumi.StringOutput { return o.ApplyT(func(v *BlobContainer) pulumi.StringOutput { return v.LastModifiedTime }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainerImmutabilityPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainerImmutabilityPolicy.go similarity index 80% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainerImmutabilityPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainerImmutabilityPolicy.go index b7a9589d..e4d0390f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobContainerImmutabilityPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobContainerImmutabilityPolicy.go @@ -7,17 +7,20 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type BlobContainerImmutabilityPolicy struct { pulumi.CustomResourceState - // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. AllowProtectedAppendWrites pulumi.BoolPtrOutput `pulumi:"allowProtectedAppendWrites"` + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll pulumi.BoolPtrOutput `pulumi:"allowProtectedAppendWritesAll"` // Resource Etag. Etag pulumi.StringOutput `pulumi:"etag"` // The immutability period for the blobs in the container since the policy creation, in days. @@ -92,8 +95,12 @@ func NewBlobContainerImmutabilityPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:BlobContainerImmutabilityPolicy"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:BlobContainerImmutabilityPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource BlobContainerImmutabilityPolicy err := ctx.RegisterResource("azure-native:storage:BlobContainerImmutabilityPolicy", name, args, &resource, opts...) if err != nil { @@ -128,8 +135,10 @@ func (BlobContainerImmutabilityPolicyState) ElementType() reflect.Type { type blobContainerImmutabilityPolicyArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName string `pulumi:"accountName"` - // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll *bool `pulumi:"allowProtectedAppendWritesAll"` // The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. ContainerName string `pulumi:"containerName"` // The immutability period for the blobs in the container since the policy creation, in days. @@ -144,8 +153,10 @@ type blobContainerImmutabilityPolicyArgs struct { type BlobContainerImmutabilityPolicyArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName pulumi.StringInput - // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. AllowProtectedAppendWrites pulumi.BoolPtrInput + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll pulumi.BoolPtrInput // The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number. ContainerName pulumi.StringInput // The immutability period for the blobs in the container since the policy creation, in days. @@ -193,11 +204,16 @@ func (o BlobContainerImmutabilityPolicyOutput) ToBlobContainerImmutabilityPolicy return o } -// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. func (o BlobContainerImmutabilityPolicyOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { return o.ApplyT(func(v *BlobContainerImmutabilityPolicy) pulumi.BoolPtrOutput { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) } +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. +func (o BlobContainerImmutabilityPolicyOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobContainerImmutabilityPolicy) pulumi.BoolPtrOutput { return v.AllowProtectedAppendWritesAll }).(pulumi.BoolPtrOutput) +} + // Resource Etag. func (o BlobContainerImmutabilityPolicyOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v *BlobContainerImmutabilityPolicy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobInventoryPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobInventoryPolicy.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobInventoryPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobInventoryPolicy.go index 8d0bf342..e8e063b9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobInventoryPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobInventoryPolicy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The storage account blob inventory policy. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type BlobInventoryPolicy struct { pulumi.CustomResourceState @@ -75,8 +76,12 @@ func NewBlobInventoryPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:BlobInventoryPolicy"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:BlobInventoryPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource BlobInventoryPolicy err := ctx.RegisterResource("azure-native:storage:BlobInventoryPolicy", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobServiceProperties.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobServiceProperties.go index b6a18ee6..008852d5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/blobServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/blobServiceProperties.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The properties of a storage account’s Blob service. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type BlobServiceProperties struct { pulumi.CustomResourceState @@ -95,8 +96,12 @@ func NewBlobServiceProperties(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:BlobServiceProperties"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:BlobServiceProperties"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource BlobServiceProperties err := ctx.RegisterResource("azure-native:storage:BlobServiceProperties", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/encryptionScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/encryptionScope.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/encryptionScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/encryptionScope.go index 5aaef370..85e420b1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/encryptionScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/encryptionScope.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Encryption Scope resource. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type EncryptionScope struct { pulumi.CustomResourceState @@ -78,8 +79,12 @@ func NewEncryptionScope(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:EncryptionScope"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:EncryptionScope"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource EncryptionScope err := ctx.RegisterResource("azure-native:storage:EncryptionScope", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileServiceProperties.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileServiceProperties.go index f483facd..ff65178c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileServiceProperties.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The properties of File services in storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type FileServiceProperties struct { pulumi.CustomResourceState @@ -77,8 +78,12 @@ func NewFileServiceProperties(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:FileServiceProperties"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:FileServiceProperties"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FileServiceProperties err := ctx.RegisterResource("azure-native:storage:FileServiceProperties", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileShare.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileShare.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileShare.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileShare.go index 39bdc512..cd4e2715 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/fileShare.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/fileShare.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Properties of the file share, including Id, resource name, resource type, Etag. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type FileShare struct { pulumi.CustomResourceState @@ -32,6 +33,12 @@ type FileShare struct { Etag pulumi.StringOutput `pulumi:"etag"` // Returns the date and time the share was last modified. LastModifiedTime pulumi.StringOutput `pulumi:"lastModifiedTime"` + // Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased. + LeaseDuration pulumi.StringOutput `pulumi:"leaseDuration"` + // Lease state of the share. + LeaseState pulumi.StringOutput `pulumi:"leaseState"` + // The lease status of the share. + LeaseStatus pulumi.StringOutput `pulumi:"leaseStatus"` // A name-value pair to associate with the share as metadata. Metadata pulumi.StringMapOutput `pulumi:"metadata"` // The name of the resource @@ -44,6 +51,8 @@ type FileShare struct { ShareQuota pulumi.IntPtrOutput `pulumi:"shareQuota"` // The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files. ShareUsageBytes pulumi.Float64Output `pulumi:"shareUsageBytes"` + // List of stored access policies specified on the share. + SignedIdentifiers SignedIdentifierResponseArrayOutput `pulumi:"signedIdentifiers"` // Creation time of share snapshot returned in the response of list shares with expand param "snapshots". SnapshotTime pulumi.StringOutput `pulumi:"snapshotTime"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -99,8 +108,12 @@ func NewFileShare(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:FileShare"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:FileShare"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource FileShare err := ctx.RegisterResource("azure-native:storage:FileShare", name, args, &resource, opts...) if err != nil { @@ -139,7 +152,7 @@ type fileShareArgs struct { AccountName string `pulumi:"accountName"` // The authentication protocol that is used for the file share. Can only be specified when creating a share. EnabledProtocols *string `pulumi:"enabledProtocols"` - // Optional, used to create a snapshot. + // Optional, used to expand the properties within share's properties. Valid values are: snapshots. Should be passed as a string with delimiter ',' Expand *string `pulumi:"expand"` // A name-value pair to associate with the share as metadata. Metadata map[string]string `pulumi:"metadata"` @@ -151,6 +164,8 @@ type fileShareArgs struct { ShareName *string `pulumi:"shareName"` // The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400. ShareQuota *int `pulumi:"shareQuota"` + // List of stored access policies specified on the share. + SignedIdentifiers []SignedIdentifier `pulumi:"signedIdentifiers"` } // The set of arguments for constructing a FileShare resource. @@ -161,7 +176,7 @@ type FileShareArgs struct { AccountName pulumi.StringInput // The authentication protocol that is used for the file share. Can only be specified when creating a share. EnabledProtocols pulumi.StringPtrInput - // Optional, used to create a snapshot. + // Optional, used to expand the properties within share's properties. Valid values are: snapshots. Should be passed as a string with delimiter ',' Expand pulumi.StringPtrInput // A name-value pair to associate with the share as metadata. Metadata pulumi.StringMapInput @@ -173,6 +188,8 @@ type FileShareArgs struct { ShareName pulumi.StringPtrInput // The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400. ShareQuota pulumi.IntPtrInput + // List of stored access policies specified on the share. + SignedIdentifiers SignedIdentifierArrayInput } func (FileShareArgs) ElementType() reflect.Type { @@ -252,6 +269,21 @@ func (o FileShareOutput) LastModifiedTime() pulumi.StringOutput { return o.ApplyT(func(v *FileShare) pulumi.StringOutput { return v.LastModifiedTime }).(pulumi.StringOutput) } +// Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased. +func (o FileShareOutput) LeaseDuration() pulumi.StringOutput { + return o.ApplyT(func(v *FileShare) pulumi.StringOutput { return v.LeaseDuration }).(pulumi.StringOutput) +} + +// Lease state of the share. +func (o FileShareOutput) LeaseState() pulumi.StringOutput { + return o.ApplyT(func(v *FileShare) pulumi.StringOutput { return v.LeaseState }).(pulumi.StringOutput) +} + +// The lease status of the share. +func (o FileShareOutput) LeaseStatus() pulumi.StringOutput { + return o.ApplyT(func(v *FileShare) pulumi.StringOutput { return v.LeaseStatus }).(pulumi.StringOutput) +} + // A name-value pair to associate with the share as metadata. func (o FileShareOutput) Metadata() pulumi.StringMapOutput { return o.ApplyT(func(v *FileShare) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput) @@ -282,6 +314,11 @@ func (o FileShareOutput) ShareUsageBytes() pulumi.Float64Output { return o.ApplyT(func(v *FileShare) pulumi.Float64Output { return v.ShareUsageBytes }).(pulumi.Float64Output) } +// List of stored access policies specified on the share. +func (o FileShareOutput) SignedIdentifiers() SignedIdentifierResponseArrayOutput { + return o.ApplyT(func(v *FileShare) SignedIdentifierResponseArrayOutput { return v.SignedIdentifiers }).(SignedIdentifierResponseArrayOutput) +} + // Creation time of share snapshot returned in the response of list shares with expand param "snapshots". func (o FileShareOutput) SnapshotTime() pulumi.StringOutput { return o.ApplyT(func(v *FileShare) pulumi.StringOutput { return v.SnapshotTime }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainer.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainer.go similarity index 87% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainer.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainer.go index ba20158e..77b2c3a0 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainer.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainer.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of a specified container. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupBlobContainer(ctx *pulumi.Context, args *LookupBlobContainerArgs, opts ...pulumi.InvokeOption) (*LookupBlobContainerResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupBlobContainerResult err := ctx.Invoke("azure-native:storage:getBlobContainer", args, &rv, opts...) if err != nil { @@ -40,6 +42,10 @@ type LookupBlobContainerResult struct { DeletedTime string `pulumi:"deletedTime"` // Block override of encryption scope from the container default. DenyEncryptionScopeOverride *bool `pulumi:"denyEncryptionScopeOverride"` + // Enable NFSv3 all squash on blob container. + EnableNfsV3AllSquash *bool `pulumi:"enableNfsV3AllSquash"` + // Enable NFSv3 root squash on blob container. + EnableNfsV3RootSquash *bool `pulumi:"enableNfsV3RootSquash"` // Resource Etag. Etag string `pulumi:"etag"` // The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container. @@ -50,6 +56,8 @@ type LookupBlobContainerResult struct { Id string `pulumi:"id"` // The ImmutabilityPolicy property of the container. ImmutabilityPolicy ImmutabilityPolicyPropertiesResponse `pulumi:"immutabilityPolicy"` + // The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. + ImmutableStorageWithVersioning *ImmutableStorageWithVersioningResponse `pulumi:"immutableStorageWithVersioning"` // Returns the date and time the container was last modified. LastModifiedTime string `pulumi:"lastModifiedTime"` // Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased. @@ -135,6 +143,16 @@ func (o LookupBlobContainerResultOutput) DenyEncryptionScopeOverride() pulumi.Bo return o.ApplyT(func(v LookupBlobContainerResult) *bool { return v.DenyEncryptionScopeOverride }).(pulumi.BoolPtrOutput) } +// Enable NFSv3 all squash on blob container. +func (o LookupBlobContainerResultOutput) EnableNfsV3AllSquash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBlobContainerResult) *bool { return v.EnableNfsV3AllSquash }).(pulumi.BoolPtrOutput) +} + +// Enable NFSv3 root squash on blob container. +func (o LookupBlobContainerResultOutput) EnableNfsV3RootSquash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBlobContainerResult) *bool { return v.EnableNfsV3RootSquash }).(pulumi.BoolPtrOutput) +} + // Resource Etag. func (o LookupBlobContainerResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupBlobContainerResult) string { return v.Etag }).(pulumi.StringOutput) @@ -160,6 +178,13 @@ func (o LookupBlobContainerResultOutput) ImmutabilityPolicy() ImmutabilityPolicy return o.ApplyT(func(v LookupBlobContainerResult) ImmutabilityPolicyPropertiesResponse { return v.ImmutabilityPolicy }).(ImmutabilityPolicyPropertiesResponseOutput) } +// The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. +func (o LookupBlobContainerResultOutput) ImmutableStorageWithVersioning() ImmutableStorageWithVersioningResponsePtrOutput { + return o.ApplyT(func(v LookupBlobContainerResult) *ImmutableStorageWithVersioningResponse { + return v.ImmutableStorageWithVersioning + }).(ImmutableStorageWithVersioningResponsePtrOutput) +} + // Returns the date and time the container was last modified. func (o LookupBlobContainerResultOutput) LastModifiedTime() pulumi.StringOutput { return o.ApplyT(func(v LookupBlobContainerResult) string { return v.LastModifiedTime }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainerImmutabilityPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainerImmutabilityPolicy.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainerImmutabilityPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainerImmutabilityPolicy.go index 7f506a70..6fb6b80c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobContainerImmutabilityPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobContainerImmutabilityPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the existing immutability policy along with the corresponding ETag in response headers and body. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupBlobContainerImmutabilityPolicy(ctx *pulumi.Context, args *LookupBlobContainerImmutabilityPolicyArgs, opts ...pulumi.InvokeOption) (*LookupBlobContainerImmutabilityPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupBlobContainerImmutabilityPolicyResult err := ctx.Invoke("azure-native:storage:getBlobContainerImmutabilityPolicy", args, &rv, opts...) if err != nil { @@ -34,8 +36,10 @@ type LookupBlobContainerImmutabilityPolicyArgs struct { // The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag. type LookupBlobContainerImmutabilityPolicyResult struct { - // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll *bool `pulumi:"allowProtectedAppendWritesAll"` // Resource Etag. Etag string `pulumi:"etag"` // Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} @@ -93,11 +97,16 @@ func (o LookupBlobContainerImmutabilityPolicyResultOutput) ToLookupBlobContainer return o } -// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. func (o LookupBlobContainerImmutabilityPolicyResultOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupBlobContainerImmutabilityPolicyResult) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) } +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. +func (o LookupBlobContainerImmutabilityPolicyResultOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupBlobContainerImmutabilityPolicyResult) *bool { return v.AllowProtectedAppendWritesAll }).(pulumi.BoolPtrOutput) +} + // Resource Etag. func (o LookupBlobContainerImmutabilityPolicyResultOutput) Etag() pulumi.StringOutput { return o.ApplyT(func(v LookupBlobContainerImmutabilityPolicyResult) string { return v.Etag }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobInventoryPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobInventoryPolicy.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobInventoryPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobInventoryPolicy.go index f07a07f8..f858b552 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobInventoryPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobInventoryPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the blob inventory policy associated with the specified storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupBlobInventoryPolicy(ctx *pulumi.Context, args *LookupBlobInventoryPolicyArgs, opts ...pulumi.InvokeOption) (*LookupBlobInventoryPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupBlobInventoryPolicyResult err := ctx.Invoke("azure-native:storage:getBlobInventoryPolicy", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobServiceProperties.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobServiceProperties.go index fa15cd8b..181831ab 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getBlobServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getBlobServiceProperties.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupBlobServiceProperties(ctx *pulumi.Context, args *LookupBlobServicePropertiesArgs, opts ...pulumi.InvokeOption) (*LookupBlobServicePropertiesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupBlobServicePropertiesResult err := ctx.Invoke("azure-native:storage:getBlobServiceProperties", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getEncryptionScope.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getEncryptionScope.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getEncryptionScope.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getEncryptionScope.go index d5cf4941..870f779c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getEncryptionScope.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getEncryptionScope.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Returns the properties for the specified encryption scope. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupEncryptionScope(ctx *pulumi.Context, args *LookupEncryptionScopeArgs, opts ...pulumi.InvokeOption) (*LookupEncryptionScopeResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupEncryptionScopeResult err := ctx.Invoke("azure-native:storage:getEncryptionScope", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileServiceProperties.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileServiceProperties.go index d8ee85a2..a8064a16 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileServiceProperties.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupFileServiceProperties(ctx *pulumi.Context, args *LookupFileServicePropertiesArgs, opts ...pulumi.InvokeOption) (*LookupFileServicePropertiesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFileServicePropertiesResult err := ctx.Invoke("azure-native:storage:getFileServiceProperties", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileShare.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileShare.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileShare.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileShare.go index 793c34e3..9df446c9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getFileShare.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getFileShare.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets properties of a specified share. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupFileShare(ctx *pulumi.Context, args *LookupFileShareArgs, opts ...pulumi.InvokeOption) (*LookupFileShareResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupFileShareResult err := ctx.Invoke("azure-native:storage:getFileShare", args, &rv, opts...) if err != nil { @@ -24,7 +26,7 @@ func LookupFileShare(ctx *pulumi.Context, args *LookupFileShareArgs, opts ...pul type LookupFileShareArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName string `pulumi:"accountName"` - // Optional, used to expand the properties within share's properties. + // Optional, used to expand the properties within share's properties. Valid values are: stats. Should be passed as a string with delimiter ','. Expand *string `pulumi:"expand"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -52,6 +54,12 @@ type LookupFileShareResult struct { Id string `pulumi:"id"` // Returns the date and time the share was last modified. LastModifiedTime string `pulumi:"lastModifiedTime"` + // Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased. + LeaseDuration string `pulumi:"leaseDuration"` + // Lease state of the share. + LeaseState string `pulumi:"leaseState"` + // The lease status of the share. + LeaseStatus string `pulumi:"leaseStatus"` // A name-value pair to associate with the share as metadata. Metadata map[string]string `pulumi:"metadata"` // The name of the resource @@ -64,6 +72,8 @@ type LookupFileShareResult struct { ShareQuota *int `pulumi:"shareQuota"` // The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files. ShareUsageBytes float64 `pulumi:"shareUsageBytes"` + // List of stored access policies specified on the share. + SignedIdentifiers []SignedIdentifierResponse `pulumi:"signedIdentifiers"` // Creation time of share snapshot returned in the response of list shares with expand param "snapshots". SnapshotTime string `pulumi:"snapshotTime"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -88,7 +98,7 @@ func LookupFileShareOutput(ctx *pulumi.Context, args LookupFileShareOutputArgs, type LookupFileShareOutputArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName pulumi.StringInput `pulumi:"accountName"` - // Optional, used to expand the properties within share's properties. + // Optional, used to expand the properties within share's properties. Valid values are: stats. Should be passed as a string with delimiter ','. Expand pulumi.StringPtrInput `pulumi:"expand"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` @@ -160,6 +170,21 @@ func (o LookupFileShareResultOutput) LastModifiedTime() pulumi.StringOutput { return o.ApplyT(func(v LookupFileShareResult) string { return v.LastModifiedTime }).(pulumi.StringOutput) } +// Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased. +func (o LookupFileShareResultOutput) LeaseDuration() pulumi.StringOutput { + return o.ApplyT(func(v LookupFileShareResult) string { return v.LeaseDuration }).(pulumi.StringOutput) +} + +// Lease state of the share. +func (o LookupFileShareResultOutput) LeaseState() pulumi.StringOutput { + return o.ApplyT(func(v LookupFileShareResult) string { return v.LeaseState }).(pulumi.StringOutput) +} + +// The lease status of the share. +func (o LookupFileShareResultOutput) LeaseStatus() pulumi.StringOutput { + return o.ApplyT(func(v LookupFileShareResult) string { return v.LeaseStatus }).(pulumi.StringOutput) +} + // A name-value pair to associate with the share as metadata. func (o LookupFileShareResultOutput) Metadata() pulumi.StringMapOutput { return o.ApplyT(func(v LookupFileShareResult) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) @@ -190,6 +215,11 @@ func (o LookupFileShareResultOutput) ShareUsageBytes() pulumi.Float64Output { return o.ApplyT(func(v LookupFileShareResult) float64 { return v.ShareUsageBytes }).(pulumi.Float64Output) } +// List of stored access policies specified on the share. +func (o LookupFileShareResultOutput) SignedIdentifiers() SignedIdentifierResponseArrayOutput { + return o.ApplyT(func(v LookupFileShareResult) []SignedIdentifierResponse { return v.SignedIdentifiers }).(SignedIdentifierResponseArrayOutput) +} + // Creation time of share snapshot returned in the response of list shares with expand param "snapshots". func (o LookupFileShareResultOutput) SnapshotTime() pulumi.StringOutput { return o.ApplyT(func(v LookupFileShareResult) string { return v.SnapshotTime }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getLocalUser.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getLocalUser.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getLocalUser.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getLocalUser.go index fda9bd54..5004523c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getLocalUser.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getLocalUser.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the local user of the storage account by username. -// API Version: 2021-08-01. +// Azure REST API version: 2022-09-01. func LookupLocalUser(ctx *pulumi.Context, args *LookupLocalUserArgs, opts ...pulumi.InvokeOption) (*LookupLocalUserResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupLocalUserResult err := ctx.Invoke("azure-native:storage:getLocalUser", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getManagementPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getManagementPolicy.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getManagementPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getManagementPolicy.go index da5f0eed..5437a720 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getManagementPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getManagementPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the managementpolicy associated with the specified storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupManagementPolicy(ctx *pulumi.Context, args *LookupManagementPolicyArgs, opts ...pulumi.InvokeOption) (*LookupManagementPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupManagementPolicyResult err := ctx.Invoke("azure-native:storage:getManagementPolicy", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getObjectReplicationPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getObjectReplicationPolicy.go similarity index 84% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getObjectReplicationPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getObjectReplicationPolicy.go index fabbc1d2..df419ef5 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getObjectReplicationPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getObjectReplicationPolicy.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Get the object replication policy of the storage account by policy ID. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupObjectReplicationPolicy(ctx *pulumi.Context, args *LookupObjectReplicationPolicyArgs, opts ...pulumi.InvokeOption) (*LookupObjectReplicationPolicyResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupObjectReplicationPolicyResult err := ctx.Invoke("azure-native:storage:getObjectReplicationPolicy", args, &rv, opts...) if err != nil { @@ -24,7 +26,7 @@ func LookupObjectReplicationPolicy(ctx *pulumi.Context, args *LookupObjectReplic type LookupObjectReplicationPolicyArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName string `pulumi:"accountName"` - // The ID of object replication policy or 'default' if the policy ID is unknown. + // For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. ObjectReplicationPolicyId string `pulumi:"objectReplicationPolicyId"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` @@ -32,7 +34,7 @@ type LookupObjectReplicationPolicyArgs struct { // The replication policy between two storage accounts. Multiple rules can be defined in one policy. type LookupObjectReplicationPolicyResult struct { - // Required. Destination account name. + // Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. DestinationAccount string `pulumi:"destinationAccount"` // Indicates when the policy is enabled on the source account. EnabledTime string `pulumi:"enabledTime"` @@ -44,7 +46,7 @@ type LookupObjectReplicationPolicyResult struct { PolicyId string `pulumi:"policyId"` // The storage account object replication rules. Rules []ObjectReplicationPolicyRuleResponse `pulumi:"rules"` - // Required. Source account name. + // Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. SourceAccount string `pulumi:"sourceAccount"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type string `pulumi:"type"` @@ -66,7 +68,7 @@ func LookupObjectReplicationPolicyOutput(ctx *pulumi.Context, args LookupObjectR type LookupObjectReplicationPolicyOutputArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName pulumi.StringInput `pulumi:"accountName"` - // The ID of object replication policy or 'default' if the policy ID is unknown. + // For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. ObjectReplicationPolicyId pulumi.StringInput `pulumi:"objectReplicationPolicyId"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` @@ -91,7 +93,7 @@ func (o LookupObjectReplicationPolicyResultOutput) ToLookupObjectReplicationPoli return o } -// Required. Destination account name. +// Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. func (o LookupObjectReplicationPolicyResultOutput) DestinationAccount() pulumi.StringOutput { return o.ApplyT(func(v LookupObjectReplicationPolicyResult) string { return v.DestinationAccount }).(pulumi.StringOutput) } @@ -121,7 +123,7 @@ func (o LookupObjectReplicationPolicyResultOutput) Rules() ObjectReplicationPoli return o.ApplyT(func(v LookupObjectReplicationPolicyResult) []ObjectReplicationPolicyRuleResponse { return v.Rules }).(ObjectReplicationPolicyRuleResponseArrayOutput) } -// Required. Source account name. +// Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. func (o LookupObjectReplicationPolicyResultOutput) SourceAccount() pulumi.StringOutput { return o.ApplyT(func(v LookupObjectReplicationPolicyResult) string { return v.SourceAccount }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getPrivateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getPrivateEndpointConnection.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getPrivateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getPrivateEndpointConnection.go index 9fe731fb..ff4f50a9 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getPrivateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getPrivateEndpointConnection.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the specified private endpoint connection associated with the storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupPrivateEndpointConnection(ctx *pulumi.Context, args *LookupPrivateEndpointConnectionArgs, opts ...pulumi.InvokeOption) (*LookupPrivateEndpointConnectionResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupPrivateEndpointConnectionResult err := ctx.Invoke("azure-native:storage:getPrivateEndpointConnection", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueue.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueue.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueue.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueue.go index 759eaacc..60864ab1 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueue.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueue.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the queue with the specified queue name, under the specified account if it exists. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupQueue(ctx *pulumi.Context, args *LookupQueueArgs, opts ...pulumi.InvokeOption) (*LookupQueueResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupQueueResult err := ctx.Invoke("azure-native:storage:getQueue", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueueServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueueServiceProperties.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueueServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueueServiceProperties.go index cfcb681c..64050738 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getQueueServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getQueueServiceProperties.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupQueueServiceProperties(ctx *pulumi.Context, args *LookupQueueServicePropertiesArgs, opts ...pulumi.InvokeOption) (*LookupQueueServicePropertiesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupQueueServicePropertiesResult err := ctx.Invoke("azure-native:storage:getQueueServiceProperties", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getStorageAccount.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getStorageAccount.go similarity index 78% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getStorageAccount.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getStorageAccount.go index f0052ca9..0168275c 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getStorageAccount.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getStorageAccount.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status. The ListKeys operation should be used to retrieve storage keys. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupStorageAccount(ctx *pulumi.Context, args *LookupStorageAccountArgs, opts ...pulumi.InvokeOption) (*LookupStorageAccountResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupStorageAccountResult err := ctx.Invoke("azure-native:storage:getStorageAccount", args, &rv, opts...) if err != nil { @@ -32,12 +34,16 @@ type LookupStorageAccountArgs struct { // The storage account. type LookupStorageAccountResult struct { - // Required for storage accounts where kind = BlobStorage. The access tier used for billing. + // Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. AccessTier string `pulumi:"accessTier"` // Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property. AllowBlobPublicAccess *bool `pulumi:"allowBlobPublicAccess"` + // Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. + AllowCrossTenantReplication *bool `pulumi:"allowCrossTenantReplication"` // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. AllowSharedKeyAccess *bool `pulumi:"allowSharedKeyAccess"` + // Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + AllowedCopyScope *string `pulumi:"allowedCopyScope"` // Provides the identity based authentication settings for Azure Files. AzureFilesIdentityBasedAuthentication *AzureFilesIdentityBasedAuthenticationResponse `pulumi:"azureFilesIdentityBasedAuthentication"` // Blob restore status @@ -46,11 +52,15 @@ type LookupStorageAccountResult struct { CreationTime string `pulumi:"creationTime"` // Gets the custom domain the user assigned to this storage account. CustomDomain CustomDomainResponse `pulumi:"customDomain"` + // A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + DefaultToOAuthAuthentication *bool `pulumi:"defaultToOAuthAuthentication"` + // Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + DnsEndpointType *string `pulumi:"dnsEndpointType"` // Allows https traffic only to storage service if sets to true. EnableHttpsTrafficOnly *bool `pulumi:"enableHttpsTrafficOnly"` // NFS 3.0 protocol support enabled if set to true. EnableNfsV3 *bool `pulumi:"enableNfsV3"` - // Gets the encryption settings on the account. If unspecified, the account is unencrypted. + // Encryption settings to be used for server-side encryption for the storage account. Encryption EncryptionResponse `pulumi:"encryption"` // The extendedLocation of the resource. ExtendedLocation *ExtendedLocationResponse `pulumi:"extendedLocation"` @@ -62,8 +72,14 @@ type LookupStorageAccountResult struct { Id string `pulumi:"id"` // The identity of the resource. Identity *IdentityResponse `pulumi:"identity"` + // The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. + ImmutableStorageWithVersioning *ImmutableStorageAccountResponse `pulumi:"immutableStorageWithVersioning"` // Account HierarchicalNamespace enabled if sets to true. IsHnsEnabled *bool `pulumi:"isHnsEnabled"` + // Enables local users feature, if set to true + IsLocalUserEnabled *bool `pulumi:"isLocalUserEnabled"` + // Enables Secure File Transfer Protocol, if set to true + IsSftpEnabled *bool `pulumi:"isSftpEnabled"` // Storage account keys creation time. KeyCreationTime KeyCreationTimeResponse `pulumi:"keyCreationTime"` // KeyPolicy assigned to the storage account. @@ -90,6 +106,8 @@ type LookupStorageAccountResult struct { PrivateEndpointConnections []PrivateEndpointConnectionResponse `pulumi:"privateEndpointConnections"` // Gets the status of the storage account at the time the operation was called. ProvisioningState string `pulumi:"provisioningState"` + // Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // Maintains information about the network routing choice opted by the user for data transfer RoutingPreference *RoutingPreferenceResponse `pulumi:"routingPreference"` // SasPolicy assigned to the storage account. @@ -104,6 +122,8 @@ type LookupStorageAccountResult struct { StatusOfPrimary string `pulumi:"statusOfPrimary"` // Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS. StatusOfSecondary string `pulumi:"statusOfSecondary"` + // This property is readOnly and is set by server during asynchronous storage account sku conversion operations. + StorageAccountSkuConversionStatus *StorageAccountSkuConversionStatusResponse `pulumi:"storageAccountSkuConversionStatus"` // Resource tags. Tags map[string]string `pulumi:"tags"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -166,7 +186,7 @@ func (o LookupStorageAccountResultOutput) ToLookupStorageAccountResultOutputWith return o } -// Required for storage accounts where kind = BlobStorage. The access tier used for billing. +// Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. func (o LookupStorageAccountResultOutput) AccessTier() pulumi.StringOutput { return o.ApplyT(func(v LookupStorageAccountResult) string { return v.AccessTier }).(pulumi.StringOutput) } @@ -176,11 +196,21 @@ func (o LookupStorageAccountResultOutput) AllowBlobPublicAccess() pulumi.BoolPtr return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.AllowBlobPublicAccess }).(pulumi.BoolPtrOutput) } +// Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. +func (o LookupStorageAccountResultOutput) AllowCrossTenantReplication() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.AllowCrossTenantReplication }).(pulumi.BoolPtrOutput) +} + // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. func (o LookupStorageAccountResultOutput) AllowSharedKeyAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.AllowSharedKeyAccess }).(pulumi.BoolPtrOutput) } +// Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. +func (o LookupStorageAccountResultOutput) AllowedCopyScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *string { return v.AllowedCopyScope }).(pulumi.StringPtrOutput) +} + // Provides the identity based authentication settings for Azure Files. func (o LookupStorageAccountResultOutput) AzureFilesIdentityBasedAuthentication() AzureFilesIdentityBasedAuthenticationResponsePtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *AzureFilesIdentityBasedAuthenticationResponse { @@ -203,6 +233,16 @@ func (o LookupStorageAccountResultOutput) CustomDomain() CustomDomainResponseOut return o.ApplyT(func(v LookupStorageAccountResult) CustomDomainResponse { return v.CustomDomain }).(CustomDomainResponseOutput) } +// A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. +func (o LookupStorageAccountResultOutput) DefaultToOAuthAuthentication() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.DefaultToOAuthAuthentication }).(pulumi.BoolPtrOutput) +} + +// Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. +func (o LookupStorageAccountResultOutput) DnsEndpointType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *string { return v.DnsEndpointType }).(pulumi.StringPtrOutput) +} + // Allows https traffic only to storage service if sets to true. func (o LookupStorageAccountResultOutput) EnableHttpsTrafficOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.EnableHttpsTrafficOnly }).(pulumi.BoolPtrOutput) @@ -213,7 +253,7 @@ func (o LookupStorageAccountResultOutput) EnableNfsV3() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.EnableNfsV3 }).(pulumi.BoolPtrOutput) } -// Gets the encryption settings on the account. If unspecified, the account is unencrypted. +// Encryption settings to be used for server-side encryption for the storage account. func (o LookupStorageAccountResultOutput) Encryption() EncryptionResponseOutput { return o.ApplyT(func(v LookupStorageAccountResult) EncryptionResponse { return v.Encryption }).(EncryptionResponseOutput) } @@ -243,11 +283,28 @@ func (o LookupStorageAccountResultOutput) Identity() IdentityResponsePtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *IdentityResponse { return v.Identity }).(IdentityResponsePtrOutput) } +// The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. +func (o LookupStorageAccountResultOutput) ImmutableStorageWithVersioning() ImmutableStorageAccountResponsePtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *ImmutableStorageAccountResponse { + return v.ImmutableStorageWithVersioning + }).(ImmutableStorageAccountResponsePtrOutput) +} + // Account HierarchicalNamespace enabled if sets to true. func (o LookupStorageAccountResultOutput) IsHnsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.IsHnsEnabled }).(pulumi.BoolPtrOutput) } +// Enables local users feature, if set to true +func (o LookupStorageAccountResultOutput) IsLocalUserEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.IsLocalUserEnabled }).(pulumi.BoolPtrOutput) +} + +// Enables Secure File Transfer Protocol, if set to true +func (o LookupStorageAccountResultOutput) IsSftpEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *bool { return v.IsSftpEnabled }).(pulumi.BoolPtrOutput) +} + // Storage account keys creation time. func (o LookupStorageAccountResultOutput) KeyCreationTime() KeyCreationTimeResponseOutput { return o.ApplyT(func(v LookupStorageAccountResult) KeyCreationTimeResponse { return v.KeyCreationTime }).(KeyCreationTimeResponseOutput) @@ -315,6 +372,11 @@ func (o LookupStorageAccountResultOutput) ProvisioningState() pulumi.StringOutpu return o.ApplyT(func(v LookupStorageAccountResult) string { return v.ProvisioningState }).(pulumi.StringOutput) } +// Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. +func (o LookupStorageAccountResultOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *string { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Maintains information about the network routing choice opted by the user for data transfer func (o LookupStorageAccountResultOutput) RoutingPreference() RoutingPreferenceResponsePtrOutput { return o.ApplyT(func(v LookupStorageAccountResult) *RoutingPreferenceResponse { return v.RoutingPreference }).(RoutingPreferenceResponsePtrOutput) @@ -350,6 +412,13 @@ func (o LookupStorageAccountResultOutput) StatusOfSecondary() pulumi.StringOutpu return o.ApplyT(func(v LookupStorageAccountResult) string { return v.StatusOfSecondary }).(pulumi.StringOutput) } +// This property is readOnly and is set by server during asynchronous storage account sku conversion operations. +func (o LookupStorageAccountResultOutput) StorageAccountSkuConversionStatus() StorageAccountSkuConversionStatusResponsePtrOutput { + return o.ApplyT(func(v LookupStorageAccountResult) *StorageAccountSkuConversionStatusResponse { + return v.StorageAccountSkuConversionStatus + }).(StorageAccountSkuConversionStatusResponsePtrOutput) +} + // Resource tags. func (o LookupStorageAccountResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupStorageAccountResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTable.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTable.go similarity index 88% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTable.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTable.go index 32b4da25..952e455f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTable.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTable.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the table with the specified table name, under the specified account if it exists. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupTable(ctx *pulumi.Context, args *LookupTableArgs, opts ...pulumi.InvokeOption) (*LookupTableResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTableResult err := ctx.Invoke("azure-native:storage:getTable", args, &rv, opts...) if err != nil { @@ -36,6 +38,8 @@ type LookupTableResult struct { Id string `pulumi:"id"` // The name of the resource Name string `pulumi:"name"` + // List of stored access policies specified on the table. + SignedIdentifiers []TableSignedIdentifierResponse `pulumi:"signedIdentifiers"` // Table name under the specified account TableName string `pulumi:"tableName"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -93,6 +97,11 @@ func (o LookupTableResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v LookupTableResult) string { return v.Name }).(pulumi.StringOutput) } +// List of stored access policies specified on the table. +func (o LookupTableResultOutput) SignedIdentifiers() TableSignedIdentifierResponseArrayOutput { + return o.ApplyT(func(v LookupTableResult) []TableSignedIdentifierResponse { return v.SignedIdentifiers }).(TableSignedIdentifierResponseArrayOutput) +} + // Table name under the specified account func (o LookupTableResultOutput) TableName() pulumi.StringOutput { return o.ApplyT(func(v LookupTableResult) string { return v.TableName }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTableServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTableServiceProperties.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTableServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTableServiceProperties.go index 0c8d5b2f..177d5d02 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/getTableServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/getTableServiceProperties.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Gets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func LookupTableServiceProperties(ctx *pulumi.Context, args *LookupTableServicePropertiesArgs, opts ...pulumi.InvokeOption) (*LookupTableServicePropertiesResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv LookupTableServicePropertiesResult err := ctx.Invoke("azure-native:storage:getTableServiceProperties", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/init.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/init.go similarity index 95% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/init.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/init.go index e4af5189..ee6a37a8 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/init.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/init.go @@ -7,7 +7,7 @@ import ( "fmt" "github.com/blang/semver" - "github.com/pulumi/pulumi-azure-native-sdk" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -66,7 +66,7 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi } func init() { - version, err := pulumiazurenativesdk.PkgVersion() + version, err := utilities.PkgVersion() if err != nil { version = semver.Version{Major: 1} } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listLocalUserKeys.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listLocalUserKeys.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listLocalUserKeys.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listLocalUserKeys.go index 6e9256ea..66c5ab5f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listLocalUserKeys.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listLocalUserKeys.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List SSH authorized keys and shared key of the local user. -// API Version: 2021-08-01. +// Azure REST API version: 2022-09-01. func ListLocalUserKeys(ctx *pulumi.Context, args *ListLocalUserKeysArgs, opts ...pulumi.InvokeOption) (*ListLocalUserKeysResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListLocalUserKeysResult err := ctx.Invoke("azure-native:storage:listLocalUserKeys", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountKeys.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountKeys.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountKeys.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountKeys.go index f7d66968..1a0bc1a3 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountKeys.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountKeys.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func ListStorageAccountKeys(ctx *pulumi.Context, args *ListStorageAccountKeysArgs, opts ...pulumi.InvokeOption) (*ListStorageAccountKeysResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListStorageAccountKeysResult err := ctx.Invoke("azure-native:storage:listStorageAccountKeys", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountSAS.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountSAS.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountSAS.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountSAS.go index ef4e9375..d28cbf58 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountSAS.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountSAS.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List SAS credentials of a storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func ListStorageAccountSAS(ctx *pulumi.Context, args *ListStorageAccountSASArgs, opts ...pulumi.InvokeOption) (*ListStorageAccountSASResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListStorageAccountSASResult err := ctx.Invoke("azure-native:storage:listStorageAccountSAS", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountServiceSAS.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountServiceSAS.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountServiceSAS.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountServiceSAS.go index cb4a293a..15d3de3a 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/listStorageAccountServiceSAS.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/listStorageAccountServiceSAS.go @@ -7,12 +7,14 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // List service SAS credentials of a specific resource. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. func ListStorageAccountServiceSAS(ctx *pulumi.Context, args *ListStorageAccountServiceSASArgs, opts ...pulumi.InvokeOption) (*ListStorageAccountServiceSASResult, error) { + opts = utilities.PkgInvokeDefaultOpts(opts) var rv ListStorageAccountServiceSASResult err := ctx.Invoke("azure-native:storage:listStorageAccountServiceSAS", args, &rv, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/localUser.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/localUser.go similarity index 97% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/localUser.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/localUser.go index 4ce0370c..dc04509b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/localUser.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/localUser.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The local user associated with the storage accounts. -// API Version: 2021-08-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-08-01 type LocalUser struct { pulumi.CustomResourceState @@ -64,8 +65,12 @@ func NewLocalUser(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:LocalUser"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:LocalUser"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource LocalUser err := ctx.RegisterResource("azure-native:storage:LocalUser", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/managementPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/managementPolicy.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/managementPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/managementPolicy.go index 79be5ba8..c5f4a916 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/managementPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/managementPolicy.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Get Storage Account ManagementPolicies operation response. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type ManagementPolicy struct { pulumi.CustomResourceState @@ -82,8 +83,12 @@ func NewManagementPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:ManagementPolicy"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:ManagementPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ManagementPolicy err := ctx.RegisterResource("azure-native:storage:ManagementPolicy", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/objectReplicationPolicy.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/objectReplicationPolicy.go similarity index 82% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/objectReplicationPolicy.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/objectReplicationPolicy.go index 0833dfd7..e0e29d8d 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/objectReplicationPolicy.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/objectReplicationPolicy.go @@ -7,16 +7,17 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The replication policy between two storage accounts. Multiple rules can be defined in one policy. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type ObjectReplicationPolicy struct { pulumi.CustomResourceState - // Required. Destination account name. + // Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. DestinationAccount pulumi.StringOutput `pulumi:"destinationAccount"` // Indicates when the policy is enabled on the source account. EnabledTime pulumi.StringOutput `pulumi:"enabledTime"` @@ -26,7 +27,7 @@ type ObjectReplicationPolicy struct { PolicyId pulumi.StringOutput `pulumi:"policyId"` // The storage account object replication rules. Rules ObjectReplicationPolicyRuleResponseArrayOutput `pulumi:"rules"` - // Required. Source account name. + // Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. SourceAccount pulumi.StringOutput `pulumi:"sourceAccount"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" Type pulumi.StringOutput `pulumi:"type"` @@ -82,8 +83,12 @@ func NewObjectReplicationPolicy(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:ObjectReplicationPolicy"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:ObjectReplicationPolicy"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource ObjectReplicationPolicy err := ctx.RegisterResource("azure-native:storage:ObjectReplicationPolicy", name, args, &resource, opts...) if err != nil { @@ -118,15 +123,15 @@ func (ObjectReplicationPolicyState) ElementType() reflect.Type { type objectReplicationPolicyArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName string `pulumi:"accountName"` - // Required. Destination account name. + // Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. DestinationAccount string `pulumi:"destinationAccount"` - // The ID of object replication policy or 'default' if the policy ID is unknown. + // For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. ObjectReplicationPolicyId *string `pulumi:"objectReplicationPolicyId"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` // The storage account object replication rules. Rules []ObjectReplicationPolicyRule `pulumi:"rules"` - // Required. Source account name. + // Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. SourceAccount string `pulumi:"sourceAccount"` } @@ -134,15 +139,15 @@ type objectReplicationPolicyArgs struct { type ObjectReplicationPolicyArgs struct { // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName pulumi.StringInput - // Required. Destination account name. + // Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. DestinationAccount pulumi.StringInput - // The ID of object replication policy or 'default' if the policy ID is unknown. + // For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file. ObjectReplicationPolicyId pulumi.StringPtrInput // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName pulumi.StringInput // The storage account object replication rules. Rules ObjectReplicationPolicyRuleArrayInput - // Required. Source account name. + // Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. SourceAccount pulumi.StringInput } @@ -183,7 +188,7 @@ func (o ObjectReplicationPolicyOutput) ToObjectReplicationPolicyOutputWithContex return o } -// Required. Destination account name. +// Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. func (o ObjectReplicationPolicyOutput) DestinationAccount() pulumi.StringOutput { return o.ApplyT(func(v *ObjectReplicationPolicy) pulumi.StringOutput { return v.DestinationAccount }).(pulumi.StringOutput) } @@ -208,7 +213,7 @@ func (o ObjectReplicationPolicyOutput) Rules() ObjectReplicationPolicyRuleRespon return o.ApplyT(func(v *ObjectReplicationPolicy) ObjectReplicationPolicyRuleResponseArrayOutput { return v.Rules }).(ObjectReplicationPolicyRuleResponseArrayOutput) } -// Required. Source account name. +// Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. func (o ObjectReplicationPolicyOutput) SourceAccount() pulumi.StringOutput { return o.ApplyT(func(v *ObjectReplicationPolicy) pulumi.StringOutput { return v.SourceAccount }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/privateEndpointConnection.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/privateEndpointConnection.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/privateEndpointConnection.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/privateEndpointConnection.go index d4621416..215a0446 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/privateEndpointConnection.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/privateEndpointConnection.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The Private Endpoint Connection resource. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type PrivateEndpointConnection struct { pulumi.CustomResourceState @@ -75,8 +76,12 @@ func NewPrivateEndpointConnection(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:PrivateEndpointConnection"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:PrivateEndpointConnection"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource PrivateEndpointConnection err := ctx.RegisterResource("azure-native:storage:PrivateEndpointConnection", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumi-plugin.json similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumi-plugin.json rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumi-plugin.json diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiEnums.go similarity index 90% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiEnums.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiEnums.go index 1c715a69..9e9a734f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiEnums.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiEnums.go @@ -10,12 +10,13 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Required for storage accounts where kind = BlobStorage. The access tier used for billing. +// Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. type AccessTier string const ( - AccessTierHot = AccessTier("Hot") - AccessTierCool = AccessTier("Cool") + AccessTierHot = AccessTier("Hot") + AccessTierCool = AccessTier("Cool") + AccessTierPremium = AccessTier("Premium") ) func (AccessTier) ElementType() reflect.Type { @@ -175,6 +176,23 @@ func (in *accessTierPtr) ToAccessTierPtrOutputWithContext(ctx context.Context) A return pulumi.ToOutputWithContext(ctx, in).(AccessTierPtrOutput) } +// The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. +type AccountImmutabilityPolicyState string + +const ( + AccountImmutabilityPolicyStateUnlocked = AccountImmutabilityPolicyState("Unlocked") + AccountImmutabilityPolicyStateLocked = AccountImmutabilityPolicyState("Locked") + AccountImmutabilityPolicyStateDisabled = AccountImmutabilityPolicyState("Disabled") +) + +// Specifies the Active Directory account type for Azure Storage. +type AccountType string + +const ( + AccountTypeUser = AccountType("User") + AccountTypeComputer = AccountType("Computer") +) + // The action of virtual network rule. type Action string @@ -339,6 +357,27 @@ func (in *actionPtr) ToActionPtrOutputWithContext(ctx context.Context) ActionPtr return pulumi.ToOutputWithContext(ctx, in).(ActionPtrOutput) } +// Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. +type AllowedCopyScope string + +const ( + AllowedCopyScopePrivateLink = AllowedCopyScope("PrivateLink") + AllowedCopyScopeAAD = AllowedCopyScope("AAD") +) + +type AllowedMethods string + +const ( + AllowedMethodsDELETE = AllowedMethods("DELETE") + AllowedMethodsGET = AllowedMethods("GET") + AllowedMethodsHEAD = AllowedMethods("HEAD") + AllowedMethodsMERGE = AllowedMethods("MERGE") + AllowedMethodsPOST = AllowedMethods("POST") + AllowedMethodsOPTIONS = AllowedMethods("OPTIONS") + AllowedMethodsPUT = AllowedMethods("PUT") + AllowedMethodsPATCH = AllowedMethods("PATCH") +) + // The access tier of a storage blob. type BlobAccessTier string @@ -850,13 +889,32 @@ func (in *defaultActionPtr) ToDefaultActionPtrOutputWithContext(ctx context.Cont return pulumi.ToOutputWithContext(ctx, in).(DefaultActionPtrOutput) } -// Indicates the directory service used. +// Default share permission for users using Kerberos authentication if RBAC role is not assigned. +type DefaultSharePermission string + +const ( + DefaultSharePermissionNone = DefaultSharePermission("None") + DefaultSharePermissionStorageFileDataSmbShareReader = DefaultSharePermission("StorageFileDataSmbShareReader") + DefaultSharePermissionStorageFileDataSmbShareContributor = DefaultSharePermission("StorageFileDataSmbShareContributor") + DefaultSharePermissionStorageFileDataSmbShareElevatedContributor = DefaultSharePermission("StorageFileDataSmbShareElevatedContributor") +) + +// Indicates the directory service used. Note that this enum may be extended in the future. type DirectoryServiceOptions string const ( - DirectoryServiceOptionsNone = DirectoryServiceOptions("None") - DirectoryServiceOptionsAADDS = DirectoryServiceOptions("AADDS") - DirectoryServiceOptionsAD = DirectoryServiceOptions("AD") + DirectoryServiceOptionsNone = DirectoryServiceOptions("None") + DirectoryServiceOptionsAADDS = DirectoryServiceOptions("AADDS") + DirectoryServiceOptionsAD = DirectoryServiceOptions("AD") + DirectoryServiceOptionsAADKERB = DirectoryServiceOptions("AADKERB") +) + +// Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. +type DnsEndpointType string + +const ( + DnsEndpointTypeStandard = DnsEndpointType("Standard") + DnsEndpointTypeAzureDnsZone = DnsEndpointType("AzureDnsZone") ) // The authentication protocol that is used for the file share. Can only be specified when creating a share. @@ -897,6 +955,14 @@ const ( ExtendedLocationTypesEdgeZone = ExtendedLocationTypes("EdgeZone") ) +// This is a required field, it specifies the format for the inventory files. +type Format string + +const ( + FormatCsv = Format("Csv") + FormatParquet = Format("Parquet") +) + // The protocol permitted for a request made with the account SAS. type HttpProtocol string @@ -1130,6 +1196,14 @@ const ( NameAccessTimeTracking = Name("AccessTimeTracking") ) +// This is a required field. This field specifies the scope of the inventory created either at the blob or container level. +type ObjectType string + +const ( + ObjectTypeBlob = ObjectType("Blob") + ObjectTypeContainer = ObjectType("Container") +) + // The signed permissions for the service SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). type Permissions string @@ -1319,6 +1393,14 @@ func (in *publicAccessPtr) ToPublicAccessPtrOutputWithContext(ctx context.Contex return pulumi.ToOutputWithContext(ctx, in).(PublicAccessPtrOutput) } +// Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. +type PublicNetworkAccess string + +const ( + PublicNetworkAccessEnabled = PublicNetworkAccess("Enabled") + PublicNetworkAccessDisabled = PublicNetworkAccess("Disabled") +) + // The property is for NFS share only. The default is NoRootSquash. type RootSquashType string @@ -1343,6 +1425,14 @@ const ( RuleTypeLifecycle = RuleType("Lifecycle") ) +// This is a required field. This field is used to schedule an inventory formation. +type Schedule string + +const ( + ScheduleDaily = Schedule("Daily") + ScheduleWeekly = Schedule("Weekly") +) + // The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). type Services string @@ -1400,11 +1490,11 @@ const ( type State string const ( - StateProvisioning = State("provisioning") - StateDeprovisioning = State("deprovisioning") - StateSucceeded = State("succeeded") - StateFailed = State("failed") - StateNetworkSourceDeleted = State("networkSourceDeleted") + StateProvisioning = State("Provisioning") + StateDeprovisioning = State("Deprovisioning") + StateSucceeded = State("Succeeded") + StateFailed = State("Failed") + StateNetworkSourceDeleted = State("NetworkSourceDeleted") ) func init() { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiTypes.go similarity index 74% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiTypes.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiTypes.go index 767ef188..95bbf388 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/pulumiTypes.go @@ -7,10891 +7,13547 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Settings properties for Active Directory (AD). -type ActiveDirectoryProperties struct { - // Specifies the security identifier (SID) for Azure Storage. - AzureStorageSid string `pulumi:"azureStorageSid"` - // Specifies the domain GUID. - DomainGuid string `pulumi:"domainGuid"` - // Specifies the primary domain that the AD DNS server is authoritative for. - DomainName string `pulumi:"domainName"` - // Specifies the security identifier (SID). - DomainSid string `pulumi:"domainSid"` - // Specifies the Active Directory forest to get. - ForestName string `pulumi:"forestName"` - // Specifies the NetBIOS domain name. - NetBiosDomainName string `pulumi:"netBiosDomainName"` +var _ = utilities.GetEnvOrDefault + +type AccessPolicy struct { + // Expiry time of the access policy + ExpiryTime *string `pulumi:"expiryTime"` + // List of abbreviated permissions. + Permission *string `pulumi:"permission"` + // Start time of the access policy + StartTime *string `pulumi:"startTime"` } -// ActiveDirectoryPropertiesInput is an input type that accepts ActiveDirectoryPropertiesArgs and ActiveDirectoryPropertiesOutput values. -// You can construct a concrete instance of `ActiveDirectoryPropertiesInput` via: +// AccessPolicyInput is an input type that accepts AccessPolicyArgs and AccessPolicyOutput values. +// You can construct a concrete instance of `AccessPolicyInput` via: // -// ActiveDirectoryPropertiesArgs{...} -type ActiveDirectoryPropertiesInput interface { +// AccessPolicyArgs{...} +type AccessPolicyInput interface { pulumi.Input - ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput - ToActiveDirectoryPropertiesOutputWithContext(context.Context) ActiveDirectoryPropertiesOutput + ToAccessPolicyOutput() AccessPolicyOutput + ToAccessPolicyOutputWithContext(context.Context) AccessPolicyOutput } -// Settings properties for Active Directory (AD). -type ActiveDirectoryPropertiesArgs struct { - // Specifies the security identifier (SID) for Azure Storage. - AzureStorageSid pulumi.StringInput `pulumi:"azureStorageSid"` - // Specifies the domain GUID. - DomainGuid pulumi.StringInput `pulumi:"domainGuid"` - // Specifies the primary domain that the AD DNS server is authoritative for. - DomainName pulumi.StringInput `pulumi:"domainName"` - // Specifies the security identifier (SID). - DomainSid pulumi.StringInput `pulumi:"domainSid"` - // Specifies the Active Directory forest to get. - ForestName pulumi.StringInput `pulumi:"forestName"` - // Specifies the NetBIOS domain name. - NetBiosDomainName pulumi.StringInput `pulumi:"netBiosDomainName"` +type AccessPolicyArgs struct { + // Expiry time of the access policy + ExpiryTime pulumi.StringPtrInput `pulumi:"expiryTime"` + // List of abbreviated permissions. + Permission pulumi.StringPtrInput `pulumi:"permission"` + // Start time of the access policy + StartTime pulumi.StringPtrInput `pulumi:"startTime"` } -func (ActiveDirectoryPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ActiveDirectoryProperties)(nil)).Elem() +func (AccessPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPolicy)(nil)).Elem() } -func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput { - return i.ToActiveDirectoryPropertiesOutputWithContext(context.Background()) +func (i AccessPolicyArgs) ToAccessPolicyOutput() AccessPolicyOutput { + return i.ToAccessPolicyOutputWithContext(context.Background()) } -func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesOutput) +func (i AccessPolicyArgs) ToAccessPolicyOutputWithContext(ctx context.Context) AccessPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPolicyOutput) } -func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { - return i.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) +func (i AccessPolicyArgs) ToAccessPolicyPtrOutput() AccessPolicyPtrOutput { + return i.ToAccessPolicyPtrOutputWithContext(context.Background()) } -func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesOutput).ToActiveDirectoryPropertiesPtrOutputWithContext(ctx) +func (i AccessPolicyArgs) ToAccessPolicyPtrOutputWithContext(ctx context.Context) AccessPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPolicyOutput).ToAccessPolicyPtrOutputWithContext(ctx) } -// ActiveDirectoryPropertiesPtrInput is an input type that accepts ActiveDirectoryPropertiesArgs, ActiveDirectoryPropertiesPtr and ActiveDirectoryPropertiesPtrOutput values. -// You can construct a concrete instance of `ActiveDirectoryPropertiesPtrInput` via: +// AccessPolicyPtrInput is an input type that accepts AccessPolicyArgs, AccessPolicyPtr and AccessPolicyPtrOutput values. +// You can construct a concrete instance of `AccessPolicyPtrInput` via: // -// ActiveDirectoryPropertiesArgs{...} +// AccessPolicyArgs{...} // // or: // // nil -type ActiveDirectoryPropertiesPtrInput interface { +type AccessPolicyPtrInput interface { pulumi.Input - ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput - ToActiveDirectoryPropertiesPtrOutputWithContext(context.Context) ActiveDirectoryPropertiesPtrOutput + ToAccessPolicyPtrOutput() AccessPolicyPtrOutput + ToAccessPolicyPtrOutputWithContext(context.Context) AccessPolicyPtrOutput } -type activeDirectoryPropertiesPtrType ActiveDirectoryPropertiesArgs +type accessPolicyPtrType AccessPolicyArgs -func ActiveDirectoryPropertiesPtr(v *ActiveDirectoryPropertiesArgs) ActiveDirectoryPropertiesPtrInput { - return (*activeDirectoryPropertiesPtrType)(v) +func AccessPolicyPtr(v *AccessPolicyArgs) AccessPolicyPtrInput { + return (*accessPolicyPtrType)(v) } -func (*activeDirectoryPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ActiveDirectoryProperties)(nil)).Elem() +func (*accessPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPolicy)(nil)).Elem() } -func (i *activeDirectoryPropertiesPtrType) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { - return i.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) +func (i *accessPolicyPtrType) ToAccessPolicyPtrOutput() AccessPolicyPtrOutput { + return i.ToAccessPolicyPtrOutputWithContext(context.Background()) } -func (i *activeDirectoryPropertiesPtrType) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesPtrOutput) +func (i *accessPolicyPtrType) ToAccessPolicyPtrOutputWithContext(ctx context.Context) AccessPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPolicyPtrOutput) } -// Settings properties for Active Directory (AD). -type ActiveDirectoryPropertiesOutput struct{ *pulumi.OutputState } +type AccessPolicyOutput struct{ *pulumi.OutputState } -func (ActiveDirectoryPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ActiveDirectoryProperties)(nil)).Elem() +func (AccessPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPolicy)(nil)).Elem() } -func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput { +func (o AccessPolicyOutput) ToAccessPolicyOutput() AccessPolicyOutput { return o } -func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesOutput { +func (o AccessPolicyOutput) ToAccessPolicyOutputWithContext(ctx context.Context) AccessPolicyOutput { return o } -func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { - return o.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) +func (o AccessPolicyOutput) ToAccessPolicyPtrOutput() AccessPolicyPtrOutput { + return o.ToAccessPolicyPtrOutputWithContext(context.Background()) } -func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ActiveDirectoryProperties) *ActiveDirectoryProperties { +func (o AccessPolicyOutput) ToAccessPolicyPtrOutputWithContext(ctx context.Context) AccessPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessPolicy) *AccessPolicy { return &v - }).(ActiveDirectoryPropertiesPtrOutput) -} - -// Specifies the security identifier (SID) for Azure Storage. -func (o ActiveDirectoryPropertiesOutput) AzureStorageSid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.AzureStorageSid }).(pulumi.StringOutput) -} - -// Specifies the domain GUID. -func (o ActiveDirectoryPropertiesOutput) DomainGuid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.DomainGuid }).(pulumi.StringOutput) -} - -// Specifies the primary domain that the AD DNS server is authoritative for. -func (o ActiveDirectoryPropertiesOutput) DomainName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.DomainName }).(pulumi.StringOutput) + }).(AccessPolicyPtrOutput) } -// Specifies the security identifier (SID). -func (o ActiveDirectoryPropertiesOutput) DomainSid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.DomainSid }).(pulumi.StringOutput) +// Expiry time of the access policy +func (o AccessPolicyOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicy) *string { return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Specifies the Active Directory forest to get. -func (o ActiveDirectoryPropertiesOutput) ForestName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.ForestName }).(pulumi.StringOutput) +// List of abbreviated permissions. +func (o AccessPolicyOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicy) *string { return v.Permission }).(pulumi.StringPtrOutput) } -// Specifies the NetBIOS domain name. -func (o ActiveDirectoryPropertiesOutput) NetBiosDomainName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.NetBiosDomainName }).(pulumi.StringOutput) +// Start time of the access policy +func (o AccessPolicyOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -type ActiveDirectoryPropertiesPtrOutput struct{ *pulumi.OutputState } +type AccessPolicyPtrOutput struct{ *pulumi.OutputState } -func (ActiveDirectoryPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ActiveDirectoryProperties)(nil)).Elem() +func (AccessPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPolicy)(nil)).Elem() } -func (o ActiveDirectoryPropertiesPtrOutput) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { +func (o AccessPolicyPtrOutput) ToAccessPolicyPtrOutput() AccessPolicyPtrOutput { return o } -func (o ActiveDirectoryPropertiesPtrOutput) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { +func (o AccessPolicyPtrOutput) ToAccessPolicyPtrOutputWithContext(ctx context.Context) AccessPolicyPtrOutput { return o } -func (o ActiveDirectoryPropertiesPtrOutput) Elem() ActiveDirectoryPropertiesOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) ActiveDirectoryProperties { +func (o AccessPolicyPtrOutput) Elem() AccessPolicyOutput { + return o.ApplyT(func(v *AccessPolicy) AccessPolicy { if v != nil { return *v } - var ret ActiveDirectoryProperties + var ret AccessPolicy return ret - }).(ActiveDirectoryPropertiesOutput) -} - -// Specifies the security identifier (SID) for Azure Storage. -func (o ActiveDirectoryPropertiesPtrOutput) AzureStorageSid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { - if v == nil { - return nil - } - return &v.AzureStorageSid - }).(pulumi.StringPtrOutput) -} - -// Specifies the domain GUID. -func (o ActiveDirectoryPropertiesPtrOutput) DomainGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { - if v == nil { - return nil - } - return &v.DomainGuid - }).(pulumi.StringPtrOutput) -} - -// Specifies the primary domain that the AD DNS server is authoritative for. -func (o ActiveDirectoryPropertiesPtrOutput) DomainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { - if v == nil { - return nil - } - return &v.DomainName - }).(pulumi.StringPtrOutput) + }).(AccessPolicyOutput) } -// Specifies the security identifier (SID). -func (o ActiveDirectoryPropertiesPtrOutput) DomainSid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { +// Expiry time of the access policy +func (o AccessPolicyPtrOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicy) *string { if v == nil { return nil } - return &v.DomainSid + return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Specifies the Active Directory forest to get. -func (o ActiveDirectoryPropertiesPtrOutput) ForestName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { +// List of abbreviated permissions. +func (o AccessPolicyPtrOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicy) *string { if v == nil { return nil } - return &v.ForestName + return v.Permission }).(pulumi.StringPtrOutput) } -// Specifies the NetBIOS domain name. -func (o ActiveDirectoryPropertiesPtrOutput) NetBiosDomainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryProperties) *string { +// Start time of the access policy +func (o AccessPolicyPtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicy) *string { if v == nil { return nil } - return &v.NetBiosDomainName + return v.StartTime }).(pulumi.StringPtrOutput) } -// Settings properties for Active Directory (AD). -type ActiveDirectoryPropertiesResponse struct { - // Specifies the security identifier (SID) for Azure Storage. - AzureStorageSid string `pulumi:"azureStorageSid"` - // Specifies the domain GUID. - DomainGuid string `pulumi:"domainGuid"` - // Specifies the primary domain that the AD DNS server is authoritative for. - DomainName string `pulumi:"domainName"` - // Specifies the security identifier (SID). - DomainSid string `pulumi:"domainSid"` - // Specifies the Active Directory forest to get. - ForestName string `pulumi:"forestName"` - // Specifies the NetBIOS domain name. - NetBiosDomainName string `pulumi:"netBiosDomainName"` +type AccessPolicyResponse struct { + // Expiry time of the access policy + ExpiryTime *string `pulumi:"expiryTime"` + // List of abbreviated permissions. + Permission *string `pulumi:"permission"` + // Start time of the access policy + StartTime *string `pulumi:"startTime"` } -// Settings properties for Active Directory (AD). -type ActiveDirectoryPropertiesResponseOutput struct{ *pulumi.OutputState } +type AccessPolicyResponseOutput struct{ *pulumi.OutputState } -func (ActiveDirectoryPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ActiveDirectoryPropertiesResponse)(nil)).Elem() +func (AccessPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPolicyResponse)(nil)).Elem() } -func (o ActiveDirectoryPropertiesResponseOutput) ToActiveDirectoryPropertiesResponseOutput() ActiveDirectoryPropertiesResponseOutput { +func (o AccessPolicyResponseOutput) ToAccessPolicyResponseOutput() AccessPolicyResponseOutput { return o } -func (o ActiveDirectoryPropertiesResponseOutput) ToActiveDirectoryPropertiesResponseOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesResponseOutput { +func (o AccessPolicyResponseOutput) ToAccessPolicyResponseOutputWithContext(ctx context.Context) AccessPolicyResponseOutput { return o } -// Specifies the security identifier (SID) for Azure Storage. -func (o ActiveDirectoryPropertiesResponseOutput) AzureStorageSid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.AzureStorageSid }).(pulumi.StringOutput) -} - -// Specifies the domain GUID. -func (o ActiveDirectoryPropertiesResponseOutput) DomainGuid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.DomainGuid }).(pulumi.StringOutput) -} - -// Specifies the primary domain that the AD DNS server is authoritative for. -func (o ActiveDirectoryPropertiesResponseOutput) DomainName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.DomainName }).(pulumi.StringOutput) -} - -// Specifies the security identifier (SID). -func (o ActiveDirectoryPropertiesResponseOutput) DomainSid() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.DomainSid }).(pulumi.StringOutput) +// Expiry time of the access policy +func (o AccessPolicyResponseOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicyResponse) *string { return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Specifies the Active Directory forest to get. -func (o ActiveDirectoryPropertiesResponseOutput) ForestName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.ForestName }).(pulumi.StringOutput) +// List of abbreviated permissions. +func (o AccessPolicyResponseOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicyResponse) *string { return v.Permission }).(pulumi.StringPtrOutput) } -// Specifies the NetBIOS domain name. -func (o ActiveDirectoryPropertiesResponseOutput) NetBiosDomainName() pulumi.StringOutput { - return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.NetBiosDomainName }).(pulumi.StringOutput) +// Start time of the access policy +func (o AccessPolicyResponseOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccessPolicyResponse) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -type ActiveDirectoryPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +type AccessPolicyResponsePtrOutput struct{ *pulumi.OutputState } -func (ActiveDirectoryPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ActiveDirectoryPropertiesResponse)(nil)).Elem() +func (AccessPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPolicyResponse)(nil)).Elem() } -func (o ActiveDirectoryPropertiesResponsePtrOutput) ToActiveDirectoryPropertiesResponsePtrOutput() ActiveDirectoryPropertiesResponsePtrOutput { +func (o AccessPolicyResponsePtrOutput) ToAccessPolicyResponsePtrOutput() AccessPolicyResponsePtrOutput { return o } -func (o ActiveDirectoryPropertiesResponsePtrOutput) ToActiveDirectoryPropertiesResponsePtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesResponsePtrOutput { +func (o AccessPolicyResponsePtrOutput) ToAccessPolicyResponsePtrOutputWithContext(ctx context.Context) AccessPolicyResponsePtrOutput { return o } -func (o ActiveDirectoryPropertiesResponsePtrOutput) Elem() ActiveDirectoryPropertiesResponseOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) ActiveDirectoryPropertiesResponse { +func (o AccessPolicyResponsePtrOutput) Elem() AccessPolicyResponseOutput { + return o.ApplyT(func(v *AccessPolicyResponse) AccessPolicyResponse { if v != nil { return *v } - var ret ActiveDirectoryPropertiesResponse + var ret AccessPolicyResponse return ret - }).(ActiveDirectoryPropertiesResponseOutput) -} - -// Specifies the security identifier (SID) for Azure Storage. -func (o ActiveDirectoryPropertiesResponsePtrOutput) AzureStorageSid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { - if v == nil { - return nil - } - return &v.AzureStorageSid - }).(pulumi.StringPtrOutput) -} - -// Specifies the domain GUID. -func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainGuid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { - if v == nil { - return nil - } - return &v.DomainGuid - }).(pulumi.StringPtrOutput) -} - -// Specifies the primary domain that the AD DNS server is authoritative for. -func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { - if v == nil { - return nil - } - return &v.DomainName - }).(pulumi.StringPtrOutput) + }).(AccessPolicyResponseOutput) } -// Specifies the security identifier (SID). -func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainSid() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { +// Expiry time of the access policy +func (o AccessPolicyResponsePtrOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicyResponse) *string { if v == nil { return nil } - return &v.DomainSid + return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Specifies the Active Directory forest to get. -func (o ActiveDirectoryPropertiesResponsePtrOutput) ForestName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { +// List of abbreviated permissions. +func (o AccessPolicyResponsePtrOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicyResponse) *string { if v == nil { return nil } - return &v.ForestName + return v.Permission }).(pulumi.StringPtrOutput) } -// Specifies the NetBIOS domain name. -func (o ActiveDirectoryPropertiesResponsePtrOutput) NetBiosDomainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { +// Start time of the access policy +func (o AccessPolicyResponsePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPolicyResponse) *string { if v == nil { return nil } - return &v.NetBiosDomainName + return v.StartTime }).(pulumi.StringPtrOutput) } -// Settings for Azure Files identity based authentication. -type AzureFilesIdentityBasedAuthentication struct { - // Required if choose AD. - ActiveDirectoryProperties *ActiveDirectoryProperties `pulumi:"activeDirectoryProperties"` - // Indicates the directory service used. - DirectoryServiceOptions string `pulumi:"directoryServiceOptions"` +// This defines account-level immutability policy properties. +type AccountImmutabilityPolicyProperties struct { + // This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // The immutability period for the blobs in the container since the policy creation, in days. + ImmutabilityPeriodSinceCreationInDays *int `pulumi:"immutabilityPeriodSinceCreationInDays"` + // The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. + State *string `pulumi:"state"` } -// AzureFilesIdentityBasedAuthenticationInput is an input type that accepts AzureFilesIdentityBasedAuthenticationArgs and AzureFilesIdentityBasedAuthenticationOutput values. -// You can construct a concrete instance of `AzureFilesIdentityBasedAuthenticationInput` via: +// AccountImmutabilityPolicyPropertiesInput is an input type that accepts AccountImmutabilityPolicyPropertiesArgs and AccountImmutabilityPolicyPropertiesOutput values. +// You can construct a concrete instance of `AccountImmutabilityPolicyPropertiesInput` via: // -// AzureFilesIdentityBasedAuthenticationArgs{...} -type AzureFilesIdentityBasedAuthenticationInput interface { +// AccountImmutabilityPolicyPropertiesArgs{...} +type AccountImmutabilityPolicyPropertiesInput interface { pulumi.Input - ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput - ToAzureFilesIdentityBasedAuthenticationOutputWithContext(context.Context) AzureFilesIdentityBasedAuthenticationOutput + ToAccountImmutabilityPolicyPropertiesOutput() AccountImmutabilityPolicyPropertiesOutput + ToAccountImmutabilityPolicyPropertiesOutputWithContext(context.Context) AccountImmutabilityPolicyPropertiesOutput } -// Settings for Azure Files identity based authentication. -type AzureFilesIdentityBasedAuthenticationArgs struct { - // Required if choose AD. - ActiveDirectoryProperties ActiveDirectoryPropertiesPtrInput `pulumi:"activeDirectoryProperties"` - // Indicates the directory service used. - DirectoryServiceOptions pulumi.StringInput `pulumi:"directoryServiceOptions"` +// This defines account-level immutability policy properties. +type AccountImmutabilityPolicyPropertiesArgs struct { + // This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + AllowProtectedAppendWrites pulumi.BoolPtrInput `pulumi:"allowProtectedAppendWrites"` + // The immutability period for the blobs in the container since the policy creation, in days. + ImmutabilityPeriodSinceCreationInDays pulumi.IntPtrInput `pulumi:"immutabilityPeriodSinceCreationInDays"` + // The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. + State pulumi.StringPtrInput `pulumi:"state"` } -func (AzureFilesIdentityBasedAuthenticationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFilesIdentityBasedAuthentication)(nil)).Elem() +func (AccountImmutabilityPolicyPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccountImmutabilityPolicyProperties)(nil)).Elem() } -func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput { - return i.ToAzureFilesIdentityBasedAuthenticationOutputWithContext(context.Background()) +func (i AccountImmutabilityPolicyPropertiesArgs) ToAccountImmutabilityPolicyPropertiesOutput() AccountImmutabilityPolicyPropertiesOutput { + return i.ToAccountImmutabilityPolicyPropertiesOutputWithContext(context.Background()) } -func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationOutput) +func (i AccountImmutabilityPolicyPropertiesArgs) ToAccountImmutabilityPolicyPropertiesOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountImmutabilityPolicyPropertiesOutput) } -func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { - return i.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) +func (i AccountImmutabilityPolicyPropertiesArgs) ToAccountImmutabilityPolicyPropertiesPtrOutput() AccountImmutabilityPolicyPropertiesPtrOutput { + return i.ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(context.Background()) } -func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationOutput).ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx) +func (i AccountImmutabilityPolicyPropertiesArgs) ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountImmutabilityPolicyPropertiesOutput).ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(ctx) } -// AzureFilesIdentityBasedAuthenticationPtrInput is an input type that accepts AzureFilesIdentityBasedAuthenticationArgs, AzureFilesIdentityBasedAuthenticationPtr and AzureFilesIdentityBasedAuthenticationPtrOutput values. -// You can construct a concrete instance of `AzureFilesIdentityBasedAuthenticationPtrInput` via: +// AccountImmutabilityPolicyPropertiesPtrInput is an input type that accepts AccountImmutabilityPolicyPropertiesArgs, AccountImmutabilityPolicyPropertiesPtr and AccountImmutabilityPolicyPropertiesPtrOutput values. +// You can construct a concrete instance of `AccountImmutabilityPolicyPropertiesPtrInput` via: // -// AzureFilesIdentityBasedAuthenticationArgs{...} +// AccountImmutabilityPolicyPropertiesArgs{...} // // or: // // nil -type AzureFilesIdentityBasedAuthenticationPtrInput interface { +type AccountImmutabilityPolicyPropertiesPtrInput interface { pulumi.Input - ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput - ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput + ToAccountImmutabilityPolicyPropertiesPtrOutput() AccountImmutabilityPolicyPropertiesPtrOutput + ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(context.Context) AccountImmutabilityPolicyPropertiesPtrOutput } -type azureFilesIdentityBasedAuthenticationPtrType AzureFilesIdentityBasedAuthenticationArgs +type accountImmutabilityPolicyPropertiesPtrType AccountImmutabilityPolicyPropertiesArgs -func AzureFilesIdentityBasedAuthenticationPtr(v *AzureFilesIdentityBasedAuthenticationArgs) AzureFilesIdentityBasedAuthenticationPtrInput { - return (*azureFilesIdentityBasedAuthenticationPtrType)(v) +func AccountImmutabilityPolicyPropertiesPtr(v *AccountImmutabilityPolicyPropertiesArgs) AccountImmutabilityPolicyPropertiesPtrInput { + return (*accountImmutabilityPolicyPropertiesPtrType)(v) } -func (*azureFilesIdentityBasedAuthenticationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**AzureFilesIdentityBasedAuthentication)(nil)).Elem() +func (*accountImmutabilityPolicyPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccountImmutabilityPolicyProperties)(nil)).Elem() } -func (i *azureFilesIdentityBasedAuthenticationPtrType) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { - return i.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) +func (i *accountImmutabilityPolicyPropertiesPtrType) ToAccountImmutabilityPolicyPropertiesPtrOutput() AccountImmutabilityPolicyPropertiesPtrOutput { + return i.ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(context.Background()) } -func (i *azureFilesIdentityBasedAuthenticationPtrType) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationPtrOutput) +func (i *accountImmutabilityPolicyPropertiesPtrType) ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountImmutabilityPolicyPropertiesPtrOutput) } -// Settings for Azure Files identity based authentication. -type AzureFilesIdentityBasedAuthenticationOutput struct{ *pulumi.OutputState } +// This defines account-level immutability policy properties. +type AccountImmutabilityPolicyPropertiesOutput struct{ *pulumi.OutputState } -func (AzureFilesIdentityBasedAuthenticationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFilesIdentityBasedAuthentication)(nil)).Elem() +func (AccountImmutabilityPolicyPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountImmutabilityPolicyProperties)(nil)).Elem() } -func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput { +func (o AccountImmutabilityPolicyPropertiesOutput) ToAccountImmutabilityPolicyPropertiesOutput() AccountImmutabilityPolicyPropertiesOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationOutput { +func (o AccountImmutabilityPolicyPropertiesOutput) ToAccountImmutabilityPolicyPropertiesOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { - return o.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) +func (o AccountImmutabilityPolicyPropertiesOutput) ToAccountImmutabilityPolicyPropertiesPtrOutput() AccountImmutabilityPolicyPropertiesPtrOutput { + return o.ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(context.Background()) } -func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v AzureFilesIdentityBasedAuthentication) *AzureFilesIdentityBasedAuthentication { +func (o AccountImmutabilityPolicyPropertiesOutput) ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountImmutabilityPolicyProperties) *AccountImmutabilityPolicyProperties { return &v - }).(AzureFilesIdentityBasedAuthenticationPtrOutput) + }).(AccountImmutabilityPolicyPropertiesPtrOutput) } -// Required if choose AD. -func (o AzureFilesIdentityBasedAuthenticationOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesPtrOutput { - return o.ApplyT(func(v AzureFilesIdentityBasedAuthentication) *ActiveDirectoryProperties { - return v.ActiveDirectoryProperties - }).(ActiveDirectoryPropertiesPtrOutput) +// This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o AccountImmutabilityPolicyPropertiesOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyProperties) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) } -// Indicates the directory service used. -func (o AzureFilesIdentityBasedAuthenticationOutput) DirectoryServiceOptions() pulumi.StringOutput { - return o.ApplyT(func(v AzureFilesIdentityBasedAuthentication) string { return v.DirectoryServiceOptions }).(pulumi.StringOutput) +// The immutability period for the blobs in the container since the policy creation, in days. +func (o AccountImmutabilityPolicyPropertiesOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyProperties) *int { return v.ImmutabilityPeriodSinceCreationInDays }).(pulumi.IntPtrOutput) } -type AzureFilesIdentityBasedAuthenticationPtrOutput struct{ *pulumi.OutputState } +// The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. +func (o AccountImmutabilityPolicyPropertiesOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyProperties) *string { return v.State }).(pulumi.StringPtrOutput) +} -func (AzureFilesIdentityBasedAuthenticationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AzureFilesIdentityBasedAuthentication)(nil)).Elem() +type AccountImmutabilityPolicyPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (AccountImmutabilityPolicyPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountImmutabilityPolicyProperties)(nil)).Elem() } -func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { +func (o AccountImmutabilityPolicyPropertiesPtrOutput) ToAccountImmutabilityPolicyPropertiesPtrOutput() AccountImmutabilityPolicyPropertiesPtrOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { +func (o AccountImmutabilityPolicyPropertiesPtrOutput) ToAccountImmutabilityPolicyPropertiesPtrOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesPtrOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationPtrOutput) Elem() AzureFilesIdentityBasedAuthenticationOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) AzureFilesIdentityBasedAuthentication { +func (o AccountImmutabilityPolicyPropertiesPtrOutput) Elem() AccountImmutabilityPolicyPropertiesOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyProperties) AccountImmutabilityPolicyProperties { if v != nil { return *v } - var ret AzureFilesIdentityBasedAuthentication + var ret AccountImmutabilityPolicyProperties return ret - }).(AzureFilesIdentityBasedAuthenticationOutput) + }).(AccountImmutabilityPolicyPropertiesOutput) } -// Required if choose AD. -func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesPtrOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) *ActiveDirectoryProperties { +// This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o AccountImmutabilityPolicyPropertiesPtrOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyProperties) *bool { if v == nil { return nil } - return v.ActiveDirectoryProperties - }).(ActiveDirectoryPropertiesPtrOutput) + return v.AllowProtectedAppendWrites + }).(pulumi.BoolPtrOutput) } -// Indicates the directory service used. -func (o AzureFilesIdentityBasedAuthenticationPtrOutput) DirectoryServiceOptions() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) *string { +// The immutability period for the blobs in the container since the policy creation, in days. +func (o AccountImmutabilityPolicyPropertiesPtrOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyProperties) *int { if v == nil { return nil } - return &v.DirectoryServiceOptions + return v.ImmutabilityPeriodSinceCreationInDays + }).(pulumi.IntPtrOutput) +} + +// The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. +func (o AccountImmutabilityPolicyPropertiesPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyProperties) *string { + if v == nil { + return nil + } + return v.State }).(pulumi.StringPtrOutput) } -// Settings for Azure Files identity based authentication. -type AzureFilesIdentityBasedAuthenticationResponse struct { - // Required if choose AD. - ActiveDirectoryProperties *ActiveDirectoryPropertiesResponse `pulumi:"activeDirectoryProperties"` - // Indicates the directory service used. - DirectoryServiceOptions string `pulumi:"directoryServiceOptions"` +// This defines account-level immutability policy properties. +type AccountImmutabilityPolicyPropertiesResponse struct { + // This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // The immutability period for the blobs in the container since the policy creation, in days. + ImmutabilityPeriodSinceCreationInDays *int `pulumi:"immutabilityPeriodSinceCreationInDays"` + // The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. + State *string `pulumi:"state"` } -// Settings for Azure Files identity based authentication. -type AzureFilesIdentityBasedAuthenticationResponseOutput struct{ *pulumi.OutputState } +// This defines account-level immutability policy properties. +type AccountImmutabilityPolicyPropertiesResponseOutput struct{ *pulumi.OutputState } -func (AzureFilesIdentityBasedAuthenticationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AzureFilesIdentityBasedAuthenticationResponse)(nil)).Elem() +func (AccountImmutabilityPolicyPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountImmutabilityPolicyPropertiesResponse)(nil)).Elem() } -func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ToAzureFilesIdentityBasedAuthenticationResponseOutput() AzureFilesIdentityBasedAuthenticationResponseOutput { +func (o AccountImmutabilityPolicyPropertiesResponseOutput) ToAccountImmutabilityPolicyPropertiesResponseOutput() AccountImmutabilityPolicyPropertiesResponseOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ToAzureFilesIdentityBasedAuthenticationResponseOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationResponseOutput { +func (o AccountImmutabilityPolicyPropertiesResponseOutput) ToAccountImmutabilityPolicyPropertiesResponseOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesResponseOutput { return o } -// Required if choose AD. -func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesResponsePtrOutput { - return o.ApplyT(func(v AzureFilesIdentityBasedAuthenticationResponse) *ActiveDirectoryPropertiesResponse { - return v.ActiveDirectoryProperties - }).(ActiveDirectoryPropertiesResponsePtrOutput) +// This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o AccountImmutabilityPolicyPropertiesResponseOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyPropertiesResponse) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) } -// Indicates the directory service used. -func (o AzureFilesIdentityBasedAuthenticationResponseOutput) DirectoryServiceOptions() pulumi.StringOutput { - return o.ApplyT(func(v AzureFilesIdentityBasedAuthenticationResponse) string { return v.DirectoryServiceOptions }).(pulumi.StringOutput) +// The immutability period for the blobs in the container since the policy creation, in days. +func (o AccountImmutabilityPolicyPropertiesResponseOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyPropertiesResponse) *int { + return v.ImmutabilityPeriodSinceCreationInDays + }).(pulumi.IntPtrOutput) } -type AzureFilesIdentityBasedAuthenticationResponsePtrOutput struct{ *pulumi.OutputState } +// The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. +func (o AccountImmutabilityPolicyPropertiesResponseOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountImmutabilityPolicyPropertiesResponse) *string { return v.State }).(pulumi.StringPtrOutput) +} -func (AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AzureFilesIdentityBasedAuthenticationResponse)(nil)).Elem() +type AccountImmutabilityPolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (AccountImmutabilityPolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountImmutabilityPolicyPropertiesResponse)(nil)).Elem() } -func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ToAzureFilesIdentityBasedAuthenticationResponsePtrOutput() AzureFilesIdentityBasedAuthenticationResponsePtrOutput { +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) ToAccountImmutabilityPolicyPropertiesResponsePtrOutput() AccountImmutabilityPolicyPropertiesResponsePtrOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ToAzureFilesIdentityBasedAuthenticationResponsePtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationResponsePtrOutput { +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) ToAccountImmutabilityPolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) AccountImmutabilityPolicyPropertiesResponsePtrOutput { return o } -func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) Elem() AzureFilesIdentityBasedAuthenticationResponseOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) AzureFilesIdentityBasedAuthenticationResponse { +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) Elem() AccountImmutabilityPolicyPropertiesResponseOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyPropertiesResponse) AccountImmutabilityPolicyPropertiesResponse { if v != nil { return *v } - var ret AzureFilesIdentityBasedAuthenticationResponse + var ret AccountImmutabilityPolicyPropertiesResponse return ret - }).(AzureFilesIdentityBasedAuthenticationResponseOutput) + }).(AccountImmutabilityPolicyPropertiesResponseOutput) } -// Required if choose AD. -func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesResponsePtrOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) *ActiveDirectoryPropertiesResponse { +// This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyPropertiesResponse) *bool { if v == nil { return nil } - return v.ActiveDirectoryProperties - }).(ActiveDirectoryPropertiesResponsePtrOutput) + return v.AllowProtectedAppendWrites + }).(pulumi.BoolPtrOutput) } -// Indicates the directory service used. -func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) DirectoryServiceOptions() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) *string { +// The immutability period for the blobs in the container since the policy creation, in days. +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyPropertiesResponse) *int { if v == nil { return nil } - return &v.DirectoryServiceOptions + return v.ImmutabilityPeriodSinceCreationInDays + }).(pulumi.IntPtrOutput) +} + +// The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. +func (o AccountImmutabilityPolicyPropertiesResponsePtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountImmutabilityPolicyPropertiesResponse) *string { + if v == nil { + return nil + } + return v.State }).(pulumi.StringPtrOutput) } -// An object that defines the blob inventory rule. Each definition consists of a set of filters. -type BlobInventoryPolicyDefinition struct { - // An object that defines the filter set. - Filters BlobInventoryPolicyFilter `pulumi:"filters"` +// Settings properties for Active Directory (AD). +type ActiveDirectoryProperties struct { + // Specifies the Active Directory account type for Azure Storage. + AccountType *string `pulumi:"accountType"` + // Specifies the security identifier (SID) for Azure Storage. + AzureStorageSid *string `pulumi:"azureStorageSid"` + // Specifies the domain GUID. + DomainGuid string `pulumi:"domainGuid"` + // Specifies the primary domain that the AD DNS server is authoritative for. + DomainName string `pulumi:"domainName"` + // Specifies the security identifier (SID). + DomainSid *string `pulumi:"domainSid"` + // Specifies the Active Directory forest to get. + ForestName *string `pulumi:"forestName"` + // Specifies the NetBIOS domain name. + NetBiosDomainName *string `pulumi:"netBiosDomainName"` + // Specifies the Active Directory SAMAccountName for Azure Storage. + SamAccountName *string `pulumi:"samAccountName"` } -// BlobInventoryPolicyDefinitionInput is an input type that accepts BlobInventoryPolicyDefinitionArgs and BlobInventoryPolicyDefinitionOutput values. -// You can construct a concrete instance of `BlobInventoryPolicyDefinitionInput` via: +// ActiveDirectoryPropertiesInput is an input type that accepts ActiveDirectoryPropertiesArgs and ActiveDirectoryPropertiesOutput values. +// You can construct a concrete instance of `ActiveDirectoryPropertiesInput` via: // -// BlobInventoryPolicyDefinitionArgs{...} -type BlobInventoryPolicyDefinitionInput interface { +// ActiveDirectoryPropertiesArgs{...} +type ActiveDirectoryPropertiesInput interface { pulumi.Input - ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput - ToBlobInventoryPolicyDefinitionOutputWithContext(context.Context) BlobInventoryPolicyDefinitionOutput + ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput + ToActiveDirectoryPropertiesOutputWithContext(context.Context) ActiveDirectoryPropertiesOutput } -// An object that defines the blob inventory rule. Each definition consists of a set of filters. -type BlobInventoryPolicyDefinitionArgs struct { - // An object that defines the filter set. - Filters BlobInventoryPolicyFilterInput `pulumi:"filters"` +// Settings properties for Active Directory (AD). +type ActiveDirectoryPropertiesArgs struct { + // Specifies the Active Directory account type for Azure Storage. + AccountType pulumi.StringPtrInput `pulumi:"accountType"` + // Specifies the security identifier (SID) for Azure Storage. + AzureStorageSid pulumi.StringPtrInput `pulumi:"azureStorageSid"` + // Specifies the domain GUID. + DomainGuid pulumi.StringInput `pulumi:"domainGuid"` + // Specifies the primary domain that the AD DNS server is authoritative for. + DomainName pulumi.StringInput `pulumi:"domainName"` + // Specifies the security identifier (SID). + DomainSid pulumi.StringPtrInput `pulumi:"domainSid"` + // Specifies the Active Directory forest to get. + ForestName pulumi.StringPtrInput `pulumi:"forestName"` + // Specifies the NetBIOS domain name. + NetBiosDomainName pulumi.StringPtrInput `pulumi:"netBiosDomainName"` + // Specifies the Active Directory SAMAccountName for Azure Storage. + SamAccountName pulumi.StringPtrInput `pulumi:"samAccountName"` } -func (BlobInventoryPolicyDefinitionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyDefinition)(nil)).Elem() +func (ActiveDirectoryPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ActiveDirectoryProperties)(nil)).Elem() } -func (i BlobInventoryPolicyDefinitionArgs) ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput { - return i.ToBlobInventoryPolicyDefinitionOutputWithContext(context.Background()) +func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput { + return i.ToActiveDirectoryPropertiesOutputWithContext(context.Background()) } -func (i BlobInventoryPolicyDefinitionArgs) ToBlobInventoryPolicyDefinitionOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionOutput { - return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyDefinitionOutput) +func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesOutput) } -// An object that defines the blob inventory rule. Each definition consists of a set of filters. -type BlobInventoryPolicyDefinitionOutput struct{ *pulumi.OutputState } +func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { + return i.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) +} -func (BlobInventoryPolicyDefinitionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyDefinition)(nil)).Elem() +func (i ActiveDirectoryPropertiesArgs) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesOutput).ToActiveDirectoryPropertiesPtrOutputWithContext(ctx) } -func (o BlobInventoryPolicyDefinitionOutput) ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput { - return o +// ActiveDirectoryPropertiesPtrInput is an input type that accepts ActiveDirectoryPropertiesArgs, ActiveDirectoryPropertiesPtr and ActiveDirectoryPropertiesPtrOutput values. +// You can construct a concrete instance of `ActiveDirectoryPropertiesPtrInput` via: +// +// ActiveDirectoryPropertiesArgs{...} +// +// or: +// +// nil +type ActiveDirectoryPropertiesPtrInput interface { + pulumi.Input + + ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput + ToActiveDirectoryPropertiesPtrOutputWithContext(context.Context) ActiveDirectoryPropertiesPtrOutput } -func (o BlobInventoryPolicyDefinitionOutput) ToBlobInventoryPolicyDefinitionOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionOutput { - return o +type activeDirectoryPropertiesPtrType ActiveDirectoryPropertiesArgs + +func ActiveDirectoryPropertiesPtr(v *ActiveDirectoryPropertiesArgs) ActiveDirectoryPropertiesPtrInput { + return (*activeDirectoryPropertiesPtrType)(v) } -// An object that defines the filter set. -func (o BlobInventoryPolicyDefinitionOutput) Filters() BlobInventoryPolicyFilterOutput { - return o.ApplyT(func(v BlobInventoryPolicyDefinition) BlobInventoryPolicyFilter { return v.Filters }).(BlobInventoryPolicyFilterOutput) +func (*activeDirectoryPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ActiveDirectoryProperties)(nil)).Elem() } -// An object that defines the blob inventory rule. Each definition consists of a set of filters. -type BlobInventoryPolicyDefinitionResponse struct { - // An object that defines the filter set. - Filters BlobInventoryPolicyFilterResponse `pulumi:"filters"` +func (i *activeDirectoryPropertiesPtrType) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { + return i.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) } -// An object that defines the blob inventory rule. Each definition consists of a set of filters. -type BlobInventoryPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } +func (i *activeDirectoryPropertiesPtrType) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ActiveDirectoryPropertiesPtrOutput) +} -func (BlobInventoryPolicyDefinitionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyDefinitionResponse)(nil)).Elem() +// Settings properties for Active Directory (AD). +type ActiveDirectoryPropertiesOutput struct{ *pulumi.OutputState } + +func (ActiveDirectoryPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ActiveDirectoryProperties)(nil)).Elem() } -func (o BlobInventoryPolicyDefinitionResponseOutput) ToBlobInventoryPolicyDefinitionResponseOutput() BlobInventoryPolicyDefinitionResponseOutput { +func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesOutput() ActiveDirectoryPropertiesOutput { return o } -func (o BlobInventoryPolicyDefinitionResponseOutput) ToBlobInventoryPolicyDefinitionResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionResponseOutput { +func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesOutput { return o } -// An object that defines the filter set. -func (o BlobInventoryPolicyDefinitionResponseOutput) Filters() BlobInventoryPolicyFilterResponseOutput { - return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) BlobInventoryPolicyFilterResponse { return v.Filters }).(BlobInventoryPolicyFilterResponseOutput) +func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { + return o.ToActiveDirectoryPropertiesPtrOutputWithContext(context.Background()) } -// An object that defines the blob inventory rule filter conditions. -type BlobInventoryPolicyFilter struct { - // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - BlobTypes []string `pulumi:"blobTypes"` - // Includes blob versions in blob inventory when value set to true. - IncludeBlobVersions *bool `pulumi:"includeBlobVersions"` - // Includes blob snapshots in blob inventory when value set to true. - IncludeSnapshots *bool `pulumi:"includeSnapshots"` - // An array of strings for blob prefixes to be matched. - PrefixMatch []string `pulumi:"prefixMatch"` +func (o ActiveDirectoryPropertiesOutput) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ActiveDirectoryProperties) *ActiveDirectoryProperties { + return &v + }).(ActiveDirectoryPropertiesPtrOutput) } -// BlobInventoryPolicyFilterInput is an input type that accepts BlobInventoryPolicyFilterArgs and BlobInventoryPolicyFilterOutput values. -// You can construct a concrete instance of `BlobInventoryPolicyFilterInput` via: -// -// BlobInventoryPolicyFilterArgs{...} -type BlobInventoryPolicyFilterInput interface { - pulumi.Input - - ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput - ToBlobInventoryPolicyFilterOutputWithContext(context.Context) BlobInventoryPolicyFilterOutput +// Specifies the Active Directory account type for Azure Storage. +func (o ActiveDirectoryPropertiesOutput) AccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.AccountType }).(pulumi.StringPtrOutput) } -// An object that defines the blob inventory rule filter conditions. -type BlobInventoryPolicyFilterArgs struct { - // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - BlobTypes pulumi.StringArrayInput `pulumi:"blobTypes"` - // Includes blob versions in blob inventory when value set to true. - IncludeBlobVersions pulumi.BoolPtrInput `pulumi:"includeBlobVersions"` - // Includes blob snapshots in blob inventory when value set to true. - IncludeSnapshots pulumi.BoolPtrInput `pulumi:"includeSnapshots"` - // An array of strings for blob prefixes to be matched. - PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` +// Specifies the security identifier (SID) for Azure Storage. +func (o ActiveDirectoryPropertiesOutput) AzureStorageSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.AzureStorageSid }).(pulumi.StringPtrOutput) } -func (BlobInventoryPolicyFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyFilter)(nil)).Elem() +// Specifies the domain GUID. +func (o ActiveDirectoryPropertiesOutput) DomainGuid() pulumi.StringOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.DomainGuid }).(pulumi.StringOutput) } -func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput { - return i.ToBlobInventoryPolicyFilterOutputWithContext(context.Background()) +// Specifies the primary domain that the AD DNS server is authoritative for. +func (o ActiveDirectoryPropertiesOutput) DomainName() pulumi.StringOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) string { return v.DomainName }).(pulumi.StringOutput) } -func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyFilterOutput) +// Specifies the security identifier (SID). +func (o ActiveDirectoryPropertiesOutput) DomainSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.DomainSid }).(pulumi.StringPtrOutput) } -// An object that defines the blob inventory rule filter conditions. -type BlobInventoryPolicyFilterOutput struct{ *pulumi.OutputState } - -func (BlobInventoryPolicyFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyFilter)(nil)).Elem() +// Specifies the Active Directory forest to get. +func (o ActiveDirectoryPropertiesOutput) ForestName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.ForestName }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput { - return o +// Specifies the NetBIOS domain name. +func (o ActiveDirectoryPropertiesOutput) NetBiosDomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.NetBiosDomainName }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterOutput { - return o +// Specifies the Active Directory SAMAccountName for Azure Storage. +func (o ActiveDirectoryPropertiesOutput) SamAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryProperties) *string { return v.SamAccountName }).(pulumi.StringPtrOutput) } -// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. -func (o BlobInventoryPolicyFilterOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilter) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) -} +type ActiveDirectoryPropertiesPtrOutput struct{ *pulumi.OutputState } -// Includes blob versions in blob inventory when value set to true. -func (o BlobInventoryPolicyFilterOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilter) *bool { return v.IncludeBlobVersions }).(pulumi.BoolPtrOutput) +func (ActiveDirectoryPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ActiveDirectoryProperties)(nil)).Elem() } -// Includes blob snapshots in blob inventory when value set to true. -func (o BlobInventoryPolicyFilterOutput) IncludeSnapshots() pulumi.BoolPtrOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilter) *bool { return v.IncludeSnapshots }).(pulumi.BoolPtrOutput) +func (o ActiveDirectoryPropertiesPtrOutput) ToActiveDirectoryPropertiesPtrOutput() ActiveDirectoryPropertiesPtrOutput { + return o } -// An array of strings for blob prefixes to be matched. -func (o BlobInventoryPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +func (o ActiveDirectoryPropertiesPtrOutput) ToActiveDirectoryPropertiesPtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesPtrOutput { + return o } -// An object that defines the blob inventory rule filter conditions. -type BlobInventoryPolicyFilterResponse struct { - // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. - BlobTypes []string `pulumi:"blobTypes"` - // Includes blob versions in blob inventory when value set to true. - IncludeBlobVersions *bool `pulumi:"includeBlobVersions"` - // Includes blob snapshots in blob inventory when value set to true. - IncludeSnapshots *bool `pulumi:"includeSnapshots"` - // An array of strings for blob prefixes to be matched. - PrefixMatch []string `pulumi:"prefixMatch"` +func (o ActiveDirectoryPropertiesPtrOutput) Elem() ActiveDirectoryPropertiesOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) ActiveDirectoryProperties { + if v != nil { + return *v + } + var ret ActiveDirectoryProperties + return ret + }).(ActiveDirectoryPropertiesOutput) } -// An object that defines the blob inventory rule filter conditions. -type BlobInventoryPolicyFilterResponseOutput struct{ *pulumi.OutputState } +// Specifies the Active Directory account type for Azure Storage. +func (o ActiveDirectoryPropertiesPtrOutput) AccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.AccountType + }).(pulumi.StringPtrOutput) +} -func (BlobInventoryPolicyFilterResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyFilterResponse)(nil)).Elem() +// Specifies the security identifier (SID) for Azure Storage. +func (o ActiveDirectoryPropertiesPtrOutput) AzureStorageSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.AzureStorageSid + }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyFilterResponseOutput) ToBlobInventoryPolicyFilterResponseOutput() BlobInventoryPolicyFilterResponseOutput { - return o +// Specifies the domain GUID. +func (o ActiveDirectoryPropertiesPtrOutput) DomainGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return &v.DomainGuid + }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyFilterResponseOutput) ToBlobInventoryPolicyFilterResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterResponseOutput { - return o +// Specifies the primary domain that the AD DNS server is authoritative for. +func (o ActiveDirectoryPropertiesPtrOutput) DomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return &v.DomainName + }).(pulumi.StringPtrOutput) } -// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. -func (o BlobInventoryPolicyFilterResponseOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) +// Specifies the security identifier (SID). +func (o ActiveDirectoryPropertiesPtrOutput) DomainSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.DomainSid + }).(pulumi.StringPtrOutput) } -// Includes blob versions in blob inventory when value set to true. -func (o BlobInventoryPolicyFilterResponseOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) *bool { return v.IncludeBlobVersions }).(pulumi.BoolPtrOutput) +// Specifies the Active Directory forest to get. +func (o ActiveDirectoryPropertiesPtrOutput) ForestName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.ForestName + }).(pulumi.StringPtrOutput) } -// Includes blob snapshots in blob inventory when value set to true. -func (o BlobInventoryPolicyFilterResponseOutput) IncludeSnapshots() pulumi.BoolPtrOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) *bool { return v.IncludeSnapshots }).(pulumi.BoolPtrOutput) +// Specifies the NetBIOS domain name. +func (o ActiveDirectoryPropertiesPtrOutput) NetBiosDomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.NetBiosDomainName + }).(pulumi.StringPtrOutput) } -// An array of strings for blob prefixes to be matched. -func (o BlobInventoryPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +// Specifies the Active Directory SAMAccountName for Azure Storage. +func (o ActiveDirectoryPropertiesPtrOutput) SamAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryProperties) *string { + if v == nil { + return nil + } + return v.SamAccountName + }).(pulumi.StringPtrOutput) } -// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. -type BlobInventoryPolicyRule struct { - // An object that defines the blob inventory policy rule. - Definition BlobInventoryPolicyDefinition `pulumi:"definition"` - // Rule is enabled when set to true. - Enabled bool `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name string `pulumi:"name"` +// Settings properties for Active Directory (AD). +type ActiveDirectoryPropertiesResponse struct { + // Specifies the Active Directory account type for Azure Storage. + AccountType *string `pulumi:"accountType"` + // Specifies the security identifier (SID) for Azure Storage. + AzureStorageSid *string `pulumi:"azureStorageSid"` + // Specifies the domain GUID. + DomainGuid string `pulumi:"domainGuid"` + // Specifies the primary domain that the AD DNS server is authoritative for. + DomainName string `pulumi:"domainName"` + // Specifies the security identifier (SID). + DomainSid *string `pulumi:"domainSid"` + // Specifies the Active Directory forest to get. + ForestName *string `pulumi:"forestName"` + // Specifies the NetBIOS domain name. + NetBiosDomainName *string `pulumi:"netBiosDomainName"` + // Specifies the Active Directory SAMAccountName for Azure Storage. + SamAccountName *string `pulumi:"samAccountName"` } -// BlobInventoryPolicyRuleInput is an input type that accepts BlobInventoryPolicyRuleArgs and BlobInventoryPolicyRuleOutput values. -// You can construct a concrete instance of `BlobInventoryPolicyRuleInput` via: -// -// BlobInventoryPolicyRuleArgs{...} -type BlobInventoryPolicyRuleInput interface { - pulumi.Input +// Settings properties for Active Directory (AD). +type ActiveDirectoryPropertiesResponseOutput struct{ *pulumi.OutputState } - ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput - ToBlobInventoryPolicyRuleOutputWithContext(context.Context) BlobInventoryPolicyRuleOutput +func (ActiveDirectoryPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ActiveDirectoryPropertiesResponse)(nil)).Elem() } -// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. -type BlobInventoryPolicyRuleArgs struct { - // An object that defines the blob inventory policy rule. - Definition BlobInventoryPolicyDefinitionInput `pulumi:"definition"` - // Rule is enabled when set to true. - Enabled pulumi.BoolInput `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name pulumi.StringInput `pulumi:"name"` +func (o ActiveDirectoryPropertiesResponseOutput) ToActiveDirectoryPropertiesResponseOutput() ActiveDirectoryPropertiesResponseOutput { + return o } -func (BlobInventoryPolicyRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyRule)(nil)).Elem() +func (o ActiveDirectoryPropertiesResponseOutput) ToActiveDirectoryPropertiesResponseOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesResponseOutput { + return o } -func (i BlobInventoryPolicyRuleArgs) ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput { - return i.ToBlobInventoryPolicyRuleOutputWithContext(context.Background()) +// Specifies the Active Directory account type for Azure Storage. +func (o ActiveDirectoryPropertiesResponseOutput) AccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.AccountType }).(pulumi.StringPtrOutput) } -func (i BlobInventoryPolicyRuleArgs) ToBlobInventoryPolicyRuleOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyRuleOutput) +// Specifies the security identifier (SID) for Azure Storage. +func (o ActiveDirectoryPropertiesResponseOutput) AzureStorageSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.AzureStorageSid }).(pulumi.StringPtrOutput) } -// BlobInventoryPolicyRuleArrayInput is an input type that accepts BlobInventoryPolicyRuleArray and BlobInventoryPolicyRuleArrayOutput values. -// You can construct a concrete instance of `BlobInventoryPolicyRuleArrayInput` via: -// -// BlobInventoryPolicyRuleArray{ BlobInventoryPolicyRuleArgs{...} } -type BlobInventoryPolicyRuleArrayInput interface { - pulumi.Input +// Specifies the domain GUID. +func (o ActiveDirectoryPropertiesResponseOutput) DomainGuid() pulumi.StringOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.DomainGuid }).(pulumi.StringOutput) +} - ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput - ToBlobInventoryPolicyRuleArrayOutputWithContext(context.Context) BlobInventoryPolicyRuleArrayOutput +// Specifies the primary domain that the AD DNS server is authoritative for. +func (o ActiveDirectoryPropertiesResponseOutput) DomainName() pulumi.StringOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) string { return v.DomainName }).(pulumi.StringOutput) } -type BlobInventoryPolicyRuleArray []BlobInventoryPolicyRuleInput +// Specifies the security identifier (SID). +func (o ActiveDirectoryPropertiesResponseOutput) DomainSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.DomainSid }).(pulumi.StringPtrOutput) +} -func (BlobInventoryPolicyRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]BlobInventoryPolicyRule)(nil)).Elem() +// Specifies the Active Directory forest to get. +func (o ActiveDirectoryPropertiesResponseOutput) ForestName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.ForestName }).(pulumi.StringPtrOutput) } -func (i BlobInventoryPolicyRuleArray) ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput { - return i.ToBlobInventoryPolicyRuleArrayOutputWithContext(context.Background()) +// Specifies the NetBIOS domain name. +func (o ActiveDirectoryPropertiesResponseOutput) NetBiosDomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.NetBiosDomainName }).(pulumi.StringPtrOutput) } -func (i BlobInventoryPolicyRuleArray) ToBlobInventoryPolicyRuleArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyRuleArrayOutput) +// Specifies the Active Directory SAMAccountName for Azure Storage. +func (o ActiveDirectoryPropertiesResponseOutput) SamAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ActiveDirectoryPropertiesResponse) *string { return v.SamAccountName }).(pulumi.StringPtrOutput) } -// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. -type BlobInventoryPolicyRuleOutput struct{ *pulumi.OutputState } +type ActiveDirectoryPropertiesResponsePtrOutput struct{ *pulumi.OutputState } -func (BlobInventoryPolicyRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyRule)(nil)).Elem() +func (ActiveDirectoryPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ActiveDirectoryPropertiesResponse)(nil)).Elem() } -func (o BlobInventoryPolicyRuleOutput) ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput { +func (o ActiveDirectoryPropertiesResponsePtrOutput) ToActiveDirectoryPropertiesResponsePtrOutput() ActiveDirectoryPropertiesResponsePtrOutput { return o } -func (o BlobInventoryPolicyRuleOutput) ToBlobInventoryPolicyRuleOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleOutput { +func (o ActiveDirectoryPropertiesResponsePtrOutput) ToActiveDirectoryPropertiesResponsePtrOutputWithContext(ctx context.Context) ActiveDirectoryPropertiesResponsePtrOutput { return o } -// An object that defines the blob inventory policy rule. -func (o BlobInventoryPolicyRuleOutput) Definition() BlobInventoryPolicyDefinitionOutput { - return o.ApplyT(func(v BlobInventoryPolicyRule) BlobInventoryPolicyDefinition { return v.Definition }).(BlobInventoryPolicyDefinitionOutput) +func (o ActiveDirectoryPropertiesResponsePtrOutput) Elem() ActiveDirectoryPropertiesResponseOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) ActiveDirectoryPropertiesResponse { + if v != nil { + return *v + } + var ret ActiveDirectoryPropertiesResponse + return ret + }).(ActiveDirectoryPropertiesResponseOutput) } -// Rule is enabled when set to true. -func (o BlobInventoryPolicyRuleOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v BlobInventoryPolicyRule) bool { return v.Enabled }).(pulumi.BoolOutput) +// Specifies the Active Directory account type for Azure Storage. +func (o ActiveDirectoryPropertiesResponsePtrOutput) AccountType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.AccountType + }).(pulumi.StringPtrOutput) } -// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. -func (o BlobInventoryPolicyRuleOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicyRule) string { return v.Name }).(pulumi.StringOutput) +// Specifies the security identifier (SID) for Azure Storage. +func (o ActiveDirectoryPropertiesResponsePtrOutput) AzureStorageSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.AzureStorageSid + }).(pulumi.StringPtrOutput) } -type BlobInventoryPolicyRuleArrayOutput struct{ *pulumi.OutputState } +// Specifies the domain GUID. +func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainGuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.DomainGuid + }).(pulumi.StringPtrOutput) +} -func (BlobInventoryPolicyRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]BlobInventoryPolicyRule)(nil)).Elem() +// Specifies the primary domain that the AD DNS server is authoritative for. +func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.DomainName + }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyRuleArrayOutput) ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput { - return o +// Specifies the security identifier (SID). +func (o ActiveDirectoryPropertiesResponsePtrOutput) DomainSid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.DomainSid + }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyRuleArrayOutput) ToBlobInventoryPolicyRuleArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleArrayOutput { - return o +// Specifies the Active Directory forest to get. +func (o ActiveDirectoryPropertiesResponsePtrOutput) ForestName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.ForestName + }).(pulumi.StringPtrOutput) } -func (o BlobInventoryPolicyRuleArrayOutput) Index(i pulumi.IntInput) BlobInventoryPolicyRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobInventoryPolicyRule { - return vs[0].([]BlobInventoryPolicyRule)[vs[1].(int)] - }).(BlobInventoryPolicyRuleOutput) +// Specifies the NetBIOS domain name. +func (o ActiveDirectoryPropertiesResponsePtrOutput) NetBiosDomainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.NetBiosDomainName + }).(pulumi.StringPtrOutput) } -// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. -type BlobInventoryPolicyRuleResponse struct { - // An object that defines the blob inventory policy rule. - Definition BlobInventoryPolicyDefinitionResponse `pulumi:"definition"` - // Rule is enabled when set to true. - Enabled bool `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name string `pulumi:"name"` +// Specifies the Active Directory SAMAccountName for Azure Storage. +func (o ActiveDirectoryPropertiesResponsePtrOutput) SamAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ActiveDirectoryPropertiesResponse) *string { + if v == nil { + return nil + } + return v.SamAccountName + }).(pulumi.StringPtrOutput) } -// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. -type BlobInventoryPolicyRuleResponseOutput struct{ *pulumi.OutputState } - -func (BlobInventoryPolicyRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicyRuleResponse)(nil)).Elem() -} - -func (o BlobInventoryPolicyRuleResponseOutput) ToBlobInventoryPolicyRuleResponseOutput() BlobInventoryPolicyRuleResponseOutput { - return o -} - -func (o BlobInventoryPolicyRuleResponseOutput) ToBlobInventoryPolicyRuleResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleResponseOutput { - return o +// Settings for Azure Files identity based authentication. +type AzureFilesIdentityBasedAuthentication struct { + // Required if directoryServiceOptions are AD, optional if they are AADKERB. + ActiveDirectoryProperties *ActiveDirectoryProperties `pulumi:"activeDirectoryProperties"` + // Default share permission for users using Kerberos authentication if RBAC role is not assigned. + DefaultSharePermission *string `pulumi:"defaultSharePermission"` + // Indicates the directory service used. Note that this enum may be extended in the future. + DirectoryServiceOptions string `pulumi:"directoryServiceOptions"` } -// An object that defines the blob inventory policy rule. -func (o BlobInventoryPolicyRuleResponseOutput) Definition() BlobInventoryPolicyDefinitionResponseOutput { - return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) BlobInventoryPolicyDefinitionResponse { return v.Definition }).(BlobInventoryPolicyDefinitionResponseOutput) -} +// AzureFilesIdentityBasedAuthenticationInput is an input type that accepts AzureFilesIdentityBasedAuthenticationArgs and AzureFilesIdentityBasedAuthenticationOutput values. +// You can construct a concrete instance of `AzureFilesIdentityBasedAuthenticationInput` via: +// +// AzureFilesIdentityBasedAuthenticationArgs{...} +type AzureFilesIdentityBasedAuthenticationInput interface { + pulumi.Input -// Rule is enabled when set to true. -func (o BlobInventoryPolicyRuleResponseOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) bool { return v.Enabled }).(pulumi.BoolOutput) + ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput + ToAzureFilesIdentityBasedAuthenticationOutputWithContext(context.Context) AzureFilesIdentityBasedAuthenticationOutput } -// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. -func (o BlobInventoryPolicyRuleResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) string { return v.Name }).(pulumi.StringOutput) +// Settings for Azure Files identity based authentication. +type AzureFilesIdentityBasedAuthenticationArgs struct { + // Required if directoryServiceOptions are AD, optional if they are AADKERB. + ActiveDirectoryProperties ActiveDirectoryPropertiesPtrInput `pulumi:"activeDirectoryProperties"` + // Default share permission for users using Kerberos authentication if RBAC role is not assigned. + DefaultSharePermission pulumi.StringPtrInput `pulumi:"defaultSharePermission"` + // Indicates the directory service used. Note that this enum may be extended in the future. + DirectoryServiceOptions pulumi.StringInput `pulumi:"directoryServiceOptions"` } -type BlobInventoryPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } - -func (BlobInventoryPolicyRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]BlobInventoryPolicyRuleResponse)(nil)).Elem() +func (AzureFilesIdentityBasedAuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFilesIdentityBasedAuthentication)(nil)).Elem() } -func (o BlobInventoryPolicyRuleResponseArrayOutput) ToBlobInventoryPolicyRuleResponseArrayOutput() BlobInventoryPolicyRuleResponseArrayOutput { - return o +func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput { + return i.ToAzureFilesIdentityBasedAuthenticationOutputWithContext(context.Background()) } -func (o BlobInventoryPolicyRuleResponseArrayOutput) ToBlobInventoryPolicyRuleResponseArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleResponseArrayOutput { - return o +func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationOutput) } -func (o BlobInventoryPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) BlobInventoryPolicyRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobInventoryPolicyRuleResponse { - return vs[0].([]BlobInventoryPolicyRuleResponse)[vs[1].(int)] - }).(BlobInventoryPolicyRuleResponseOutput) +func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { + return i.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) } -// The storage account blob inventory policy rules. -type BlobInventoryPolicySchema struct { - // Container name where blob inventory files are stored. Must be pre-created. - Destination string `pulumi:"destination"` - // Policy is enabled if set to true. - Enabled bool `pulumi:"enabled"` - // The storage account blob inventory policy rules. The rule is applied when it is enabled. - Rules []BlobInventoryPolicyRule `pulumi:"rules"` - // The valid value is Inventory - Type string `pulumi:"type"` +func (i AzureFilesIdentityBasedAuthenticationArgs) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationOutput).ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx) } -// BlobInventoryPolicySchemaInput is an input type that accepts BlobInventoryPolicySchemaArgs and BlobInventoryPolicySchemaOutput values. -// You can construct a concrete instance of `BlobInventoryPolicySchemaInput` via: +// AzureFilesIdentityBasedAuthenticationPtrInput is an input type that accepts AzureFilesIdentityBasedAuthenticationArgs, AzureFilesIdentityBasedAuthenticationPtr and AzureFilesIdentityBasedAuthenticationPtrOutput values. +// You can construct a concrete instance of `AzureFilesIdentityBasedAuthenticationPtrInput` via: // -// BlobInventoryPolicySchemaArgs{...} -type BlobInventoryPolicySchemaInput interface { +// AzureFilesIdentityBasedAuthenticationArgs{...} +// +// or: +// +// nil +type AzureFilesIdentityBasedAuthenticationPtrInput interface { pulumi.Input - ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput - ToBlobInventoryPolicySchemaOutputWithContext(context.Context) BlobInventoryPolicySchemaOutput + ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput + ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput } -// The storage account blob inventory policy rules. -type BlobInventoryPolicySchemaArgs struct { - // Container name where blob inventory files are stored. Must be pre-created. - Destination pulumi.StringInput `pulumi:"destination"` - // Policy is enabled if set to true. - Enabled pulumi.BoolInput `pulumi:"enabled"` - // The storage account blob inventory policy rules. The rule is applied when it is enabled. - Rules BlobInventoryPolicyRuleArrayInput `pulumi:"rules"` - // The valid value is Inventory - Type pulumi.StringInput `pulumi:"type"` +type azureFilesIdentityBasedAuthenticationPtrType AzureFilesIdentityBasedAuthenticationArgs + +func AzureFilesIdentityBasedAuthenticationPtr(v *AzureFilesIdentityBasedAuthenticationArgs) AzureFilesIdentityBasedAuthenticationPtrInput { + return (*azureFilesIdentityBasedAuthenticationPtrType)(v) } -func (BlobInventoryPolicySchemaArgs) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicySchema)(nil)).Elem() +func (*azureFilesIdentityBasedAuthenticationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AzureFilesIdentityBasedAuthentication)(nil)).Elem() } -func (i BlobInventoryPolicySchemaArgs) ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput { - return i.ToBlobInventoryPolicySchemaOutputWithContext(context.Background()) +func (i *azureFilesIdentityBasedAuthenticationPtrType) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { + return i.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) } -func (i BlobInventoryPolicySchemaArgs) ToBlobInventoryPolicySchemaOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaOutput { - return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicySchemaOutput) +func (i *azureFilesIdentityBasedAuthenticationPtrType) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AzureFilesIdentityBasedAuthenticationPtrOutput) } -// The storage account blob inventory policy rules. -type BlobInventoryPolicySchemaOutput struct{ *pulumi.OutputState } +// Settings for Azure Files identity based authentication. +type AzureFilesIdentityBasedAuthenticationOutput struct{ *pulumi.OutputState } -func (BlobInventoryPolicySchemaOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicySchema)(nil)).Elem() +func (AzureFilesIdentityBasedAuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFilesIdentityBasedAuthentication)(nil)).Elem() } -func (o BlobInventoryPolicySchemaOutput) ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput { +func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationOutput() AzureFilesIdentityBasedAuthenticationOutput { return o } -func (o BlobInventoryPolicySchemaOutput) ToBlobInventoryPolicySchemaOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaOutput { +func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationOutput { return o } -// Container name where blob inventory files are stored. Must be pre-created. -func (o BlobInventoryPolicySchemaOutput) Destination() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicySchema) string { return v.Destination }).(pulumi.StringOutput) +func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { + return o.ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(context.Background()) } -// Policy is enabled if set to true. -func (o BlobInventoryPolicySchemaOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v BlobInventoryPolicySchema) bool { return v.Enabled }).(pulumi.BoolOutput) +func (o AzureFilesIdentityBasedAuthenticationOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AzureFilesIdentityBasedAuthentication) *AzureFilesIdentityBasedAuthentication { + return &v + }).(AzureFilesIdentityBasedAuthenticationPtrOutput) } -// The storage account blob inventory policy rules. The rule is applied when it is enabled. -func (o BlobInventoryPolicySchemaOutput) Rules() BlobInventoryPolicyRuleArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicySchema) []BlobInventoryPolicyRule { return v.Rules }).(BlobInventoryPolicyRuleArrayOutput) +// Required if directoryServiceOptions are AD, optional if they are AADKERB. +func (o AzureFilesIdentityBasedAuthenticationOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesPtrOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthentication) *ActiveDirectoryProperties { + return v.ActiveDirectoryProperties + }).(ActiveDirectoryPropertiesPtrOutput) } -// The valid value is Inventory -func (o BlobInventoryPolicySchemaOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicySchema) string { return v.Type }).(pulumi.StringOutput) +// Default share permission for users using Kerberos authentication if RBAC role is not assigned. +func (o AzureFilesIdentityBasedAuthenticationOutput) DefaultSharePermission() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthentication) *string { return v.DefaultSharePermission }).(pulumi.StringPtrOutput) } -// The storage account blob inventory policy rules. -type BlobInventoryPolicySchemaResponse struct { - // Container name where blob inventory files are stored. Must be pre-created. - Destination string `pulumi:"destination"` - // Policy is enabled if set to true. - Enabled bool `pulumi:"enabled"` - // The storage account blob inventory policy rules. The rule is applied when it is enabled. - Rules []BlobInventoryPolicyRuleResponse `pulumi:"rules"` - // The valid value is Inventory - Type string `pulumi:"type"` +// Indicates the directory service used. Note that this enum may be extended in the future. +func (o AzureFilesIdentityBasedAuthenticationOutput) DirectoryServiceOptions() pulumi.StringOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthentication) string { return v.DirectoryServiceOptions }).(pulumi.StringOutput) } -// The storage account blob inventory policy rules. -type BlobInventoryPolicySchemaResponseOutput struct{ *pulumi.OutputState } +type AzureFilesIdentityBasedAuthenticationPtrOutput struct{ *pulumi.OutputState } -func (BlobInventoryPolicySchemaResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobInventoryPolicySchemaResponse)(nil)).Elem() +func (AzureFilesIdentityBasedAuthenticationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AzureFilesIdentityBasedAuthentication)(nil)).Elem() } -func (o BlobInventoryPolicySchemaResponseOutput) ToBlobInventoryPolicySchemaResponseOutput() BlobInventoryPolicySchemaResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutput() AzureFilesIdentityBasedAuthenticationPtrOutput { return o } -func (o BlobInventoryPolicySchemaResponseOutput) ToBlobInventoryPolicySchemaResponseOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ToAzureFilesIdentityBasedAuthenticationPtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationPtrOutput { return o } -// Container name where blob inventory files are stored. Must be pre-created. -func (o BlobInventoryPolicySchemaResponseOutput) Destination() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) string { return v.Destination }).(pulumi.StringOutput) +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) Elem() AzureFilesIdentityBasedAuthenticationOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) AzureFilesIdentityBasedAuthentication { + if v != nil { + return *v + } + var ret AzureFilesIdentityBasedAuthentication + return ret + }).(AzureFilesIdentityBasedAuthenticationOutput) } -// Policy is enabled if set to true. -func (o BlobInventoryPolicySchemaResponseOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) bool { return v.Enabled }).(pulumi.BoolOutput) +// Required if directoryServiceOptions are AD, optional if they are AADKERB. +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesPtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) *ActiveDirectoryProperties { + if v == nil { + return nil + } + return v.ActiveDirectoryProperties + }).(ActiveDirectoryPropertiesPtrOutput) } -// The storage account blob inventory policy rules. The rule is applied when it is enabled. -func (o BlobInventoryPolicySchemaResponseOutput) Rules() BlobInventoryPolicyRuleResponseArrayOutput { - return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) []BlobInventoryPolicyRuleResponse { return v.Rules }).(BlobInventoryPolicyRuleResponseArrayOutput) +// Default share permission for users using Kerberos authentication if RBAC role is not assigned. +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) DefaultSharePermission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) *string { + if v == nil { + return nil + } + return v.DefaultSharePermission + }).(pulumi.StringPtrOutput) } -// The valid value is Inventory -func (o BlobInventoryPolicySchemaResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) string { return v.Type }).(pulumi.StringOutput) +// Indicates the directory service used. Note that this enum may be extended in the future. +func (o AzureFilesIdentityBasedAuthenticationPtrOutput) DirectoryServiceOptions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthentication) *string { + if v == nil { + return nil + } + return &v.DirectoryServiceOptions + }).(pulumi.StringPtrOutput) } -// Blob restore parameters -type BlobRestoreParametersResponse struct { - // Blob ranges to restore. - BlobRanges []BlobRestoreRangeResponse `pulumi:"blobRanges"` - // Restore blob to the specified time. - TimeToRestore string `pulumi:"timeToRestore"` +// Settings for Azure Files identity based authentication. +type AzureFilesIdentityBasedAuthenticationResponse struct { + // Required if directoryServiceOptions are AD, optional if they are AADKERB. + ActiveDirectoryProperties *ActiveDirectoryPropertiesResponse `pulumi:"activeDirectoryProperties"` + // Default share permission for users using Kerberos authentication if RBAC role is not assigned. + DefaultSharePermission *string `pulumi:"defaultSharePermission"` + // Indicates the directory service used. Note that this enum may be extended in the future. + DirectoryServiceOptions string `pulumi:"directoryServiceOptions"` } -// Blob restore parameters -type BlobRestoreParametersResponseOutput struct{ *pulumi.OutputState } +// Settings for Azure Files identity based authentication. +type AzureFilesIdentityBasedAuthenticationResponseOutput struct{ *pulumi.OutputState } -func (BlobRestoreParametersResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobRestoreParametersResponse)(nil)).Elem() +func (AzureFilesIdentityBasedAuthenticationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AzureFilesIdentityBasedAuthenticationResponse)(nil)).Elem() } -func (o BlobRestoreParametersResponseOutput) ToBlobRestoreParametersResponseOutput() BlobRestoreParametersResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ToAzureFilesIdentityBasedAuthenticationResponseOutput() AzureFilesIdentityBasedAuthenticationResponseOutput { return o } -func (o BlobRestoreParametersResponseOutput) ToBlobRestoreParametersResponseOutputWithContext(ctx context.Context) BlobRestoreParametersResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ToAzureFilesIdentityBasedAuthenticationResponseOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationResponseOutput { return o } -// Blob ranges to restore. -func (o BlobRestoreParametersResponseOutput) BlobRanges() BlobRestoreRangeResponseArrayOutput { - return o.ApplyT(func(v BlobRestoreParametersResponse) []BlobRestoreRangeResponse { return v.BlobRanges }).(BlobRestoreRangeResponseArrayOutput) +// Required if directoryServiceOptions are AD, optional if they are AADKERB. +func (o AzureFilesIdentityBasedAuthenticationResponseOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesResponsePtrOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthenticationResponse) *ActiveDirectoryPropertiesResponse { + return v.ActiveDirectoryProperties + }).(ActiveDirectoryPropertiesResponsePtrOutput) } -// Restore blob to the specified time. -func (o BlobRestoreParametersResponseOutput) TimeToRestore() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreParametersResponse) string { return v.TimeToRestore }).(pulumi.StringOutput) +// Default share permission for users using Kerberos authentication if RBAC role is not assigned. +func (o AzureFilesIdentityBasedAuthenticationResponseOutput) DefaultSharePermission() pulumi.StringPtrOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthenticationResponse) *string { return v.DefaultSharePermission }).(pulumi.StringPtrOutput) } -// Blob range -type BlobRestoreRangeResponse struct { - // Blob end range. This is exclusive. Empty means account end. - EndRange string `pulumi:"endRange"` - // Blob start range. This is inclusive. Empty means account start. - StartRange string `pulumi:"startRange"` +// Indicates the directory service used. Note that this enum may be extended in the future. +func (o AzureFilesIdentityBasedAuthenticationResponseOutput) DirectoryServiceOptions() pulumi.StringOutput { + return o.ApplyT(func(v AzureFilesIdentityBasedAuthenticationResponse) string { return v.DirectoryServiceOptions }).(pulumi.StringOutput) } -// Blob range -type BlobRestoreRangeResponseOutput struct{ *pulumi.OutputState } +type AzureFilesIdentityBasedAuthenticationResponsePtrOutput struct{ *pulumi.OutputState } -func (BlobRestoreRangeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobRestoreRangeResponse)(nil)).Elem() +func (AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AzureFilesIdentityBasedAuthenticationResponse)(nil)).Elem() } -func (o BlobRestoreRangeResponseOutput) ToBlobRestoreRangeResponseOutput() BlobRestoreRangeResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ToAzureFilesIdentityBasedAuthenticationResponsePtrOutput() AzureFilesIdentityBasedAuthenticationResponsePtrOutput { return o } -func (o BlobRestoreRangeResponseOutput) ToBlobRestoreRangeResponseOutputWithContext(ctx context.Context) BlobRestoreRangeResponseOutput { +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ToAzureFilesIdentityBasedAuthenticationResponsePtrOutputWithContext(ctx context.Context) AzureFilesIdentityBasedAuthenticationResponsePtrOutput { return o } -// Blob end range. This is exclusive. Empty means account end. -func (o BlobRestoreRangeResponseOutput) EndRange() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreRangeResponse) string { return v.EndRange }).(pulumi.StringOutput) +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) Elem() AzureFilesIdentityBasedAuthenticationResponseOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) AzureFilesIdentityBasedAuthenticationResponse { + if v != nil { + return *v + } + var ret AzureFilesIdentityBasedAuthenticationResponse + return ret + }).(AzureFilesIdentityBasedAuthenticationResponseOutput) } -// Blob start range. This is inclusive. Empty means account start. -func (o BlobRestoreRangeResponseOutput) StartRange() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreRangeResponse) string { return v.StartRange }).(pulumi.StringOutput) +// Required if directoryServiceOptions are AD, optional if they are AADKERB. +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) ActiveDirectoryProperties() ActiveDirectoryPropertiesResponsePtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) *ActiveDirectoryPropertiesResponse { + if v == nil { + return nil + } + return v.ActiveDirectoryProperties + }).(ActiveDirectoryPropertiesResponsePtrOutput) } -type BlobRestoreRangeResponseArrayOutput struct{ *pulumi.OutputState } +// Default share permission for users using Kerberos authentication if RBAC role is not assigned. +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) DefaultSharePermission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) *string { + if v == nil { + return nil + } + return v.DefaultSharePermission + }).(pulumi.StringPtrOutput) +} -func (BlobRestoreRangeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]BlobRestoreRangeResponse)(nil)).Elem() +// Indicates the directory service used. Note that this enum may be extended in the future. +func (o AzureFilesIdentityBasedAuthenticationResponsePtrOutput) DirectoryServiceOptions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AzureFilesIdentityBasedAuthenticationResponse) *string { + if v == nil { + return nil + } + return &v.DirectoryServiceOptions + }).(pulumi.StringPtrOutput) } -func (o BlobRestoreRangeResponseArrayOutput) ToBlobRestoreRangeResponseArrayOutput() BlobRestoreRangeResponseArrayOutput { +// An object that defines the blob inventory rule. +type BlobInventoryPolicyDefinition struct { + // An object that defines the filter set. + Filters *BlobInventoryPolicyFilter `pulumi:"filters"` + // This is a required field, it specifies the format for the inventory files. + Format string `pulumi:"format"` + // This is a required field. This field specifies the scope of the inventory created either at the blob or container level. + ObjectType string `pulumi:"objectType"` + // This is a required field. This field is used to schedule an inventory formation. + Schedule string `pulumi:"schedule"` + // This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. + SchemaFields []string `pulumi:"schemaFields"` +} + +// BlobInventoryPolicyDefinitionInput is an input type that accepts BlobInventoryPolicyDefinitionArgs and BlobInventoryPolicyDefinitionOutput values. +// You can construct a concrete instance of `BlobInventoryPolicyDefinitionInput` via: +// +// BlobInventoryPolicyDefinitionArgs{...} +type BlobInventoryPolicyDefinitionInput interface { + pulumi.Input + + ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput + ToBlobInventoryPolicyDefinitionOutputWithContext(context.Context) BlobInventoryPolicyDefinitionOutput +} + +// An object that defines the blob inventory rule. +type BlobInventoryPolicyDefinitionArgs struct { + // An object that defines the filter set. + Filters BlobInventoryPolicyFilterPtrInput `pulumi:"filters"` + // This is a required field, it specifies the format for the inventory files. + Format pulumi.StringInput `pulumi:"format"` + // This is a required field. This field specifies the scope of the inventory created either at the blob or container level. + ObjectType pulumi.StringInput `pulumi:"objectType"` + // This is a required field. This field is used to schedule an inventory formation. + Schedule pulumi.StringInput `pulumi:"schedule"` + // This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. + SchemaFields pulumi.StringArrayInput `pulumi:"schemaFields"` +} + +func (BlobInventoryPolicyDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyDefinition)(nil)).Elem() +} + +func (i BlobInventoryPolicyDefinitionArgs) ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput { + return i.ToBlobInventoryPolicyDefinitionOutputWithContext(context.Background()) +} + +func (i BlobInventoryPolicyDefinitionArgs) ToBlobInventoryPolicyDefinitionOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyDefinitionOutput) +} + +// An object that defines the blob inventory rule. +type BlobInventoryPolicyDefinitionOutput struct{ *pulumi.OutputState } + +func (BlobInventoryPolicyDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyDefinition)(nil)).Elem() +} + +func (o BlobInventoryPolicyDefinitionOutput) ToBlobInventoryPolicyDefinitionOutput() BlobInventoryPolicyDefinitionOutput { return o } -func (o BlobRestoreRangeResponseArrayOutput) ToBlobRestoreRangeResponseArrayOutputWithContext(ctx context.Context) BlobRestoreRangeResponseArrayOutput { +func (o BlobInventoryPolicyDefinitionOutput) ToBlobInventoryPolicyDefinitionOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionOutput { return o } -func (o BlobRestoreRangeResponseArrayOutput) Index(i pulumi.IntInput) BlobRestoreRangeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobRestoreRangeResponse { - return vs[0].([]BlobRestoreRangeResponse)[vs[1].(int)] - }).(BlobRestoreRangeResponseOutput) +// An object that defines the filter set. +func (o BlobInventoryPolicyDefinitionOutput) Filters() BlobInventoryPolicyFilterPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinition) *BlobInventoryPolicyFilter { return v.Filters }).(BlobInventoryPolicyFilterPtrOutput) } -// Blob restore status. -type BlobRestoreStatusResponse struct { - // Failure reason when blob restore is failed. - FailureReason string `pulumi:"failureReason"` - // Blob restore request parameters. - Parameters BlobRestoreParametersResponse `pulumi:"parameters"` - // Id for tracking blob restore request. - RestoreId string `pulumi:"restoreId"` - // The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. - Status string `pulumi:"status"` +// This is a required field, it specifies the format for the inventory files. +func (o BlobInventoryPolicyDefinitionOutput) Format() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinition) string { return v.Format }).(pulumi.StringOutput) } -// Blob restore status. -type BlobRestoreStatusResponseOutput struct{ *pulumi.OutputState } +// This is a required field. This field specifies the scope of the inventory created either at the blob or container level. +func (o BlobInventoryPolicyDefinitionOutput) ObjectType() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinition) string { return v.ObjectType }).(pulumi.StringOutput) +} -func (BlobRestoreStatusResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*BlobRestoreStatusResponse)(nil)).Elem() +// This is a required field. This field is used to schedule an inventory formation. +func (o BlobInventoryPolicyDefinitionOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinition) string { return v.Schedule }).(pulumi.StringOutput) } -func (o BlobRestoreStatusResponseOutput) ToBlobRestoreStatusResponseOutput() BlobRestoreStatusResponseOutput { +// This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. +func (o BlobInventoryPolicyDefinitionOutput) SchemaFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinition) []string { return v.SchemaFields }).(pulumi.StringArrayOutput) +} + +// An object that defines the blob inventory rule. +type BlobInventoryPolicyDefinitionResponse struct { + // An object that defines the filter set. + Filters *BlobInventoryPolicyFilterResponse `pulumi:"filters"` + // This is a required field, it specifies the format for the inventory files. + Format string `pulumi:"format"` + // This is a required field. This field specifies the scope of the inventory created either at the blob or container level. + ObjectType string `pulumi:"objectType"` + // This is a required field. This field is used to schedule an inventory formation. + Schedule string `pulumi:"schedule"` + // This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. + SchemaFields []string `pulumi:"schemaFields"` +} + +// An object that defines the blob inventory rule. +type BlobInventoryPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } + +func (BlobInventoryPolicyDefinitionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyDefinitionResponse)(nil)).Elem() +} + +func (o BlobInventoryPolicyDefinitionResponseOutput) ToBlobInventoryPolicyDefinitionResponseOutput() BlobInventoryPolicyDefinitionResponseOutput { return o } -func (o BlobRestoreStatusResponseOutput) ToBlobRestoreStatusResponseOutputWithContext(ctx context.Context) BlobRestoreStatusResponseOutput { +func (o BlobInventoryPolicyDefinitionResponseOutput) ToBlobInventoryPolicyDefinitionResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyDefinitionResponseOutput { return o } -// Failure reason when blob restore is failed. -func (o BlobRestoreStatusResponseOutput) FailureReason() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.FailureReason }).(pulumi.StringOutput) +// An object that defines the filter set. +func (o BlobInventoryPolicyDefinitionResponseOutput) Filters() BlobInventoryPolicyFilterResponsePtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) *BlobInventoryPolicyFilterResponse { return v.Filters }).(BlobInventoryPolicyFilterResponsePtrOutput) } -// Blob restore request parameters. -func (o BlobRestoreStatusResponseOutput) Parameters() BlobRestoreParametersResponseOutput { - return o.ApplyT(func(v BlobRestoreStatusResponse) BlobRestoreParametersResponse { return v.Parameters }).(BlobRestoreParametersResponseOutput) +// This is a required field, it specifies the format for the inventory files. +func (o BlobInventoryPolicyDefinitionResponseOutput) Format() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) string { return v.Format }).(pulumi.StringOutput) } -// Id for tracking blob restore request. -func (o BlobRestoreStatusResponseOutput) RestoreId() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.RestoreId }).(pulumi.StringOutput) +// This is a required field. This field specifies the scope of the inventory created either at the blob or container level. +func (o BlobInventoryPolicyDefinitionResponseOutput) ObjectType() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) string { return v.ObjectType }).(pulumi.StringOutput) } -// The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. -func (o BlobRestoreStatusResponseOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.Status }).(pulumi.StringOutput) +// This is a required field. This field is used to schedule an inventory formation. +func (o BlobInventoryPolicyDefinitionResponseOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) string { return v.Schedule }).(pulumi.StringOutput) } -// The blob service properties for change feed events. -type ChangeFeed struct { - // Indicates whether change feed event logging is enabled for the Blob service. - Enabled *bool `pulumi:"enabled"` - // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. - RetentionInDays *int `pulumi:"retentionInDays"` +// This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. +func (o BlobInventoryPolicyDefinitionResponseOutput) SchemaFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyDefinitionResponse) []string { return v.SchemaFields }).(pulumi.StringArrayOutput) } -// ChangeFeedInput is an input type that accepts ChangeFeedArgs and ChangeFeedOutput values. -// You can construct a concrete instance of `ChangeFeedInput` via: +// An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. +type BlobInventoryPolicyFilter struct { + // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. + BlobTypes []string `pulumi:"blobTypes"` + // An array of strings with maximum 10 blob prefixes to be excluded from the inventory. + ExcludePrefix []string `pulumi:"excludePrefix"` + // Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. + IncludeBlobVersions *bool `pulumi:"includeBlobVersions"` + // For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. + IncludeDeleted *bool `pulumi:"includeDeleted"` + // Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. + IncludeSnapshots *bool `pulumi:"includeSnapshots"` + // An array of strings with maximum 10 blob prefixes to be included in the inventory. + PrefixMatch []string `pulumi:"prefixMatch"` +} + +// BlobInventoryPolicyFilterInput is an input type that accepts BlobInventoryPolicyFilterArgs and BlobInventoryPolicyFilterOutput values. +// You can construct a concrete instance of `BlobInventoryPolicyFilterInput` via: // -// ChangeFeedArgs{...} -type ChangeFeedInput interface { +// BlobInventoryPolicyFilterArgs{...} +type BlobInventoryPolicyFilterInput interface { pulumi.Input - ToChangeFeedOutput() ChangeFeedOutput - ToChangeFeedOutputWithContext(context.Context) ChangeFeedOutput + ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput + ToBlobInventoryPolicyFilterOutputWithContext(context.Context) BlobInventoryPolicyFilterOutput } -// The blob service properties for change feed events. -type ChangeFeedArgs struct { - // Indicates whether change feed event logging is enabled for the Blob service. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. - RetentionInDays pulumi.IntPtrInput `pulumi:"retentionInDays"` +// An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. +type BlobInventoryPolicyFilterArgs struct { + // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. + BlobTypes pulumi.StringArrayInput `pulumi:"blobTypes"` + // An array of strings with maximum 10 blob prefixes to be excluded from the inventory. + ExcludePrefix pulumi.StringArrayInput `pulumi:"excludePrefix"` + // Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. + IncludeBlobVersions pulumi.BoolPtrInput `pulumi:"includeBlobVersions"` + // For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. + IncludeDeleted pulumi.BoolPtrInput `pulumi:"includeDeleted"` + // Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. + IncludeSnapshots pulumi.BoolPtrInput `pulumi:"includeSnapshots"` + // An array of strings with maximum 10 blob prefixes to be included in the inventory. + PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` } -func (ChangeFeedArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ChangeFeed)(nil)).Elem() +func (BlobInventoryPolicyFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyFilter)(nil)).Elem() } -func (i ChangeFeedArgs) ToChangeFeedOutput() ChangeFeedOutput { - return i.ToChangeFeedOutputWithContext(context.Background()) +func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput { + return i.ToBlobInventoryPolicyFilterOutputWithContext(context.Background()) } -func (i ChangeFeedArgs) ToChangeFeedOutputWithContext(ctx context.Context) ChangeFeedOutput { - return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedOutput) +func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyFilterOutput) } -func (i ChangeFeedArgs) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { - return i.ToChangeFeedPtrOutputWithContext(context.Background()) +func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterPtrOutput() BlobInventoryPolicyFilterPtrOutput { + return i.ToBlobInventoryPolicyFilterPtrOutputWithContext(context.Background()) } -func (i ChangeFeedArgs) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedOutput).ToChangeFeedPtrOutputWithContext(ctx) +func (i BlobInventoryPolicyFilterArgs) ToBlobInventoryPolicyFilterPtrOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyFilterOutput).ToBlobInventoryPolicyFilterPtrOutputWithContext(ctx) } -// ChangeFeedPtrInput is an input type that accepts ChangeFeedArgs, ChangeFeedPtr and ChangeFeedPtrOutput values. -// You can construct a concrete instance of `ChangeFeedPtrInput` via: +// BlobInventoryPolicyFilterPtrInput is an input type that accepts BlobInventoryPolicyFilterArgs, BlobInventoryPolicyFilterPtr and BlobInventoryPolicyFilterPtrOutput values. +// You can construct a concrete instance of `BlobInventoryPolicyFilterPtrInput` via: // -// ChangeFeedArgs{...} +// BlobInventoryPolicyFilterArgs{...} // // or: // // nil -type ChangeFeedPtrInput interface { +type BlobInventoryPolicyFilterPtrInput interface { pulumi.Input - ToChangeFeedPtrOutput() ChangeFeedPtrOutput - ToChangeFeedPtrOutputWithContext(context.Context) ChangeFeedPtrOutput + ToBlobInventoryPolicyFilterPtrOutput() BlobInventoryPolicyFilterPtrOutput + ToBlobInventoryPolicyFilterPtrOutputWithContext(context.Context) BlobInventoryPolicyFilterPtrOutput } -type changeFeedPtrType ChangeFeedArgs +type blobInventoryPolicyFilterPtrType BlobInventoryPolicyFilterArgs -func ChangeFeedPtr(v *ChangeFeedArgs) ChangeFeedPtrInput { - return (*changeFeedPtrType)(v) +func BlobInventoryPolicyFilterPtr(v *BlobInventoryPolicyFilterArgs) BlobInventoryPolicyFilterPtrInput { + return (*blobInventoryPolicyFilterPtrType)(v) } -func (*changeFeedPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ChangeFeed)(nil)).Elem() +func (*blobInventoryPolicyFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BlobInventoryPolicyFilter)(nil)).Elem() } -func (i *changeFeedPtrType) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { - return i.ToChangeFeedPtrOutputWithContext(context.Background()) +func (i *blobInventoryPolicyFilterPtrType) ToBlobInventoryPolicyFilterPtrOutput() BlobInventoryPolicyFilterPtrOutput { + return i.ToBlobInventoryPolicyFilterPtrOutputWithContext(context.Background()) } -func (i *changeFeedPtrType) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedPtrOutput) +func (i *blobInventoryPolicyFilterPtrType) ToBlobInventoryPolicyFilterPtrOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyFilterPtrOutput) } -// The blob service properties for change feed events. -type ChangeFeedOutput struct{ *pulumi.OutputState } +// An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. +type BlobInventoryPolicyFilterOutput struct{ *pulumi.OutputState } -func (ChangeFeedOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ChangeFeed)(nil)).Elem() +func (BlobInventoryPolicyFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyFilter)(nil)).Elem() } -func (o ChangeFeedOutput) ToChangeFeedOutput() ChangeFeedOutput { +func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterOutput() BlobInventoryPolicyFilterOutput { return o } -func (o ChangeFeedOutput) ToChangeFeedOutputWithContext(ctx context.Context) ChangeFeedOutput { +func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterOutput { return o } -func (o ChangeFeedOutput) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { - return o.ToChangeFeedPtrOutputWithContext(context.Background()) +func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterPtrOutput() BlobInventoryPolicyFilterPtrOutput { + return o.ToBlobInventoryPolicyFilterPtrOutputWithContext(context.Background()) } -func (o ChangeFeedOutput) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ChangeFeed) *ChangeFeed { +func (o BlobInventoryPolicyFilterOutput) ToBlobInventoryPolicyFilterPtrOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BlobInventoryPolicyFilter) *BlobInventoryPolicyFilter { return &v - }).(ChangeFeedPtrOutput) + }).(BlobInventoryPolicyFilterPtrOutput) } -// Indicates whether change feed event logging is enabled for the Blob service. -func (o ChangeFeedOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ChangeFeed) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. +func (o BlobInventoryPolicyFilterOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) } -// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. -func (o ChangeFeedOutput) RetentionInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v ChangeFeed) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) +// An array of strings with maximum 10 blob prefixes to be excluded from the inventory. +func (o BlobInventoryPolicyFilterOutput) ExcludePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) []string { return v.ExcludePrefix }).(pulumi.StringArrayOutput) } -type ChangeFeedPtrOutput struct{ *pulumi.OutputState } +// Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. +func (o BlobInventoryPolicyFilterOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) *bool { return v.IncludeBlobVersions }).(pulumi.BoolPtrOutput) +} -func (ChangeFeedPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ChangeFeed)(nil)).Elem() +// For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. +func (o BlobInventoryPolicyFilterOutput) IncludeDeleted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) *bool { return v.IncludeDeleted }).(pulumi.BoolPtrOutput) } -func (o ChangeFeedPtrOutput) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { +// Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. +func (o BlobInventoryPolicyFilterOutput) IncludeSnapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) *bool { return v.IncludeSnapshots }).(pulumi.BoolPtrOutput) +} + +// An array of strings with maximum 10 blob prefixes to be included in the inventory. +func (o BlobInventoryPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +} + +type BlobInventoryPolicyFilterPtrOutput struct{ *pulumi.OutputState } + +func (BlobInventoryPolicyFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BlobInventoryPolicyFilter)(nil)).Elem() +} + +func (o BlobInventoryPolicyFilterPtrOutput) ToBlobInventoryPolicyFilterPtrOutput() BlobInventoryPolicyFilterPtrOutput { return o } -func (o ChangeFeedPtrOutput) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { +func (o BlobInventoryPolicyFilterPtrOutput) ToBlobInventoryPolicyFilterPtrOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterPtrOutput { return o } -func (o ChangeFeedPtrOutput) Elem() ChangeFeedOutput { - return o.ApplyT(func(v *ChangeFeed) ChangeFeed { +func (o BlobInventoryPolicyFilterPtrOutput) Elem() BlobInventoryPolicyFilterOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) BlobInventoryPolicyFilter { if v != nil { return *v } - var ret ChangeFeed + var ret BlobInventoryPolicyFilter return ret - }).(ChangeFeedOutput) + }).(BlobInventoryPolicyFilterOutput) } -// Indicates whether change feed event logging is enabled for the Blob service. -func (o ChangeFeedPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ChangeFeed) *bool { +// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. +func (o BlobInventoryPolicyFilterPtrOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) []string { if v == nil { return nil } - return v.Enabled - }).(pulumi.BoolPtrOutput) + return v.BlobTypes + }).(pulumi.StringArrayOutput) } -// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. -func (o ChangeFeedPtrOutput) RetentionInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ChangeFeed) *int { +// An array of strings with maximum 10 blob prefixes to be excluded from the inventory. +func (o BlobInventoryPolicyFilterPtrOutput) ExcludePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) []string { if v == nil { return nil } - return v.RetentionInDays - }).(pulumi.IntPtrOutput) + return v.ExcludePrefix + }).(pulumi.StringArrayOutput) } -// The blob service properties for change feed events. -type ChangeFeedResponse struct { - // Indicates whether change feed event logging is enabled for the Blob service. - Enabled *bool `pulumi:"enabled"` - // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. - RetentionInDays *int `pulumi:"retentionInDays"` +// Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. +func (o BlobInventoryPolicyFilterPtrOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) *bool { + if v == nil { + return nil + } + return v.IncludeBlobVersions + }).(pulumi.BoolPtrOutput) } -// The blob service properties for change feed events. -type ChangeFeedResponseOutput struct{ *pulumi.OutputState } +// For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. +func (o BlobInventoryPolicyFilterPtrOutput) IncludeDeleted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) *bool { + if v == nil { + return nil + } + return v.IncludeDeleted + }).(pulumi.BoolPtrOutput) +} -func (ChangeFeedResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ChangeFeedResponse)(nil)).Elem() +// Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. +func (o BlobInventoryPolicyFilterPtrOutput) IncludeSnapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) *bool { + if v == nil { + return nil + } + return v.IncludeSnapshots + }).(pulumi.BoolPtrOutput) } -func (o ChangeFeedResponseOutput) ToChangeFeedResponseOutput() ChangeFeedResponseOutput { +// An array of strings with maximum 10 blob prefixes to be included in the inventory. +func (o BlobInventoryPolicyFilterPtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilter) []string { + if v == nil { + return nil + } + return v.PrefixMatch + }).(pulumi.StringArrayOutput) +} + +// An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. +type BlobInventoryPolicyFilterResponse struct { + // An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. + BlobTypes []string `pulumi:"blobTypes"` + // An array of strings with maximum 10 blob prefixes to be excluded from the inventory. + ExcludePrefix []string `pulumi:"excludePrefix"` + // Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. + IncludeBlobVersions *bool `pulumi:"includeBlobVersions"` + // For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. + IncludeDeleted *bool `pulumi:"includeDeleted"` + // Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. + IncludeSnapshots *bool `pulumi:"includeSnapshots"` + // An array of strings with maximum 10 blob prefixes to be included in the inventory. + PrefixMatch []string `pulumi:"prefixMatch"` +} + +// An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. +type BlobInventoryPolicyFilterResponseOutput struct{ *pulumi.OutputState } + +func (BlobInventoryPolicyFilterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyFilterResponse)(nil)).Elem() +} + +func (o BlobInventoryPolicyFilterResponseOutput) ToBlobInventoryPolicyFilterResponseOutput() BlobInventoryPolicyFilterResponseOutput { return o } -func (o ChangeFeedResponseOutput) ToChangeFeedResponseOutputWithContext(ctx context.Context) ChangeFeedResponseOutput { +func (o BlobInventoryPolicyFilterResponseOutput) ToBlobInventoryPolicyFilterResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterResponseOutput { return o } -// Indicates whether change feed event logging is enabled for the Blob service. -func (o ChangeFeedResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ChangeFeedResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. +func (o BlobInventoryPolicyFilterResponseOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) } -// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. -func (o ChangeFeedResponseOutput) RetentionInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v ChangeFeedResponse) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) +// An array of strings with maximum 10 blob prefixes to be excluded from the inventory. +func (o BlobInventoryPolicyFilterResponseOutput) ExcludePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) []string { return v.ExcludePrefix }).(pulumi.StringArrayOutput) } -type ChangeFeedResponsePtrOutput struct{ *pulumi.OutputState } +// Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. +func (o BlobInventoryPolicyFilterResponseOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) *bool { return v.IncludeBlobVersions }).(pulumi.BoolPtrOutput) +} -func (ChangeFeedResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ChangeFeedResponse)(nil)).Elem() +// For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. +func (o BlobInventoryPolicyFilterResponseOutput) IncludeDeleted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) *bool { return v.IncludeDeleted }).(pulumi.BoolPtrOutput) } -func (o ChangeFeedResponsePtrOutput) ToChangeFeedResponsePtrOutput() ChangeFeedResponsePtrOutput { +// Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. +func (o BlobInventoryPolicyFilterResponseOutput) IncludeSnapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) *bool { return v.IncludeSnapshots }).(pulumi.BoolPtrOutput) +} + +// An array of strings with maximum 10 blob prefixes to be included in the inventory. +func (o BlobInventoryPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +} + +type BlobInventoryPolicyFilterResponsePtrOutput struct{ *pulumi.OutputState } + +func (BlobInventoryPolicyFilterResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BlobInventoryPolicyFilterResponse)(nil)).Elem() +} + +func (o BlobInventoryPolicyFilterResponsePtrOutput) ToBlobInventoryPolicyFilterResponsePtrOutput() BlobInventoryPolicyFilterResponsePtrOutput { return o } -func (o ChangeFeedResponsePtrOutput) ToChangeFeedResponsePtrOutputWithContext(ctx context.Context) ChangeFeedResponsePtrOutput { +func (o BlobInventoryPolicyFilterResponsePtrOutput) ToBlobInventoryPolicyFilterResponsePtrOutputWithContext(ctx context.Context) BlobInventoryPolicyFilterResponsePtrOutput { return o } -func (o ChangeFeedResponsePtrOutput) Elem() ChangeFeedResponseOutput { - return o.ApplyT(func(v *ChangeFeedResponse) ChangeFeedResponse { +func (o BlobInventoryPolicyFilterResponsePtrOutput) Elem() BlobInventoryPolicyFilterResponseOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) BlobInventoryPolicyFilterResponse { if v != nil { return *v } - var ret ChangeFeedResponse + var ret BlobInventoryPolicyFilterResponse return ret - }).(ChangeFeedResponseOutput) + }).(BlobInventoryPolicyFilterResponseOutput) } -// Indicates whether change feed event logging is enabled for the Blob service. -func (o ChangeFeedResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ChangeFeedResponse) *bool { +// An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. +func (o BlobInventoryPolicyFilterResponsePtrOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) []string { if v == nil { return nil } - return v.Enabled + return v.BlobTypes + }).(pulumi.StringArrayOutput) +} + +// An array of strings with maximum 10 blob prefixes to be excluded from the inventory. +func (o BlobInventoryPolicyFilterResponsePtrOutput) ExcludePrefix() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) []string { + if v == nil { + return nil + } + return v.ExcludePrefix + }).(pulumi.StringArrayOutput) +} + +// Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. +func (o BlobInventoryPolicyFilterResponsePtrOutput) IncludeBlobVersions() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) *bool { + if v == nil { + return nil + } + return v.IncludeBlobVersions }).(pulumi.BoolPtrOutput) } -// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. -func (o ChangeFeedResponsePtrOutput) RetentionInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ChangeFeedResponse) *int { +// For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. +func (o BlobInventoryPolicyFilterResponsePtrOutput) IncludeDeleted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) *bool { if v == nil { return nil } - return v.RetentionInDays - }).(pulumi.IntPtrOutput) + return v.IncludeDeleted + }).(pulumi.BoolPtrOutput) } -// Specifies a CORS rule for the Blob service. -type CorsRule struct { - // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. - AllowedHeaders []string `pulumi:"allowedHeaders"` - // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. - AllowedMethods []string `pulumi:"allowedMethods"` - // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains - AllowedOrigins []string `pulumi:"allowedOrigins"` - // Required if CorsRule element is present. A list of response headers to expose to CORS clients. - ExposedHeaders []string `pulumi:"exposedHeaders"` - // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. - MaxAgeInSeconds int `pulumi:"maxAgeInSeconds"` +// Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. +func (o BlobInventoryPolicyFilterResponsePtrOutput) IncludeSnapshots() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) *bool { + if v == nil { + return nil + } + return v.IncludeSnapshots + }).(pulumi.BoolPtrOutput) } -// CorsRuleInput is an input type that accepts CorsRuleArgs and CorsRuleOutput values. -// You can construct a concrete instance of `CorsRuleInput` via: +// An array of strings with maximum 10 blob prefixes to be included in the inventory. +func (o BlobInventoryPolicyFilterResponsePtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *BlobInventoryPolicyFilterResponse) []string { + if v == nil { + return nil + } + return v.PrefixMatch + }).(pulumi.StringArrayOutput) +} + +// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. +type BlobInventoryPolicyRule struct { + // An object that defines the blob inventory policy rule. + Definition BlobInventoryPolicyDefinition `pulumi:"definition"` + // Container name where blob inventory files are stored. Must be pre-created. + Destination string `pulumi:"destination"` + // Rule is enabled when set to true. + Enabled bool `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name string `pulumi:"name"` +} + +// BlobInventoryPolicyRuleInput is an input type that accepts BlobInventoryPolicyRuleArgs and BlobInventoryPolicyRuleOutput values. +// You can construct a concrete instance of `BlobInventoryPolicyRuleInput` via: // -// CorsRuleArgs{...} -type CorsRuleInput interface { +// BlobInventoryPolicyRuleArgs{...} +type BlobInventoryPolicyRuleInput interface { pulumi.Input - ToCorsRuleOutput() CorsRuleOutput - ToCorsRuleOutputWithContext(context.Context) CorsRuleOutput + ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput + ToBlobInventoryPolicyRuleOutputWithContext(context.Context) BlobInventoryPolicyRuleOutput } -// Specifies a CORS rule for the Blob service. -type CorsRuleArgs struct { - // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. - AllowedHeaders pulumi.StringArrayInput `pulumi:"allowedHeaders"` - // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. - AllowedMethods pulumi.StringArrayInput `pulumi:"allowedMethods"` - // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains - AllowedOrigins pulumi.StringArrayInput `pulumi:"allowedOrigins"` - // Required if CorsRule element is present. A list of response headers to expose to CORS clients. - ExposedHeaders pulumi.StringArrayInput `pulumi:"exposedHeaders"` - // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. - MaxAgeInSeconds pulumi.IntInput `pulumi:"maxAgeInSeconds"` +// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. +type BlobInventoryPolicyRuleArgs struct { + // An object that defines the blob inventory policy rule. + Definition BlobInventoryPolicyDefinitionInput `pulumi:"definition"` + // Container name where blob inventory files are stored. Must be pre-created. + Destination pulumi.StringInput `pulumi:"destination"` + // Rule is enabled when set to true. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name pulumi.StringInput `pulumi:"name"` } -func (CorsRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRule)(nil)).Elem() +func (BlobInventoryPolicyRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyRule)(nil)).Elem() } -func (i CorsRuleArgs) ToCorsRuleOutput() CorsRuleOutput { - return i.ToCorsRuleOutputWithContext(context.Background()) +func (i BlobInventoryPolicyRuleArgs) ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput { + return i.ToBlobInventoryPolicyRuleOutputWithContext(context.Background()) } -func (i CorsRuleArgs) ToCorsRuleOutputWithContext(ctx context.Context) CorsRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(CorsRuleOutput) +func (i BlobInventoryPolicyRuleArgs) ToBlobInventoryPolicyRuleOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyRuleOutput) } -// CorsRuleArrayInput is an input type that accepts CorsRuleArray and CorsRuleArrayOutput values. -// You can construct a concrete instance of `CorsRuleArrayInput` via: +// BlobInventoryPolicyRuleArrayInput is an input type that accepts BlobInventoryPolicyRuleArray and BlobInventoryPolicyRuleArrayOutput values. +// You can construct a concrete instance of `BlobInventoryPolicyRuleArrayInput` via: // -// CorsRuleArray{ CorsRuleArgs{...} } -type CorsRuleArrayInput interface { +// BlobInventoryPolicyRuleArray{ BlobInventoryPolicyRuleArgs{...} } +type BlobInventoryPolicyRuleArrayInput interface { pulumi.Input - ToCorsRuleArrayOutput() CorsRuleArrayOutput - ToCorsRuleArrayOutputWithContext(context.Context) CorsRuleArrayOutput + ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput + ToBlobInventoryPolicyRuleArrayOutputWithContext(context.Context) BlobInventoryPolicyRuleArrayOutput } -type CorsRuleArray []CorsRuleInput +type BlobInventoryPolicyRuleArray []BlobInventoryPolicyRuleInput -func (CorsRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]CorsRule)(nil)).Elem() +func (BlobInventoryPolicyRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BlobInventoryPolicyRule)(nil)).Elem() } -func (i CorsRuleArray) ToCorsRuleArrayOutput() CorsRuleArrayOutput { - return i.ToCorsRuleArrayOutputWithContext(context.Background()) +func (i BlobInventoryPolicyRuleArray) ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput { + return i.ToBlobInventoryPolicyRuleArrayOutputWithContext(context.Background()) } -func (i CorsRuleArray) ToCorsRuleArrayOutputWithContext(ctx context.Context) CorsRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(CorsRuleArrayOutput) +func (i BlobInventoryPolicyRuleArray) ToBlobInventoryPolicyRuleArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicyRuleArrayOutput) } -// Specifies a CORS rule for the Blob service. -type CorsRuleOutput struct{ *pulumi.OutputState } +// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. +type BlobInventoryPolicyRuleOutput struct{ *pulumi.OutputState } -func (CorsRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRule)(nil)).Elem() +func (BlobInventoryPolicyRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyRule)(nil)).Elem() } -func (o CorsRuleOutput) ToCorsRuleOutput() CorsRuleOutput { +func (o BlobInventoryPolicyRuleOutput) ToBlobInventoryPolicyRuleOutput() BlobInventoryPolicyRuleOutput { return o } -func (o CorsRuleOutput) ToCorsRuleOutputWithContext(ctx context.Context) CorsRuleOutput { +func (o BlobInventoryPolicyRuleOutput) ToBlobInventoryPolicyRuleOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleOutput { return o } -// Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. -func (o CorsRuleOutput) AllowedHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRule) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) -} - -// Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. -func (o CorsRuleOutput) AllowedMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRule) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) +// An object that defines the blob inventory policy rule. +func (o BlobInventoryPolicyRuleOutput) Definition() BlobInventoryPolicyDefinitionOutput { + return o.ApplyT(func(v BlobInventoryPolicyRule) BlobInventoryPolicyDefinition { return v.Definition }).(BlobInventoryPolicyDefinitionOutput) } -// Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains -func (o CorsRuleOutput) AllowedOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRule) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +// Container name where blob inventory files are stored. Must be pre-created. +func (o BlobInventoryPolicyRuleOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyRule) string { return v.Destination }).(pulumi.StringOutput) } -// Required if CorsRule element is present. A list of response headers to expose to CORS clients. -func (o CorsRuleOutput) ExposedHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRule) []string { return v.ExposedHeaders }).(pulumi.StringArrayOutput) +// Rule is enabled when set to true. +func (o BlobInventoryPolicyRuleOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BlobInventoryPolicyRule) bool { return v.Enabled }).(pulumi.BoolOutput) } -// Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. -func (o CorsRuleOutput) MaxAgeInSeconds() pulumi.IntOutput { - return o.ApplyT(func(v CorsRule) int { return v.MaxAgeInSeconds }).(pulumi.IntOutput) +// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. +func (o BlobInventoryPolicyRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyRule) string { return v.Name }).(pulumi.StringOutput) } -type CorsRuleArrayOutput struct{ *pulumi.OutputState } +type BlobInventoryPolicyRuleArrayOutput struct{ *pulumi.OutputState } -func (CorsRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]CorsRule)(nil)).Elem() +func (BlobInventoryPolicyRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BlobInventoryPolicyRule)(nil)).Elem() } -func (o CorsRuleArrayOutput) ToCorsRuleArrayOutput() CorsRuleArrayOutput { +func (o BlobInventoryPolicyRuleArrayOutput) ToBlobInventoryPolicyRuleArrayOutput() BlobInventoryPolicyRuleArrayOutput { return o } -func (o CorsRuleArrayOutput) ToCorsRuleArrayOutputWithContext(ctx context.Context) CorsRuleArrayOutput { +func (o BlobInventoryPolicyRuleArrayOutput) ToBlobInventoryPolicyRuleArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleArrayOutput { return o } -func (o CorsRuleArrayOutput) Index(i pulumi.IntInput) CorsRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) CorsRule { - return vs[0].([]CorsRule)[vs[1].(int)] - }).(CorsRuleOutput) +func (o BlobInventoryPolicyRuleArrayOutput) Index(i pulumi.IntInput) BlobInventoryPolicyRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobInventoryPolicyRule { + return vs[0].([]BlobInventoryPolicyRule)[vs[1].(int)] + }).(BlobInventoryPolicyRuleOutput) } -// Specifies a CORS rule for the Blob service. -type CorsRuleResponse struct { - // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. - AllowedHeaders []string `pulumi:"allowedHeaders"` - // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. - AllowedMethods []string `pulumi:"allowedMethods"` - // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains - AllowedOrigins []string `pulumi:"allowedOrigins"` - // Required if CorsRule element is present. A list of response headers to expose to CORS clients. - ExposedHeaders []string `pulumi:"exposedHeaders"` - // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. - MaxAgeInSeconds int `pulumi:"maxAgeInSeconds"` +// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. +type BlobInventoryPolicyRuleResponse struct { + // An object that defines the blob inventory policy rule. + Definition BlobInventoryPolicyDefinitionResponse `pulumi:"definition"` + // Container name where blob inventory files are stored. Must be pre-created. + Destination string `pulumi:"destination"` + // Rule is enabled when set to true. + Enabled bool `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name string `pulumi:"name"` } -// Specifies a CORS rule for the Blob service. -type CorsRuleResponseOutput struct{ *pulumi.OutputState } +// An object that wraps the blob inventory rule. Each rule is uniquely defined by name. +type BlobInventoryPolicyRuleResponseOutput struct{ *pulumi.OutputState } -func (CorsRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRuleResponse)(nil)).Elem() +func (BlobInventoryPolicyRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicyRuleResponse)(nil)).Elem() } -func (o CorsRuleResponseOutput) ToCorsRuleResponseOutput() CorsRuleResponseOutput { +func (o BlobInventoryPolicyRuleResponseOutput) ToBlobInventoryPolicyRuleResponseOutput() BlobInventoryPolicyRuleResponseOutput { return o } -func (o CorsRuleResponseOutput) ToCorsRuleResponseOutputWithContext(ctx context.Context) CorsRuleResponseOutput { +func (o BlobInventoryPolicyRuleResponseOutput) ToBlobInventoryPolicyRuleResponseOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleResponseOutput { return o } -// Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. -func (o CorsRuleResponseOutput) AllowedHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) -} - -// Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. -func (o CorsRuleResponseOutput) AllowedMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) +// An object that defines the blob inventory policy rule. +func (o BlobInventoryPolicyRuleResponseOutput) Definition() BlobInventoryPolicyDefinitionResponseOutput { + return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) BlobInventoryPolicyDefinitionResponse { return v.Definition }).(BlobInventoryPolicyDefinitionResponseOutput) } -// Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains -func (o CorsRuleResponseOutput) AllowedOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +// Container name where blob inventory files are stored. Must be pre-created. +func (o BlobInventoryPolicyRuleResponseOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) string { return v.Destination }).(pulumi.StringOutput) } -// Required if CorsRule element is present. A list of response headers to expose to CORS clients. -func (o CorsRuleResponseOutput) ExposedHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v CorsRuleResponse) []string { return v.ExposedHeaders }).(pulumi.StringArrayOutput) +// Rule is enabled when set to true. +func (o BlobInventoryPolicyRuleResponseOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) bool { return v.Enabled }).(pulumi.BoolOutput) } -// Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. -func (o CorsRuleResponseOutput) MaxAgeInSeconds() pulumi.IntOutput { - return o.ApplyT(func(v CorsRuleResponse) int { return v.MaxAgeInSeconds }).(pulumi.IntOutput) +// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. +func (o BlobInventoryPolicyRuleResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicyRuleResponse) string { return v.Name }).(pulumi.StringOutput) } -type CorsRuleResponseArrayOutput struct{ *pulumi.OutputState } +type BlobInventoryPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (CorsRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]CorsRuleResponse)(nil)).Elem() +func (BlobInventoryPolicyRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BlobInventoryPolicyRuleResponse)(nil)).Elem() } -func (o CorsRuleResponseArrayOutput) ToCorsRuleResponseArrayOutput() CorsRuleResponseArrayOutput { +func (o BlobInventoryPolicyRuleResponseArrayOutput) ToBlobInventoryPolicyRuleResponseArrayOutput() BlobInventoryPolicyRuleResponseArrayOutput { return o } -func (o CorsRuleResponseArrayOutput) ToCorsRuleResponseArrayOutputWithContext(ctx context.Context) CorsRuleResponseArrayOutput { +func (o BlobInventoryPolicyRuleResponseArrayOutput) ToBlobInventoryPolicyRuleResponseArrayOutputWithContext(ctx context.Context) BlobInventoryPolicyRuleResponseArrayOutput { return o } -func (o CorsRuleResponseArrayOutput) Index(i pulumi.IntInput) CorsRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) CorsRuleResponse { - return vs[0].([]CorsRuleResponse)[vs[1].(int)] - }).(CorsRuleResponseOutput) +func (o BlobInventoryPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) BlobInventoryPolicyRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobInventoryPolicyRuleResponse { + return vs[0].([]BlobInventoryPolicyRuleResponse)[vs[1].(int)] + }).(BlobInventoryPolicyRuleResponseOutput) } -// Sets the CORS rules. You can include up to five CorsRule elements in the request. -type CorsRules struct { - // The List of CORS rules. You can include up to five CorsRule elements in the request. - CorsRules []CorsRule `pulumi:"corsRules"` +// The storage account blob inventory policy rules. +type BlobInventoryPolicySchema struct { + // Policy is enabled if set to true. + Enabled bool `pulumi:"enabled"` + // The storage account blob inventory policy rules. The rule is applied when it is enabled. + Rules []BlobInventoryPolicyRule `pulumi:"rules"` + // The valid value is Inventory + Type string `pulumi:"type"` } -// CorsRulesInput is an input type that accepts CorsRulesArgs and CorsRulesOutput values. -// You can construct a concrete instance of `CorsRulesInput` via: +// BlobInventoryPolicySchemaInput is an input type that accepts BlobInventoryPolicySchemaArgs and BlobInventoryPolicySchemaOutput values. +// You can construct a concrete instance of `BlobInventoryPolicySchemaInput` via: // -// CorsRulesArgs{...} -type CorsRulesInput interface { +// BlobInventoryPolicySchemaArgs{...} +type BlobInventoryPolicySchemaInput interface { pulumi.Input - ToCorsRulesOutput() CorsRulesOutput - ToCorsRulesOutputWithContext(context.Context) CorsRulesOutput + ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput + ToBlobInventoryPolicySchemaOutputWithContext(context.Context) BlobInventoryPolicySchemaOutput } -// Sets the CORS rules. You can include up to five CorsRule elements in the request. -type CorsRulesArgs struct { - // The List of CORS rules. You can include up to five CorsRule elements in the request. - CorsRules CorsRuleArrayInput `pulumi:"corsRules"` +// The storage account blob inventory policy rules. +type BlobInventoryPolicySchemaArgs struct { + // Policy is enabled if set to true. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // The storage account blob inventory policy rules. The rule is applied when it is enabled. + Rules BlobInventoryPolicyRuleArrayInput `pulumi:"rules"` + // The valid value is Inventory + Type pulumi.StringInput `pulumi:"type"` } -func (CorsRulesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRules)(nil)).Elem() +func (BlobInventoryPolicySchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicySchema)(nil)).Elem() } -func (i CorsRulesArgs) ToCorsRulesOutput() CorsRulesOutput { - return i.ToCorsRulesOutputWithContext(context.Background()) +func (i BlobInventoryPolicySchemaArgs) ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput { + return i.ToBlobInventoryPolicySchemaOutputWithContext(context.Background()) } -func (i CorsRulesArgs) ToCorsRulesOutputWithContext(ctx context.Context) CorsRulesOutput { - return pulumi.ToOutputWithContext(ctx, i).(CorsRulesOutput) +func (i BlobInventoryPolicySchemaArgs) ToBlobInventoryPolicySchemaOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(BlobInventoryPolicySchemaOutput) } -func (i CorsRulesArgs) ToCorsRulesPtrOutput() CorsRulesPtrOutput { - return i.ToCorsRulesPtrOutputWithContext(context.Background()) -} +// The storage account blob inventory policy rules. +type BlobInventoryPolicySchemaOutput struct{ *pulumi.OutputState } -func (i CorsRulesArgs) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CorsRulesOutput).ToCorsRulesPtrOutputWithContext(ctx) +func (BlobInventoryPolicySchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicySchema)(nil)).Elem() } -// CorsRulesPtrInput is an input type that accepts CorsRulesArgs, CorsRulesPtr and CorsRulesPtrOutput values. -// You can construct a concrete instance of `CorsRulesPtrInput` via: -// -// CorsRulesArgs{...} -// -// or: -// -// nil -type CorsRulesPtrInput interface { - pulumi.Input - - ToCorsRulesPtrOutput() CorsRulesPtrOutput - ToCorsRulesPtrOutputWithContext(context.Context) CorsRulesPtrOutput +func (o BlobInventoryPolicySchemaOutput) ToBlobInventoryPolicySchemaOutput() BlobInventoryPolicySchemaOutput { + return o } -type corsRulesPtrType CorsRulesArgs +func (o BlobInventoryPolicySchemaOutput) ToBlobInventoryPolicySchemaOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaOutput { + return o +} -func CorsRulesPtr(v *CorsRulesArgs) CorsRulesPtrInput { - return (*corsRulesPtrType)(v) +// Policy is enabled if set to true. +func (o BlobInventoryPolicySchemaOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BlobInventoryPolicySchema) bool { return v.Enabled }).(pulumi.BoolOutput) } -func (*corsRulesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CorsRules)(nil)).Elem() +// The storage account blob inventory policy rules. The rule is applied when it is enabled. +func (o BlobInventoryPolicySchemaOutput) Rules() BlobInventoryPolicyRuleArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicySchema) []BlobInventoryPolicyRule { return v.Rules }).(BlobInventoryPolicyRuleArrayOutput) } -func (i *corsRulesPtrType) ToCorsRulesPtrOutput() CorsRulesPtrOutput { - return i.ToCorsRulesPtrOutputWithContext(context.Background()) +// The valid value is Inventory +func (o BlobInventoryPolicySchemaOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicySchema) string { return v.Type }).(pulumi.StringOutput) } -func (i *corsRulesPtrType) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CorsRulesPtrOutput) +// The storage account blob inventory policy rules. +type BlobInventoryPolicySchemaResponse struct { + // Deprecated Property from API version 2021-04-01 onwards, the required destination container name must be specified at the rule level 'policy.rule.destination' + Destination string `pulumi:"destination"` + // Policy is enabled if set to true. + Enabled bool `pulumi:"enabled"` + // The storage account blob inventory policy rules. The rule is applied when it is enabled. + Rules []BlobInventoryPolicyRuleResponse `pulumi:"rules"` + // The valid value is Inventory + Type string `pulumi:"type"` } -// Sets the CORS rules. You can include up to five CorsRule elements in the request. -type CorsRulesOutput struct{ *pulumi.OutputState } +// The storage account blob inventory policy rules. +type BlobInventoryPolicySchemaResponseOutput struct{ *pulumi.OutputState } -func (CorsRulesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRules)(nil)).Elem() +func (BlobInventoryPolicySchemaResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobInventoryPolicySchemaResponse)(nil)).Elem() } -func (o CorsRulesOutput) ToCorsRulesOutput() CorsRulesOutput { +func (o BlobInventoryPolicySchemaResponseOutput) ToBlobInventoryPolicySchemaResponseOutput() BlobInventoryPolicySchemaResponseOutput { return o } -func (o CorsRulesOutput) ToCorsRulesOutputWithContext(ctx context.Context) CorsRulesOutput { +func (o BlobInventoryPolicySchemaResponseOutput) ToBlobInventoryPolicySchemaResponseOutputWithContext(ctx context.Context) BlobInventoryPolicySchemaResponseOutput { return o } -func (o CorsRulesOutput) ToCorsRulesPtrOutput() CorsRulesPtrOutput { - return o.ToCorsRulesPtrOutputWithContext(context.Background()) +// Deprecated Property from API version 2021-04-01 onwards, the required destination container name must be specified at the rule level 'policy.rule.destination' +func (o BlobInventoryPolicySchemaResponseOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) string { return v.Destination }).(pulumi.StringOutput) } -func (o CorsRulesOutput) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CorsRules) *CorsRules { - return &v - }).(CorsRulesPtrOutput) +// Policy is enabled if set to true. +func (o BlobInventoryPolicySchemaResponseOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) bool { return v.Enabled }).(pulumi.BoolOutput) } -// The List of CORS rules. You can include up to five CorsRule elements in the request. -func (o CorsRulesOutput) CorsRules() CorsRuleArrayOutput { - return o.ApplyT(func(v CorsRules) []CorsRule { return v.CorsRules }).(CorsRuleArrayOutput) +// The storage account blob inventory policy rules. The rule is applied when it is enabled. +func (o BlobInventoryPolicySchemaResponseOutput) Rules() BlobInventoryPolicyRuleResponseArrayOutput { + return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) []BlobInventoryPolicyRuleResponse { return v.Rules }).(BlobInventoryPolicyRuleResponseArrayOutput) } -type CorsRulesPtrOutput struct{ *pulumi.OutputState } +// The valid value is Inventory +func (o BlobInventoryPolicySchemaResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BlobInventoryPolicySchemaResponse) string { return v.Type }).(pulumi.StringOutput) +} -func (CorsRulesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CorsRules)(nil)).Elem() +// Blob restore parameters +type BlobRestoreParametersResponse struct { + // Blob ranges to restore. + BlobRanges []BlobRestoreRangeResponse `pulumi:"blobRanges"` + // Restore blob to the specified time. + TimeToRestore string `pulumi:"timeToRestore"` } -func (o CorsRulesPtrOutput) ToCorsRulesPtrOutput() CorsRulesPtrOutput { +// Blob restore parameters +type BlobRestoreParametersResponseOutput struct{ *pulumi.OutputState } + +func (BlobRestoreParametersResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobRestoreParametersResponse)(nil)).Elem() +} + +func (o BlobRestoreParametersResponseOutput) ToBlobRestoreParametersResponseOutput() BlobRestoreParametersResponseOutput { return o } -func (o CorsRulesPtrOutput) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { +func (o BlobRestoreParametersResponseOutput) ToBlobRestoreParametersResponseOutputWithContext(ctx context.Context) BlobRestoreParametersResponseOutput { return o } -func (o CorsRulesPtrOutput) Elem() CorsRulesOutput { - return o.ApplyT(func(v *CorsRules) CorsRules { - if v != nil { - return *v - } - var ret CorsRules - return ret - }).(CorsRulesOutput) +// Blob ranges to restore. +func (o BlobRestoreParametersResponseOutput) BlobRanges() BlobRestoreRangeResponseArrayOutput { + return o.ApplyT(func(v BlobRestoreParametersResponse) []BlobRestoreRangeResponse { return v.BlobRanges }).(BlobRestoreRangeResponseArrayOutput) } -// The List of CORS rules. You can include up to five CorsRule elements in the request. -func (o CorsRulesPtrOutput) CorsRules() CorsRuleArrayOutput { - return o.ApplyT(func(v *CorsRules) []CorsRule { - if v == nil { - return nil - } - return v.CorsRules - }).(CorsRuleArrayOutput) +// Restore blob to the specified time. +func (o BlobRestoreParametersResponseOutput) TimeToRestore() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreParametersResponse) string { return v.TimeToRestore }).(pulumi.StringOutput) } -// Sets the CORS rules. You can include up to five CorsRule elements in the request. -type CorsRulesResponse struct { - // The List of CORS rules. You can include up to five CorsRule elements in the request. - CorsRules []CorsRuleResponse `pulumi:"corsRules"` +// Blob range +type BlobRestoreRangeResponse struct { + // Blob end range. This is exclusive. Empty means account end. + EndRange string `pulumi:"endRange"` + // Blob start range. This is inclusive. Empty means account start. + StartRange string `pulumi:"startRange"` } -// Sets the CORS rules. You can include up to five CorsRule elements in the request. -type CorsRulesResponseOutput struct{ *pulumi.OutputState } +// Blob range +type BlobRestoreRangeResponseOutput struct{ *pulumi.OutputState } -func (CorsRulesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CorsRulesResponse)(nil)).Elem() +func (BlobRestoreRangeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobRestoreRangeResponse)(nil)).Elem() } -func (o CorsRulesResponseOutput) ToCorsRulesResponseOutput() CorsRulesResponseOutput { +func (o BlobRestoreRangeResponseOutput) ToBlobRestoreRangeResponseOutput() BlobRestoreRangeResponseOutput { return o } -func (o CorsRulesResponseOutput) ToCorsRulesResponseOutputWithContext(ctx context.Context) CorsRulesResponseOutput { +func (o BlobRestoreRangeResponseOutput) ToBlobRestoreRangeResponseOutputWithContext(ctx context.Context) BlobRestoreRangeResponseOutput { return o } -// The List of CORS rules. You can include up to five CorsRule elements in the request. -func (o CorsRulesResponseOutput) CorsRules() CorsRuleResponseArrayOutput { - return o.ApplyT(func(v CorsRulesResponse) []CorsRuleResponse { return v.CorsRules }).(CorsRuleResponseArrayOutput) +// Blob end range. This is exclusive. Empty means account end. +func (o BlobRestoreRangeResponseOutput) EndRange() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreRangeResponse) string { return v.EndRange }).(pulumi.StringOutput) } -type CorsRulesResponsePtrOutput struct{ *pulumi.OutputState } +// Blob start range. This is inclusive. Empty means account start. +func (o BlobRestoreRangeResponseOutput) StartRange() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreRangeResponse) string { return v.StartRange }).(pulumi.StringOutput) +} -func (CorsRulesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CorsRulesResponse)(nil)).Elem() +type BlobRestoreRangeResponseArrayOutput struct{ *pulumi.OutputState } + +func (BlobRestoreRangeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BlobRestoreRangeResponse)(nil)).Elem() } -func (o CorsRulesResponsePtrOutput) ToCorsRulesResponsePtrOutput() CorsRulesResponsePtrOutput { +func (o BlobRestoreRangeResponseArrayOutput) ToBlobRestoreRangeResponseArrayOutput() BlobRestoreRangeResponseArrayOutput { return o } -func (o CorsRulesResponsePtrOutput) ToCorsRulesResponsePtrOutputWithContext(ctx context.Context) CorsRulesResponsePtrOutput { +func (o BlobRestoreRangeResponseArrayOutput) ToBlobRestoreRangeResponseArrayOutputWithContext(ctx context.Context) BlobRestoreRangeResponseArrayOutput { return o } -func (o CorsRulesResponsePtrOutput) Elem() CorsRulesResponseOutput { - return o.ApplyT(func(v *CorsRulesResponse) CorsRulesResponse { - if v != nil { - return *v - } - var ret CorsRulesResponse - return ret - }).(CorsRulesResponseOutput) +func (o BlobRestoreRangeResponseArrayOutput) Index(i pulumi.IntInput) BlobRestoreRangeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BlobRestoreRangeResponse { + return vs[0].([]BlobRestoreRangeResponse)[vs[1].(int)] + }).(BlobRestoreRangeResponseOutput) } -// The List of CORS rules. You can include up to five CorsRule elements in the request. -func (o CorsRulesResponsePtrOutput) CorsRules() CorsRuleResponseArrayOutput { - return o.ApplyT(func(v *CorsRulesResponse) []CorsRuleResponse { - if v == nil { - return nil - } - return v.CorsRules - }).(CorsRuleResponseArrayOutput) +// Blob restore status. +type BlobRestoreStatusResponse struct { + // Failure reason when blob restore is failed. + FailureReason string `pulumi:"failureReason"` + // Blob restore request parameters. + Parameters BlobRestoreParametersResponse `pulumi:"parameters"` + // Id for tracking blob restore request. + RestoreId string `pulumi:"restoreId"` + // The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. + Status string `pulumi:"status"` } -// The custom domain assigned to this storage account. This can be set via Update. -type CustomDomain struct { - // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. - Name string `pulumi:"name"` - // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. - UseSubDomainName *bool `pulumi:"useSubDomainName"` +// Blob restore status. +type BlobRestoreStatusResponseOutput struct{ *pulumi.OutputState } + +func (BlobRestoreStatusResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BlobRestoreStatusResponse)(nil)).Elem() } -// CustomDomainInput is an input type that accepts CustomDomainArgs and CustomDomainOutput values. -// You can construct a concrete instance of `CustomDomainInput` via: +func (o BlobRestoreStatusResponseOutput) ToBlobRestoreStatusResponseOutput() BlobRestoreStatusResponseOutput { + return o +} + +func (o BlobRestoreStatusResponseOutput) ToBlobRestoreStatusResponseOutputWithContext(ctx context.Context) BlobRestoreStatusResponseOutput { + return o +} + +// Failure reason when blob restore is failed. +func (o BlobRestoreStatusResponseOutput) FailureReason() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.FailureReason }).(pulumi.StringOutput) +} + +// Blob restore request parameters. +func (o BlobRestoreStatusResponseOutput) Parameters() BlobRestoreParametersResponseOutput { + return o.ApplyT(func(v BlobRestoreStatusResponse) BlobRestoreParametersResponse { return v.Parameters }).(BlobRestoreParametersResponseOutput) +} + +// Id for tracking blob restore request. +func (o BlobRestoreStatusResponseOutput) RestoreId() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.RestoreId }).(pulumi.StringOutput) +} + +// The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. +func (o BlobRestoreStatusResponseOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BlobRestoreStatusResponse) string { return v.Status }).(pulumi.StringOutput) +} + +// The blob service properties for change feed events. +type ChangeFeed struct { + // Indicates whether change feed event logging is enabled for the Blob service. + Enabled *bool `pulumi:"enabled"` + // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. + RetentionInDays *int `pulumi:"retentionInDays"` +} + +// ChangeFeedInput is an input type that accepts ChangeFeedArgs and ChangeFeedOutput values. +// You can construct a concrete instance of `ChangeFeedInput` via: // -// CustomDomainArgs{...} -type CustomDomainInput interface { +// ChangeFeedArgs{...} +type ChangeFeedInput interface { pulumi.Input - ToCustomDomainOutput() CustomDomainOutput - ToCustomDomainOutputWithContext(context.Context) CustomDomainOutput + ToChangeFeedOutput() ChangeFeedOutput + ToChangeFeedOutputWithContext(context.Context) ChangeFeedOutput } -// The custom domain assigned to this storage account. This can be set via Update. -type CustomDomainArgs struct { - // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. - Name pulumi.StringInput `pulumi:"name"` - // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. - UseSubDomainName pulumi.BoolPtrInput `pulumi:"useSubDomainName"` +// The blob service properties for change feed events. +type ChangeFeedArgs struct { + // Indicates whether change feed event logging is enabled for the Blob service. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. + RetentionInDays pulumi.IntPtrInput `pulumi:"retentionInDays"` } -func (CustomDomainArgs) ElementType() reflect.Type { - return reflect.TypeOf((*CustomDomain)(nil)).Elem() +func (ChangeFeedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ChangeFeed)(nil)).Elem() } -func (i CustomDomainArgs) ToCustomDomainOutput() CustomDomainOutput { - return i.ToCustomDomainOutputWithContext(context.Background()) +func (i ChangeFeedArgs) ToChangeFeedOutput() ChangeFeedOutput { + return i.ToChangeFeedOutputWithContext(context.Background()) } -func (i CustomDomainArgs) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { - return pulumi.ToOutputWithContext(ctx, i).(CustomDomainOutput) +func (i ChangeFeedArgs) ToChangeFeedOutputWithContext(ctx context.Context) ChangeFeedOutput { + return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedOutput) } -func (i CustomDomainArgs) ToCustomDomainPtrOutput() CustomDomainPtrOutput { - return i.ToCustomDomainPtrOutputWithContext(context.Background()) +func (i ChangeFeedArgs) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { + return i.ToChangeFeedPtrOutputWithContext(context.Background()) } -func (i CustomDomainArgs) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CustomDomainOutput).ToCustomDomainPtrOutputWithContext(ctx) +func (i ChangeFeedArgs) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedOutput).ToChangeFeedPtrOutputWithContext(ctx) } -// CustomDomainPtrInput is an input type that accepts CustomDomainArgs, CustomDomainPtr and CustomDomainPtrOutput values. -// You can construct a concrete instance of `CustomDomainPtrInput` via: +// ChangeFeedPtrInput is an input type that accepts ChangeFeedArgs, ChangeFeedPtr and ChangeFeedPtrOutput values. +// You can construct a concrete instance of `ChangeFeedPtrInput` via: // -// CustomDomainArgs{...} +// ChangeFeedArgs{...} // // or: // // nil -type CustomDomainPtrInput interface { +type ChangeFeedPtrInput interface { pulumi.Input - ToCustomDomainPtrOutput() CustomDomainPtrOutput - ToCustomDomainPtrOutputWithContext(context.Context) CustomDomainPtrOutput + ToChangeFeedPtrOutput() ChangeFeedPtrOutput + ToChangeFeedPtrOutputWithContext(context.Context) ChangeFeedPtrOutput } -type customDomainPtrType CustomDomainArgs +type changeFeedPtrType ChangeFeedArgs -func CustomDomainPtr(v *CustomDomainArgs) CustomDomainPtrInput { - return (*customDomainPtrType)(v) +func ChangeFeedPtr(v *ChangeFeedArgs) ChangeFeedPtrInput { + return (*changeFeedPtrType)(v) } -func (*customDomainPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**CustomDomain)(nil)).Elem() +func (*changeFeedPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ChangeFeed)(nil)).Elem() } -func (i *customDomainPtrType) ToCustomDomainPtrOutput() CustomDomainPtrOutput { - return i.ToCustomDomainPtrOutputWithContext(context.Background()) +func (i *changeFeedPtrType) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { + return i.ToChangeFeedPtrOutputWithContext(context.Background()) } -func (i *customDomainPtrType) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(CustomDomainPtrOutput) +func (i *changeFeedPtrType) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ChangeFeedPtrOutput) } -// The custom domain assigned to this storage account. This can be set via Update. -type CustomDomainOutput struct{ *pulumi.OutputState } +// The blob service properties for change feed events. +type ChangeFeedOutput struct{ *pulumi.OutputState } -func (CustomDomainOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CustomDomain)(nil)).Elem() +func (ChangeFeedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ChangeFeed)(nil)).Elem() } -func (o CustomDomainOutput) ToCustomDomainOutput() CustomDomainOutput { +func (o ChangeFeedOutput) ToChangeFeedOutput() ChangeFeedOutput { return o } -func (o CustomDomainOutput) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { +func (o ChangeFeedOutput) ToChangeFeedOutputWithContext(ctx context.Context) ChangeFeedOutput { return o } -func (o CustomDomainOutput) ToCustomDomainPtrOutput() CustomDomainPtrOutput { - return o.ToCustomDomainPtrOutputWithContext(context.Background()) +func (o ChangeFeedOutput) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { + return o.ToChangeFeedPtrOutputWithContext(context.Background()) } -func (o CustomDomainOutput) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomDomain) *CustomDomain { +func (o ChangeFeedOutput) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ChangeFeed) *ChangeFeed { return &v - }).(CustomDomainPtrOutput) + }).(ChangeFeedPtrOutput) } -// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. -func (o CustomDomainOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v CustomDomain) string { return v.Name }).(pulumi.StringOutput) +// Indicates whether change feed event logging is enabled for the Blob service. +func (o ChangeFeedOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ChangeFeed) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. -func (o CustomDomainOutput) UseSubDomainName() pulumi.BoolPtrOutput { - return o.ApplyT(func(v CustomDomain) *bool { return v.UseSubDomainName }).(pulumi.BoolPtrOutput) +// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. +func (o ChangeFeedOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v ChangeFeed) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) } -type CustomDomainPtrOutput struct{ *pulumi.OutputState } +type ChangeFeedPtrOutput struct{ *pulumi.OutputState } -func (CustomDomainPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**CustomDomain)(nil)).Elem() +func (ChangeFeedPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ChangeFeed)(nil)).Elem() } -func (o CustomDomainPtrOutput) ToCustomDomainPtrOutput() CustomDomainPtrOutput { +func (o ChangeFeedPtrOutput) ToChangeFeedPtrOutput() ChangeFeedPtrOutput { return o } -func (o CustomDomainPtrOutput) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { +func (o ChangeFeedPtrOutput) ToChangeFeedPtrOutputWithContext(ctx context.Context) ChangeFeedPtrOutput { return o } -func (o CustomDomainPtrOutput) Elem() CustomDomainOutput { - return o.ApplyT(func(v *CustomDomain) CustomDomain { +func (o ChangeFeedPtrOutput) Elem() ChangeFeedOutput { + return o.ApplyT(func(v *ChangeFeed) ChangeFeed { if v != nil { return *v } - var ret CustomDomain + var ret ChangeFeed return ret - }).(CustomDomainOutput) + }).(ChangeFeedOutput) } -// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. -func (o CustomDomainPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *CustomDomain) *string { - if v == nil { +// Indicates whether change feed event logging is enabled for the Blob service. +func (o ChangeFeedPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ChangeFeed) *bool { + if v == nil { return nil } - return &v.Name - }).(pulumi.StringPtrOutput) + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. -func (o CustomDomainPtrOutput) UseSubDomainName() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *CustomDomain) *bool { +// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. +func (o ChangeFeedPtrOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ChangeFeed) *int { if v == nil { return nil } - return v.UseSubDomainName - }).(pulumi.BoolPtrOutput) + return v.RetentionInDays + }).(pulumi.IntPtrOutput) } -// The custom domain assigned to this storage account. This can be set via Update. -type CustomDomainResponse struct { - // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. - Name string `pulumi:"name"` - // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. - UseSubDomainName *bool `pulumi:"useSubDomainName"` +// The blob service properties for change feed events. +type ChangeFeedResponse struct { + // Indicates whether change feed event logging is enabled for the Blob service. + Enabled *bool `pulumi:"enabled"` + // Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. + RetentionInDays *int `pulumi:"retentionInDays"` } -// The custom domain assigned to this storage account. This can be set via Update. -type CustomDomainResponseOutput struct{ *pulumi.OutputState } +// The blob service properties for change feed events. +type ChangeFeedResponseOutput struct{ *pulumi.OutputState } -func (CustomDomainResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*CustomDomainResponse)(nil)).Elem() +func (ChangeFeedResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ChangeFeedResponse)(nil)).Elem() } -func (o CustomDomainResponseOutput) ToCustomDomainResponseOutput() CustomDomainResponseOutput { +func (o ChangeFeedResponseOutput) ToChangeFeedResponseOutput() ChangeFeedResponseOutput { return o } -func (o CustomDomainResponseOutput) ToCustomDomainResponseOutputWithContext(ctx context.Context) CustomDomainResponseOutput { +func (o ChangeFeedResponseOutput) ToChangeFeedResponseOutputWithContext(ctx context.Context) ChangeFeedResponseOutput { return o } -// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. -func (o CustomDomainResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v CustomDomainResponse) string { return v.Name }).(pulumi.StringOutput) -} - -// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. -func (o CustomDomainResponseOutput) UseSubDomainName() pulumi.BoolPtrOutput { - return o.ApplyT(func(v CustomDomainResponse) *bool { return v.UseSubDomainName }).(pulumi.BoolPtrOutput) +// Indicates whether change feed event logging is enabled for the Blob service. +func (o ChangeFeedResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ChangeFeedResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Object to define the number of days after creation. -type DateAfterCreation struct { - // Value indicating the age in days after creation - DaysAfterCreationGreaterThan float64 `pulumi:"daysAfterCreationGreaterThan"` +// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. +func (o ChangeFeedResponseOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v ChangeFeedResponse) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) } -// DateAfterCreationInput is an input type that accepts DateAfterCreationArgs and DateAfterCreationOutput values. -// You can construct a concrete instance of `DateAfterCreationInput` via: -// -// DateAfterCreationArgs{...} -type DateAfterCreationInput interface { - pulumi.Input +type ChangeFeedResponsePtrOutput struct{ *pulumi.OutputState } - ToDateAfterCreationOutput() DateAfterCreationOutput - ToDateAfterCreationOutputWithContext(context.Context) DateAfterCreationOutput +func (ChangeFeedResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ChangeFeedResponse)(nil)).Elem() } -// Object to define the number of days after creation. -type DateAfterCreationArgs struct { - // Value indicating the age in days after creation - DaysAfterCreationGreaterThan pulumi.Float64Input `pulumi:"daysAfterCreationGreaterThan"` +func (o ChangeFeedResponsePtrOutput) ToChangeFeedResponsePtrOutput() ChangeFeedResponsePtrOutput { + return o } -func (DateAfterCreationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterCreation)(nil)).Elem() +func (o ChangeFeedResponsePtrOutput) ToChangeFeedResponsePtrOutputWithContext(ctx context.Context) ChangeFeedResponsePtrOutput { + return o } -func (i DateAfterCreationArgs) ToDateAfterCreationOutput() DateAfterCreationOutput { - return i.ToDateAfterCreationOutputWithContext(context.Background()) +func (o ChangeFeedResponsePtrOutput) Elem() ChangeFeedResponseOutput { + return o.ApplyT(func(v *ChangeFeedResponse) ChangeFeedResponse { + if v != nil { + return *v + } + var ret ChangeFeedResponse + return ret + }).(ChangeFeedResponseOutput) } -func (i DateAfterCreationArgs) ToDateAfterCreationOutputWithContext(ctx context.Context) DateAfterCreationOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationOutput) +// Indicates whether change feed event logging is enabled for the Blob service. +func (o ChangeFeedResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ChangeFeedResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) } -func (i DateAfterCreationArgs) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { - return i.ToDateAfterCreationPtrOutputWithContext(context.Background()) +// Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. +func (o ChangeFeedResponsePtrOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ChangeFeedResponse) *int { + if v == nil { + return nil + } + return v.RetentionInDays + }).(pulumi.IntPtrOutput) } -func (i DateAfterCreationArgs) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationOutput).ToDateAfterCreationPtrOutputWithContext(ctx) +// Specifies a CORS rule for the Blob service. +type CorsRule struct { + // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. + AllowedHeaders []string `pulumi:"allowedHeaders"` + // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. + AllowedMethods []string `pulumi:"allowedMethods"` + // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Required if CorsRule element is present. A list of response headers to expose to CORS clients. + ExposedHeaders []string `pulumi:"exposedHeaders"` + // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. + MaxAgeInSeconds int `pulumi:"maxAgeInSeconds"` } -// DateAfterCreationPtrInput is an input type that accepts DateAfterCreationArgs, DateAfterCreationPtr and DateAfterCreationPtrOutput values. -// You can construct a concrete instance of `DateAfterCreationPtrInput` via: -// -// DateAfterCreationArgs{...} -// -// or: +// CorsRuleInput is an input type that accepts CorsRuleArgs and CorsRuleOutput values. +// You can construct a concrete instance of `CorsRuleInput` via: // -// nil -type DateAfterCreationPtrInput interface { +// CorsRuleArgs{...} +type CorsRuleInput interface { pulumi.Input - ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput - ToDateAfterCreationPtrOutputWithContext(context.Context) DateAfterCreationPtrOutput + ToCorsRuleOutput() CorsRuleOutput + ToCorsRuleOutputWithContext(context.Context) CorsRuleOutput } -type dateAfterCreationPtrType DateAfterCreationArgs - -func DateAfterCreationPtr(v *DateAfterCreationArgs) DateAfterCreationPtrInput { - return (*dateAfterCreationPtrType)(v) +// Specifies a CORS rule for the Blob service. +type CorsRuleArgs struct { + // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. + AllowedHeaders pulumi.StringArrayInput `pulumi:"allowedHeaders"` + // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. + AllowedMethods pulumi.StringArrayInput `pulumi:"allowedMethods"` + // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains + AllowedOrigins pulumi.StringArrayInput `pulumi:"allowedOrigins"` + // Required if CorsRule element is present. A list of response headers to expose to CORS clients. + ExposedHeaders pulumi.StringArrayInput `pulumi:"exposedHeaders"` + // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. + MaxAgeInSeconds pulumi.IntInput `pulumi:"maxAgeInSeconds"` } -func (*dateAfterCreationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterCreation)(nil)).Elem() +func (CorsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRule)(nil)).Elem() } -func (i *dateAfterCreationPtrType) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { - return i.ToDateAfterCreationPtrOutputWithContext(context.Background()) +func (i CorsRuleArgs) ToCorsRuleOutput() CorsRuleOutput { + return i.ToCorsRuleOutputWithContext(context.Background()) } -func (i *dateAfterCreationPtrType) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationPtrOutput) +func (i CorsRuleArgs) ToCorsRuleOutputWithContext(ctx context.Context) CorsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(CorsRuleOutput) } -// Object to define the number of days after creation. -type DateAfterCreationOutput struct{ *pulumi.OutputState } - -func (DateAfterCreationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterCreation)(nil)).Elem() -} +// CorsRuleArrayInput is an input type that accepts CorsRuleArray and CorsRuleArrayOutput values. +// You can construct a concrete instance of `CorsRuleArrayInput` via: +// +// CorsRuleArray{ CorsRuleArgs{...} } +type CorsRuleArrayInput interface { + pulumi.Input -func (o DateAfterCreationOutput) ToDateAfterCreationOutput() DateAfterCreationOutput { - return o + ToCorsRuleArrayOutput() CorsRuleArrayOutput + ToCorsRuleArrayOutputWithContext(context.Context) CorsRuleArrayOutput } -func (o DateAfterCreationOutput) ToDateAfterCreationOutputWithContext(ctx context.Context) DateAfterCreationOutput { - return o -} +type CorsRuleArray []CorsRuleInput -func (o DateAfterCreationOutput) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { - return o.ToDateAfterCreationPtrOutputWithContext(context.Background()) +func (CorsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CorsRule)(nil)).Elem() } -func (o DateAfterCreationOutput) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DateAfterCreation) *DateAfterCreation { - return &v - }).(DateAfterCreationPtrOutput) +func (i CorsRuleArray) ToCorsRuleArrayOutput() CorsRuleArrayOutput { + return i.ToCorsRuleArrayOutputWithContext(context.Background()) } -// Value indicating the age in days after creation -func (o DateAfterCreationOutput) DaysAfterCreationGreaterThan() pulumi.Float64Output { - return o.ApplyT(func(v DateAfterCreation) float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64Output) +func (i CorsRuleArray) ToCorsRuleArrayOutputWithContext(ctx context.Context) CorsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CorsRuleArrayOutput) } -type DateAfterCreationPtrOutput struct{ *pulumi.OutputState } +// Specifies a CORS rule for the Blob service. +type CorsRuleOutput struct{ *pulumi.OutputState } -func (DateAfterCreationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterCreation)(nil)).Elem() +func (CorsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRule)(nil)).Elem() } -func (o DateAfterCreationPtrOutput) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { +func (o CorsRuleOutput) ToCorsRuleOutput() CorsRuleOutput { return o } -func (o DateAfterCreationPtrOutput) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { +func (o CorsRuleOutput) ToCorsRuleOutputWithContext(ctx context.Context) CorsRuleOutput { return o } -func (o DateAfterCreationPtrOutput) Elem() DateAfterCreationOutput { - return o.ApplyT(func(v *DateAfterCreation) DateAfterCreation { - if v != nil { - return *v - } - var ret DateAfterCreation - return ret - }).(DateAfterCreationOutput) +// Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. +func (o CorsRuleOutput) AllowedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRule) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) } -// Value indicating the age in days after creation -func (o DateAfterCreationPtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterCreation) *float64 { - if v == nil { - return nil - } - return &v.DaysAfterCreationGreaterThan - }).(pulumi.Float64PtrOutput) +// Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. +func (o CorsRuleOutput) AllowedMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRule) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) } -// Object to define the number of days after creation. -type DateAfterCreationResponse struct { - // Value indicating the age in days after creation - DaysAfterCreationGreaterThan float64 `pulumi:"daysAfterCreationGreaterThan"` +// Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains +func (o CorsRuleOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRule) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) } -// Object to define the number of days after creation. -type DateAfterCreationResponseOutput struct{ *pulumi.OutputState } - -func (DateAfterCreationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterCreationResponse)(nil)).Elem() +// Required if CorsRule element is present. A list of response headers to expose to CORS clients. +func (o CorsRuleOutput) ExposedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRule) []string { return v.ExposedHeaders }).(pulumi.StringArrayOutput) } -func (o DateAfterCreationResponseOutput) ToDateAfterCreationResponseOutput() DateAfterCreationResponseOutput { - return o +// Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. +func (o CorsRuleOutput) MaxAgeInSeconds() pulumi.IntOutput { + return o.ApplyT(func(v CorsRule) int { return v.MaxAgeInSeconds }).(pulumi.IntOutput) } -func (o DateAfterCreationResponseOutput) ToDateAfterCreationResponseOutputWithContext(ctx context.Context) DateAfterCreationResponseOutput { - return o -} +type CorsRuleArrayOutput struct{ *pulumi.OutputState } -// Value indicating the age in days after creation -func (o DateAfterCreationResponseOutput) DaysAfterCreationGreaterThan() pulumi.Float64Output { - return o.ApplyT(func(v DateAfterCreationResponse) float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64Output) +func (CorsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CorsRule)(nil)).Elem() } -type DateAfterCreationResponsePtrOutput struct{ *pulumi.OutputState } +func (o CorsRuleArrayOutput) ToCorsRuleArrayOutput() CorsRuleArrayOutput { + return o +} -func (DateAfterCreationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterCreationResponse)(nil)).Elem() +func (o CorsRuleArrayOutput) ToCorsRuleArrayOutputWithContext(ctx context.Context) CorsRuleArrayOutput { + return o } -func (o DateAfterCreationResponsePtrOutput) ToDateAfterCreationResponsePtrOutput() DateAfterCreationResponsePtrOutput { +func (o CorsRuleArrayOutput) Index(i pulumi.IntInput) CorsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CorsRule { + return vs[0].([]CorsRule)[vs[1].(int)] + }).(CorsRuleOutput) +} + +// Specifies a CORS rule for the Blob service. +type CorsRuleResponse struct { + // Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. + AllowedHeaders []string `pulumi:"allowedHeaders"` + // Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. + AllowedMethods []string `pulumi:"allowedMethods"` + // Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Required if CorsRule element is present. A list of response headers to expose to CORS clients. + ExposedHeaders []string `pulumi:"exposedHeaders"` + // Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. + MaxAgeInSeconds int `pulumi:"maxAgeInSeconds"` +} + +// Specifies a CORS rule for the Blob service. +type CorsRuleResponseOutput struct{ *pulumi.OutputState } + +func (CorsRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRuleResponse)(nil)).Elem() +} + +func (o CorsRuleResponseOutput) ToCorsRuleResponseOutput() CorsRuleResponseOutput { return o } -func (o DateAfterCreationResponsePtrOutput) ToDateAfterCreationResponsePtrOutputWithContext(ctx context.Context) DateAfterCreationResponsePtrOutput { +func (o CorsRuleResponseOutput) ToCorsRuleResponseOutputWithContext(ctx context.Context) CorsRuleResponseOutput { return o } -func (o DateAfterCreationResponsePtrOutput) Elem() DateAfterCreationResponseOutput { - return o.ApplyT(func(v *DateAfterCreationResponse) DateAfterCreationResponse { - if v != nil { - return *v - } - var ret DateAfterCreationResponse - return ret - }).(DateAfterCreationResponseOutput) +// Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. +func (o CorsRuleResponseOutput) AllowedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) } -// Value indicating the age in days after creation -func (o DateAfterCreationResponsePtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterCreationResponse) *float64 { - if v == nil { - return nil - } - return &v.DaysAfterCreationGreaterThan - }).(pulumi.Float64PtrOutput) +// Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. +func (o CorsRuleResponseOutput) AllowedMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) } -// Object to define the number of days after object last modification Or last access. Properties daysAfterModificationGreaterThan and daysAfterLastAccessTimeGreaterThan are mutually exclusive. -type DateAfterModification struct { - // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy - DaysAfterLastAccessTimeGreaterThan *float64 `pulumi:"daysAfterLastAccessTimeGreaterThan"` - // Value indicating the age in days after last modification - DaysAfterModificationGreaterThan *float64 `pulumi:"daysAfterModificationGreaterThan"` +// Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains +func (o CorsRuleResponseOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRuleResponse) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) } -// DateAfterModificationInput is an input type that accepts DateAfterModificationArgs and DateAfterModificationOutput values. -// You can construct a concrete instance of `DateAfterModificationInput` via: +// Required if CorsRule element is present. A list of response headers to expose to CORS clients. +func (o CorsRuleResponseOutput) ExposedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v CorsRuleResponse) []string { return v.ExposedHeaders }).(pulumi.StringArrayOutput) +} + +// Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. +func (o CorsRuleResponseOutput) MaxAgeInSeconds() pulumi.IntOutput { + return o.ApplyT(func(v CorsRuleResponse) int { return v.MaxAgeInSeconds }).(pulumi.IntOutput) +} + +type CorsRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (CorsRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CorsRuleResponse)(nil)).Elem() +} + +func (o CorsRuleResponseArrayOutput) ToCorsRuleResponseArrayOutput() CorsRuleResponseArrayOutput { + return o +} + +func (o CorsRuleResponseArrayOutput) ToCorsRuleResponseArrayOutputWithContext(ctx context.Context) CorsRuleResponseArrayOutput { + return o +} + +func (o CorsRuleResponseArrayOutput) Index(i pulumi.IntInput) CorsRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CorsRuleResponse { + return vs[0].([]CorsRuleResponse)[vs[1].(int)] + }).(CorsRuleResponseOutput) +} + +// Sets the CORS rules. You can include up to five CorsRule elements in the request. +type CorsRules struct { + // The List of CORS rules. You can include up to five CorsRule elements in the request. + CorsRules []CorsRule `pulumi:"corsRules"` +} + +// CorsRulesInput is an input type that accepts CorsRulesArgs and CorsRulesOutput values. +// You can construct a concrete instance of `CorsRulesInput` via: // -// DateAfterModificationArgs{...} -type DateAfterModificationInput interface { +// CorsRulesArgs{...} +type CorsRulesInput interface { pulumi.Input - ToDateAfterModificationOutput() DateAfterModificationOutput - ToDateAfterModificationOutputWithContext(context.Context) DateAfterModificationOutput + ToCorsRulesOutput() CorsRulesOutput + ToCorsRulesOutputWithContext(context.Context) CorsRulesOutput } -// Object to define the number of days after object last modification Or last access. Properties daysAfterModificationGreaterThan and daysAfterLastAccessTimeGreaterThan are mutually exclusive. -type DateAfterModificationArgs struct { - // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy - DaysAfterLastAccessTimeGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterLastAccessTimeGreaterThan"` - // Value indicating the age in days after last modification - DaysAfterModificationGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterModificationGreaterThan"` +// Sets the CORS rules. You can include up to five CorsRule elements in the request. +type CorsRulesArgs struct { + // The List of CORS rules. You can include up to five CorsRule elements in the request. + CorsRules CorsRuleArrayInput `pulumi:"corsRules"` } -func (DateAfterModificationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterModification)(nil)).Elem() +func (CorsRulesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRules)(nil)).Elem() } -func (i DateAfterModificationArgs) ToDateAfterModificationOutput() DateAfterModificationOutput { - return i.ToDateAfterModificationOutputWithContext(context.Background()) +func (i CorsRulesArgs) ToCorsRulesOutput() CorsRulesOutput { + return i.ToCorsRulesOutputWithContext(context.Background()) } -func (i DateAfterModificationArgs) ToDateAfterModificationOutputWithContext(ctx context.Context) DateAfterModificationOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationOutput) +func (i CorsRulesArgs) ToCorsRulesOutputWithContext(ctx context.Context) CorsRulesOutput { + return pulumi.ToOutputWithContext(ctx, i).(CorsRulesOutput) } -func (i DateAfterModificationArgs) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { - return i.ToDateAfterModificationPtrOutputWithContext(context.Background()) +func (i CorsRulesArgs) ToCorsRulesPtrOutput() CorsRulesPtrOutput { + return i.ToCorsRulesPtrOutputWithContext(context.Background()) } -func (i DateAfterModificationArgs) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationOutput).ToDateAfterModificationPtrOutputWithContext(ctx) +func (i CorsRulesArgs) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CorsRulesOutput).ToCorsRulesPtrOutputWithContext(ctx) } -// DateAfterModificationPtrInput is an input type that accepts DateAfterModificationArgs, DateAfterModificationPtr and DateAfterModificationPtrOutput values. -// You can construct a concrete instance of `DateAfterModificationPtrInput` via: +// CorsRulesPtrInput is an input type that accepts CorsRulesArgs, CorsRulesPtr and CorsRulesPtrOutput values. +// You can construct a concrete instance of `CorsRulesPtrInput` via: // -// DateAfterModificationArgs{...} +// CorsRulesArgs{...} // // or: // // nil -type DateAfterModificationPtrInput interface { +type CorsRulesPtrInput interface { pulumi.Input - ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput - ToDateAfterModificationPtrOutputWithContext(context.Context) DateAfterModificationPtrOutput + ToCorsRulesPtrOutput() CorsRulesPtrOutput + ToCorsRulesPtrOutputWithContext(context.Context) CorsRulesPtrOutput } -type dateAfterModificationPtrType DateAfterModificationArgs +type corsRulesPtrType CorsRulesArgs -func DateAfterModificationPtr(v *DateAfterModificationArgs) DateAfterModificationPtrInput { - return (*dateAfterModificationPtrType)(v) +func CorsRulesPtr(v *CorsRulesArgs) CorsRulesPtrInput { + return (*corsRulesPtrType)(v) } -func (*dateAfterModificationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterModification)(nil)).Elem() +func (*corsRulesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CorsRules)(nil)).Elem() } -func (i *dateAfterModificationPtrType) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { - return i.ToDateAfterModificationPtrOutputWithContext(context.Background()) +func (i *corsRulesPtrType) ToCorsRulesPtrOutput() CorsRulesPtrOutput { + return i.ToCorsRulesPtrOutputWithContext(context.Background()) } -func (i *dateAfterModificationPtrType) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationPtrOutput) +func (i *corsRulesPtrType) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CorsRulesPtrOutput) } -// Object to define the number of days after object last modification Or last access. Properties daysAfterModificationGreaterThan and daysAfterLastAccessTimeGreaterThan are mutually exclusive. -type DateAfterModificationOutput struct{ *pulumi.OutputState } +// Sets the CORS rules. You can include up to five CorsRule elements in the request. +type CorsRulesOutput struct{ *pulumi.OutputState } -func (DateAfterModificationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterModification)(nil)).Elem() +func (CorsRulesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRules)(nil)).Elem() } -func (o DateAfterModificationOutput) ToDateAfterModificationOutput() DateAfterModificationOutput { +func (o CorsRulesOutput) ToCorsRulesOutput() CorsRulesOutput { return o } -func (o DateAfterModificationOutput) ToDateAfterModificationOutputWithContext(ctx context.Context) DateAfterModificationOutput { +func (o CorsRulesOutput) ToCorsRulesOutputWithContext(ctx context.Context) CorsRulesOutput { return o } -func (o DateAfterModificationOutput) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { - return o.ToDateAfterModificationPtrOutputWithContext(context.Background()) +func (o CorsRulesOutput) ToCorsRulesPtrOutput() CorsRulesPtrOutput { + return o.ToCorsRulesPtrOutputWithContext(context.Background()) } -func (o DateAfterModificationOutput) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DateAfterModification) *DateAfterModification { +func (o CorsRulesOutput) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CorsRules) *CorsRules { return &v - }).(DateAfterModificationPtrOutput) -} - -// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy -func (o DateAfterModificationOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterLastAccessTimeGreaterThan }).(pulumi.Float64PtrOutput) + }).(CorsRulesPtrOutput) } -// Value indicating the age in days after last modification -func (o DateAfterModificationOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterModificationGreaterThan }).(pulumi.Float64PtrOutput) +// The List of CORS rules. You can include up to five CorsRule elements in the request. +func (o CorsRulesOutput) CorsRules() CorsRuleArrayOutput { + return o.ApplyT(func(v CorsRules) []CorsRule { return v.CorsRules }).(CorsRuleArrayOutput) } -type DateAfterModificationPtrOutput struct{ *pulumi.OutputState } +type CorsRulesPtrOutput struct{ *pulumi.OutputState } -func (DateAfterModificationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterModification)(nil)).Elem() +func (CorsRulesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CorsRules)(nil)).Elem() } -func (o DateAfterModificationPtrOutput) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { +func (o CorsRulesPtrOutput) ToCorsRulesPtrOutput() CorsRulesPtrOutput { return o } -func (o DateAfterModificationPtrOutput) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { +func (o CorsRulesPtrOutput) ToCorsRulesPtrOutputWithContext(ctx context.Context) CorsRulesPtrOutput { return o } -func (o DateAfterModificationPtrOutput) Elem() DateAfterModificationOutput { - return o.ApplyT(func(v *DateAfterModification) DateAfterModification { +func (o CorsRulesPtrOutput) Elem() CorsRulesOutput { + return o.ApplyT(func(v *CorsRules) CorsRules { if v != nil { return *v } - var ret DateAfterModification + var ret CorsRules return ret - }).(DateAfterModificationOutput) + }).(CorsRulesOutput) } -// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy -func (o DateAfterModificationPtrOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterModification) *float64 { +// The List of CORS rules. You can include up to five CorsRule elements in the request. +func (o CorsRulesPtrOutput) CorsRules() CorsRuleArrayOutput { + return o.ApplyT(func(v *CorsRules) []CorsRule { if v == nil { return nil } - return v.DaysAfterLastAccessTimeGreaterThan - }).(pulumi.Float64PtrOutput) + return v.CorsRules + }).(CorsRuleArrayOutput) } -// Value indicating the age in days after last modification -func (o DateAfterModificationPtrOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterModification) *float64 { - if v == nil { - return nil - } - return v.DaysAfterModificationGreaterThan - }).(pulumi.Float64PtrOutput) +// Sets the CORS rules. You can include up to five CorsRule elements in the request. +type CorsRulesResponse struct { + // The List of CORS rules. You can include up to five CorsRule elements in the request. + CorsRules []CorsRuleResponse `pulumi:"corsRules"` } -// Object to define the number of days after object last modification Or last access. Properties daysAfterModificationGreaterThan and daysAfterLastAccessTimeGreaterThan are mutually exclusive. -type DateAfterModificationResponse struct { - // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy - DaysAfterLastAccessTimeGreaterThan *float64 `pulumi:"daysAfterLastAccessTimeGreaterThan"` - // Value indicating the age in days after last modification - DaysAfterModificationGreaterThan *float64 `pulumi:"daysAfterModificationGreaterThan"` -} - -// Object to define the number of days after object last modification Or last access. Properties daysAfterModificationGreaterThan and daysAfterLastAccessTimeGreaterThan are mutually exclusive. -type DateAfterModificationResponseOutput struct{ *pulumi.OutputState } +// Sets the CORS rules. You can include up to five CorsRule elements in the request. +type CorsRulesResponseOutput struct{ *pulumi.OutputState } -func (DateAfterModificationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DateAfterModificationResponse)(nil)).Elem() +func (CorsRulesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CorsRulesResponse)(nil)).Elem() } -func (o DateAfterModificationResponseOutput) ToDateAfterModificationResponseOutput() DateAfterModificationResponseOutput { +func (o CorsRulesResponseOutput) ToCorsRulesResponseOutput() CorsRulesResponseOutput { return o } -func (o DateAfterModificationResponseOutput) ToDateAfterModificationResponseOutputWithContext(ctx context.Context) DateAfterModificationResponseOutput { +func (o CorsRulesResponseOutput) ToCorsRulesResponseOutputWithContext(ctx context.Context) CorsRulesResponseOutput { return o } -// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy -func (o DateAfterModificationResponseOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterLastAccessTimeGreaterThan }).(pulumi.Float64PtrOutput) -} - -// Value indicating the age in days after last modification -func (o DateAfterModificationResponseOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterModificationGreaterThan }).(pulumi.Float64PtrOutput) +// The List of CORS rules. You can include up to five CorsRule elements in the request. +func (o CorsRulesResponseOutput) CorsRules() CorsRuleResponseArrayOutput { + return o.ApplyT(func(v CorsRulesResponse) []CorsRuleResponse { return v.CorsRules }).(CorsRuleResponseArrayOutput) } -type DateAfterModificationResponsePtrOutput struct{ *pulumi.OutputState } +type CorsRulesResponsePtrOutput struct{ *pulumi.OutputState } -func (DateAfterModificationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DateAfterModificationResponse)(nil)).Elem() +func (CorsRulesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CorsRulesResponse)(nil)).Elem() } -func (o DateAfterModificationResponsePtrOutput) ToDateAfterModificationResponsePtrOutput() DateAfterModificationResponsePtrOutput { +func (o CorsRulesResponsePtrOutput) ToCorsRulesResponsePtrOutput() CorsRulesResponsePtrOutput { return o } -func (o DateAfterModificationResponsePtrOutput) ToDateAfterModificationResponsePtrOutputWithContext(ctx context.Context) DateAfterModificationResponsePtrOutput { +func (o CorsRulesResponsePtrOutput) ToCorsRulesResponsePtrOutputWithContext(ctx context.Context) CorsRulesResponsePtrOutput { return o } -func (o DateAfterModificationResponsePtrOutput) Elem() DateAfterModificationResponseOutput { - return o.ApplyT(func(v *DateAfterModificationResponse) DateAfterModificationResponse { +func (o CorsRulesResponsePtrOutput) Elem() CorsRulesResponseOutput { + return o.ApplyT(func(v *CorsRulesResponse) CorsRulesResponse { if v != nil { return *v } - var ret DateAfterModificationResponse + var ret CorsRulesResponse return ret - }).(DateAfterModificationResponseOutput) -} - -// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy -func (o DateAfterModificationResponsePtrOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { - if v == nil { - return nil - } - return v.DaysAfterLastAccessTimeGreaterThan - }).(pulumi.Float64PtrOutput) + }).(CorsRulesResponseOutput) } -// Value indicating the age in days after last modification -func (o DateAfterModificationResponsePtrOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { +// The List of CORS rules. You can include up to five CorsRule elements in the request. +func (o CorsRulesResponsePtrOutput) CorsRules() CorsRuleResponseArrayOutput { + return o.ApplyT(func(v *CorsRulesResponse) []CorsRuleResponse { if v == nil { return nil } - return v.DaysAfterModificationGreaterThan - }).(pulumi.Float64PtrOutput) + return v.CorsRules + }).(CorsRuleResponseArrayOutput) } -// The service properties for soft delete. -type DeleteRetentionPolicy struct { - // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. - Days *int `pulumi:"days"` - // Indicates whether DeleteRetentionPolicy is enabled. - Enabled *bool `pulumi:"enabled"` +// The custom domain assigned to this storage account. This can be set via Update. +type CustomDomain struct { + // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. + Name string `pulumi:"name"` + // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. + UseSubDomainName *bool `pulumi:"useSubDomainName"` } -// DeleteRetentionPolicyInput is an input type that accepts DeleteRetentionPolicyArgs and DeleteRetentionPolicyOutput values. -// You can construct a concrete instance of `DeleteRetentionPolicyInput` via: +// CustomDomainInput is an input type that accepts CustomDomainArgs and CustomDomainOutput values. +// You can construct a concrete instance of `CustomDomainInput` via: // -// DeleteRetentionPolicyArgs{...} -type DeleteRetentionPolicyInput interface { +// CustomDomainArgs{...} +type CustomDomainInput interface { pulumi.Input - ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput - ToDeleteRetentionPolicyOutputWithContext(context.Context) DeleteRetentionPolicyOutput + ToCustomDomainOutput() CustomDomainOutput + ToCustomDomainOutputWithContext(context.Context) CustomDomainOutput } -// The service properties for soft delete. -type DeleteRetentionPolicyArgs struct { - // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. - Days pulumi.IntPtrInput `pulumi:"days"` - // Indicates whether DeleteRetentionPolicy is enabled. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +// The custom domain assigned to this storage account. This can be set via Update. +type CustomDomainArgs struct { + // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. + Name pulumi.StringInput `pulumi:"name"` + // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. + UseSubDomainName pulumi.BoolPtrInput `pulumi:"useSubDomainName"` } -func (DeleteRetentionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*DeleteRetentionPolicy)(nil)).Elem() +func (CustomDomainArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomain)(nil)).Elem() } -func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput { - return i.ToDeleteRetentionPolicyOutputWithContext(context.Background()) +func (i CustomDomainArgs) ToCustomDomainOutput() CustomDomainOutput { + return i.ToCustomDomainOutputWithContext(context.Background()) } -func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyOutputWithContext(ctx context.Context) DeleteRetentionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyOutput) +func (i CustomDomainArgs) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainOutput) } -func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { - return i.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) +func (i CustomDomainArgs) ToCustomDomainPtrOutput() CustomDomainPtrOutput { + return i.ToCustomDomainPtrOutputWithContext(context.Background()) } -func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyOutput).ToDeleteRetentionPolicyPtrOutputWithContext(ctx) +func (i CustomDomainArgs) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainOutput).ToCustomDomainPtrOutputWithContext(ctx) } -// DeleteRetentionPolicyPtrInput is an input type that accepts DeleteRetentionPolicyArgs, DeleteRetentionPolicyPtr and DeleteRetentionPolicyPtrOutput values. -// You can construct a concrete instance of `DeleteRetentionPolicyPtrInput` via: +// CustomDomainPtrInput is an input type that accepts CustomDomainArgs, CustomDomainPtr and CustomDomainPtrOutput values. +// You can construct a concrete instance of `CustomDomainPtrInput` via: // -// DeleteRetentionPolicyArgs{...} +// CustomDomainArgs{...} // // or: // // nil -type DeleteRetentionPolicyPtrInput interface { +type CustomDomainPtrInput interface { pulumi.Input - ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput - ToDeleteRetentionPolicyPtrOutputWithContext(context.Context) DeleteRetentionPolicyPtrOutput + ToCustomDomainPtrOutput() CustomDomainPtrOutput + ToCustomDomainPtrOutputWithContext(context.Context) CustomDomainPtrOutput } -type deleteRetentionPolicyPtrType DeleteRetentionPolicyArgs +type customDomainPtrType CustomDomainArgs -func DeleteRetentionPolicyPtr(v *DeleteRetentionPolicyArgs) DeleteRetentionPolicyPtrInput { - return (*deleteRetentionPolicyPtrType)(v) +func CustomDomainPtr(v *CustomDomainArgs) CustomDomainPtrInput { + return (*customDomainPtrType)(v) } -func (*deleteRetentionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**DeleteRetentionPolicy)(nil)).Elem() +func (*customDomainPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomain)(nil)).Elem() } -func (i *deleteRetentionPolicyPtrType) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { - return i.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) +func (i *customDomainPtrType) ToCustomDomainPtrOutput() CustomDomainPtrOutput { + return i.ToCustomDomainPtrOutputWithContext(context.Background()) } -func (i *deleteRetentionPolicyPtrType) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyPtrOutput) +func (i *customDomainPtrType) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainPtrOutput) } -// The service properties for soft delete. -type DeleteRetentionPolicyOutput struct{ *pulumi.OutputState } +// The custom domain assigned to this storage account. This can be set via Update. +type CustomDomainOutput struct{ *pulumi.OutputState } -func (DeleteRetentionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DeleteRetentionPolicy)(nil)).Elem() +func (CustomDomainOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomain)(nil)).Elem() } -func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput { +func (o CustomDomainOutput) ToCustomDomainOutput() CustomDomainOutput { return o } -func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyOutputWithContext(ctx context.Context) DeleteRetentionPolicyOutput { +func (o CustomDomainOutput) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { return o } -func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { - return o.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) +func (o CustomDomainOutput) ToCustomDomainPtrOutput() CustomDomainPtrOutput { + return o.ToCustomDomainPtrOutputWithContext(context.Background()) } -func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v DeleteRetentionPolicy) *DeleteRetentionPolicy { +func (o CustomDomainOutput) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomDomain) *CustomDomain { return &v - }).(DeleteRetentionPolicyPtrOutput) + }).(CustomDomainPtrOutput) } -// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. -func (o DeleteRetentionPolicyOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v DeleteRetentionPolicy) *int { return v.Days }).(pulumi.IntPtrOutput) +// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. +func (o CustomDomainOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomain) string { return v.Name }).(pulumi.StringOutput) } -// Indicates whether DeleteRetentionPolicy is enabled. -func (o DeleteRetentionPolicyOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v DeleteRetentionPolicy) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. +func (o CustomDomainOutput) UseSubDomainName() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CustomDomain) *bool { return v.UseSubDomainName }).(pulumi.BoolPtrOutput) } -type DeleteRetentionPolicyPtrOutput struct{ *pulumi.OutputState } +type CustomDomainPtrOutput struct{ *pulumi.OutputState } -func (DeleteRetentionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DeleteRetentionPolicy)(nil)).Elem() +func (CustomDomainPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomain)(nil)).Elem() } -func (o DeleteRetentionPolicyPtrOutput) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { +func (o CustomDomainPtrOutput) ToCustomDomainPtrOutput() CustomDomainPtrOutput { return o } -func (o DeleteRetentionPolicyPtrOutput) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { +func (o CustomDomainPtrOutput) ToCustomDomainPtrOutputWithContext(ctx context.Context) CustomDomainPtrOutput { return o } -func (o DeleteRetentionPolicyPtrOutput) Elem() DeleteRetentionPolicyOutput { - return o.ApplyT(func(v *DeleteRetentionPolicy) DeleteRetentionPolicy { +func (o CustomDomainPtrOutput) Elem() CustomDomainOutput { + return o.ApplyT(func(v *CustomDomain) CustomDomain { if v != nil { return *v } - var ret DeleteRetentionPolicy + var ret CustomDomain return ret - }).(DeleteRetentionPolicyOutput) + }).(CustomDomainOutput) } -// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. -func (o DeleteRetentionPolicyPtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *DeleteRetentionPolicy) *int { +// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. +func (o CustomDomainPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDomain) *string { if v == nil { return nil } - return v.Days - }).(pulumi.IntPtrOutput) + return &v.Name + }).(pulumi.StringPtrOutput) } -// Indicates whether DeleteRetentionPolicy is enabled. -func (o DeleteRetentionPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *DeleteRetentionPolicy) *bool { +// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. +func (o CustomDomainPtrOutput) UseSubDomainName() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CustomDomain) *bool { if v == nil { return nil } - return v.Enabled + return v.UseSubDomainName }).(pulumi.BoolPtrOutput) } -// The service properties for soft delete. -type DeleteRetentionPolicyResponse struct { - // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. - Days *int `pulumi:"days"` - // Indicates whether DeleteRetentionPolicy is enabled. - Enabled *bool `pulumi:"enabled"` +// The custom domain assigned to this storage account. This can be set via Update. +type CustomDomainResponse struct { + // Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. + Name string `pulumi:"name"` + // Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. + UseSubDomainName *bool `pulumi:"useSubDomainName"` } -// The service properties for soft delete. -type DeleteRetentionPolicyResponseOutput struct{ *pulumi.OutputState } +// The custom domain assigned to this storage account. This can be set via Update. +type CustomDomainResponseOutput struct{ *pulumi.OutputState } -func (DeleteRetentionPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*DeleteRetentionPolicyResponse)(nil)).Elem() +func (CustomDomainResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainResponse)(nil)).Elem() } -func (o DeleteRetentionPolicyResponseOutput) ToDeleteRetentionPolicyResponseOutput() DeleteRetentionPolicyResponseOutput { +func (o CustomDomainResponseOutput) ToCustomDomainResponseOutput() CustomDomainResponseOutput { return o } -func (o DeleteRetentionPolicyResponseOutput) ToDeleteRetentionPolicyResponseOutputWithContext(ctx context.Context) DeleteRetentionPolicyResponseOutput { +func (o CustomDomainResponseOutput) ToCustomDomainResponseOutputWithContext(ctx context.Context) CustomDomainResponseOutput { return o } -// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. -func (o DeleteRetentionPolicyResponseOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v DeleteRetentionPolicyResponse) *int { return v.Days }).(pulumi.IntPtrOutput) +// Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. +func (o CustomDomainResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainResponse) string { return v.Name }).(pulumi.StringOutput) } -// Indicates whether DeleteRetentionPolicy is enabled. -func (o DeleteRetentionPolicyResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v DeleteRetentionPolicyResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. +func (o CustomDomainResponseOutput) UseSubDomainName() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CustomDomainResponse) *bool { return v.UseSubDomainName }).(pulumi.BoolPtrOutput) } -type DeleteRetentionPolicyResponsePtrOutput struct{ *pulumi.OutputState } - -func (DeleteRetentionPolicyResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**DeleteRetentionPolicyResponse)(nil)).Elem() -} - -func (o DeleteRetentionPolicyResponsePtrOutput) ToDeleteRetentionPolicyResponsePtrOutput() DeleteRetentionPolicyResponsePtrOutput { - return o -} - -func (o DeleteRetentionPolicyResponsePtrOutput) ToDeleteRetentionPolicyResponsePtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyResponsePtrOutput { - return o -} - -func (o DeleteRetentionPolicyResponsePtrOutput) Elem() DeleteRetentionPolicyResponseOutput { - return o.ApplyT(func(v *DeleteRetentionPolicyResponse) DeleteRetentionPolicyResponse { - if v != nil { - return *v - } - var ret DeleteRetentionPolicyResponse - return ret - }).(DeleteRetentionPolicyResponseOutput) -} - -// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. -func (o DeleteRetentionPolicyResponsePtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *DeleteRetentionPolicyResponse) *int { - if v == nil { - return nil - } - return v.Days - }).(pulumi.IntPtrOutput) -} - -// Indicates whether DeleteRetentionPolicy is enabled. -func (o DeleteRetentionPolicyResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *DeleteRetentionPolicyResponse) *bool { - if v == nil { - return nil - } - return v.Enabled - }).(pulumi.BoolPtrOutput) -} - -// The encryption settings on the storage account. -type Encryption struct { - // The identity to be used with service-side encryption at rest. - EncryptionIdentity *EncryptionIdentity `pulumi:"encryptionIdentity"` - // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault - KeySource string `pulumi:"keySource"` - // Properties provided by key vault. - KeyVaultProperties *KeyVaultProperties `pulumi:"keyVaultProperties"` - // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. - RequireInfrastructureEncryption *bool `pulumi:"requireInfrastructureEncryption"` - // List of services which support encryption. - Services *EncryptionServices `pulumi:"services"` -} - -// Defaults sets the appropriate defaults for Encryption -func (val *Encryption) Defaults() *Encryption { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.KeySource) { - tmp.KeySource = "Microsoft.Storage" - } - return &tmp +// Object to define snapshot and version action conditions. +type DateAfterCreation struct { + // Value indicating the age in days after creation + DaysAfterCreationGreaterThan float64 `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan *float64 `pulumi:"daysAfterLastTierChangeGreaterThan"` } -// EncryptionInput is an input type that accepts EncryptionArgs and EncryptionOutput values. -// You can construct a concrete instance of `EncryptionInput` via: +// DateAfterCreationInput is an input type that accepts DateAfterCreationArgs and DateAfterCreationOutput values. +// You can construct a concrete instance of `DateAfterCreationInput` via: // -// EncryptionArgs{...} -type EncryptionInput interface { +// DateAfterCreationArgs{...} +type DateAfterCreationInput interface { pulumi.Input - ToEncryptionOutput() EncryptionOutput - ToEncryptionOutputWithContext(context.Context) EncryptionOutput + ToDateAfterCreationOutput() DateAfterCreationOutput + ToDateAfterCreationOutputWithContext(context.Context) DateAfterCreationOutput } -// The encryption settings on the storage account. -type EncryptionArgs struct { - // The identity to be used with service-side encryption at rest. - EncryptionIdentity EncryptionIdentityPtrInput `pulumi:"encryptionIdentity"` - // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault - KeySource pulumi.StringInput `pulumi:"keySource"` - // Properties provided by key vault. - KeyVaultProperties KeyVaultPropertiesPtrInput `pulumi:"keyVaultProperties"` - // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. - RequireInfrastructureEncryption pulumi.BoolPtrInput `pulumi:"requireInfrastructureEncryption"` - // List of services which support encryption. - Services EncryptionServicesPtrInput `pulumi:"services"` +// Object to define snapshot and version action conditions. +type DateAfterCreationArgs struct { + // Value indicating the age in days after creation + DaysAfterCreationGreaterThan pulumi.Float64Input `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterLastTierChangeGreaterThan"` } -// Defaults sets the appropriate defaults for EncryptionArgs -func (val *EncryptionArgs) Defaults() *EncryptionArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.KeySource) { - tmp.KeySource = pulumi.String("Microsoft.Storage") - } - return &tmp -} -func (EncryptionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Encryption)(nil)).Elem() +func (DateAfterCreationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterCreation)(nil)).Elem() } -func (i EncryptionArgs) ToEncryptionOutput() EncryptionOutput { - return i.ToEncryptionOutputWithContext(context.Background()) +func (i DateAfterCreationArgs) ToDateAfterCreationOutput() DateAfterCreationOutput { + return i.ToDateAfterCreationOutputWithContext(context.Background()) } -func (i EncryptionArgs) ToEncryptionOutputWithContext(ctx context.Context) EncryptionOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionOutput) +func (i DateAfterCreationArgs) ToDateAfterCreationOutputWithContext(ctx context.Context) DateAfterCreationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationOutput) } -func (i EncryptionArgs) ToEncryptionPtrOutput() EncryptionPtrOutput { - return i.ToEncryptionPtrOutputWithContext(context.Background()) +func (i DateAfterCreationArgs) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { + return i.ToDateAfterCreationPtrOutputWithContext(context.Background()) } -func (i EncryptionArgs) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionOutput).ToEncryptionPtrOutputWithContext(ctx) +func (i DateAfterCreationArgs) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationOutput).ToDateAfterCreationPtrOutputWithContext(ctx) } -// EncryptionPtrInput is an input type that accepts EncryptionArgs, EncryptionPtr and EncryptionPtrOutput values. -// You can construct a concrete instance of `EncryptionPtrInput` via: +// DateAfterCreationPtrInput is an input type that accepts DateAfterCreationArgs, DateAfterCreationPtr and DateAfterCreationPtrOutput values. +// You can construct a concrete instance of `DateAfterCreationPtrInput` via: // -// EncryptionArgs{...} +// DateAfterCreationArgs{...} // // or: // // nil -type EncryptionPtrInput interface { +type DateAfterCreationPtrInput interface { pulumi.Input - ToEncryptionPtrOutput() EncryptionPtrOutput - ToEncryptionPtrOutputWithContext(context.Context) EncryptionPtrOutput + ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput + ToDateAfterCreationPtrOutputWithContext(context.Context) DateAfterCreationPtrOutput } -type encryptionPtrType EncryptionArgs +type dateAfterCreationPtrType DateAfterCreationArgs -func EncryptionPtr(v *EncryptionArgs) EncryptionPtrInput { - return (*encryptionPtrType)(v) +func DateAfterCreationPtr(v *DateAfterCreationArgs) DateAfterCreationPtrInput { + return (*dateAfterCreationPtrType)(v) } -func (*encryptionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**Encryption)(nil)).Elem() +func (*dateAfterCreationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterCreation)(nil)).Elem() } -func (i *encryptionPtrType) ToEncryptionPtrOutput() EncryptionPtrOutput { - return i.ToEncryptionPtrOutputWithContext(context.Background()) +func (i *dateAfterCreationPtrType) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { + return i.ToDateAfterCreationPtrOutputWithContext(context.Background()) } -func (i *encryptionPtrType) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionPtrOutput) +func (i *dateAfterCreationPtrType) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterCreationPtrOutput) } -// The encryption settings on the storage account. -type EncryptionOutput struct{ *pulumi.OutputState } +// Object to define snapshot and version action conditions. +type DateAfterCreationOutput struct{ *pulumi.OutputState } -func (EncryptionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Encryption)(nil)).Elem() +func (DateAfterCreationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterCreation)(nil)).Elem() } -func (o EncryptionOutput) ToEncryptionOutput() EncryptionOutput { +func (o DateAfterCreationOutput) ToDateAfterCreationOutput() DateAfterCreationOutput { return o } -func (o EncryptionOutput) ToEncryptionOutputWithContext(ctx context.Context) EncryptionOutput { +func (o DateAfterCreationOutput) ToDateAfterCreationOutputWithContext(ctx context.Context) DateAfterCreationOutput { return o } -func (o EncryptionOutput) ToEncryptionPtrOutput() EncryptionPtrOutput { - return o.ToEncryptionPtrOutputWithContext(context.Background()) +func (o DateAfterCreationOutput) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { + return o.ToDateAfterCreationPtrOutputWithContext(context.Background()) } -func (o EncryptionOutput) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v Encryption) *Encryption { +func (o DateAfterCreationOutput) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DateAfterCreation) *DateAfterCreation { return &v - }).(EncryptionPtrOutput) -} - -// The identity to be used with service-side encryption at rest. -func (o EncryptionOutput) EncryptionIdentity() EncryptionIdentityPtrOutput { - return o.ApplyT(func(v Encryption) *EncryptionIdentity { return v.EncryptionIdentity }).(EncryptionIdentityPtrOutput) -} - -// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault -func (o EncryptionOutput) KeySource() pulumi.StringOutput { - return o.ApplyT(func(v Encryption) string { return v.KeySource }).(pulumi.StringOutput) -} - -// Properties provided by key vault. -func (o EncryptionOutput) KeyVaultProperties() KeyVaultPropertiesPtrOutput { - return o.ApplyT(func(v Encryption) *KeyVaultProperties { return v.KeyVaultProperties }).(KeyVaultPropertiesPtrOutput) + }).(DateAfterCreationPtrOutput) } -// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. -func (o EncryptionOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { - return o.ApplyT(func(v Encryption) *bool { return v.RequireInfrastructureEncryption }).(pulumi.BoolPtrOutput) +// Value indicating the age in days after creation +func (o DateAfterCreationOutput) DaysAfterCreationGreaterThan() pulumi.Float64Output { + return o.ApplyT(func(v DateAfterCreation) float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64Output) } -// List of services which support encryption. -func (o EncryptionOutput) Services() EncryptionServicesPtrOutput { - return o.ApplyT(func(v Encryption) *EncryptionServices { return v.Services }).(EncryptionServicesPtrOutput) +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterCreationOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterCreation) *float64 { return v.DaysAfterLastTierChangeGreaterThan }).(pulumi.Float64PtrOutput) } -type EncryptionPtrOutput struct{ *pulumi.OutputState } +type DateAfterCreationPtrOutput struct{ *pulumi.OutputState } -func (EncryptionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Encryption)(nil)).Elem() +func (DateAfterCreationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterCreation)(nil)).Elem() } -func (o EncryptionPtrOutput) ToEncryptionPtrOutput() EncryptionPtrOutput { +func (o DateAfterCreationPtrOutput) ToDateAfterCreationPtrOutput() DateAfterCreationPtrOutput { return o } -func (o EncryptionPtrOutput) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { +func (o DateAfterCreationPtrOutput) ToDateAfterCreationPtrOutputWithContext(ctx context.Context) DateAfterCreationPtrOutput { return o } -func (o EncryptionPtrOutput) Elem() EncryptionOutput { - return o.ApplyT(func(v *Encryption) Encryption { +func (o DateAfterCreationPtrOutput) Elem() DateAfterCreationOutput { + return o.ApplyT(func(v *DateAfterCreation) DateAfterCreation { if v != nil { return *v } - var ret Encryption + var ret DateAfterCreation return ret - }).(EncryptionOutput) + }).(DateAfterCreationOutput) } -// The identity to be used with service-side encryption at rest. -func (o EncryptionPtrOutput) EncryptionIdentity() EncryptionIdentityPtrOutput { - return o.ApplyT(func(v *Encryption) *EncryptionIdentity { +// Value indicating the age in days after creation +func (o DateAfterCreationPtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterCreation) *float64 { if v == nil { return nil } - return v.EncryptionIdentity - }).(EncryptionIdentityPtrOutput) + return &v.DaysAfterCreationGreaterThan + }).(pulumi.Float64PtrOutput) } -// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault -func (o EncryptionPtrOutput) KeySource() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Encryption) *string { +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterCreationPtrOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterCreation) *float64 { if v == nil { return nil } - return &v.KeySource - }).(pulumi.StringPtrOutput) + return v.DaysAfterLastTierChangeGreaterThan + }).(pulumi.Float64PtrOutput) } -// Properties provided by key vault. -func (o EncryptionPtrOutput) KeyVaultProperties() KeyVaultPropertiesPtrOutput { - return o.ApplyT(func(v *Encryption) *KeyVaultProperties { - if v == nil { - return nil - } - return v.KeyVaultProperties - }).(KeyVaultPropertiesPtrOutput) +// Object to define snapshot and version action conditions. +type DateAfterCreationResponse struct { + // Value indicating the age in days after creation + DaysAfterCreationGreaterThan float64 `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan *float64 `pulumi:"daysAfterLastTierChangeGreaterThan"` } -// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. -func (o EncryptionPtrOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *Encryption) *bool { - if v == nil { - return nil - } - return v.RequireInfrastructureEncryption - }).(pulumi.BoolPtrOutput) +// Object to define snapshot and version action conditions. +type DateAfterCreationResponseOutput struct{ *pulumi.OutputState } + +func (DateAfterCreationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterCreationResponse)(nil)).Elem() } -// List of services which support encryption. -func (o EncryptionPtrOutput) Services() EncryptionServicesPtrOutput { - return o.ApplyT(func(v *Encryption) *EncryptionServices { +func (o DateAfterCreationResponseOutput) ToDateAfterCreationResponseOutput() DateAfterCreationResponseOutput { + return o +} + +func (o DateAfterCreationResponseOutput) ToDateAfterCreationResponseOutputWithContext(ctx context.Context) DateAfterCreationResponseOutput { + return o +} + +// Value indicating the age in days after creation +func (o DateAfterCreationResponseOutput) DaysAfterCreationGreaterThan() pulumi.Float64Output { + return o.ApplyT(func(v DateAfterCreationResponse) float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64Output) +} + +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterCreationResponseOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterCreationResponse) *float64 { return v.DaysAfterLastTierChangeGreaterThan }).(pulumi.Float64PtrOutput) +} + +type DateAfterCreationResponsePtrOutput struct{ *pulumi.OutputState } + +func (DateAfterCreationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterCreationResponse)(nil)).Elem() +} + +func (o DateAfterCreationResponsePtrOutput) ToDateAfterCreationResponsePtrOutput() DateAfterCreationResponsePtrOutput { + return o +} + +func (o DateAfterCreationResponsePtrOutput) ToDateAfterCreationResponsePtrOutputWithContext(ctx context.Context) DateAfterCreationResponsePtrOutput { + return o +} + +func (o DateAfterCreationResponsePtrOutput) Elem() DateAfterCreationResponseOutput { + return o.ApplyT(func(v *DateAfterCreationResponse) DateAfterCreationResponse { + if v != nil { + return *v + } + var ret DateAfterCreationResponse + return ret + }).(DateAfterCreationResponseOutput) +} + +// Value indicating the age in days after creation +func (o DateAfterCreationResponsePtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterCreationResponse) *float64 { if v == nil { return nil } - return v.Services - }).(EncryptionServicesPtrOutput) + return &v.DaysAfterCreationGreaterThan + }).(pulumi.Float64PtrOutput) } -// Encryption identity for the storage account. -type EncryptionIdentity struct { - // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. - EncryptionUserAssignedIdentity *string `pulumi:"encryptionUserAssignedIdentity"` +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterCreationResponsePtrOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterCreationResponse) *float64 { + if v == nil { + return nil + } + return v.DaysAfterLastTierChangeGreaterThan + }).(pulumi.Float64PtrOutput) } -// EncryptionIdentityInput is an input type that accepts EncryptionIdentityArgs and EncryptionIdentityOutput values. -// You can construct a concrete instance of `EncryptionIdentityInput` via: +// Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. +type DateAfterModification struct { + // Value indicating the age in days after blob creation. + DaysAfterCreationGreaterThan *float64 `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy + DaysAfterLastAccessTimeGreaterThan *float64 `pulumi:"daysAfterLastAccessTimeGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan *float64 `pulumi:"daysAfterLastTierChangeGreaterThan"` + // Value indicating the age in days after last modification + DaysAfterModificationGreaterThan *float64 `pulumi:"daysAfterModificationGreaterThan"` +} + +// DateAfterModificationInput is an input type that accepts DateAfterModificationArgs and DateAfterModificationOutput values. +// You can construct a concrete instance of `DateAfterModificationInput` via: // -// EncryptionIdentityArgs{...} -type EncryptionIdentityInput interface { +// DateAfterModificationArgs{...} +type DateAfterModificationInput interface { pulumi.Input - ToEncryptionIdentityOutput() EncryptionIdentityOutput - ToEncryptionIdentityOutputWithContext(context.Context) EncryptionIdentityOutput + ToDateAfterModificationOutput() DateAfterModificationOutput + ToDateAfterModificationOutputWithContext(context.Context) DateAfterModificationOutput } -// Encryption identity for the storage account. -type EncryptionIdentityArgs struct { - // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. - EncryptionUserAssignedIdentity pulumi.StringPtrInput `pulumi:"encryptionUserAssignedIdentity"` +// Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. +type DateAfterModificationArgs struct { + // Value indicating the age in days after blob creation. + DaysAfterCreationGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy + DaysAfterLastAccessTimeGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterLastAccessTimeGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterLastTierChangeGreaterThan"` + // Value indicating the age in days after last modification + DaysAfterModificationGreaterThan pulumi.Float64PtrInput `pulumi:"daysAfterModificationGreaterThan"` } -func (EncryptionIdentityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionIdentity)(nil)).Elem() +func (DateAfterModificationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterModification)(nil)).Elem() } -func (i EncryptionIdentityArgs) ToEncryptionIdentityOutput() EncryptionIdentityOutput { - return i.ToEncryptionIdentityOutputWithContext(context.Background()) +func (i DateAfterModificationArgs) ToDateAfterModificationOutput() DateAfterModificationOutput { + return i.ToDateAfterModificationOutputWithContext(context.Background()) } -func (i EncryptionIdentityArgs) ToEncryptionIdentityOutputWithContext(ctx context.Context) EncryptionIdentityOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityOutput) +func (i DateAfterModificationArgs) ToDateAfterModificationOutputWithContext(ctx context.Context) DateAfterModificationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationOutput) } -func (i EncryptionIdentityArgs) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { - return i.ToEncryptionIdentityPtrOutputWithContext(context.Background()) +func (i DateAfterModificationArgs) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { + return i.ToDateAfterModificationPtrOutputWithContext(context.Background()) } -func (i EncryptionIdentityArgs) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityOutput).ToEncryptionIdentityPtrOutputWithContext(ctx) +func (i DateAfterModificationArgs) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationOutput).ToDateAfterModificationPtrOutputWithContext(ctx) } -// EncryptionIdentityPtrInput is an input type that accepts EncryptionIdentityArgs, EncryptionIdentityPtr and EncryptionIdentityPtrOutput values. -// You can construct a concrete instance of `EncryptionIdentityPtrInput` via: +// DateAfterModificationPtrInput is an input type that accepts DateAfterModificationArgs, DateAfterModificationPtr and DateAfterModificationPtrOutput values. +// You can construct a concrete instance of `DateAfterModificationPtrInput` via: // -// EncryptionIdentityArgs{...} +// DateAfterModificationArgs{...} // // or: // // nil -type EncryptionIdentityPtrInput interface { +type DateAfterModificationPtrInput interface { pulumi.Input - ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput - ToEncryptionIdentityPtrOutputWithContext(context.Context) EncryptionIdentityPtrOutput + ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput + ToDateAfterModificationPtrOutputWithContext(context.Context) DateAfterModificationPtrOutput } -type encryptionIdentityPtrType EncryptionIdentityArgs +type dateAfterModificationPtrType DateAfterModificationArgs -func EncryptionIdentityPtr(v *EncryptionIdentityArgs) EncryptionIdentityPtrInput { - return (*encryptionIdentityPtrType)(v) +func DateAfterModificationPtr(v *DateAfterModificationArgs) DateAfterModificationPtrInput { + return (*dateAfterModificationPtrType)(v) } -func (*encryptionIdentityPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionIdentity)(nil)).Elem() +func (*dateAfterModificationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterModification)(nil)).Elem() } -func (i *encryptionIdentityPtrType) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { - return i.ToEncryptionIdentityPtrOutputWithContext(context.Background()) +func (i *dateAfterModificationPtrType) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { + return i.ToDateAfterModificationPtrOutputWithContext(context.Background()) } -func (i *encryptionIdentityPtrType) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityPtrOutput) +func (i *dateAfterModificationPtrType) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DateAfterModificationPtrOutput) } -// Encryption identity for the storage account. -type EncryptionIdentityOutput struct{ *pulumi.OutputState } +// Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. +type DateAfterModificationOutput struct{ *pulumi.OutputState } -func (EncryptionIdentityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionIdentity)(nil)).Elem() +func (DateAfterModificationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterModification)(nil)).Elem() } -func (o EncryptionIdentityOutput) ToEncryptionIdentityOutput() EncryptionIdentityOutput { +func (o DateAfterModificationOutput) ToDateAfterModificationOutput() DateAfterModificationOutput { return o } -func (o EncryptionIdentityOutput) ToEncryptionIdentityOutputWithContext(ctx context.Context) EncryptionIdentityOutput { +func (o DateAfterModificationOutput) ToDateAfterModificationOutputWithContext(ctx context.Context) DateAfterModificationOutput { return o } -func (o EncryptionIdentityOutput) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { - return o.ToEncryptionIdentityPtrOutputWithContext(context.Background()) +func (o DateAfterModificationOutput) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { + return o.ToDateAfterModificationPtrOutputWithContext(context.Background()) } -func (o EncryptionIdentityOutput) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionIdentity) *EncryptionIdentity { +func (o DateAfterModificationOutput) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DateAfterModification) *DateAfterModification { return &v - }).(EncryptionIdentityPtrOutput) + }).(DateAfterModificationPtrOutput) } -// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. -func (o EncryptionIdentityOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionIdentity) *string { return v.EncryptionUserAssignedIdentity }).(pulumi.StringPtrOutput) +// Value indicating the age in days after blob creation. +func (o DateAfterModificationOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64PtrOutput) } -type EncryptionIdentityPtrOutput struct{ *pulumi.OutputState } +// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy +func (o DateAfterModificationOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterLastAccessTimeGreaterThan }).(pulumi.Float64PtrOutput) +} -func (EncryptionIdentityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionIdentity)(nil)).Elem() +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterModificationOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterLastTierChangeGreaterThan }).(pulumi.Float64PtrOutput) } -func (o EncryptionIdentityPtrOutput) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { +// Value indicating the age in days after last modification +func (o DateAfterModificationOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModification) *float64 { return v.DaysAfterModificationGreaterThan }).(pulumi.Float64PtrOutput) +} + +type DateAfterModificationPtrOutput struct{ *pulumi.OutputState } + +func (DateAfterModificationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterModification)(nil)).Elem() +} + +func (o DateAfterModificationPtrOutput) ToDateAfterModificationPtrOutput() DateAfterModificationPtrOutput { return o } -func (o EncryptionIdentityPtrOutput) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { +func (o DateAfterModificationPtrOutput) ToDateAfterModificationPtrOutputWithContext(ctx context.Context) DateAfterModificationPtrOutput { return o } -func (o EncryptionIdentityPtrOutput) Elem() EncryptionIdentityOutput { - return o.ApplyT(func(v *EncryptionIdentity) EncryptionIdentity { +func (o DateAfterModificationPtrOutput) Elem() DateAfterModificationOutput { + return o.ApplyT(func(v *DateAfterModification) DateAfterModification { if v != nil { return *v } - var ret EncryptionIdentity + var ret DateAfterModification return ret - }).(EncryptionIdentityOutput) + }).(DateAfterModificationOutput) } -// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. -func (o EncryptionIdentityPtrOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionIdentity) *string { +// Value indicating the age in days after blob creation. +func (o DateAfterModificationPtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModification) *float64 { if v == nil { return nil } - return v.EncryptionUserAssignedIdentity - }).(pulumi.StringPtrOutput) -} - -// Encryption identity for the storage account. -type EncryptionIdentityResponse struct { - // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. - EncryptionUserAssignedIdentity *string `pulumi:"encryptionUserAssignedIdentity"` + return v.DaysAfterCreationGreaterThan + }).(pulumi.Float64PtrOutput) } -// Encryption identity for the storage account. -type EncryptionIdentityResponseOutput struct{ *pulumi.OutputState } - -func (EncryptionIdentityResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionIdentityResponse)(nil)).Elem() +// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy +func (o DateAfterModificationPtrOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModification) *float64 { + if v == nil { + return nil + } + return v.DaysAfterLastAccessTimeGreaterThan + }).(pulumi.Float64PtrOutput) } -func (o EncryptionIdentityResponseOutput) ToEncryptionIdentityResponseOutput() EncryptionIdentityResponseOutput { - return o +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterModificationPtrOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModification) *float64 { + if v == nil { + return nil + } + return v.DaysAfterLastTierChangeGreaterThan + }).(pulumi.Float64PtrOutput) } -func (o EncryptionIdentityResponseOutput) ToEncryptionIdentityResponseOutputWithContext(ctx context.Context) EncryptionIdentityResponseOutput { - return o +// Value indicating the age in days after last modification +func (o DateAfterModificationPtrOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModification) *float64 { + if v == nil { + return nil + } + return v.DaysAfterModificationGreaterThan + }).(pulumi.Float64PtrOutput) } -// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. -func (o EncryptionIdentityResponseOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionIdentityResponse) *string { return v.EncryptionUserAssignedIdentity }).(pulumi.StringPtrOutput) +// Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. +type DateAfterModificationResponse struct { + // Value indicating the age in days after blob creation. + DaysAfterCreationGreaterThan *float64 `pulumi:"daysAfterCreationGreaterThan"` + // Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy + DaysAfterLastAccessTimeGreaterThan *float64 `pulumi:"daysAfterLastAccessTimeGreaterThan"` + // Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. + DaysAfterLastTierChangeGreaterThan *float64 `pulumi:"daysAfterLastTierChangeGreaterThan"` + // Value indicating the age in days after last modification + DaysAfterModificationGreaterThan *float64 `pulumi:"daysAfterModificationGreaterThan"` } -type EncryptionIdentityResponsePtrOutput struct{ *pulumi.OutputState } +// Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. +type DateAfterModificationResponseOutput struct{ *pulumi.OutputState } -func (EncryptionIdentityResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionIdentityResponse)(nil)).Elem() +func (DateAfterModificationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DateAfterModificationResponse)(nil)).Elem() } -func (o EncryptionIdentityResponsePtrOutput) ToEncryptionIdentityResponsePtrOutput() EncryptionIdentityResponsePtrOutput { +func (o DateAfterModificationResponseOutput) ToDateAfterModificationResponseOutput() DateAfterModificationResponseOutput { return o } -func (o EncryptionIdentityResponsePtrOutput) ToEncryptionIdentityResponsePtrOutputWithContext(ctx context.Context) EncryptionIdentityResponsePtrOutput { +func (o DateAfterModificationResponseOutput) ToDateAfterModificationResponseOutputWithContext(ctx context.Context) DateAfterModificationResponseOutput { return o } -func (o EncryptionIdentityResponsePtrOutput) Elem() EncryptionIdentityResponseOutput { - return o.ApplyT(func(v *EncryptionIdentityResponse) EncryptionIdentityResponse { - if v != nil { - return *v - } - var ret EncryptionIdentityResponse - return ret - }).(EncryptionIdentityResponseOutput) +// Value indicating the age in days after blob creation. +func (o DateAfterModificationResponseOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterCreationGreaterThan }).(pulumi.Float64PtrOutput) } -// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. -func (o EncryptionIdentityResponsePtrOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionIdentityResponse) *string { - if v == nil { - return nil - } - return v.EncryptionUserAssignedIdentity - }).(pulumi.StringPtrOutput) +// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy +func (o DateAfterModificationResponseOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterLastAccessTimeGreaterThan }).(pulumi.Float64PtrOutput) } -// The encryption settings on the storage account. -type EncryptionResponse struct { - // The identity to be used with service-side encryption at rest. - EncryptionIdentity *EncryptionIdentityResponse `pulumi:"encryptionIdentity"` - // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault - KeySource string `pulumi:"keySource"` - // Properties provided by key vault. - KeyVaultProperties *KeyVaultPropertiesResponse `pulumi:"keyVaultProperties"` - // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. - RequireInfrastructureEncryption *bool `pulumi:"requireInfrastructureEncryption"` - // List of services which support encryption. - Services *EncryptionServicesResponse `pulumi:"services"` +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterModificationResponseOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterLastTierChangeGreaterThan }).(pulumi.Float64PtrOutput) } -// Defaults sets the appropriate defaults for EncryptionResponse -func (val *EncryptionResponse) Defaults() *EncryptionResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.KeySource) { - tmp.KeySource = "Microsoft.Storage" - } - return &tmp +// Value indicating the age in days after last modification +func (o DateAfterModificationResponseOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DateAfterModificationResponse) *float64 { return v.DaysAfterModificationGreaterThan }).(pulumi.Float64PtrOutput) } -// The encryption settings on the storage account. -type EncryptionResponseOutput struct{ *pulumi.OutputState } +type DateAfterModificationResponsePtrOutput struct{ *pulumi.OutputState } -func (EncryptionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionResponse)(nil)).Elem() +func (DateAfterModificationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DateAfterModificationResponse)(nil)).Elem() } -func (o EncryptionResponseOutput) ToEncryptionResponseOutput() EncryptionResponseOutput { +func (o DateAfterModificationResponsePtrOutput) ToDateAfterModificationResponsePtrOutput() DateAfterModificationResponsePtrOutput { return o } -func (o EncryptionResponseOutput) ToEncryptionResponseOutputWithContext(ctx context.Context) EncryptionResponseOutput { +func (o DateAfterModificationResponsePtrOutput) ToDateAfterModificationResponsePtrOutputWithContext(ctx context.Context) DateAfterModificationResponsePtrOutput { return o } -// The identity to be used with service-side encryption at rest. -func (o EncryptionResponseOutput) EncryptionIdentity() EncryptionIdentityResponsePtrOutput { - return o.ApplyT(func(v EncryptionResponse) *EncryptionIdentityResponse { return v.EncryptionIdentity }).(EncryptionIdentityResponsePtrOutput) +func (o DateAfterModificationResponsePtrOutput) Elem() DateAfterModificationResponseOutput { + return o.ApplyT(func(v *DateAfterModificationResponse) DateAfterModificationResponse { + if v != nil { + return *v + } + var ret DateAfterModificationResponse + return ret + }).(DateAfterModificationResponseOutput) } -// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault -func (o EncryptionResponseOutput) KeySource() pulumi.StringOutput { - return o.ApplyT(func(v EncryptionResponse) string { return v.KeySource }).(pulumi.StringOutput) +// Value indicating the age in days after blob creation. +func (o DateAfterModificationResponsePtrOutput) DaysAfterCreationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { + if v == nil { + return nil + } + return v.DaysAfterCreationGreaterThan + }).(pulumi.Float64PtrOutput) } -// Properties provided by key vault. -func (o EncryptionResponseOutput) KeyVaultProperties() KeyVaultPropertiesResponsePtrOutput { - return o.ApplyT(func(v EncryptionResponse) *KeyVaultPropertiesResponse { return v.KeyVaultProperties }).(KeyVaultPropertiesResponsePtrOutput) +// Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy +func (o DateAfterModificationResponsePtrOutput) DaysAfterLastAccessTimeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { + if v == nil { + return nil + } + return v.DaysAfterLastAccessTimeGreaterThan + }).(pulumi.Float64PtrOutput) } -// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. -func (o EncryptionResponseOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { - return o.ApplyT(func(v EncryptionResponse) *bool { return v.RequireInfrastructureEncryption }).(pulumi.BoolPtrOutput) +// Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. +func (o DateAfterModificationResponsePtrOutput) DaysAfterLastTierChangeGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { + if v == nil { + return nil + } + return v.DaysAfterLastTierChangeGreaterThan + }).(pulumi.Float64PtrOutput) } -// List of services which support encryption. -func (o EncryptionResponseOutput) Services() EncryptionServicesResponsePtrOutput { - return o.ApplyT(func(v EncryptionResponse) *EncryptionServicesResponse { return v.Services }).(EncryptionServicesResponsePtrOutput) +// Value indicating the age in days after last modification +func (o DateAfterModificationResponsePtrOutput) DaysAfterModificationGreaterThan() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DateAfterModificationResponse) *float64 { + if v == nil { + return nil + } + return v.DaysAfterModificationGreaterThan + }).(pulumi.Float64PtrOutput) } -// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. -type EncryptionScopeKeyVaultProperties struct { - // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. - KeyUri *string `pulumi:"keyUri"` +// The service properties for soft delete. +type DeleteRetentionPolicy struct { + // This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. + AllowPermanentDelete *bool `pulumi:"allowPermanentDelete"` + // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. + Days *int `pulumi:"days"` + // Indicates whether DeleteRetentionPolicy is enabled. + Enabled *bool `pulumi:"enabled"` } -// EncryptionScopeKeyVaultPropertiesInput is an input type that accepts EncryptionScopeKeyVaultPropertiesArgs and EncryptionScopeKeyVaultPropertiesOutput values. -// You can construct a concrete instance of `EncryptionScopeKeyVaultPropertiesInput` via: +// DeleteRetentionPolicyInput is an input type that accepts DeleteRetentionPolicyArgs and DeleteRetentionPolicyOutput values. +// You can construct a concrete instance of `DeleteRetentionPolicyInput` via: // -// EncryptionScopeKeyVaultPropertiesArgs{...} -type EncryptionScopeKeyVaultPropertiesInput interface { +// DeleteRetentionPolicyArgs{...} +type DeleteRetentionPolicyInput interface { pulumi.Input - ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput - ToEncryptionScopeKeyVaultPropertiesOutputWithContext(context.Context) EncryptionScopeKeyVaultPropertiesOutput + ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput + ToDeleteRetentionPolicyOutputWithContext(context.Context) DeleteRetentionPolicyOutput } -// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. -type EncryptionScopeKeyVaultPropertiesArgs struct { - // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. - KeyUri pulumi.StringPtrInput `pulumi:"keyUri"` +// The service properties for soft delete. +type DeleteRetentionPolicyArgs struct { + // This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. + AllowPermanentDelete pulumi.BoolPtrInput `pulumi:"allowPermanentDelete"` + // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. + Days pulumi.IntPtrInput `pulumi:"days"` + // Indicates whether DeleteRetentionPolicy is enabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } -func (EncryptionScopeKeyVaultPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionScopeKeyVaultProperties)(nil)).Elem() +func (DeleteRetentionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeleteRetentionPolicy)(nil)).Elem() } -func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput { - return i.ToEncryptionScopeKeyVaultPropertiesOutputWithContext(context.Background()) +func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput { + return i.ToDeleteRetentionPolicyOutputWithContext(context.Background()) } -func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesOutput) +func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyOutputWithContext(ctx context.Context) DeleteRetentionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyOutput) } -func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { - return i.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) +func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { + return i.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesOutput).ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx) +func (i DeleteRetentionPolicyArgs) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyOutput).ToDeleteRetentionPolicyPtrOutputWithContext(ctx) } -// EncryptionScopeKeyVaultPropertiesPtrInput is an input type that accepts EncryptionScopeKeyVaultPropertiesArgs, EncryptionScopeKeyVaultPropertiesPtr and EncryptionScopeKeyVaultPropertiesPtrOutput values. -// You can construct a concrete instance of `EncryptionScopeKeyVaultPropertiesPtrInput` via: +// DeleteRetentionPolicyPtrInput is an input type that accepts DeleteRetentionPolicyArgs, DeleteRetentionPolicyPtr and DeleteRetentionPolicyPtrOutput values. +// You can construct a concrete instance of `DeleteRetentionPolicyPtrInput` via: // -// EncryptionScopeKeyVaultPropertiesArgs{...} +// DeleteRetentionPolicyArgs{...} // // or: // // nil -type EncryptionScopeKeyVaultPropertiesPtrInput interface { +type DeleteRetentionPolicyPtrInput interface { pulumi.Input - ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput - ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput + ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput + ToDeleteRetentionPolicyPtrOutputWithContext(context.Context) DeleteRetentionPolicyPtrOutput } -type encryptionScopeKeyVaultPropertiesPtrType EncryptionScopeKeyVaultPropertiesArgs +type deleteRetentionPolicyPtrType DeleteRetentionPolicyArgs -func EncryptionScopeKeyVaultPropertiesPtr(v *EncryptionScopeKeyVaultPropertiesArgs) EncryptionScopeKeyVaultPropertiesPtrInput { - return (*encryptionScopeKeyVaultPropertiesPtrType)(v) +func DeleteRetentionPolicyPtr(v *DeleteRetentionPolicyArgs) DeleteRetentionPolicyPtrInput { + return (*deleteRetentionPolicyPtrType)(v) } -func (*encryptionScopeKeyVaultPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionScopeKeyVaultProperties)(nil)).Elem() +func (*deleteRetentionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeleteRetentionPolicy)(nil)).Elem() } -func (i *encryptionScopeKeyVaultPropertiesPtrType) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { - return i.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) +func (i *deleteRetentionPolicyPtrType) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { + return i.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i *encryptionScopeKeyVaultPropertiesPtrType) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesPtrOutput) +func (i *deleteRetentionPolicyPtrType) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeleteRetentionPolicyPtrOutput) } -// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. -type EncryptionScopeKeyVaultPropertiesOutput struct{ *pulumi.OutputState } +// The service properties for soft delete. +type DeleteRetentionPolicyOutput struct{ *pulumi.OutputState } -func (EncryptionScopeKeyVaultPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionScopeKeyVaultProperties)(nil)).Elem() +func (DeleteRetentionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeleteRetentionPolicy)(nil)).Elem() } -func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput { +func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyOutput() DeleteRetentionPolicyOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesOutput { +func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyOutputWithContext(ctx context.Context) DeleteRetentionPolicyOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { - return o.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) +func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { + return o.ToDeleteRetentionPolicyPtrOutputWithContext(context.Background()) } -func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionScopeKeyVaultProperties) *EncryptionScopeKeyVaultProperties { +func (o DeleteRetentionPolicyOutput) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeleteRetentionPolicy) *DeleteRetentionPolicy { return &v - }).(EncryptionScopeKeyVaultPropertiesPtrOutput) + }).(DeleteRetentionPolicyPtrOutput) } -// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. -func (o EncryptionScopeKeyVaultPropertiesOutput) KeyUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionScopeKeyVaultProperties) *string { return v.KeyUri }).(pulumi.StringPtrOutput) +// This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. +func (o DeleteRetentionPolicyOutput) AllowPermanentDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicy) *bool { return v.AllowPermanentDelete }).(pulumi.BoolPtrOutput) } -type EncryptionScopeKeyVaultPropertiesPtrOutput struct{ *pulumi.OutputState } +// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. +func (o DeleteRetentionPolicyOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicy) *int { return v.Days }).(pulumi.IntPtrOutput) +} -func (EncryptionScopeKeyVaultPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionScopeKeyVaultProperties)(nil)).Elem() +// Indicates whether DeleteRetentionPolicy is enabled. +func (o DeleteRetentionPolicyOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicy) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -func (o EncryptionScopeKeyVaultPropertiesPtrOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { +type DeleteRetentionPolicyPtrOutput struct{ *pulumi.OutputState } + +func (DeleteRetentionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeleteRetentionPolicy)(nil)).Elem() +} + +func (o DeleteRetentionPolicyPtrOutput) ToDeleteRetentionPolicyPtrOutput() DeleteRetentionPolicyPtrOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesPtrOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { +func (o DeleteRetentionPolicyPtrOutput) ToDeleteRetentionPolicyPtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyPtrOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesPtrOutput) Elem() EncryptionScopeKeyVaultPropertiesOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultProperties) EncryptionScopeKeyVaultProperties { +func (o DeleteRetentionPolicyPtrOutput) Elem() DeleteRetentionPolicyOutput { + return o.ApplyT(func(v *DeleteRetentionPolicy) DeleteRetentionPolicy { if v != nil { return *v } - var ret EncryptionScopeKeyVaultProperties + var ret DeleteRetentionPolicy return ret - }).(EncryptionScopeKeyVaultPropertiesOutput) + }).(DeleteRetentionPolicyOutput) } -// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. -func (o EncryptionScopeKeyVaultPropertiesPtrOutput) KeyUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultProperties) *string { +// This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. +func (o DeleteRetentionPolicyPtrOutput) AllowPermanentDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicy) *bool { if v == nil { return nil } - return v.KeyUri - }).(pulumi.StringPtrOutput) -} - -// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. -type EncryptionScopeKeyVaultPropertiesResponse struct { - // The object identifier of the current versioned Key Vault Key in use. - CurrentVersionedKeyIdentifier string `pulumi:"currentVersionedKeyIdentifier"` - // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. - KeyUri *string `pulumi:"keyUri"` - // Timestamp of last rotation of the Key Vault Key. - LastKeyRotationTimestamp string `pulumi:"lastKeyRotationTimestamp"` + return v.AllowPermanentDelete + }).(pulumi.BoolPtrOutput) } -// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. -type EncryptionScopeKeyVaultPropertiesResponseOutput struct{ *pulumi.OutputState } - -func (EncryptionScopeKeyVaultPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionScopeKeyVaultPropertiesResponse)(nil)).Elem() +// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. +func (o DeleteRetentionPolicyPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicy) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) } -func (o EncryptionScopeKeyVaultPropertiesResponseOutput) ToEncryptionScopeKeyVaultPropertiesResponseOutput() EncryptionScopeKeyVaultPropertiesResponseOutput { +// Indicates whether DeleteRetentionPolicy is enabled. +func (o DeleteRetentionPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicy) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The service properties for soft delete. +type DeleteRetentionPolicyResponse struct { + // This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. + AllowPermanentDelete *bool `pulumi:"allowPermanentDelete"` + // Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. + Days *int `pulumi:"days"` + // Indicates whether DeleteRetentionPolicy is enabled. + Enabled *bool `pulumi:"enabled"` +} + +// The service properties for soft delete. +type DeleteRetentionPolicyResponseOutput struct{ *pulumi.OutputState } + +func (DeleteRetentionPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeleteRetentionPolicyResponse)(nil)).Elem() +} + +func (o DeleteRetentionPolicyResponseOutput) ToDeleteRetentionPolicyResponseOutput() DeleteRetentionPolicyResponseOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesResponseOutput) ToEncryptionScopeKeyVaultPropertiesResponseOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesResponseOutput { +func (o DeleteRetentionPolicyResponseOutput) ToDeleteRetentionPolicyResponseOutputWithContext(ctx context.Context) DeleteRetentionPolicyResponseOutput { return o } -// The object identifier of the current versioned Key Vault Key in use. -func (o EncryptionScopeKeyVaultPropertiesResponseOutput) CurrentVersionedKeyIdentifier() pulumi.StringOutput { - return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) string { return v.CurrentVersionedKeyIdentifier }).(pulumi.StringOutput) +// This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. +func (o DeleteRetentionPolicyResponseOutput) AllowPermanentDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicyResponse) *bool { return v.AllowPermanentDelete }).(pulumi.BoolPtrOutput) } -// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. -func (o EncryptionScopeKeyVaultPropertiesResponseOutput) KeyUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) *string { return v.KeyUri }).(pulumi.StringPtrOutput) +// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. +func (o DeleteRetentionPolicyResponseOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicyResponse) *int { return v.Days }).(pulumi.IntPtrOutput) } -// Timestamp of last rotation of the Key Vault Key. -func (o EncryptionScopeKeyVaultPropertiesResponseOutput) LastKeyRotationTimestamp() pulumi.StringOutput { - return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) string { return v.LastKeyRotationTimestamp }).(pulumi.StringOutput) +// Indicates whether DeleteRetentionPolicy is enabled. +func (o DeleteRetentionPolicyResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeleteRetentionPolicyResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -type EncryptionScopeKeyVaultPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +type DeleteRetentionPolicyResponsePtrOutput struct{ *pulumi.OutputState } -func (EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionScopeKeyVaultPropertiesResponse)(nil)).Elem() +func (DeleteRetentionPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeleteRetentionPolicyResponse)(nil)).Elem() } -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ToEncryptionScopeKeyVaultPropertiesResponsePtrOutput() EncryptionScopeKeyVaultPropertiesResponsePtrOutput { +func (o DeleteRetentionPolicyResponsePtrOutput) ToDeleteRetentionPolicyResponsePtrOutput() DeleteRetentionPolicyResponsePtrOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ToEncryptionScopeKeyVaultPropertiesResponsePtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesResponsePtrOutput { +func (o DeleteRetentionPolicyResponsePtrOutput) ToDeleteRetentionPolicyResponsePtrOutputWithContext(ctx context.Context) DeleteRetentionPolicyResponsePtrOutput { return o } -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) Elem() EncryptionScopeKeyVaultPropertiesResponseOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) EncryptionScopeKeyVaultPropertiesResponse { +func (o DeleteRetentionPolicyResponsePtrOutput) Elem() DeleteRetentionPolicyResponseOutput { + return o.ApplyT(func(v *DeleteRetentionPolicyResponse) DeleteRetentionPolicyResponse { if v != nil { return *v } - var ret EncryptionScopeKeyVaultPropertiesResponse + var ret DeleteRetentionPolicyResponse return ret - }).(EncryptionScopeKeyVaultPropertiesResponseOutput) + }).(DeleteRetentionPolicyResponseOutput) } -// The object identifier of the current versioned Key Vault Key in use. -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) CurrentVersionedKeyIdentifier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { +// This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. +func (o DeleteRetentionPolicyResponsePtrOutput) AllowPermanentDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicyResponse) *bool { if v == nil { return nil } - return &v.CurrentVersionedKeyIdentifier - }).(pulumi.StringPtrOutput) + return v.AllowPermanentDelete + }).(pulumi.BoolPtrOutput) } -// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) KeyUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { +// Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. +func (o DeleteRetentionPolicyResponsePtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicyResponse) *int { if v == nil { return nil } - return v.KeyUri - }).(pulumi.StringPtrOutput) + return v.Days + }).(pulumi.IntPtrOutput) } -// Timestamp of last rotation of the Key Vault Key. -func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) LastKeyRotationTimestamp() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { +// Indicates whether DeleteRetentionPolicy is enabled. +func (o DeleteRetentionPolicyResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DeleteRetentionPolicyResponse) *bool { if v == nil { return nil } - return &v.LastKeyRotationTimestamp - }).(pulumi.StringPtrOutput) + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// A service that allows server-side encryption to be used. -type EncryptionService struct { - // A boolean indicating whether or not the service encrypts the data as it is stored. - Enabled *bool `pulumi:"enabled"` - // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. - KeyType *string `pulumi:"keyType"` +// The encryption settings on the storage account. +type Encryption struct { + // The identity to be used with service-side encryption at rest. + EncryptionIdentity *EncryptionIdentity `pulumi:"encryptionIdentity"` + // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault + KeySource *string `pulumi:"keySource"` + // Properties provided by key vault. + KeyVaultProperties *KeyVaultProperties `pulumi:"keyVaultProperties"` + // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. + RequireInfrastructureEncryption *bool `pulumi:"requireInfrastructureEncryption"` + // List of services which support encryption. + Services *EncryptionServices `pulumi:"services"` } -// EncryptionServiceInput is an input type that accepts EncryptionServiceArgs and EncryptionServiceOutput values. -// You can construct a concrete instance of `EncryptionServiceInput` via: +// Defaults sets the appropriate defaults for Encryption +func (val *Encryption) Defaults() *Encryption { + if val == nil { + return nil + } + tmp := *val + if tmp.KeySource == nil { + keySource_ := "Microsoft.Storage" + tmp.KeySource = &keySource_ + } + return &tmp +} + +// EncryptionInput is an input type that accepts EncryptionArgs and EncryptionOutput values. +// You can construct a concrete instance of `EncryptionInput` via: // -// EncryptionServiceArgs{...} -type EncryptionServiceInput interface { +// EncryptionArgs{...} +type EncryptionInput interface { pulumi.Input - ToEncryptionServiceOutput() EncryptionServiceOutput - ToEncryptionServiceOutputWithContext(context.Context) EncryptionServiceOutput + ToEncryptionOutput() EncryptionOutput + ToEncryptionOutputWithContext(context.Context) EncryptionOutput } -// A service that allows server-side encryption to be used. -type EncryptionServiceArgs struct { - // A boolean indicating whether or not the service encrypts the data as it is stored. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. - KeyType pulumi.StringPtrInput `pulumi:"keyType"` +// The encryption settings on the storage account. +type EncryptionArgs struct { + // The identity to be used with service-side encryption at rest. + EncryptionIdentity EncryptionIdentityPtrInput `pulumi:"encryptionIdentity"` + // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault + KeySource pulumi.StringPtrInput `pulumi:"keySource"` + // Properties provided by key vault. + KeyVaultProperties KeyVaultPropertiesPtrInput `pulumi:"keyVaultProperties"` + // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. + RequireInfrastructureEncryption pulumi.BoolPtrInput `pulumi:"requireInfrastructureEncryption"` + // List of services which support encryption. + Services EncryptionServicesPtrInput `pulumi:"services"` } -func (EncryptionServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionService)(nil)).Elem() +// Defaults sets the appropriate defaults for EncryptionArgs +func (val *EncryptionArgs) Defaults() *EncryptionArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.KeySource == nil { + tmp.KeySource = pulumi.StringPtr("Microsoft.Storage") + } + return &tmp +} +func (EncryptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Encryption)(nil)).Elem() } -func (i EncryptionServiceArgs) ToEncryptionServiceOutput() EncryptionServiceOutput { - return i.ToEncryptionServiceOutputWithContext(context.Background()) +func (i EncryptionArgs) ToEncryptionOutput() EncryptionOutput { + return i.ToEncryptionOutputWithContext(context.Background()) } -func (i EncryptionServiceArgs) ToEncryptionServiceOutputWithContext(ctx context.Context) EncryptionServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServiceOutput) +func (i EncryptionArgs) ToEncryptionOutputWithContext(ctx context.Context) EncryptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionOutput) } -func (i EncryptionServiceArgs) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { - return i.ToEncryptionServicePtrOutputWithContext(context.Background()) +func (i EncryptionArgs) ToEncryptionPtrOutput() EncryptionPtrOutput { + return i.ToEncryptionPtrOutputWithContext(context.Background()) } -func (i EncryptionServiceArgs) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServiceOutput).ToEncryptionServicePtrOutputWithContext(ctx) +func (i EncryptionArgs) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionOutput).ToEncryptionPtrOutputWithContext(ctx) } -// EncryptionServicePtrInput is an input type that accepts EncryptionServiceArgs, EncryptionServicePtr and EncryptionServicePtrOutput values. -// You can construct a concrete instance of `EncryptionServicePtrInput` via: +// EncryptionPtrInput is an input type that accepts EncryptionArgs, EncryptionPtr and EncryptionPtrOutput values. +// You can construct a concrete instance of `EncryptionPtrInput` via: // -// EncryptionServiceArgs{...} +// EncryptionArgs{...} // // or: // // nil -type EncryptionServicePtrInput interface { +type EncryptionPtrInput interface { pulumi.Input - ToEncryptionServicePtrOutput() EncryptionServicePtrOutput - ToEncryptionServicePtrOutputWithContext(context.Context) EncryptionServicePtrOutput + ToEncryptionPtrOutput() EncryptionPtrOutput + ToEncryptionPtrOutputWithContext(context.Context) EncryptionPtrOutput } -type encryptionServicePtrType EncryptionServiceArgs +type encryptionPtrType EncryptionArgs -func EncryptionServicePtr(v *EncryptionServiceArgs) EncryptionServicePtrInput { - return (*encryptionServicePtrType)(v) +func EncryptionPtr(v *EncryptionArgs) EncryptionPtrInput { + return (*encryptionPtrType)(v) } -func (*encryptionServicePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionService)(nil)).Elem() +func (*encryptionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Encryption)(nil)).Elem() } -func (i *encryptionServicePtrType) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { - return i.ToEncryptionServicePtrOutputWithContext(context.Background()) +func (i *encryptionPtrType) ToEncryptionPtrOutput() EncryptionPtrOutput { + return i.ToEncryptionPtrOutputWithContext(context.Background()) } -func (i *encryptionServicePtrType) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicePtrOutput) +func (i *encryptionPtrType) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionPtrOutput) } -// A service that allows server-side encryption to be used. -type EncryptionServiceOutput struct{ *pulumi.OutputState } +// The encryption settings on the storage account. +type EncryptionOutput struct{ *pulumi.OutputState } -func (EncryptionServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionService)(nil)).Elem() +func (EncryptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Encryption)(nil)).Elem() } -func (o EncryptionServiceOutput) ToEncryptionServiceOutput() EncryptionServiceOutput { +func (o EncryptionOutput) ToEncryptionOutput() EncryptionOutput { return o } -func (o EncryptionServiceOutput) ToEncryptionServiceOutputWithContext(ctx context.Context) EncryptionServiceOutput { +func (o EncryptionOutput) ToEncryptionOutputWithContext(ctx context.Context) EncryptionOutput { return o } -func (o EncryptionServiceOutput) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { - return o.ToEncryptionServicePtrOutputWithContext(context.Background()) +func (o EncryptionOutput) ToEncryptionPtrOutput() EncryptionPtrOutput { + return o.ToEncryptionPtrOutputWithContext(context.Background()) } -func (o EncryptionServiceOutput) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionService) *EncryptionService { +func (o EncryptionOutput) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Encryption) *Encryption { return &v - }).(EncryptionServicePtrOutput) + }).(EncryptionPtrOutput) } -// A boolean indicating whether or not the service encrypts the data as it is stored. -func (o EncryptionServiceOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v EncryptionService) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// The identity to be used with service-side encryption at rest. +func (o EncryptionOutput) EncryptionIdentity() EncryptionIdentityPtrOutput { + return o.ApplyT(func(v Encryption) *EncryptionIdentity { return v.EncryptionIdentity }).(EncryptionIdentityPtrOutput) } -// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. -func (o EncryptionServiceOutput) KeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionService) *string { return v.KeyType }).(pulumi.StringPtrOutput) +// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault +func (o EncryptionOutput) KeySource() pulumi.StringPtrOutput { + return o.ApplyT(func(v Encryption) *string { return v.KeySource }).(pulumi.StringPtrOutput) } -type EncryptionServicePtrOutput struct{ *pulumi.OutputState } +// Properties provided by key vault. +func (o EncryptionOutput) KeyVaultProperties() KeyVaultPropertiesPtrOutput { + return o.ApplyT(func(v Encryption) *KeyVaultProperties { return v.KeyVaultProperties }).(KeyVaultPropertiesPtrOutput) +} -func (EncryptionServicePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionService)(nil)).Elem() +// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. +func (o EncryptionOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Encryption) *bool { return v.RequireInfrastructureEncryption }).(pulumi.BoolPtrOutput) } -func (o EncryptionServicePtrOutput) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { - return o +// List of services which support encryption. +func (o EncryptionOutput) Services() EncryptionServicesPtrOutput { + return o.ApplyT(func(v Encryption) *EncryptionServices { return v.Services }).(EncryptionServicesPtrOutput) } -func (o EncryptionServicePtrOutput) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { +type EncryptionPtrOutput struct{ *pulumi.OutputState } + +func (EncryptionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Encryption)(nil)).Elem() +} + +func (o EncryptionPtrOutput) ToEncryptionPtrOutput() EncryptionPtrOutput { return o } -func (o EncryptionServicePtrOutput) Elem() EncryptionServiceOutput { - return o.ApplyT(func(v *EncryptionService) EncryptionService { +func (o EncryptionPtrOutput) ToEncryptionPtrOutputWithContext(ctx context.Context) EncryptionPtrOutput { + return o +} + +func (o EncryptionPtrOutput) Elem() EncryptionOutput { + return o.ApplyT(func(v *Encryption) Encryption { if v != nil { return *v } - var ret EncryptionService + var ret Encryption return ret - }).(EncryptionServiceOutput) + }).(EncryptionOutput) } -// A boolean indicating whether or not the service encrypts the data as it is stored. -func (o EncryptionServicePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *EncryptionService) *bool { +// The identity to be used with service-side encryption at rest. +func (o EncryptionPtrOutput) EncryptionIdentity() EncryptionIdentityPtrOutput { + return o.ApplyT(func(v *Encryption) *EncryptionIdentity { if v == nil { return nil } - return v.Enabled - }).(pulumi.BoolPtrOutput) + return v.EncryptionIdentity + }).(EncryptionIdentityPtrOutput) } -// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. -func (o EncryptionServicePtrOutput) KeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionService) *string { +// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault +func (o EncryptionPtrOutput) KeySource() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Encryption) *string { if v == nil { return nil } - return v.KeyType + return v.KeySource }).(pulumi.StringPtrOutput) } -// A service that allows server-side encryption to be used. -type EncryptionServiceResponse struct { - // A boolean indicating whether or not the service encrypts the data as it is stored. - Enabled *bool `pulumi:"enabled"` - // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. - KeyType *string `pulumi:"keyType"` - // Gets a rough estimate of the date/time when the encryption was last enabled by the user. Only returned when encryption is enabled. There might be some unencrypted blobs which were written after this time, as it is just a rough estimate. - LastEnabledTime string `pulumi:"lastEnabledTime"` -} - -// A service that allows server-side encryption to be used. -type EncryptionServiceResponseOutput struct{ *pulumi.OutputState } - -func (EncryptionServiceResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionServiceResponse)(nil)).Elem() -} - -func (o EncryptionServiceResponseOutput) ToEncryptionServiceResponseOutput() EncryptionServiceResponseOutput { - return o -} - -func (o EncryptionServiceResponseOutput) ToEncryptionServiceResponseOutputWithContext(ctx context.Context) EncryptionServiceResponseOutput { - return o -} - -// A boolean indicating whether or not the service encrypts the data as it is stored. -func (o EncryptionServiceResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v EncryptionServiceResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) -} - -// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. -func (o EncryptionServiceResponseOutput) KeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v EncryptionServiceResponse) *string { return v.KeyType }).(pulumi.StringPtrOutput) -} - -// Gets a rough estimate of the date/time when the encryption was last enabled by the user. Only returned when encryption is enabled. There might be some unencrypted blobs which were written after this time, as it is just a rough estimate. -func (o EncryptionServiceResponseOutput) LastEnabledTime() pulumi.StringOutput { - return o.ApplyT(func(v EncryptionServiceResponse) string { return v.LastEnabledTime }).(pulumi.StringOutput) -} - -type EncryptionServiceResponsePtrOutput struct{ *pulumi.OutputState } - -func (EncryptionServiceResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionServiceResponse)(nil)).Elem() -} - -func (o EncryptionServiceResponsePtrOutput) ToEncryptionServiceResponsePtrOutput() EncryptionServiceResponsePtrOutput { - return o -} - -func (o EncryptionServiceResponsePtrOutput) ToEncryptionServiceResponsePtrOutputWithContext(ctx context.Context) EncryptionServiceResponsePtrOutput { - return o -} - -func (o EncryptionServiceResponsePtrOutput) Elem() EncryptionServiceResponseOutput { - return o.ApplyT(func(v *EncryptionServiceResponse) EncryptionServiceResponse { - if v != nil { - return *v - } - var ret EncryptionServiceResponse - return ret - }).(EncryptionServiceResponseOutput) -} - -// A boolean indicating whether or not the service encrypts the data as it is stored. -func (o EncryptionServiceResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *EncryptionServiceResponse) *bool { +// Properties provided by key vault. +func (o EncryptionPtrOutput) KeyVaultProperties() KeyVaultPropertiesPtrOutput { + return o.ApplyT(func(v *Encryption) *KeyVaultProperties { if v == nil { return nil } - return v.Enabled - }).(pulumi.BoolPtrOutput) + return v.KeyVaultProperties + }).(KeyVaultPropertiesPtrOutput) } -// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. -func (o EncryptionServiceResponsePtrOutput) KeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionServiceResponse) *string { +// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. +func (o EncryptionPtrOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Encryption) *bool { if v == nil { return nil } - return v.KeyType - }).(pulumi.StringPtrOutput) + return v.RequireInfrastructureEncryption + }).(pulumi.BoolPtrOutput) } -// Gets a rough estimate of the date/time when the encryption was last enabled by the user. Only returned when encryption is enabled. There might be some unencrypted blobs which were written after this time, as it is just a rough estimate. -func (o EncryptionServiceResponsePtrOutput) LastEnabledTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *EncryptionServiceResponse) *string { +// List of services which support encryption. +func (o EncryptionPtrOutput) Services() EncryptionServicesPtrOutput { + return o.ApplyT(func(v *Encryption) *EncryptionServices { if v == nil { return nil } - return &v.LastEnabledTime - }).(pulumi.StringPtrOutput) + return v.Services + }).(EncryptionServicesPtrOutput) } -// A list of services that support encryption. -type EncryptionServices struct { - // The encryption function of the blob storage service. - Blob *EncryptionService `pulumi:"blob"` - // The encryption function of the file storage service. - File *EncryptionService `pulumi:"file"` - // The encryption function of the queue storage service. - Queue *EncryptionService `pulumi:"queue"` - // The encryption function of the table storage service. - Table *EncryptionService `pulumi:"table"` +// Encryption identity for the storage account. +type EncryptionIdentity struct { + // ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. + EncryptionFederatedIdentityClientId *string `pulumi:"encryptionFederatedIdentityClientId"` + // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. + EncryptionUserAssignedIdentity *string `pulumi:"encryptionUserAssignedIdentity"` } -// EncryptionServicesInput is an input type that accepts EncryptionServicesArgs and EncryptionServicesOutput values. -// You can construct a concrete instance of `EncryptionServicesInput` via: +// EncryptionIdentityInput is an input type that accepts EncryptionIdentityArgs and EncryptionIdentityOutput values. +// You can construct a concrete instance of `EncryptionIdentityInput` via: // -// EncryptionServicesArgs{...} -type EncryptionServicesInput interface { +// EncryptionIdentityArgs{...} +type EncryptionIdentityInput interface { pulumi.Input - ToEncryptionServicesOutput() EncryptionServicesOutput - ToEncryptionServicesOutputWithContext(context.Context) EncryptionServicesOutput + ToEncryptionIdentityOutput() EncryptionIdentityOutput + ToEncryptionIdentityOutputWithContext(context.Context) EncryptionIdentityOutput } -// A list of services that support encryption. -type EncryptionServicesArgs struct { - // The encryption function of the blob storage service. - Blob EncryptionServicePtrInput `pulumi:"blob"` - // The encryption function of the file storage service. - File EncryptionServicePtrInput `pulumi:"file"` - // The encryption function of the queue storage service. - Queue EncryptionServicePtrInput `pulumi:"queue"` - // The encryption function of the table storage service. - Table EncryptionServicePtrInput `pulumi:"table"` +// Encryption identity for the storage account. +type EncryptionIdentityArgs struct { + // ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. + EncryptionFederatedIdentityClientId pulumi.StringPtrInput `pulumi:"encryptionFederatedIdentityClientId"` + // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. + EncryptionUserAssignedIdentity pulumi.StringPtrInput `pulumi:"encryptionUserAssignedIdentity"` } -func (EncryptionServicesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionServices)(nil)).Elem() +func (EncryptionIdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionIdentity)(nil)).Elem() } -func (i EncryptionServicesArgs) ToEncryptionServicesOutput() EncryptionServicesOutput { - return i.ToEncryptionServicesOutputWithContext(context.Background()) +func (i EncryptionIdentityArgs) ToEncryptionIdentityOutput() EncryptionIdentityOutput { + return i.ToEncryptionIdentityOutputWithContext(context.Background()) } -func (i EncryptionServicesArgs) ToEncryptionServicesOutputWithContext(ctx context.Context) EncryptionServicesOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesOutput) +func (i EncryptionIdentityArgs) ToEncryptionIdentityOutputWithContext(ctx context.Context) EncryptionIdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityOutput) } -func (i EncryptionServicesArgs) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { - return i.ToEncryptionServicesPtrOutputWithContext(context.Background()) +func (i EncryptionIdentityArgs) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { + return i.ToEncryptionIdentityPtrOutputWithContext(context.Background()) } -func (i EncryptionServicesArgs) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesOutput).ToEncryptionServicesPtrOutputWithContext(ctx) +func (i EncryptionIdentityArgs) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityOutput).ToEncryptionIdentityPtrOutputWithContext(ctx) } -// EncryptionServicesPtrInput is an input type that accepts EncryptionServicesArgs, EncryptionServicesPtr and EncryptionServicesPtrOutput values. -// You can construct a concrete instance of `EncryptionServicesPtrInput` via: +// EncryptionIdentityPtrInput is an input type that accepts EncryptionIdentityArgs, EncryptionIdentityPtr and EncryptionIdentityPtrOutput values. +// You can construct a concrete instance of `EncryptionIdentityPtrInput` via: // -// EncryptionServicesArgs{...} +// EncryptionIdentityArgs{...} // // or: // // nil -type EncryptionServicesPtrInput interface { +type EncryptionIdentityPtrInput interface { pulumi.Input - ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput - ToEncryptionServicesPtrOutputWithContext(context.Context) EncryptionServicesPtrOutput + ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput + ToEncryptionIdentityPtrOutputWithContext(context.Context) EncryptionIdentityPtrOutput } -type encryptionServicesPtrType EncryptionServicesArgs +type encryptionIdentityPtrType EncryptionIdentityArgs -func EncryptionServicesPtr(v *EncryptionServicesArgs) EncryptionServicesPtrInput { - return (*encryptionServicesPtrType)(v) +func EncryptionIdentityPtr(v *EncryptionIdentityArgs) EncryptionIdentityPtrInput { + return (*encryptionIdentityPtrType)(v) } -func (*encryptionServicesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionServices)(nil)).Elem() +func (*encryptionIdentityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionIdentity)(nil)).Elem() } -func (i *encryptionServicesPtrType) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { - return i.ToEncryptionServicesPtrOutputWithContext(context.Background()) +func (i *encryptionIdentityPtrType) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { + return i.ToEncryptionIdentityPtrOutputWithContext(context.Background()) } -func (i *encryptionServicesPtrType) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesPtrOutput) +func (i *encryptionIdentityPtrType) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionIdentityPtrOutput) } -// A list of services that support encryption. -type EncryptionServicesOutput struct{ *pulumi.OutputState } +// Encryption identity for the storage account. +type EncryptionIdentityOutput struct{ *pulumi.OutputState } -func (EncryptionServicesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionServices)(nil)).Elem() +func (EncryptionIdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionIdentity)(nil)).Elem() } -func (o EncryptionServicesOutput) ToEncryptionServicesOutput() EncryptionServicesOutput { +func (o EncryptionIdentityOutput) ToEncryptionIdentityOutput() EncryptionIdentityOutput { return o } -func (o EncryptionServicesOutput) ToEncryptionServicesOutputWithContext(ctx context.Context) EncryptionServicesOutput { +func (o EncryptionIdentityOutput) ToEncryptionIdentityOutputWithContext(ctx context.Context) EncryptionIdentityOutput { return o } -func (o EncryptionServicesOutput) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { - return o.ToEncryptionServicesPtrOutputWithContext(context.Background()) +func (o EncryptionIdentityOutput) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { + return o.ToEncryptionIdentityPtrOutputWithContext(context.Background()) } -func (o EncryptionServicesOutput) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionServices) *EncryptionServices { +func (o EncryptionIdentityOutput) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionIdentity) *EncryptionIdentity { return &v - }).(EncryptionServicesPtrOutput) + }).(EncryptionIdentityPtrOutput) } -// The encryption function of the blob storage service. -func (o EncryptionServicesOutput) Blob() EncryptionServicePtrOutput { - return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Blob }).(EncryptionServicePtrOutput) +// ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. +func (o EncryptionIdentityOutput) EncryptionFederatedIdentityClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionIdentity) *string { return v.EncryptionFederatedIdentityClientId }).(pulumi.StringPtrOutput) } -// The encryption function of the file storage service. -func (o EncryptionServicesOutput) File() EncryptionServicePtrOutput { - return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.File }).(EncryptionServicePtrOutput) +// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. +func (o EncryptionIdentityOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionIdentity) *string { return v.EncryptionUserAssignedIdentity }).(pulumi.StringPtrOutput) } -// The encryption function of the queue storage service. -func (o EncryptionServicesOutput) Queue() EncryptionServicePtrOutput { - return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Queue }).(EncryptionServicePtrOutput) -} +type EncryptionIdentityPtrOutput struct{ *pulumi.OutputState } -// The encryption function of the table storage service. -func (o EncryptionServicesOutput) Table() EncryptionServicePtrOutput { - return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Table }).(EncryptionServicePtrOutput) +func (EncryptionIdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionIdentity)(nil)).Elem() } -type EncryptionServicesPtrOutput struct{ *pulumi.OutputState } - -func (EncryptionServicesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionServices)(nil)).Elem() +func (o EncryptionIdentityPtrOutput) ToEncryptionIdentityPtrOutput() EncryptionIdentityPtrOutput { + return o } -func (o EncryptionServicesPtrOutput) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { +func (o EncryptionIdentityPtrOutput) ToEncryptionIdentityPtrOutputWithContext(ctx context.Context) EncryptionIdentityPtrOutput { return o } -func (o EncryptionServicesPtrOutput) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { - return o -} - -func (o EncryptionServicesPtrOutput) Elem() EncryptionServicesOutput { - return o.ApplyT(func(v *EncryptionServices) EncryptionServices { +func (o EncryptionIdentityPtrOutput) Elem() EncryptionIdentityOutput { + return o.ApplyT(func(v *EncryptionIdentity) EncryptionIdentity { if v != nil { return *v } - var ret EncryptionServices + var ret EncryptionIdentity return ret - }).(EncryptionServicesOutput) -} - -// The encryption function of the blob storage service. -func (o EncryptionServicesPtrOutput) Blob() EncryptionServicePtrOutput { - return o.ApplyT(func(v *EncryptionServices) *EncryptionService { - if v == nil { - return nil - } - return v.Blob - }).(EncryptionServicePtrOutput) -} - -// The encryption function of the file storage service. -func (o EncryptionServicesPtrOutput) File() EncryptionServicePtrOutput { - return o.ApplyT(func(v *EncryptionServices) *EncryptionService { - if v == nil { - return nil - } - return v.File - }).(EncryptionServicePtrOutput) + }).(EncryptionIdentityOutput) } -// The encryption function of the queue storage service. -func (o EncryptionServicesPtrOutput) Queue() EncryptionServicePtrOutput { - return o.ApplyT(func(v *EncryptionServices) *EncryptionService { +// ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. +func (o EncryptionIdentityPtrOutput) EncryptionFederatedIdentityClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionIdentity) *string { if v == nil { return nil } - return v.Queue - }).(EncryptionServicePtrOutput) + return v.EncryptionFederatedIdentityClientId + }).(pulumi.StringPtrOutput) } -// The encryption function of the table storage service. -func (o EncryptionServicesPtrOutput) Table() EncryptionServicePtrOutput { - return o.ApplyT(func(v *EncryptionServices) *EncryptionService { +// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. +func (o EncryptionIdentityPtrOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionIdentity) *string { if v == nil { return nil } - return v.Table - }).(EncryptionServicePtrOutput) + return v.EncryptionUserAssignedIdentity + }).(pulumi.StringPtrOutput) } -// A list of services that support encryption. -type EncryptionServicesResponse struct { - // The encryption function of the blob storage service. - Blob *EncryptionServiceResponse `pulumi:"blob"` - // The encryption function of the file storage service. - File *EncryptionServiceResponse `pulumi:"file"` - // The encryption function of the queue storage service. - Queue *EncryptionServiceResponse `pulumi:"queue"` - // The encryption function of the table storage service. - Table *EncryptionServiceResponse `pulumi:"table"` +// Encryption identity for the storage account. +type EncryptionIdentityResponse struct { + // ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. + EncryptionFederatedIdentityClientId *string `pulumi:"encryptionFederatedIdentityClientId"` + // Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. + EncryptionUserAssignedIdentity *string `pulumi:"encryptionUserAssignedIdentity"` } -// A list of services that support encryption. -type EncryptionServicesResponseOutput struct{ *pulumi.OutputState } +// Encryption identity for the storage account. +type EncryptionIdentityResponseOutput struct{ *pulumi.OutputState } -func (EncryptionServicesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EncryptionServicesResponse)(nil)).Elem() +func (EncryptionIdentityResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionIdentityResponse)(nil)).Elem() } -func (o EncryptionServicesResponseOutput) ToEncryptionServicesResponseOutput() EncryptionServicesResponseOutput { +func (o EncryptionIdentityResponseOutput) ToEncryptionIdentityResponseOutput() EncryptionIdentityResponseOutput { return o } -func (o EncryptionServicesResponseOutput) ToEncryptionServicesResponseOutputWithContext(ctx context.Context) EncryptionServicesResponseOutput { +func (o EncryptionIdentityResponseOutput) ToEncryptionIdentityResponseOutputWithContext(ctx context.Context) EncryptionIdentityResponseOutput { return o } -// The encryption function of the blob storage service. -func (o EncryptionServicesResponseOutput) Blob() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Blob }).(EncryptionServiceResponsePtrOutput) -} - -// The encryption function of the file storage service. -func (o EncryptionServicesResponseOutput) File() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.File }).(EncryptionServiceResponsePtrOutput) -} - -// The encryption function of the queue storage service. -func (o EncryptionServicesResponseOutput) Queue() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Queue }).(EncryptionServiceResponsePtrOutput) +// ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. +func (o EncryptionIdentityResponseOutput) EncryptionFederatedIdentityClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionIdentityResponse) *string { return v.EncryptionFederatedIdentityClientId }).(pulumi.StringPtrOutput) } -// The encryption function of the table storage service. -func (o EncryptionServicesResponseOutput) Table() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Table }).(EncryptionServiceResponsePtrOutput) +// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. +func (o EncryptionIdentityResponseOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionIdentityResponse) *string { return v.EncryptionUserAssignedIdentity }).(pulumi.StringPtrOutput) } -type EncryptionServicesResponsePtrOutput struct{ *pulumi.OutputState } +type EncryptionIdentityResponsePtrOutput struct{ *pulumi.OutputState } -func (EncryptionServicesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**EncryptionServicesResponse)(nil)).Elem() +func (EncryptionIdentityResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionIdentityResponse)(nil)).Elem() } -func (o EncryptionServicesResponsePtrOutput) ToEncryptionServicesResponsePtrOutput() EncryptionServicesResponsePtrOutput { +func (o EncryptionIdentityResponsePtrOutput) ToEncryptionIdentityResponsePtrOutput() EncryptionIdentityResponsePtrOutput { return o } -func (o EncryptionServicesResponsePtrOutput) ToEncryptionServicesResponsePtrOutputWithContext(ctx context.Context) EncryptionServicesResponsePtrOutput { +func (o EncryptionIdentityResponsePtrOutput) ToEncryptionIdentityResponsePtrOutputWithContext(ctx context.Context) EncryptionIdentityResponsePtrOutput { return o } -func (o EncryptionServicesResponsePtrOutput) Elem() EncryptionServicesResponseOutput { - return o.ApplyT(func(v *EncryptionServicesResponse) EncryptionServicesResponse { +func (o EncryptionIdentityResponsePtrOutput) Elem() EncryptionIdentityResponseOutput { + return o.ApplyT(func(v *EncryptionIdentityResponse) EncryptionIdentityResponse { if v != nil { return *v } - var ret EncryptionServicesResponse + var ret EncryptionIdentityResponse return ret - }).(EncryptionServicesResponseOutput) -} - -// The encryption function of the blob storage service. -func (o EncryptionServicesResponsePtrOutput) Blob() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { - if v == nil { - return nil - } - return v.Blob - }).(EncryptionServiceResponsePtrOutput) + }).(EncryptionIdentityResponseOutput) } -// The encryption function of the file storage service. -func (o EncryptionServicesResponsePtrOutput) File() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { +// ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. +func (o EncryptionIdentityResponsePtrOutput) EncryptionFederatedIdentityClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionIdentityResponse) *string { if v == nil { return nil } - return v.File - }).(EncryptionServiceResponsePtrOutput) + return v.EncryptionFederatedIdentityClientId + }).(pulumi.StringPtrOutput) } -// The encryption function of the queue storage service. -func (o EncryptionServicesResponsePtrOutput) Queue() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { +// Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. +func (o EncryptionIdentityResponsePtrOutput) EncryptionUserAssignedIdentity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionIdentityResponse) *string { if v == nil { return nil } - return v.Queue - }).(EncryptionServiceResponsePtrOutput) + return v.EncryptionUserAssignedIdentity + }).(pulumi.StringPtrOutput) } -// The encryption function of the table storage service. -func (o EncryptionServicesResponsePtrOutput) Table() EncryptionServiceResponsePtrOutput { - return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { - if v == nil { - return nil - } - return v.Table - }).(EncryptionServiceResponsePtrOutput) +// The encryption settings on the storage account. +type EncryptionResponse struct { + // The identity to be used with service-side encryption at rest. + EncryptionIdentity *EncryptionIdentityResponse `pulumi:"encryptionIdentity"` + // The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault + KeySource *string `pulumi:"keySource"` + // Properties provided by key vault. + KeyVaultProperties *KeyVaultPropertiesResponse `pulumi:"keyVaultProperties"` + // A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. + RequireInfrastructureEncryption *bool `pulumi:"requireInfrastructureEncryption"` + // List of services which support encryption. + Services *EncryptionServicesResponse `pulumi:"services"` } -// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object. -type EndpointsResponse struct { - // Gets the blob endpoint. - Blob string `pulumi:"blob"` - // Gets the dfs endpoint. - Dfs string `pulumi:"dfs"` - // Gets the file endpoint. - File string `pulumi:"file"` - // Gets the internet routing storage endpoints - InternetEndpoints *StorageAccountInternetEndpointsResponse `pulumi:"internetEndpoints"` - // Gets the microsoft routing storage endpoints. - MicrosoftEndpoints *StorageAccountMicrosoftEndpointsResponse `pulumi:"microsoftEndpoints"` - // Gets the queue endpoint. - Queue string `pulumi:"queue"` - // Gets the table endpoint. - Table string `pulumi:"table"` - // Gets the web endpoint. - Web string `pulumi:"web"` +// Defaults sets the appropriate defaults for EncryptionResponse +func (val *EncryptionResponse) Defaults() *EncryptionResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.KeySource == nil { + keySource_ := "Microsoft.Storage" + tmp.KeySource = &keySource_ + } + return &tmp } -// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object. -type EndpointsResponseOutput struct{ *pulumi.OutputState } +// The encryption settings on the storage account. +type EncryptionResponseOutput struct{ *pulumi.OutputState } -func (EndpointsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*EndpointsResponse)(nil)).Elem() +func (EncryptionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionResponse)(nil)).Elem() } -func (o EndpointsResponseOutput) ToEndpointsResponseOutput() EndpointsResponseOutput { +func (o EncryptionResponseOutput) ToEncryptionResponseOutput() EncryptionResponseOutput { return o } -func (o EndpointsResponseOutput) ToEndpointsResponseOutputWithContext(ctx context.Context) EndpointsResponseOutput { +func (o EncryptionResponseOutput) ToEncryptionResponseOutputWithContext(ctx context.Context) EncryptionResponseOutput { return o } -// Gets the blob endpoint. -func (o EndpointsResponseOutput) Blob() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) +// The identity to be used with service-side encryption at rest. +func (o EncryptionResponseOutput) EncryptionIdentity() EncryptionIdentityResponsePtrOutput { + return o.ApplyT(func(v EncryptionResponse) *EncryptionIdentityResponse { return v.EncryptionIdentity }).(EncryptionIdentityResponsePtrOutput) } -// Gets the dfs endpoint. -func (o EndpointsResponseOutput) Dfs() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) +// The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault +func (o EncryptionResponseOutput) KeySource() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionResponse) *string { return v.KeySource }).(pulumi.StringPtrOutput) } -// Gets the file endpoint. -func (o EndpointsResponseOutput) File() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.File }).(pulumi.StringOutput) +// Properties provided by key vault. +func (o EncryptionResponseOutput) KeyVaultProperties() KeyVaultPropertiesResponsePtrOutput { + return o.ApplyT(func(v EncryptionResponse) *KeyVaultPropertiesResponse { return v.KeyVaultProperties }).(KeyVaultPropertiesResponsePtrOutput) } -// Gets the internet routing storage endpoints -func (o EndpointsResponseOutput) InternetEndpoints() StorageAccountInternetEndpointsResponsePtrOutput { - return o.ApplyT(func(v EndpointsResponse) *StorageAccountInternetEndpointsResponse { return v.InternetEndpoints }).(StorageAccountInternetEndpointsResponsePtrOutput) +// A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. +func (o EncryptionResponseOutput) RequireInfrastructureEncryption() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionResponse) *bool { return v.RequireInfrastructureEncryption }).(pulumi.BoolPtrOutput) } -// Gets the microsoft routing storage endpoints. -func (o EndpointsResponseOutput) MicrosoftEndpoints() StorageAccountMicrosoftEndpointsResponsePtrOutput { - return o.ApplyT(func(v EndpointsResponse) *StorageAccountMicrosoftEndpointsResponse { return v.MicrosoftEndpoints }).(StorageAccountMicrosoftEndpointsResponsePtrOutput) +// List of services which support encryption. +func (o EncryptionResponseOutput) Services() EncryptionServicesResponsePtrOutput { + return o.ApplyT(func(v EncryptionResponse) *EncryptionServicesResponse { return v.Services }).(EncryptionServicesResponsePtrOutput) } -// Gets the queue endpoint. -func (o EndpointsResponseOutput) Queue() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.Queue }).(pulumi.StringOutput) +// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. +type EncryptionScopeKeyVaultProperties struct { + // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. + KeyUri *string `pulumi:"keyUri"` } -// Gets the table endpoint. -func (o EndpointsResponseOutput) Table() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.Table }).(pulumi.StringOutput) -} +// EncryptionScopeKeyVaultPropertiesInput is an input type that accepts EncryptionScopeKeyVaultPropertiesArgs and EncryptionScopeKeyVaultPropertiesOutput values. +// You can construct a concrete instance of `EncryptionScopeKeyVaultPropertiesInput` via: +// +// EncryptionScopeKeyVaultPropertiesArgs{...} +type EncryptionScopeKeyVaultPropertiesInput interface { + pulumi.Input -// Gets the web endpoint. -func (o EndpointsResponseOutput) Web() pulumi.StringOutput { - return o.ApplyT(func(v EndpointsResponse) string { return v.Web }).(pulumi.StringOutput) + ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput + ToEncryptionScopeKeyVaultPropertiesOutputWithContext(context.Context) EncryptionScopeKeyVaultPropertiesOutput } -// The complex type of the extended location. -type ExtendedLocation struct { - // The name of the extended location. - Name *string `pulumi:"name"` - // The type of the extended location. - Type *string `pulumi:"type"` +// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. +type EncryptionScopeKeyVaultPropertiesArgs struct { + // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. + KeyUri pulumi.StringPtrInput `pulumi:"keyUri"` } -// ExtendedLocationInput is an input type that accepts ExtendedLocationArgs and ExtendedLocationOutput values. -// You can construct a concrete instance of `ExtendedLocationInput` via: -// -// ExtendedLocationArgs{...} -type ExtendedLocationInput interface { - pulumi.Input - - ToExtendedLocationOutput() ExtendedLocationOutput - ToExtendedLocationOutputWithContext(context.Context) ExtendedLocationOutput -} - -// The complex type of the extended location. -type ExtendedLocationArgs struct { - // The name of the extended location. - Name pulumi.StringPtrInput `pulumi:"name"` - // The type of the extended location. - Type pulumi.StringPtrInput `pulumi:"type"` -} - -func (ExtendedLocationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() +func (EncryptionScopeKeyVaultPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionScopeKeyVaultProperties)(nil)).Elem() } -func (i ExtendedLocationArgs) ToExtendedLocationOutput() ExtendedLocationOutput { - return i.ToExtendedLocationOutputWithContext(context.Background()) +func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput { + return i.ToEncryptionScopeKeyVaultPropertiesOutputWithContext(context.Background()) } -func (i ExtendedLocationArgs) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput) +func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesOutput) } -func (i ExtendedLocationArgs) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { - return i.ToExtendedLocationPtrOutputWithContext(context.Background()) +func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { + return i.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) } -func (i ExtendedLocationArgs) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput).ToExtendedLocationPtrOutputWithContext(ctx) +func (i EncryptionScopeKeyVaultPropertiesArgs) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesOutput).ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx) } -// ExtendedLocationPtrInput is an input type that accepts ExtendedLocationArgs, ExtendedLocationPtr and ExtendedLocationPtrOutput values. -// You can construct a concrete instance of `ExtendedLocationPtrInput` via: +// EncryptionScopeKeyVaultPropertiesPtrInput is an input type that accepts EncryptionScopeKeyVaultPropertiesArgs, EncryptionScopeKeyVaultPropertiesPtr and EncryptionScopeKeyVaultPropertiesPtrOutput values. +// You can construct a concrete instance of `EncryptionScopeKeyVaultPropertiesPtrInput` via: // -// ExtendedLocationArgs{...} +// EncryptionScopeKeyVaultPropertiesArgs{...} // // or: // // nil -type ExtendedLocationPtrInput interface { +type EncryptionScopeKeyVaultPropertiesPtrInput interface { pulumi.Input - ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput - ToExtendedLocationPtrOutputWithContext(context.Context) ExtendedLocationPtrOutput + ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput + ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput } -type extendedLocationPtrType ExtendedLocationArgs +type encryptionScopeKeyVaultPropertiesPtrType EncryptionScopeKeyVaultPropertiesArgs -func ExtendedLocationPtr(v *ExtendedLocationArgs) ExtendedLocationPtrInput { - return (*extendedLocationPtrType)(v) +func EncryptionScopeKeyVaultPropertiesPtr(v *EncryptionScopeKeyVaultPropertiesArgs) EncryptionScopeKeyVaultPropertiesPtrInput { + return (*encryptionScopeKeyVaultPropertiesPtrType)(v) } -func (*extendedLocationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() +func (*encryptionScopeKeyVaultPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionScopeKeyVaultProperties)(nil)).Elem() } -func (i *extendedLocationPtrType) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { - return i.ToExtendedLocationPtrOutputWithContext(context.Background()) +func (i *encryptionScopeKeyVaultPropertiesPtrType) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { + return i.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) } -func (i *extendedLocationPtrType) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationPtrOutput) +func (i *encryptionScopeKeyVaultPropertiesPtrType) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionScopeKeyVaultPropertiesPtrOutput) } -// The complex type of the extended location. -type ExtendedLocationOutput struct{ *pulumi.OutputState } +// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. +type EncryptionScopeKeyVaultPropertiesOutput struct{ *pulumi.OutputState } -func (ExtendedLocationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() +func (EncryptionScopeKeyVaultPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionScopeKeyVaultProperties)(nil)).Elem() } -func (o ExtendedLocationOutput) ToExtendedLocationOutput() ExtendedLocationOutput { +func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesOutput() EncryptionScopeKeyVaultPropertiesOutput { return o } -func (o ExtendedLocationOutput) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { +func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesOutput { return o } -func (o ExtendedLocationOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { - return o.ToExtendedLocationPtrOutputWithContext(context.Background()) +func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { + return o.ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(context.Background()) } -func (o ExtendedLocationOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ExtendedLocation) *ExtendedLocation { +func (o EncryptionScopeKeyVaultPropertiesOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionScopeKeyVaultProperties) *EncryptionScopeKeyVaultProperties { return &v - }).(ExtendedLocationPtrOutput) -} - -// The name of the extended location. -func (o ExtendedLocationOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) + }).(EncryptionScopeKeyVaultPropertiesPtrOutput) } -// The type of the extended location. -func (o ExtendedLocationOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExtendedLocation) *string { return v.Type }).(pulumi.StringPtrOutput) +// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. +func (o EncryptionScopeKeyVaultPropertiesOutput) KeyUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionScopeKeyVaultProperties) *string { return v.KeyUri }).(pulumi.StringPtrOutput) } -type ExtendedLocationPtrOutput struct{ *pulumi.OutputState } +type EncryptionScopeKeyVaultPropertiesPtrOutput struct{ *pulumi.OutputState } -func (ExtendedLocationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() +func (EncryptionScopeKeyVaultPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionScopeKeyVaultProperties)(nil)).Elem() } -func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { +func (o EncryptionScopeKeyVaultPropertiesPtrOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutput() EncryptionScopeKeyVaultPropertiesPtrOutput { return o } -func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { +func (o EncryptionScopeKeyVaultPropertiesPtrOutput) ToEncryptionScopeKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesPtrOutput { return o } -func (o ExtendedLocationPtrOutput) Elem() ExtendedLocationOutput { - return o.ApplyT(func(v *ExtendedLocation) ExtendedLocation { +func (o EncryptionScopeKeyVaultPropertiesPtrOutput) Elem() EncryptionScopeKeyVaultPropertiesOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultProperties) EncryptionScopeKeyVaultProperties { if v != nil { return *v } - var ret ExtendedLocation + var ret EncryptionScopeKeyVaultProperties return ret - }).(ExtendedLocationOutput) -} - -// The name of the extended location. -func (o ExtendedLocationPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ExtendedLocation) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) + }).(EncryptionScopeKeyVaultPropertiesOutput) } -// The type of the extended location. -func (o ExtendedLocationPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ExtendedLocation) *string { +// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. +func (o EncryptionScopeKeyVaultPropertiesPtrOutput) KeyUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultProperties) *string { if v == nil { return nil } - return v.Type + return v.KeyUri }).(pulumi.StringPtrOutput) } -// The complex type of the extended location. -type ExtendedLocationResponse struct { - // The name of the extended location. - Name *string `pulumi:"name"` - // The type of the extended location. - Type *string `pulumi:"type"` +// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. +type EncryptionScopeKeyVaultPropertiesResponse struct { + // The object identifier of the current versioned Key Vault Key in use. + CurrentVersionedKeyIdentifier string `pulumi:"currentVersionedKeyIdentifier"` + // The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. + KeyUri *string `pulumi:"keyUri"` + // Timestamp of last rotation of the Key Vault Key. + LastKeyRotationTimestamp string `pulumi:"lastKeyRotationTimestamp"` } -// The complex type of the extended location. -type ExtendedLocationResponseOutput struct{ *pulumi.OutputState } +// The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. +type EncryptionScopeKeyVaultPropertiesResponseOutput struct{ *pulumi.OutputState } -func (ExtendedLocationResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExtendedLocationResponse)(nil)).Elem() +func (EncryptionScopeKeyVaultPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionScopeKeyVaultPropertiesResponse)(nil)).Elem() } -func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutput() ExtendedLocationResponseOutput { +func (o EncryptionScopeKeyVaultPropertiesResponseOutput) ToEncryptionScopeKeyVaultPropertiesResponseOutput() EncryptionScopeKeyVaultPropertiesResponseOutput { return o } -func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutputWithContext(ctx context.Context) ExtendedLocationResponseOutput { +func (o EncryptionScopeKeyVaultPropertiesResponseOutput) ToEncryptionScopeKeyVaultPropertiesResponseOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesResponseOutput { return o } -// The name of the extended location. -func (o ExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +// The object identifier of the current versioned Key Vault Key in use. +func (o EncryptionScopeKeyVaultPropertiesResponseOutput) CurrentVersionedKeyIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) string { return v.CurrentVersionedKeyIdentifier }).(pulumi.StringOutput) } -// The type of the extended location. -func (o ExtendedLocationResponseOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Type }).(pulumi.StringPtrOutput) +// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. +func (o EncryptionScopeKeyVaultPropertiesResponseOutput) KeyUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) *string { return v.KeyUri }).(pulumi.StringPtrOutput) } -type ExtendedLocationResponsePtrOutput struct{ *pulumi.OutputState } +// Timestamp of last rotation of the Key Vault Key. +func (o EncryptionScopeKeyVaultPropertiesResponseOutput) LastKeyRotationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v EncryptionScopeKeyVaultPropertiesResponse) string { return v.LastKeyRotationTimestamp }).(pulumi.StringOutput) +} -func (ExtendedLocationResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ExtendedLocationResponse)(nil)).Elem() +type EncryptionScopeKeyVaultPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionScopeKeyVaultPropertiesResponse)(nil)).Elem() } -func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutput() ExtendedLocationResponsePtrOutput { +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ToEncryptionScopeKeyVaultPropertiesResponsePtrOutput() EncryptionScopeKeyVaultPropertiesResponsePtrOutput { return o } -func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutputWithContext(ctx context.Context) ExtendedLocationResponsePtrOutput { +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) ToEncryptionScopeKeyVaultPropertiesResponsePtrOutputWithContext(ctx context.Context) EncryptionScopeKeyVaultPropertiesResponsePtrOutput { return o } -func (o ExtendedLocationResponsePtrOutput) Elem() ExtendedLocationResponseOutput { - return o.ApplyT(func(v *ExtendedLocationResponse) ExtendedLocationResponse { +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) Elem() EncryptionScopeKeyVaultPropertiesResponseOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) EncryptionScopeKeyVaultPropertiesResponse { if v != nil { return *v } - var ret ExtendedLocationResponse + var ret EncryptionScopeKeyVaultPropertiesResponse return ret - }).(ExtendedLocationResponseOutput) + }).(EncryptionScopeKeyVaultPropertiesResponseOutput) } -// The name of the extended location. -func (o ExtendedLocationResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ExtendedLocationResponse) *string { +// The object identifier of the current versioned Key Vault Key in use. +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) CurrentVersionedKeyIdentifier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { if v == nil { return nil } - return v.Name + return &v.CurrentVersionedKeyIdentifier }).(pulumi.StringPtrOutput) } -// The type of the extended location. -func (o ExtendedLocationResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ExtendedLocationResponse) *string { +// The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) KeyUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { if v == nil { return nil } - return v.Type + return v.KeyUri }).(pulumi.StringPtrOutput) } -// Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account. -type GeoReplicationStatsResponse struct { - // A boolean flag which indicates whether or not account failover is supported for the account. - CanFailover bool `pulumi:"canFailover"` - // All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap. - LastSyncTime string `pulumi:"lastSyncTime"` - // The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. - Status string `pulumi:"status"` +// Timestamp of last rotation of the Key Vault Key. +func (o EncryptionScopeKeyVaultPropertiesResponsePtrOutput) LastKeyRotationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionScopeKeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.LastKeyRotationTimestamp + }).(pulumi.StringPtrOutput) } -// Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account. -type GeoReplicationStatsResponseOutput struct{ *pulumi.OutputState } - -func (GeoReplicationStatsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*GeoReplicationStatsResponse)(nil)).Elem() +// A service that allows server-side encryption to be used. +type EncryptionService struct { + // A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. + Enabled *bool `pulumi:"enabled"` + // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. + KeyType *string `pulumi:"keyType"` } -func (o GeoReplicationStatsResponseOutput) ToGeoReplicationStatsResponseOutput() GeoReplicationStatsResponseOutput { - return o -} +// EncryptionServiceInput is an input type that accepts EncryptionServiceArgs and EncryptionServiceOutput values. +// You can construct a concrete instance of `EncryptionServiceInput` via: +// +// EncryptionServiceArgs{...} +type EncryptionServiceInput interface { + pulumi.Input -func (o GeoReplicationStatsResponseOutput) ToGeoReplicationStatsResponseOutputWithContext(ctx context.Context) GeoReplicationStatsResponseOutput { - return o + ToEncryptionServiceOutput() EncryptionServiceOutput + ToEncryptionServiceOutputWithContext(context.Context) EncryptionServiceOutput } -// A boolean flag which indicates whether or not account failover is supported for the account. -func (o GeoReplicationStatsResponseOutput) CanFailover() pulumi.BoolOutput { - return o.ApplyT(func(v GeoReplicationStatsResponse) bool { return v.CanFailover }).(pulumi.BoolOutput) +// A service that allows server-side encryption to be used. +type EncryptionServiceArgs struct { + // A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. + KeyType pulumi.StringPtrInput `pulumi:"keyType"` } -// All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap. -func (o GeoReplicationStatsResponseOutput) LastSyncTime() pulumi.StringOutput { - return o.ApplyT(func(v GeoReplicationStatsResponse) string { return v.LastSyncTime }).(pulumi.StringOutput) +func (EncryptionServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionService)(nil)).Elem() } -// The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. -func (o GeoReplicationStatsResponseOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v GeoReplicationStatsResponse) string { return v.Status }).(pulumi.StringOutput) +func (i EncryptionServiceArgs) ToEncryptionServiceOutput() EncryptionServiceOutput { + return i.ToEncryptionServiceOutputWithContext(context.Background()) } -// IP rule with specific IP or IP range in CIDR format. -type IPRule struct { - // The action of IP ACL rule. - Action *Action `pulumi:"action"` - // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. - IPAddressOrRange string `pulumi:"iPAddressOrRange"` +func (i EncryptionServiceArgs) ToEncryptionServiceOutputWithContext(ctx context.Context) EncryptionServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServiceOutput) } -// Defaults sets the appropriate defaults for IPRule -func (val *IPRule) Defaults() *IPRule { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Action) { - action_ := Action("Allow") - tmp.Action = &action_ - } - return &tmp +func (i EncryptionServiceArgs) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { + return i.ToEncryptionServicePtrOutputWithContext(context.Background()) } -// IPRuleInput is an input type that accepts IPRuleArgs and IPRuleOutput values. -// You can construct a concrete instance of `IPRuleInput` via: +func (i EncryptionServiceArgs) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServiceOutput).ToEncryptionServicePtrOutputWithContext(ctx) +} + +// EncryptionServicePtrInput is an input type that accepts EncryptionServiceArgs, EncryptionServicePtr and EncryptionServicePtrOutput values. +// You can construct a concrete instance of `EncryptionServicePtrInput` via: // -// IPRuleArgs{...} -type IPRuleInput interface { +// EncryptionServiceArgs{...} +// +// or: +// +// nil +type EncryptionServicePtrInput interface { pulumi.Input - ToIPRuleOutput() IPRuleOutput - ToIPRuleOutputWithContext(context.Context) IPRuleOutput + ToEncryptionServicePtrOutput() EncryptionServicePtrOutput + ToEncryptionServicePtrOutputWithContext(context.Context) EncryptionServicePtrOutput } -// IP rule with specific IP or IP range in CIDR format. -type IPRuleArgs struct { - // The action of IP ACL rule. - Action ActionPtrInput `pulumi:"action"` - // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. - IPAddressOrRange pulumi.StringInput `pulumi:"iPAddressOrRange"` -} +type encryptionServicePtrType EncryptionServiceArgs -// Defaults sets the appropriate defaults for IPRuleArgs -func (val *IPRuleArgs) Defaults() *IPRuleArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Action) { - tmp.Action = Action("Allow") - } - return &tmp -} -func (IPRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*IPRule)(nil)).Elem() +func EncryptionServicePtr(v *EncryptionServiceArgs) EncryptionServicePtrInput { + return (*encryptionServicePtrType)(v) } -func (i IPRuleArgs) ToIPRuleOutput() IPRuleOutput { - return i.ToIPRuleOutputWithContext(context.Background()) +func (*encryptionServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionService)(nil)).Elem() } -func (i IPRuleArgs) ToIPRuleOutputWithContext(ctx context.Context) IPRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(IPRuleOutput) +func (i *encryptionServicePtrType) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { + return i.ToEncryptionServicePtrOutputWithContext(context.Background()) } -// IPRuleArrayInput is an input type that accepts IPRuleArray and IPRuleArrayOutput values. -// You can construct a concrete instance of `IPRuleArrayInput` via: -// -// IPRuleArray{ IPRuleArgs{...} } -type IPRuleArrayInput interface { - pulumi.Input - - ToIPRuleArrayOutput() IPRuleArrayOutput - ToIPRuleArrayOutputWithContext(context.Context) IPRuleArrayOutput +func (i *encryptionServicePtrType) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicePtrOutput) } -type IPRuleArray []IPRuleInput - -func (IPRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]IPRule)(nil)).Elem() -} +// A service that allows server-side encryption to be used. +type EncryptionServiceOutput struct{ *pulumi.OutputState } -func (i IPRuleArray) ToIPRuleArrayOutput() IPRuleArrayOutput { - return i.ToIPRuleArrayOutputWithContext(context.Background()) +func (EncryptionServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionService)(nil)).Elem() } -func (i IPRuleArray) ToIPRuleArrayOutputWithContext(ctx context.Context) IPRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(IPRuleArrayOutput) +func (o EncryptionServiceOutput) ToEncryptionServiceOutput() EncryptionServiceOutput { + return o } -// IP rule with specific IP or IP range in CIDR format. -type IPRuleOutput struct{ *pulumi.OutputState } - -func (IPRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*IPRule)(nil)).Elem() +func (o EncryptionServiceOutput) ToEncryptionServiceOutputWithContext(ctx context.Context) EncryptionServiceOutput { + return o } -func (o IPRuleOutput) ToIPRuleOutput() IPRuleOutput { - return o +func (o EncryptionServiceOutput) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { + return o.ToEncryptionServicePtrOutputWithContext(context.Background()) } -func (o IPRuleOutput) ToIPRuleOutputWithContext(ctx context.Context) IPRuleOutput { - return o +func (o EncryptionServiceOutput) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionService) *EncryptionService { + return &v + }).(EncryptionServicePtrOutput) } -// The action of IP ACL rule. -func (o IPRuleOutput) Action() ActionPtrOutput { - return o.ApplyT(func(v IPRule) *Action { return v.Action }).(ActionPtrOutput) +// A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. +func (o EncryptionServiceOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionService) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. -func (o IPRuleOutput) IPAddressOrRange() pulumi.StringOutput { - return o.ApplyT(func(v IPRule) string { return v.IPAddressOrRange }).(pulumi.StringOutput) +// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. +func (o EncryptionServiceOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionService) *string { return v.KeyType }).(pulumi.StringPtrOutput) } -type IPRuleArrayOutput struct{ *pulumi.OutputState } +type EncryptionServicePtrOutput struct{ *pulumi.OutputState } -func (IPRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]IPRule)(nil)).Elem() +func (EncryptionServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionService)(nil)).Elem() } -func (o IPRuleArrayOutput) ToIPRuleArrayOutput() IPRuleArrayOutput { +func (o EncryptionServicePtrOutput) ToEncryptionServicePtrOutput() EncryptionServicePtrOutput { return o } -func (o IPRuleArrayOutput) ToIPRuleArrayOutputWithContext(ctx context.Context) IPRuleArrayOutput { +func (o EncryptionServicePtrOutput) ToEncryptionServicePtrOutputWithContext(ctx context.Context) EncryptionServicePtrOutput { return o } -func (o IPRuleArrayOutput) Index(i pulumi.IntInput) IPRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) IPRule { - return vs[0].([]IPRule)[vs[1].(int)] - }).(IPRuleOutput) +func (o EncryptionServicePtrOutput) Elem() EncryptionServiceOutput { + return o.ApplyT(func(v *EncryptionService) EncryptionService { + if v != nil { + return *v + } + var ret EncryptionService + return ret + }).(EncryptionServiceOutput) } -// IP rule with specific IP or IP range in CIDR format. -type IPRuleResponse struct { - // The action of IP ACL rule. - Action *string `pulumi:"action"` - // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. - IPAddressOrRange string `pulumi:"iPAddressOrRange"` +// A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. +func (o EncryptionServicePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionService) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// Defaults sets the appropriate defaults for IPRuleResponse -func (val *IPRuleResponse) Defaults() *IPRuleResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Action) { - action_ := "Allow" - tmp.Action = &action_ - } - return &tmp +// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. +func (o EncryptionServicePtrOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionService) *string { + if v == nil { + return nil + } + return v.KeyType + }).(pulumi.StringPtrOutput) } -// IP rule with specific IP or IP range in CIDR format. -type IPRuleResponseOutput struct{ *pulumi.OutputState } +// A service that allows server-side encryption to be used. +type EncryptionServiceResponse struct { + // A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. + Enabled *bool `pulumi:"enabled"` + // Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. + KeyType *string `pulumi:"keyType"` + // Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled. + LastEnabledTime string `pulumi:"lastEnabledTime"` +} -func (IPRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*IPRuleResponse)(nil)).Elem() +// A service that allows server-side encryption to be used. +type EncryptionServiceResponseOutput struct{ *pulumi.OutputState } + +func (EncryptionServiceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionServiceResponse)(nil)).Elem() } -func (o IPRuleResponseOutput) ToIPRuleResponseOutput() IPRuleResponseOutput { +func (o EncryptionServiceResponseOutput) ToEncryptionServiceResponseOutput() EncryptionServiceResponseOutput { return o } -func (o IPRuleResponseOutput) ToIPRuleResponseOutputWithContext(ctx context.Context) IPRuleResponseOutput { +func (o EncryptionServiceResponseOutput) ToEncryptionServiceResponseOutputWithContext(ctx context.Context) EncryptionServiceResponseOutput { return o } -// The action of IP ACL rule. -func (o IPRuleResponseOutput) Action() pulumi.StringPtrOutput { - return o.ApplyT(func(v IPRuleResponse) *string { return v.Action }).(pulumi.StringPtrOutput) +// A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. +func (o EncryptionServiceResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EncryptionServiceResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. -func (o IPRuleResponseOutput) IPAddressOrRange() pulumi.StringOutput { - return o.ApplyT(func(v IPRuleResponse) string { return v.IPAddressOrRange }).(pulumi.StringOutput) +// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. +func (o EncryptionServiceResponseOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v EncryptionServiceResponse) *string { return v.KeyType }).(pulumi.StringPtrOutput) } -type IPRuleResponseArrayOutput struct{ *pulumi.OutputState } - -func (IPRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]IPRuleResponse)(nil)).Elem() +// Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled. +func (o EncryptionServiceResponseOutput) LastEnabledTime() pulumi.StringOutput { + return o.ApplyT(func(v EncryptionServiceResponse) string { return v.LastEnabledTime }).(pulumi.StringOutput) } -func (o IPRuleResponseArrayOutput) ToIPRuleResponseArrayOutput() IPRuleResponseArrayOutput { - return o +type EncryptionServiceResponsePtrOutput struct{ *pulumi.OutputState } + +func (EncryptionServiceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionServiceResponse)(nil)).Elem() } -func (o IPRuleResponseArrayOutput) ToIPRuleResponseArrayOutputWithContext(ctx context.Context) IPRuleResponseArrayOutput { +func (o EncryptionServiceResponsePtrOutput) ToEncryptionServiceResponsePtrOutput() EncryptionServiceResponsePtrOutput { return o } -func (o IPRuleResponseArrayOutput) Index(i pulumi.IntInput) IPRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) IPRuleResponse { - return vs[0].([]IPRuleResponse)[vs[1].(int)] - }).(IPRuleResponseOutput) +func (o EncryptionServiceResponsePtrOutput) ToEncryptionServiceResponsePtrOutputWithContext(ctx context.Context) EncryptionServiceResponsePtrOutput { + return o } -// Identity for the resource. -type Identity struct { - // The identity type. - Type string `pulumi:"type"` - // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. - UserAssignedIdentities map[string]interface{} `pulumi:"userAssignedIdentities"` +func (o EncryptionServiceResponsePtrOutput) Elem() EncryptionServiceResponseOutput { + return o.ApplyT(func(v *EncryptionServiceResponse) EncryptionServiceResponse { + if v != nil { + return *v + } + var ret EncryptionServiceResponse + return ret + }).(EncryptionServiceResponseOutput) } -// IdentityInput is an input type that accepts IdentityArgs and IdentityOutput values. -// You can construct a concrete instance of `IdentityInput` via: +// A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. +func (o EncryptionServiceResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EncryptionServiceResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. +func (o EncryptionServiceResponsePtrOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionServiceResponse) *string { + if v == nil { + return nil + } + return v.KeyType + }).(pulumi.StringPtrOutput) +} + +// Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled. +func (o EncryptionServiceResponsePtrOutput) LastEnabledTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EncryptionServiceResponse) *string { + if v == nil { + return nil + } + return &v.LastEnabledTime + }).(pulumi.StringPtrOutput) +} + +// A list of services that support encryption. +type EncryptionServices struct { + // The encryption function of the blob storage service. + Blob *EncryptionService `pulumi:"blob"` + // The encryption function of the file storage service. + File *EncryptionService `pulumi:"file"` + // The encryption function of the queue storage service. + Queue *EncryptionService `pulumi:"queue"` + // The encryption function of the table storage service. + Table *EncryptionService `pulumi:"table"` +} + +// EncryptionServicesInput is an input type that accepts EncryptionServicesArgs and EncryptionServicesOutput values. +// You can construct a concrete instance of `EncryptionServicesInput` via: // -// IdentityArgs{...} -type IdentityInput interface { +// EncryptionServicesArgs{...} +type EncryptionServicesInput interface { pulumi.Input - ToIdentityOutput() IdentityOutput - ToIdentityOutputWithContext(context.Context) IdentityOutput + ToEncryptionServicesOutput() EncryptionServicesOutput + ToEncryptionServicesOutputWithContext(context.Context) EncryptionServicesOutput } -// Identity for the resource. -type IdentityArgs struct { - // The identity type. - Type pulumi.StringInput `pulumi:"type"` - // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. - UserAssignedIdentities pulumi.MapInput `pulumi:"userAssignedIdentities"` +// A list of services that support encryption. +type EncryptionServicesArgs struct { + // The encryption function of the blob storage service. + Blob EncryptionServicePtrInput `pulumi:"blob"` + // The encryption function of the file storage service. + File EncryptionServicePtrInput `pulumi:"file"` + // The encryption function of the queue storage service. + Queue EncryptionServicePtrInput `pulumi:"queue"` + // The encryption function of the table storage service. + Table EncryptionServicePtrInput `pulumi:"table"` } -func (IdentityArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Identity)(nil)).Elem() +func (EncryptionServicesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionServices)(nil)).Elem() } -func (i IdentityArgs) ToIdentityOutput() IdentityOutput { - return i.ToIdentityOutputWithContext(context.Background()) +func (i EncryptionServicesArgs) ToEncryptionServicesOutput() EncryptionServicesOutput { + return i.ToEncryptionServicesOutputWithContext(context.Background()) } -func (i IdentityArgs) ToIdentityOutputWithContext(ctx context.Context) IdentityOutput { - return pulumi.ToOutputWithContext(ctx, i).(IdentityOutput) +func (i EncryptionServicesArgs) ToEncryptionServicesOutputWithContext(ctx context.Context) EncryptionServicesOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesOutput) } -func (i IdentityArgs) ToIdentityPtrOutput() IdentityPtrOutput { - return i.ToIdentityPtrOutputWithContext(context.Background()) +func (i EncryptionServicesArgs) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { + return i.ToEncryptionServicesPtrOutputWithContext(context.Background()) } -func (i IdentityArgs) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(IdentityOutput).ToIdentityPtrOutputWithContext(ctx) +func (i EncryptionServicesArgs) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesOutput).ToEncryptionServicesPtrOutputWithContext(ctx) } -// IdentityPtrInput is an input type that accepts IdentityArgs, IdentityPtr and IdentityPtrOutput values. -// You can construct a concrete instance of `IdentityPtrInput` via: +// EncryptionServicesPtrInput is an input type that accepts EncryptionServicesArgs, EncryptionServicesPtr and EncryptionServicesPtrOutput values. +// You can construct a concrete instance of `EncryptionServicesPtrInput` via: // -// IdentityArgs{...} +// EncryptionServicesArgs{...} // // or: // // nil -type IdentityPtrInput interface { +type EncryptionServicesPtrInput interface { pulumi.Input - ToIdentityPtrOutput() IdentityPtrOutput - ToIdentityPtrOutputWithContext(context.Context) IdentityPtrOutput + ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput + ToEncryptionServicesPtrOutputWithContext(context.Context) EncryptionServicesPtrOutput } -type identityPtrType IdentityArgs +type encryptionServicesPtrType EncryptionServicesArgs -func IdentityPtr(v *IdentityArgs) IdentityPtrInput { - return (*identityPtrType)(v) +func EncryptionServicesPtr(v *EncryptionServicesArgs) EncryptionServicesPtrInput { + return (*encryptionServicesPtrType)(v) } -func (*identityPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**Identity)(nil)).Elem() +func (*encryptionServicesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionServices)(nil)).Elem() } -func (i *identityPtrType) ToIdentityPtrOutput() IdentityPtrOutput { - return i.ToIdentityPtrOutputWithContext(context.Background()) +func (i *encryptionServicesPtrType) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { + return i.ToEncryptionServicesPtrOutputWithContext(context.Background()) } -func (i *identityPtrType) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(IdentityPtrOutput) +func (i *encryptionServicesPtrType) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EncryptionServicesPtrOutput) } -// Identity for the resource. -type IdentityOutput struct{ *pulumi.OutputState } +// A list of services that support encryption. +type EncryptionServicesOutput struct{ *pulumi.OutputState } -func (IdentityOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Identity)(nil)).Elem() +func (EncryptionServicesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionServices)(nil)).Elem() } -func (o IdentityOutput) ToIdentityOutput() IdentityOutput { +func (o EncryptionServicesOutput) ToEncryptionServicesOutput() EncryptionServicesOutput { return o } -func (o IdentityOutput) ToIdentityOutputWithContext(ctx context.Context) IdentityOutput { +func (o EncryptionServicesOutput) ToEncryptionServicesOutputWithContext(ctx context.Context) EncryptionServicesOutput { return o } -func (o IdentityOutput) ToIdentityPtrOutput() IdentityPtrOutput { - return o.ToIdentityPtrOutputWithContext(context.Background()) +func (o EncryptionServicesOutput) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { + return o.ToEncryptionServicesPtrOutputWithContext(context.Background()) } -func (o IdentityOutput) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v Identity) *Identity { +func (o EncryptionServicesOutput) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EncryptionServices) *EncryptionServices { return &v - }).(IdentityPtrOutput) + }).(EncryptionServicesPtrOutput) } -// The identity type. -func (o IdentityOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v Identity) string { return v.Type }).(pulumi.StringOutput) +// The encryption function of the blob storage service. +func (o EncryptionServicesOutput) Blob() EncryptionServicePtrOutput { + return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Blob }).(EncryptionServicePtrOutput) } -// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. -func (o IdentityOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v Identity) map[string]interface{} { return v.UserAssignedIdentities }).(pulumi.MapOutput) +// The encryption function of the file storage service. +func (o EncryptionServicesOutput) File() EncryptionServicePtrOutput { + return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.File }).(EncryptionServicePtrOutput) } -type IdentityPtrOutput struct{ *pulumi.OutputState } +// The encryption function of the queue storage service. +func (o EncryptionServicesOutput) Queue() EncryptionServicePtrOutput { + return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Queue }).(EncryptionServicePtrOutput) +} -func (IdentityPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Identity)(nil)).Elem() +// The encryption function of the table storage service. +func (o EncryptionServicesOutput) Table() EncryptionServicePtrOutput { + return o.ApplyT(func(v EncryptionServices) *EncryptionService { return v.Table }).(EncryptionServicePtrOutput) } -func (o IdentityPtrOutput) ToIdentityPtrOutput() IdentityPtrOutput { +type EncryptionServicesPtrOutput struct{ *pulumi.OutputState } + +func (EncryptionServicesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionServices)(nil)).Elem() +} + +func (o EncryptionServicesPtrOutput) ToEncryptionServicesPtrOutput() EncryptionServicesPtrOutput { return o } -func (o IdentityPtrOutput) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { +func (o EncryptionServicesPtrOutput) ToEncryptionServicesPtrOutputWithContext(ctx context.Context) EncryptionServicesPtrOutput { return o } -func (o IdentityPtrOutput) Elem() IdentityOutput { - return o.ApplyT(func(v *Identity) Identity { +func (o EncryptionServicesPtrOutput) Elem() EncryptionServicesOutput { + return o.ApplyT(func(v *EncryptionServices) EncryptionServices { if v != nil { return *v } - var ret Identity + var ret EncryptionServices return ret - }).(IdentityOutput) + }).(EncryptionServicesOutput) } -// The identity type. -func (o IdentityPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *Identity) *string { +// The encryption function of the blob storage service. +func (o EncryptionServicesPtrOutput) Blob() EncryptionServicePtrOutput { + return o.ApplyT(func(v *EncryptionServices) *EncryptionService { if v == nil { return nil } - return &v.Type - }).(pulumi.StringPtrOutput) + return v.Blob + }).(EncryptionServicePtrOutput) } -// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. -func (o IdentityPtrOutput) UserAssignedIdentities() pulumi.MapOutput { - return o.ApplyT(func(v *Identity) map[string]interface{} { +// The encryption function of the file storage service. +func (o EncryptionServicesPtrOutput) File() EncryptionServicePtrOutput { + return o.ApplyT(func(v *EncryptionServices) *EncryptionService { if v == nil { return nil } - return v.UserAssignedIdentities - }).(pulumi.MapOutput) + return v.File + }).(EncryptionServicePtrOutput) } -// Identity for the resource. -type IdentityResponse struct { - // The principal ID of resource identity. - PrincipalId string `pulumi:"principalId"` - // The tenant ID of resource. - TenantId string `pulumi:"tenantId"` - // The identity type. - Type string `pulumi:"type"` - // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. - UserAssignedIdentities map[string]UserAssignedIdentityResponse `pulumi:"userAssignedIdentities"` +// The encryption function of the queue storage service. +func (o EncryptionServicesPtrOutput) Queue() EncryptionServicePtrOutput { + return o.ApplyT(func(v *EncryptionServices) *EncryptionService { + if v == nil { + return nil + } + return v.Queue + }).(EncryptionServicePtrOutput) } -// Identity for the resource. -type IdentityResponseOutput struct{ *pulumi.OutputState } +// The encryption function of the table storage service. +func (o EncryptionServicesPtrOutput) Table() EncryptionServicePtrOutput { + return o.ApplyT(func(v *EncryptionServices) *EncryptionService { + if v == nil { + return nil + } + return v.Table + }).(EncryptionServicePtrOutput) +} -func (IdentityResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*IdentityResponse)(nil)).Elem() +// A list of services that support encryption. +type EncryptionServicesResponse struct { + // The encryption function of the blob storage service. + Blob *EncryptionServiceResponse `pulumi:"blob"` + // The encryption function of the file storage service. + File *EncryptionServiceResponse `pulumi:"file"` + // The encryption function of the queue storage service. + Queue *EncryptionServiceResponse `pulumi:"queue"` + // The encryption function of the table storage service. + Table *EncryptionServiceResponse `pulumi:"table"` } -func (o IdentityResponseOutput) ToIdentityResponseOutput() IdentityResponseOutput { - return o +// A list of services that support encryption. +type EncryptionServicesResponseOutput struct{ *pulumi.OutputState } + +func (EncryptionServicesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EncryptionServicesResponse)(nil)).Elem() } -func (o IdentityResponseOutput) ToIdentityResponseOutputWithContext(ctx context.Context) IdentityResponseOutput { +func (o EncryptionServicesResponseOutput) ToEncryptionServicesResponseOutput() EncryptionServicesResponseOutput { return o } -// The principal ID of resource identity. -func (o IdentityResponseOutput) PrincipalId() pulumi.StringOutput { - return o.ApplyT(func(v IdentityResponse) string { return v.PrincipalId }).(pulumi.StringOutput) +func (o EncryptionServicesResponseOutput) ToEncryptionServicesResponseOutputWithContext(ctx context.Context) EncryptionServicesResponseOutput { + return o } -// The tenant ID of resource. -func (o IdentityResponseOutput) TenantId() pulumi.StringOutput { - return o.ApplyT(func(v IdentityResponse) string { return v.TenantId }).(pulumi.StringOutput) +// The encryption function of the blob storage service. +func (o EncryptionServicesResponseOutput) Blob() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Blob }).(EncryptionServiceResponsePtrOutput) } -// The identity type. -func (o IdentityResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v IdentityResponse) string { return v.Type }).(pulumi.StringOutput) +// The encryption function of the file storage service. +func (o EncryptionServicesResponseOutput) File() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.File }).(EncryptionServiceResponsePtrOutput) } -// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. -func (o IdentityResponseOutput) UserAssignedIdentities() UserAssignedIdentityResponseMapOutput { - return o.ApplyT(func(v IdentityResponse) map[string]UserAssignedIdentityResponse { return v.UserAssignedIdentities }).(UserAssignedIdentityResponseMapOutput) +// The encryption function of the queue storage service. +func (o EncryptionServicesResponseOutput) Queue() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Queue }).(EncryptionServiceResponsePtrOutput) } -type IdentityResponsePtrOutput struct{ *pulumi.OutputState } +// The encryption function of the table storage service. +func (o EncryptionServicesResponseOutput) Table() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v EncryptionServicesResponse) *EncryptionServiceResponse { return v.Table }).(EncryptionServiceResponsePtrOutput) +} -func (IdentityResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**IdentityResponse)(nil)).Elem() +type EncryptionServicesResponsePtrOutput struct{ *pulumi.OutputState } + +func (EncryptionServicesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EncryptionServicesResponse)(nil)).Elem() } -func (o IdentityResponsePtrOutput) ToIdentityResponsePtrOutput() IdentityResponsePtrOutput { +func (o EncryptionServicesResponsePtrOutput) ToEncryptionServicesResponsePtrOutput() EncryptionServicesResponsePtrOutput { return o } -func (o IdentityResponsePtrOutput) ToIdentityResponsePtrOutputWithContext(ctx context.Context) IdentityResponsePtrOutput { +func (o EncryptionServicesResponsePtrOutput) ToEncryptionServicesResponsePtrOutputWithContext(ctx context.Context) EncryptionServicesResponsePtrOutput { return o } -func (o IdentityResponsePtrOutput) Elem() IdentityResponseOutput { - return o.ApplyT(func(v *IdentityResponse) IdentityResponse { +func (o EncryptionServicesResponsePtrOutput) Elem() EncryptionServicesResponseOutput { + return o.ApplyT(func(v *EncryptionServicesResponse) EncryptionServicesResponse { if v != nil { return *v } - var ret IdentityResponse + var ret EncryptionServicesResponse return ret - }).(IdentityResponseOutput) + }).(EncryptionServicesResponseOutput) } -// The principal ID of resource identity. -func (o IdentityResponsePtrOutput) PrincipalId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *IdentityResponse) *string { +// The encryption function of the blob storage service. +func (o EncryptionServicesResponsePtrOutput) Blob() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { if v == nil { return nil } - return &v.PrincipalId - }).(pulumi.StringPtrOutput) + return v.Blob + }).(EncryptionServiceResponsePtrOutput) } -// The tenant ID of resource. -func (o IdentityResponsePtrOutput) TenantId() pulumi.StringPtrOutput { - return o.ApplyT(func(v *IdentityResponse) *string { +// The encryption function of the file storage service. +func (o EncryptionServicesResponsePtrOutput) File() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { if v == nil { return nil } - return &v.TenantId - }).(pulumi.StringPtrOutput) + return v.File + }).(EncryptionServiceResponsePtrOutput) } -// The identity type. -func (o IdentityResponsePtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *IdentityResponse) *string { +// The encryption function of the queue storage service. +func (o EncryptionServicesResponsePtrOutput) Queue() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { if v == nil { return nil } - return &v.Type - }).(pulumi.StringPtrOutput) + return v.Queue + }).(EncryptionServiceResponsePtrOutput) } -// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. -func (o IdentityResponsePtrOutput) UserAssignedIdentities() UserAssignedIdentityResponseMapOutput { - return o.ApplyT(func(v *IdentityResponse) map[string]UserAssignedIdentityResponse { +// The encryption function of the table storage service. +func (o EncryptionServicesResponsePtrOutput) Table() EncryptionServiceResponsePtrOutput { + return o.ApplyT(func(v *EncryptionServicesResponse) *EncryptionServiceResponse { if v == nil { return nil } - return v.UserAssignedIdentities - }).(UserAssignedIdentityResponseMapOutput) + return v.Table + }).(EncryptionServiceResponsePtrOutput) } -// The properties of an ImmutabilityPolicy of a blob container. -type ImmutabilityPolicyPropertiesResponse struct { - // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API - AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` - // ImmutabilityPolicy Etag. - Etag string `pulumi:"etag"` - // The immutability period for the blobs in the container since the policy creation, in days. - ImmutabilityPeriodSinceCreationInDays *int `pulumi:"immutabilityPeriodSinceCreationInDays"` - // The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. - State string `pulumi:"state"` - // The ImmutabilityPolicy update history of the blob container. - UpdateHistory []UpdateHistoryPropertyResponse `pulumi:"updateHistory"` +// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object. +type EndpointsResponse struct { + // Gets the blob endpoint. + Blob string `pulumi:"blob"` + // Gets the dfs endpoint. + Dfs string `pulumi:"dfs"` + // Gets the file endpoint. + File string `pulumi:"file"` + // Gets the internet routing storage endpoints + InternetEndpoints *StorageAccountInternetEndpointsResponse `pulumi:"internetEndpoints"` + // Gets the microsoft routing storage endpoints. + MicrosoftEndpoints *StorageAccountMicrosoftEndpointsResponse `pulumi:"microsoftEndpoints"` + // Gets the queue endpoint. + Queue string `pulumi:"queue"` + // Gets the table endpoint. + Table string `pulumi:"table"` + // Gets the web endpoint. + Web string `pulumi:"web"` } -// The properties of an ImmutabilityPolicy of a blob container. -type ImmutabilityPolicyPropertiesResponseOutput struct{ *pulumi.OutputState } +// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object. +type EndpointsResponseOutput struct{ *pulumi.OutputState } -func (ImmutabilityPolicyPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ImmutabilityPolicyPropertiesResponse)(nil)).Elem() +func (EndpointsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EndpointsResponse)(nil)).Elem() } -func (o ImmutabilityPolicyPropertiesResponseOutput) ToImmutabilityPolicyPropertiesResponseOutput() ImmutabilityPolicyPropertiesResponseOutput { +func (o EndpointsResponseOutput) ToEndpointsResponseOutput() EndpointsResponseOutput { return o } -func (o ImmutabilityPolicyPropertiesResponseOutput) ToImmutabilityPolicyPropertiesResponseOutputWithContext(ctx context.Context) ImmutabilityPolicyPropertiesResponseOutput { +func (o EndpointsResponseOutput) ToEndpointsResponseOutputWithContext(ctx context.Context) EndpointsResponseOutput { return o } -// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API -func (o ImmutabilityPolicyPropertiesResponseOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) -} - -// ImmutabilityPolicy Etag. -func (o ImmutabilityPolicyPropertiesResponseOutput) Etag() pulumi.StringOutput { - return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) string { return v.Etag }).(pulumi.StringOutput) -} - -// The immutability period for the blobs in the container since the policy creation, in days. -func (o ImmutabilityPolicyPropertiesResponseOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) *int { return v.ImmutabilityPeriodSinceCreationInDays }).(pulumi.IntPtrOutput) -} - -// The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. -func (o ImmutabilityPolicyPropertiesResponseOutput) State() pulumi.StringOutput { - return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) string { return v.State }).(pulumi.StringOutput) +// Gets the blob endpoint. +func (o EndpointsResponseOutput) Blob() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) } -// The ImmutabilityPolicy update history of the blob container. -func (o ImmutabilityPolicyPropertiesResponseOutput) UpdateHistory() UpdateHistoryPropertyResponseArrayOutput { - return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) []UpdateHistoryPropertyResponse { return v.UpdateHistory }).(UpdateHistoryPropertyResponseArrayOutput) +// Gets the dfs endpoint. +func (o EndpointsResponseOutput) Dfs() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) } -// Storage account keys creation time. -type KeyCreationTimeResponse struct { - Key1 *string `pulumi:"key1"` - Key2 *string `pulumi:"key2"` +// Gets the file endpoint. +func (o EndpointsResponseOutput) File() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.File }).(pulumi.StringOutput) } -// Storage account keys creation time. -type KeyCreationTimeResponseOutput struct{ *pulumi.OutputState } - -func (KeyCreationTimeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*KeyCreationTimeResponse)(nil)).Elem() +// Gets the internet routing storage endpoints +func (o EndpointsResponseOutput) InternetEndpoints() StorageAccountInternetEndpointsResponsePtrOutput { + return o.ApplyT(func(v EndpointsResponse) *StorageAccountInternetEndpointsResponse { return v.InternetEndpoints }).(StorageAccountInternetEndpointsResponsePtrOutput) } -func (o KeyCreationTimeResponseOutput) ToKeyCreationTimeResponseOutput() KeyCreationTimeResponseOutput { - return o +// Gets the microsoft routing storage endpoints. +func (o EndpointsResponseOutput) MicrosoftEndpoints() StorageAccountMicrosoftEndpointsResponsePtrOutput { + return o.ApplyT(func(v EndpointsResponse) *StorageAccountMicrosoftEndpointsResponse { return v.MicrosoftEndpoints }).(StorageAccountMicrosoftEndpointsResponsePtrOutput) } -func (o KeyCreationTimeResponseOutput) ToKeyCreationTimeResponseOutputWithContext(ctx context.Context) KeyCreationTimeResponseOutput { - return o +// Gets the queue endpoint. +func (o EndpointsResponseOutput) Queue() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.Queue }).(pulumi.StringOutput) } -func (o KeyCreationTimeResponseOutput) Key1() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyCreationTimeResponse) *string { return v.Key1 }).(pulumi.StringPtrOutput) +// Gets the table endpoint. +func (o EndpointsResponseOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.Table }).(pulumi.StringOutput) } -func (o KeyCreationTimeResponseOutput) Key2() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyCreationTimeResponse) *string { return v.Key2 }).(pulumi.StringPtrOutput) +// Gets the web endpoint. +func (o EndpointsResponseOutput) Web() pulumi.StringOutput { + return o.ApplyT(func(v EndpointsResponse) string { return v.Web }).(pulumi.StringOutput) } -// KeyPolicy assigned to the storage account. -type KeyPolicy struct { - // The key expiration period in days. - KeyExpirationPeriodInDays int `pulumi:"keyExpirationPeriodInDays"` +// The complex type of the extended location. +type ExtendedLocation struct { + // The name of the extended location. + Name *string `pulumi:"name"` + // The type of the extended location. + Type *string `pulumi:"type"` } -// KeyPolicyInput is an input type that accepts KeyPolicyArgs and KeyPolicyOutput values. -// You can construct a concrete instance of `KeyPolicyInput` via: +// ExtendedLocationInput is an input type that accepts ExtendedLocationArgs and ExtendedLocationOutput values. +// You can construct a concrete instance of `ExtendedLocationInput` via: // -// KeyPolicyArgs{...} -type KeyPolicyInput interface { +// ExtendedLocationArgs{...} +type ExtendedLocationInput interface { pulumi.Input - ToKeyPolicyOutput() KeyPolicyOutput - ToKeyPolicyOutputWithContext(context.Context) KeyPolicyOutput + ToExtendedLocationOutput() ExtendedLocationOutput + ToExtendedLocationOutputWithContext(context.Context) ExtendedLocationOutput } -// KeyPolicy assigned to the storage account. -type KeyPolicyArgs struct { - // The key expiration period in days. - KeyExpirationPeriodInDays pulumi.IntInput `pulumi:"keyExpirationPeriodInDays"` +// The complex type of the extended location. +type ExtendedLocationArgs struct { + // The name of the extended location. + Name pulumi.StringPtrInput `pulumi:"name"` + // The type of the extended location. + Type pulumi.StringPtrInput `pulumi:"type"` } -func (KeyPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*KeyPolicy)(nil)).Elem() +func (ExtendedLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() } -func (i KeyPolicyArgs) ToKeyPolicyOutput() KeyPolicyOutput { - return i.ToKeyPolicyOutputWithContext(context.Background()) +func (i ExtendedLocationArgs) ToExtendedLocationOutput() ExtendedLocationOutput { + return i.ToExtendedLocationOutputWithContext(context.Background()) } -func (i KeyPolicyArgs) ToKeyPolicyOutputWithContext(ctx context.Context) KeyPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyOutput) +func (i ExtendedLocationArgs) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput) } -func (i KeyPolicyArgs) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { - return i.ToKeyPolicyPtrOutputWithContext(context.Background()) +func (i ExtendedLocationArgs) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return i.ToExtendedLocationPtrOutputWithContext(context.Background()) } -func (i KeyPolicyArgs) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyOutput).ToKeyPolicyPtrOutputWithContext(ctx) +func (i ExtendedLocationArgs) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationOutput).ToExtendedLocationPtrOutputWithContext(ctx) } -// KeyPolicyPtrInput is an input type that accepts KeyPolicyArgs, KeyPolicyPtr and KeyPolicyPtrOutput values. -// You can construct a concrete instance of `KeyPolicyPtrInput` via: +// ExtendedLocationPtrInput is an input type that accepts ExtendedLocationArgs, ExtendedLocationPtr and ExtendedLocationPtrOutput values. +// You can construct a concrete instance of `ExtendedLocationPtrInput` via: // -// KeyPolicyArgs{...} +// ExtendedLocationArgs{...} // // or: // // nil -type KeyPolicyPtrInput interface { +type ExtendedLocationPtrInput interface { pulumi.Input - ToKeyPolicyPtrOutput() KeyPolicyPtrOutput - ToKeyPolicyPtrOutputWithContext(context.Context) KeyPolicyPtrOutput + ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput + ToExtendedLocationPtrOutputWithContext(context.Context) ExtendedLocationPtrOutput } -type keyPolicyPtrType KeyPolicyArgs +type extendedLocationPtrType ExtendedLocationArgs -func KeyPolicyPtr(v *KeyPolicyArgs) KeyPolicyPtrInput { - return (*keyPolicyPtrType)(v) +func ExtendedLocationPtr(v *ExtendedLocationArgs) ExtendedLocationPtrInput { + return (*extendedLocationPtrType)(v) } -func (*keyPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**KeyPolicy)(nil)).Elem() +func (*extendedLocationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() } -func (i *keyPolicyPtrType) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { - return i.ToKeyPolicyPtrOutputWithContext(context.Background()) +func (i *extendedLocationPtrType) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return i.ToExtendedLocationPtrOutputWithContext(context.Background()) } -func (i *keyPolicyPtrType) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyPtrOutput) +func (i *extendedLocationPtrType) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExtendedLocationPtrOutput) } -// KeyPolicy assigned to the storage account. -type KeyPolicyOutput struct{ *pulumi.OutputState } +// The complex type of the extended location. +type ExtendedLocationOutput struct{ *pulumi.OutputState } -func (KeyPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*KeyPolicy)(nil)).Elem() +func (ExtendedLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocation)(nil)).Elem() } -func (o KeyPolicyOutput) ToKeyPolicyOutput() KeyPolicyOutput { +func (o ExtendedLocationOutput) ToExtendedLocationOutput() ExtendedLocationOutput { return o } -func (o KeyPolicyOutput) ToKeyPolicyOutputWithContext(ctx context.Context) KeyPolicyOutput { +func (o ExtendedLocationOutput) ToExtendedLocationOutputWithContext(ctx context.Context) ExtendedLocationOutput { return o } -func (o KeyPolicyOutput) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { - return o.ToKeyPolicyPtrOutputWithContext(context.Background()) +func (o ExtendedLocationOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { + return o.ToExtendedLocationPtrOutputWithContext(context.Background()) } -func (o KeyPolicyOutput) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyPolicy) *KeyPolicy { +func (o ExtendedLocationOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExtendedLocation) *ExtendedLocation { return &v - }).(KeyPolicyPtrOutput) + }).(ExtendedLocationPtrOutput) } -// The key expiration period in days. -func (o KeyPolicyOutput) KeyExpirationPeriodInDays() pulumi.IntOutput { - return o.ApplyT(func(v KeyPolicy) int { return v.KeyExpirationPeriodInDays }).(pulumi.IntOutput) +// The name of the extended location. +func (o ExtendedLocationOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Name }).(pulumi.StringPtrOutput) } -type KeyPolicyPtrOutput struct{ *pulumi.OutputState } +// The type of the extended location. +func (o ExtendedLocationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocation) *string { return v.Type }).(pulumi.StringPtrOutput) +} -func (KeyPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**KeyPolicy)(nil)).Elem() +type ExtendedLocationPtrOutput struct{ *pulumi.OutputState } + +func (ExtendedLocationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocation)(nil)).Elem() } -func (o KeyPolicyPtrOutput) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { +func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutput() ExtendedLocationPtrOutput { return o } -func (o KeyPolicyPtrOutput) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { +func (o ExtendedLocationPtrOutput) ToExtendedLocationPtrOutputWithContext(ctx context.Context) ExtendedLocationPtrOutput { return o } -func (o KeyPolicyPtrOutput) Elem() KeyPolicyOutput { - return o.ApplyT(func(v *KeyPolicy) KeyPolicy { +func (o ExtendedLocationPtrOutput) Elem() ExtendedLocationOutput { + return o.ApplyT(func(v *ExtendedLocation) ExtendedLocation { if v != nil { return *v } - var ret KeyPolicy + var ret ExtendedLocation return ret - }).(KeyPolicyOutput) + }).(ExtendedLocationOutput) } -// The key expiration period in days. -func (o KeyPolicyPtrOutput) KeyExpirationPeriodInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *KeyPolicy) *int { +// The name of the extended location. +func (o ExtendedLocationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocation) *string { if v == nil { return nil } - return &v.KeyExpirationPeriodInDays - }).(pulumi.IntPtrOutput) + return v.Name + }).(pulumi.StringPtrOutput) } -// KeyPolicy assigned to the storage account. -type KeyPolicyResponse struct { - // The key expiration period in days. - KeyExpirationPeriodInDays int `pulumi:"keyExpirationPeriodInDays"` +// The type of the extended location. +func (o ExtendedLocationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocation) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) } -// KeyPolicy assigned to the storage account. -type KeyPolicyResponseOutput struct{ *pulumi.OutputState } +// The complex type of the extended location. +type ExtendedLocationResponse struct { + // The name of the extended location. + Name *string `pulumi:"name"` + // The type of the extended location. + Type *string `pulumi:"type"` +} -func (KeyPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*KeyPolicyResponse)(nil)).Elem() +// The complex type of the extended location. +type ExtendedLocationResponseOutput struct{ *pulumi.OutputState } + +func (ExtendedLocationResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExtendedLocationResponse)(nil)).Elem() } -func (o KeyPolicyResponseOutput) ToKeyPolicyResponseOutput() KeyPolicyResponseOutput { +func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutput() ExtendedLocationResponseOutput { return o } -func (o KeyPolicyResponseOutput) ToKeyPolicyResponseOutputWithContext(ctx context.Context) KeyPolicyResponseOutput { +func (o ExtendedLocationResponseOutput) ToExtendedLocationResponseOutputWithContext(ctx context.Context) ExtendedLocationResponseOutput { return o } -// The key expiration period in days. -func (o KeyPolicyResponseOutput) KeyExpirationPeriodInDays() pulumi.IntOutput { - return o.ApplyT(func(v KeyPolicyResponse) int { return v.KeyExpirationPeriodInDays }).(pulumi.IntOutput) +// The name of the extended location. +func (o ExtendedLocationResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Name }).(pulumi.StringPtrOutput) } -// Properties of key vault. -type KeyVaultProperties struct { - // The name of KeyVault key. - KeyName *string `pulumi:"keyName"` - // The Uri of KeyVault. - KeyVaultUri *string `pulumi:"keyVaultUri"` - // The version of KeyVault key. - KeyVersion *string `pulumi:"keyVersion"` +// The type of the extended location. +func (o ExtendedLocationResponseOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExtendedLocationResponse) *string { return v.Type }).(pulumi.StringPtrOutput) } -// KeyVaultPropertiesInput is an input type that accepts KeyVaultPropertiesArgs and KeyVaultPropertiesOutput values. -// You can construct a concrete instance of `KeyVaultPropertiesInput` via: -// -// KeyVaultPropertiesArgs{...} -type KeyVaultPropertiesInput interface { - pulumi.Input +type ExtendedLocationResponsePtrOutput struct{ *pulumi.OutputState } - ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput - ToKeyVaultPropertiesOutputWithContext(context.Context) KeyVaultPropertiesOutput +func (ExtendedLocationResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExtendedLocationResponse)(nil)).Elem() } -// Properties of key vault. -type KeyVaultPropertiesArgs struct { - // The name of KeyVault key. - KeyName pulumi.StringPtrInput `pulumi:"keyName"` - // The Uri of KeyVault. - KeyVaultUri pulumi.StringPtrInput `pulumi:"keyVaultUri"` - // The version of KeyVault key. - KeyVersion pulumi.StringPtrInput `pulumi:"keyVersion"` +func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutput() ExtendedLocationResponsePtrOutput { + return o } -func (KeyVaultPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*KeyVaultProperties)(nil)).Elem() +func (o ExtendedLocationResponsePtrOutput) ToExtendedLocationResponsePtrOutputWithContext(ctx context.Context) ExtendedLocationResponsePtrOutput { + return o } -func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput { - return i.ToKeyVaultPropertiesOutputWithContext(context.Background()) +func (o ExtendedLocationResponsePtrOutput) Elem() ExtendedLocationResponseOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) ExtendedLocationResponse { + if v != nil { + return *v + } + var ret ExtendedLocationResponse + return ret + }).(ExtendedLocationResponseOutput) } -func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesOutputWithContext(ctx context.Context) KeyVaultPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesOutput) +// The name of the extended location. +func (o ExtendedLocationResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) } -func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { - return i.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) +// The type of the extended location. +func (o ExtendedLocationResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExtendedLocationResponse) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) } -func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesOutput).ToKeyVaultPropertiesPtrOutputWithContext(ctx) +// Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account. +type GeoReplicationStatsResponse struct { + // A boolean flag which indicates whether or not account failover is supported for the account. + CanFailover bool `pulumi:"canFailover"` + // All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap. + LastSyncTime string `pulumi:"lastSyncTime"` + // The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. + Status string `pulumi:"status"` } -// KeyVaultPropertiesPtrInput is an input type that accepts KeyVaultPropertiesArgs, KeyVaultPropertiesPtr and KeyVaultPropertiesPtrOutput values. -// You can construct a concrete instance of `KeyVaultPropertiesPtrInput` via: -// -// KeyVaultPropertiesArgs{...} -// -// or: -// -// nil -type KeyVaultPropertiesPtrInput interface { - pulumi.Input +// Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account. +type GeoReplicationStatsResponseOutput struct{ *pulumi.OutputState } - ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput - ToKeyVaultPropertiesPtrOutputWithContext(context.Context) KeyVaultPropertiesPtrOutput +func (GeoReplicationStatsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GeoReplicationStatsResponse)(nil)).Elem() } -type keyVaultPropertiesPtrType KeyVaultPropertiesArgs - -func KeyVaultPropertiesPtr(v *KeyVaultPropertiesArgs) KeyVaultPropertiesPtrInput { - return (*keyVaultPropertiesPtrType)(v) +func (o GeoReplicationStatsResponseOutput) ToGeoReplicationStatsResponseOutput() GeoReplicationStatsResponseOutput { + return o } -func (*keyVaultPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**KeyVaultProperties)(nil)).Elem() +func (o GeoReplicationStatsResponseOutput) ToGeoReplicationStatsResponseOutputWithContext(ctx context.Context) GeoReplicationStatsResponseOutput { + return o } -func (i *keyVaultPropertiesPtrType) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { - return i.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) +// A boolean flag which indicates whether or not account failover is supported for the account. +func (o GeoReplicationStatsResponseOutput) CanFailover() pulumi.BoolOutput { + return o.ApplyT(func(v GeoReplicationStatsResponse) bool { return v.CanFailover }).(pulumi.BoolOutput) } -func (i *keyVaultPropertiesPtrType) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesPtrOutput) +// All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap. +func (o GeoReplicationStatsResponseOutput) LastSyncTime() pulumi.StringOutput { + return o.ApplyT(func(v GeoReplicationStatsResponse) string { return v.LastSyncTime }).(pulumi.StringOutput) } -// Properties of key vault. -type KeyVaultPropertiesOutput struct{ *pulumi.OutputState } - -func (KeyVaultPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*KeyVaultProperties)(nil)).Elem() +// The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. +func (o GeoReplicationStatsResponseOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GeoReplicationStatsResponse) string { return v.Status }).(pulumi.StringOutput) } -func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput { - return o +// IP rule with specific IP or IP range in CIDR format. +type IPRule struct { + // The action of IP ACL rule. + Action *Action `pulumi:"action"` + // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. + IPAddressOrRange string `pulumi:"iPAddressOrRange"` } -func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesOutputWithContext(ctx context.Context) KeyVaultPropertiesOutput { - return o +// Defaults sets the appropriate defaults for IPRule +func (val *IPRule) Defaults() *IPRule { + if val == nil { + return nil + } + tmp := *val + if tmp.Action == nil { + action_ := Action("Allow") + tmp.Action = &action_ + } + return &tmp } -func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { - return o.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) -} +// IPRuleInput is an input type that accepts IPRuleArgs and IPRuleOutput values. +// You can construct a concrete instance of `IPRuleInput` via: +// +// IPRuleArgs{...} +type IPRuleInput interface { + pulumi.Input -func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyVaultProperties) *KeyVaultProperties { - return &v - }).(KeyVaultPropertiesPtrOutput) + ToIPRuleOutput() IPRuleOutput + ToIPRuleOutputWithContext(context.Context) IPRuleOutput +} + +// IP rule with specific IP or IP range in CIDR format. +type IPRuleArgs struct { + // The action of IP ACL rule. + Action ActionPtrInput `pulumi:"action"` + // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. + IPAddressOrRange pulumi.StringInput `pulumi:"iPAddressOrRange"` +} + +// Defaults sets the appropriate defaults for IPRuleArgs +func (val *IPRuleArgs) Defaults() *IPRuleArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Action == nil { + tmp.Action = Action("Allow") + } + return &tmp +} +func (IPRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IPRule)(nil)).Elem() +} + +func (i IPRuleArgs) ToIPRuleOutput() IPRuleOutput { + return i.ToIPRuleOutputWithContext(context.Background()) +} + +func (i IPRuleArgs) ToIPRuleOutputWithContext(ctx context.Context) IPRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(IPRuleOutput) +} + +// IPRuleArrayInput is an input type that accepts IPRuleArray and IPRuleArrayOutput values. +// You can construct a concrete instance of `IPRuleArrayInput` via: +// +// IPRuleArray{ IPRuleArgs{...} } +type IPRuleArrayInput interface { + pulumi.Input + + ToIPRuleArrayOutput() IPRuleArrayOutput + ToIPRuleArrayOutputWithContext(context.Context) IPRuleArrayOutput +} + +type IPRuleArray []IPRuleInput + +func (IPRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]IPRule)(nil)).Elem() +} + +func (i IPRuleArray) ToIPRuleArrayOutput() IPRuleArrayOutput { + return i.ToIPRuleArrayOutputWithContext(context.Background()) +} + +func (i IPRuleArray) ToIPRuleArrayOutputWithContext(ctx context.Context) IPRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IPRuleArrayOutput) +} + +// IP rule with specific IP or IP range in CIDR format. +type IPRuleOutput struct{ *pulumi.OutputState } + +func (IPRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IPRule)(nil)).Elem() +} + +func (o IPRuleOutput) ToIPRuleOutput() IPRuleOutput { + return o +} + +func (o IPRuleOutput) ToIPRuleOutputWithContext(ctx context.Context) IPRuleOutput { + return o +} + +// The action of IP ACL rule. +func (o IPRuleOutput) Action() ActionPtrOutput { + return o.ApplyT(func(v IPRule) *Action { return v.Action }).(ActionPtrOutput) +} + +// Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. +func (o IPRuleOutput) IPAddressOrRange() pulumi.StringOutput { + return o.ApplyT(func(v IPRule) string { return v.IPAddressOrRange }).(pulumi.StringOutput) +} + +type IPRuleArrayOutput struct{ *pulumi.OutputState } + +func (IPRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]IPRule)(nil)).Elem() +} + +func (o IPRuleArrayOutput) ToIPRuleArrayOutput() IPRuleArrayOutput { + return o +} + +func (o IPRuleArrayOutput) ToIPRuleArrayOutputWithContext(ctx context.Context) IPRuleArrayOutput { + return o +} + +func (o IPRuleArrayOutput) Index(i pulumi.IntInput) IPRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) IPRule { + return vs[0].([]IPRule)[vs[1].(int)] + }).(IPRuleOutput) +} + +// IP rule with specific IP or IP range in CIDR format. +type IPRuleResponse struct { + // The action of IP ACL rule. + Action *string `pulumi:"action"` + // Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. + IPAddressOrRange string `pulumi:"iPAddressOrRange"` +} + +// Defaults sets the appropriate defaults for IPRuleResponse +func (val *IPRuleResponse) Defaults() *IPRuleResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.Action == nil { + action_ := "Allow" + tmp.Action = &action_ + } + return &tmp +} + +// IP rule with specific IP or IP range in CIDR format. +type IPRuleResponseOutput struct{ *pulumi.OutputState } + +func (IPRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IPRuleResponse)(nil)).Elem() +} + +func (o IPRuleResponseOutput) ToIPRuleResponseOutput() IPRuleResponseOutput { + return o +} + +func (o IPRuleResponseOutput) ToIPRuleResponseOutputWithContext(ctx context.Context) IPRuleResponseOutput { + return o +} + +// The action of IP ACL rule. +func (o IPRuleResponseOutput) Action() pulumi.StringPtrOutput { + return o.ApplyT(func(v IPRuleResponse) *string { return v.Action }).(pulumi.StringPtrOutput) +} + +// Specifies the IP or IP range in CIDR format. Only IPV4 address is allowed. +func (o IPRuleResponseOutput) IPAddressOrRange() pulumi.StringOutput { + return o.ApplyT(func(v IPRuleResponse) string { return v.IPAddressOrRange }).(pulumi.StringOutput) +} + +type IPRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (IPRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]IPRuleResponse)(nil)).Elem() +} + +func (o IPRuleResponseArrayOutput) ToIPRuleResponseArrayOutput() IPRuleResponseArrayOutput { + return o +} + +func (o IPRuleResponseArrayOutput) ToIPRuleResponseArrayOutputWithContext(ctx context.Context) IPRuleResponseArrayOutput { + return o +} + +func (o IPRuleResponseArrayOutput) Index(i pulumi.IntInput) IPRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) IPRuleResponse { + return vs[0].([]IPRuleResponse)[vs[1].(int)] + }).(IPRuleResponseOutput) +} + +// Identity for the resource. +type Identity struct { + // The identity type. + Type string `pulumi:"type"` + // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. + UserAssignedIdentities []string `pulumi:"userAssignedIdentities"` +} + +// IdentityInput is an input type that accepts IdentityArgs and IdentityOutput values. +// You can construct a concrete instance of `IdentityInput` via: +// +// IdentityArgs{...} +type IdentityInput interface { + pulumi.Input + + ToIdentityOutput() IdentityOutput + ToIdentityOutputWithContext(context.Context) IdentityOutput +} + +// Identity for the resource. +type IdentityArgs struct { + // The identity type. + Type pulumi.StringInput `pulumi:"type"` + // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. + UserAssignedIdentities pulumi.StringArrayInput `pulumi:"userAssignedIdentities"` +} + +func (IdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Identity)(nil)).Elem() +} + +func (i IdentityArgs) ToIdentityOutput() IdentityOutput { + return i.ToIdentityOutputWithContext(context.Background()) +} + +func (i IdentityArgs) ToIdentityOutputWithContext(ctx context.Context) IdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentityOutput) +} + +func (i IdentityArgs) ToIdentityPtrOutput() IdentityPtrOutput { + return i.ToIdentityPtrOutputWithContext(context.Background()) +} + +func (i IdentityArgs) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentityOutput).ToIdentityPtrOutputWithContext(ctx) +} + +// IdentityPtrInput is an input type that accepts IdentityArgs, IdentityPtr and IdentityPtrOutput values. +// You can construct a concrete instance of `IdentityPtrInput` via: +// +// IdentityArgs{...} +// +// or: +// +// nil +type IdentityPtrInput interface { + pulumi.Input + + ToIdentityPtrOutput() IdentityPtrOutput + ToIdentityPtrOutputWithContext(context.Context) IdentityPtrOutput +} + +type identityPtrType IdentityArgs + +func IdentityPtr(v *IdentityArgs) IdentityPtrInput { + return (*identityPtrType)(v) +} + +func (*identityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Identity)(nil)).Elem() +} + +func (i *identityPtrType) ToIdentityPtrOutput() IdentityPtrOutput { + return i.ToIdentityPtrOutputWithContext(context.Background()) +} + +func (i *identityPtrType) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IdentityPtrOutput) +} + +// Identity for the resource. +type IdentityOutput struct{ *pulumi.OutputState } + +func (IdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Identity)(nil)).Elem() +} + +func (o IdentityOutput) ToIdentityOutput() IdentityOutput { + return o +} + +func (o IdentityOutput) ToIdentityOutputWithContext(ctx context.Context) IdentityOutput { + return o +} + +func (o IdentityOutput) ToIdentityPtrOutput() IdentityPtrOutput { + return o.ToIdentityPtrOutputWithContext(context.Background()) +} + +func (o IdentityOutput) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Identity) *Identity { + return &v + }).(IdentityPtrOutput) +} + +// The identity type. +func (o IdentityOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v Identity) string { return v.Type }).(pulumi.StringOutput) +} + +// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. +func (o IdentityOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v Identity) []string { return v.UserAssignedIdentities }).(pulumi.StringArrayOutput) +} + +type IdentityPtrOutput struct{ *pulumi.OutputState } + +func (IdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Identity)(nil)).Elem() +} + +func (o IdentityPtrOutput) ToIdentityPtrOutput() IdentityPtrOutput { + return o +} + +func (o IdentityPtrOutput) ToIdentityPtrOutputWithContext(ctx context.Context) IdentityPtrOutput { + return o +} + +func (o IdentityPtrOutput) Elem() IdentityOutput { + return o.ApplyT(func(v *Identity) Identity { + if v != nil { + return *v + } + var ret Identity + return ret + }).(IdentityOutput) +} + +// The identity type. +func (o IdentityPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Identity) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. +func (o IdentityPtrOutput) UserAssignedIdentities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Identity) []string { + if v == nil { + return nil + } + return v.UserAssignedIdentities + }).(pulumi.StringArrayOutput) +} + +// Identity for the resource. +type IdentityResponse struct { + // The principal ID of resource identity. + PrincipalId string `pulumi:"principalId"` + // The tenant ID of resource. + TenantId string `pulumi:"tenantId"` + // The identity type. + Type string `pulumi:"type"` + // Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. + UserAssignedIdentities map[string]UserAssignedIdentityResponse `pulumi:"userAssignedIdentities"` +} + +// Identity for the resource. +type IdentityResponseOutput struct{ *pulumi.OutputState } + +func (IdentityResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdentityResponse)(nil)).Elem() +} + +func (o IdentityResponseOutput) ToIdentityResponseOutput() IdentityResponseOutput { + return o +} + +func (o IdentityResponseOutput) ToIdentityResponseOutputWithContext(ctx context.Context) IdentityResponseOutput { + return o +} + +// The principal ID of resource identity. +func (o IdentityResponseOutput) PrincipalId() pulumi.StringOutput { + return o.ApplyT(func(v IdentityResponse) string { return v.PrincipalId }).(pulumi.StringOutput) +} + +// The tenant ID of resource. +func (o IdentityResponseOutput) TenantId() pulumi.StringOutput { + return o.ApplyT(func(v IdentityResponse) string { return v.TenantId }).(pulumi.StringOutput) +} + +// The identity type. +func (o IdentityResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v IdentityResponse) string { return v.Type }).(pulumi.StringOutput) +} + +// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. +func (o IdentityResponseOutput) UserAssignedIdentities() UserAssignedIdentityResponseMapOutput { + return o.ApplyT(func(v IdentityResponse) map[string]UserAssignedIdentityResponse { return v.UserAssignedIdentities }).(UserAssignedIdentityResponseMapOutput) +} + +type IdentityResponsePtrOutput struct{ *pulumi.OutputState } + +func (IdentityResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdentityResponse)(nil)).Elem() +} + +func (o IdentityResponsePtrOutput) ToIdentityResponsePtrOutput() IdentityResponsePtrOutput { + return o +} + +func (o IdentityResponsePtrOutput) ToIdentityResponsePtrOutputWithContext(ctx context.Context) IdentityResponsePtrOutput { + return o +} + +func (o IdentityResponsePtrOutput) Elem() IdentityResponseOutput { + return o.ApplyT(func(v *IdentityResponse) IdentityResponse { + if v != nil { + return *v + } + var ret IdentityResponse + return ret + }).(IdentityResponseOutput) +} + +// The principal ID of resource identity. +func (o IdentityResponsePtrOutput) PrincipalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdentityResponse) *string { + if v == nil { + return nil + } + return &v.PrincipalId + }).(pulumi.StringPtrOutput) +} + +// The tenant ID of resource. +func (o IdentityResponsePtrOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdentityResponse) *string { + if v == nil { + return nil + } + return &v.TenantId + }).(pulumi.StringPtrOutput) +} + +// The identity type. +func (o IdentityResponsePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *IdentityResponse) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. +func (o IdentityResponsePtrOutput) UserAssignedIdentities() UserAssignedIdentityResponseMapOutput { + return o.ApplyT(func(v *IdentityResponse) map[string]UserAssignedIdentityResponse { + if v == nil { + return nil + } + return v.UserAssignedIdentities + }).(UserAssignedIdentityResponseMapOutput) +} + +// The properties of an ImmutabilityPolicy of a blob container. +type ImmutabilityPolicyPropertiesResponse struct { + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. + AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll *bool `pulumi:"allowProtectedAppendWritesAll"` + // ImmutabilityPolicy Etag. + Etag string `pulumi:"etag"` + // The immutability period for the blobs in the container since the policy creation, in days. + ImmutabilityPeriodSinceCreationInDays *int `pulumi:"immutabilityPeriodSinceCreationInDays"` + // The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. + State string `pulumi:"state"` + // The ImmutabilityPolicy update history of the blob container. + UpdateHistory []UpdateHistoryPropertyResponse `pulumi:"updateHistory"` +} + +// The properties of an ImmutabilityPolicy of a blob container. +type ImmutabilityPolicyPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (ImmutabilityPolicyPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutabilityPolicyPropertiesResponse)(nil)).Elem() +} + +func (o ImmutabilityPolicyPropertiesResponseOutput) ToImmutabilityPolicyPropertiesResponseOutput() ImmutabilityPolicyPropertiesResponseOutput { + return o +} + +func (o ImmutabilityPolicyPropertiesResponseOutput) ToImmutabilityPolicyPropertiesResponseOutputWithContext(ctx context.Context) ImmutabilityPolicyPropertiesResponseOutput { + return o +} + +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. +func (o ImmutabilityPolicyPropertiesResponseOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) +} + +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. +func (o ImmutabilityPolicyPropertiesResponseOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) *bool { return v.AllowProtectedAppendWritesAll }).(pulumi.BoolPtrOutput) +} + +// ImmutabilityPolicy Etag. +func (o ImmutabilityPolicyPropertiesResponseOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) string { return v.Etag }).(pulumi.StringOutput) +} + +// The immutability period for the blobs in the container since the policy creation, in days. +func (o ImmutabilityPolicyPropertiesResponseOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) *int { return v.ImmutabilityPeriodSinceCreationInDays }).(pulumi.IntPtrOutput) +} + +// The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. +func (o ImmutabilityPolicyPropertiesResponseOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) string { return v.State }).(pulumi.StringOutput) +} + +// The ImmutabilityPolicy update history of the blob container. +func (o ImmutabilityPolicyPropertiesResponseOutput) UpdateHistory() UpdateHistoryPropertyResponseArrayOutput { + return o.ApplyT(func(v ImmutabilityPolicyPropertiesResponse) []UpdateHistoryPropertyResponse { return v.UpdateHistory }).(UpdateHistoryPropertyResponseArrayOutput) +} + +// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. +type ImmutableStorageAccount struct { + // A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. + Enabled *bool `pulumi:"enabled"` + // Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. + ImmutabilityPolicy *AccountImmutabilityPolicyProperties `pulumi:"immutabilityPolicy"` +} + +// ImmutableStorageAccountInput is an input type that accepts ImmutableStorageAccountArgs and ImmutableStorageAccountOutput values. +// You can construct a concrete instance of `ImmutableStorageAccountInput` via: +// +// ImmutableStorageAccountArgs{...} +type ImmutableStorageAccountInput interface { + pulumi.Input + + ToImmutableStorageAccountOutput() ImmutableStorageAccountOutput + ToImmutableStorageAccountOutputWithContext(context.Context) ImmutableStorageAccountOutput +} + +// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. +type ImmutableStorageAccountArgs struct { + // A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. + ImmutabilityPolicy AccountImmutabilityPolicyPropertiesPtrInput `pulumi:"immutabilityPolicy"` +} + +func (ImmutableStorageAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageAccount)(nil)).Elem() +} + +func (i ImmutableStorageAccountArgs) ToImmutableStorageAccountOutput() ImmutableStorageAccountOutput { + return i.ToImmutableStorageAccountOutputWithContext(context.Background()) +} + +func (i ImmutableStorageAccountArgs) ToImmutableStorageAccountOutputWithContext(ctx context.Context) ImmutableStorageAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageAccountOutput) +} + +func (i ImmutableStorageAccountArgs) ToImmutableStorageAccountPtrOutput() ImmutableStorageAccountPtrOutput { + return i.ToImmutableStorageAccountPtrOutputWithContext(context.Background()) +} + +func (i ImmutableStorageAccountArgs) ToImmutableStorageAccountPtrOutputWithContext(ctx context.Context) ImmutableStorageAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageAccountOutput).ToImmutableStorageAccountPtrOutputWithContext(ctx) +} + +// ImmutableStorageAccountPtrInput is an input type that accepts ImmutableStorageAccountArgs, ImmutableStorageAccountPtr and ImmutableStorageAccountPtrOutput values. +// You can construct a concrete instance of `ImmutableStorageAccountPtrInput` via: +// +// ImmutableStorageAccountArgs{...} +// +// or: +// +// nil +type ImmutableStorageAccountPtrInput interface { + pulumi.Input + + ToImmutableStorageAccountPtrOutput() ImmutableStorageAccountPtrOutput + ToImmutableStorageAccountPtrOutputWithContext(context.Context) ImmutableStorageAccountPtrOutput +} + +type immutableStorageAccountPtrType ImmutableStorageAccountArgs + +func ImmutableStorageAccountPtr(v *ImmutableStorageAccountArgs) ImmutableStorageAccountPtrInput { + return (*immutableStorageAccountPtrType)(v) +} + +func (*immutableStorageAccountPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageAccount)(nil)).Elem() +} + +func (i *immutableStorageAccountPtrType) ToImmutableStorageAccountPtrOutput() ImmutableStorageAccountPtrOutput { + return i.ToImmutableStorageAccountPtrOutputWithContext(context.Background()) +} + +func (i *immutableStorageAccountPtrType) ToImmutableStorageAccountPtrOutputWithContext(ctx context.Context) ImmutableStorageAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageAccountPtrOutput) +} + +// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. +type ImmutableStorageAccountOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageAccount)(nil)).Elem() +} + +func (o ImmutableStorageAccountOutput) ToImmutableStorageAccountOutput() ImmutableStorageAccountOutput { + return o +} + +func (o ImmutableStorageAccountOutput) ToImmutableStorageAccountOutputWithContext(ctx context.Context) ImmutableStorageAccountOutput { + return o +} + +func (o ImmutableStorageAccountOutput) ToImmutableStorageAccountPtrOutput() ImmutableStorageAccountPtrOutput { + return o.ToImmutableStorageAccountPtrOutputWithContext(context.Background()) +} + +func (o ImmutableStorageAccountOutput) ToImmutableStorageAccountPtrOutputWithContext(ctx context.Context) ImmutableStorageAccountPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ImmutableStorageAccount) *ImmutableStorageAccount { + return &v + }).(ImmutableStorageAccountPtrOutput) +} + +// A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. +func (o ImmutableStorageAccountOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutableStorageAccount) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. +func (o ImmutableStorageAccountOutput) ImmutabilityPolicy() AccountImmutabilityPolicyPropertiesPtrOutput { + return o.ApplyT(func(v ImmutableStorageAccount) *AccountImmutabilityPolicyProperties { return v.ImmutabilityPolicy }).(AccountImmutabilityPolicyPropertiesPtrOutput) +} + +type ImmutableStorageAccountPtrOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageAccountPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageAccount)(nil)).Elem() +} + +func (o ImmutableStorageAccountPtrOutput) ToImmutableStorageAccountPtrOutput() ImmutableStorageAccountPtrOutput { + return o +} + +func (o ImmutableStorageAccountPtrOutput) ToImmutableStorageAccountPtrOutputWithContext(ctx context.Context) ImmutableStorageAccountPtrOutput { + return o +} + +func (o ImmutableStorageAccountPtrOutput) Elem() ImmutableStorageAccountOutput { + return o.ApplyT(func(v *ImmutableStorageAccount) ImmutableStorageAccount { + if v != nil { + return *v + } + var ret ImmutableStorageAccount + return ret + }).(ImmutableStorageAccountOutput) +} + +// A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. +func (o ImmutableStorageAccountPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImmutableStorageAccount) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. +func (o ImmutableStorageAccountPtrOutput) ImmutabilityPolicy() AccountImmutabilityPolicyPropertiesPtrOutput { + return o.ApplyT(func(v *ImmutableStorageAccount) *AccountImmutabilityPolicyProperties { + if v == nil { + return nil + } + return v.ImmutabilityPolicy + }).(AccountImmutabilityPolicyPropertiesPtrOutput) +} + +// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. +type ImmutableStorageAccountResponse struct { + // A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. + Enabled *bool `pulumi:"enabled"` + // Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. + ImmutabilityPolicy *AccountImmutabilityPolicyPropertiesResponse `pulumi:"immutabilityPolicy"` +} + +// This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. +type ImmutableStorageAccountResponseOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageAccountResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageAccountResponse)(nil)).Elem() +} + +func (o ImmutableStorageAccountResponseOutput) ToImmutableStorageAccountResponseOutput() ImmutableStorageAccountResponseOutput { + return o +} + +func (o ImmutableStorageAccountResponseOutput) ToImmutableStorageAccountResponseOutputWithContext(ctx context.Context) ImmutableStorageAccountResponseOutput { + return o +} + +// A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. +func (o ImmutableStorageAccountResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutableStorageAccountResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. +func (o ImmutableStorageAccountResponseOutput) ImmutabilityPolicy() AccountImmutabilityPolicyPropertiesResponsePtrOutput { + return o.ApplyT(func(v ImmutableStorageAccountResponse) *AccountImmutabilityPolicyPropertiesResponse { + return v.ImmutabilityPolicy + }).(AccountImmutabilityPolicyPropertiesResponsePtrOutput) +} + +type ImmutableStorageAccountResponsePtrOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageAccountResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageAccountResponse)(nil)).Elem() +} + +func (o ImmutableStorageAccountResponsePtrOutput) ToImmutableStorageAccountResponsePtrOutput() ImmutableStorageAccountResponsePtrOutput { + return o +} + +func (o ImmutableStorageAccountResponsePtrOutput) ToImmutableStorageAccountResponsePtrOutputWithContext(ctx context.Context) ImmutableStorageAccountResponsePtrOutput { + return o +} + +func (o ImmutableStorageAccountResponsePtrOutput) Elem() ImmutableStorageAccountResponseOutput { + return o.ApplyT(func(v *ImmutableStorageAccountResponse) ImmutableStorageAccountResponse { + if v != nil { + return *v + } + var ret ImmutableStorageAccountResponse + return ret + }).(ImmutableStorageAccountResponseOutput) +} + +// A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. +func (o ImmutableStorageAccountResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImmutableStorageAccountResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. +func (o ImmutableStorageAccountResponsePtrOutput) ImmutabilityPolicy() AccountImmutabilityPolicyPropertiesResponsePtrOutput { + return o.ApplyT(func(v *ImmutableStorageAccountResponse) *AccountImmutabilityPolicyPropertiesResponse { + if v == nil { + return nil + } + return v.ImmutabilityPolicy + }).(AccountImmutabilityPolicyPropertiesResponsePtrOutput) +} + +// Object level immutability properties of the container. +type ImmutableStorageWithVersioning struct { + // This is an immutable property, when set to true it enables object level immutability at the container level. + Enabled *bool `pulumi:"enabled"` +} + +// ImmutableStorageWithVersioningInput is an input type that accepts ImmutableStorageWithVersioningArgs and ImmutableStorageWithVersioningOutput values. +// You can construct a concrete instance of `ImmutableStorageWithVersioningInput` via: +// +// ImmutableStorageWithVersioningArgs{...} +type ImmutableStorageWithVersioningInput interface { + pulumi.Input + + ToImmutableStorageWithVersioningOutput() ImmutableStorageWithVersioningOutput + ToImmutableStorageWithVersioningOutputWithContext(context.Context) ImmutableStorageWithVersioningOutput +} + +// Object level immutability properties of the container. +type ImmutableStorageWithVersioningArgs struct { + // This is an immutable property, when set to true it enables object level immutability at the container level. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +} + +func (ImmutableStorageWithVersioningArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageWithVersioning)(nil)).Elem() +} + +func (i ImmutableStorageWithVersioningArgs) ToImmutableStorageWithVersioningOutput() ImmutableStorageWithVersioningOutput { + return i.ToImmutableStorageWithVersioningOutputWithContext(context.Background()) +} + +func (i ImmutableStorageWithVersioningArgs) ToImmutableStorageWithVersioningOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageWithVersioningOutput) +} + +func (i ImmutableStorageWithVersioningArgs) ToImmutableStorageWithVersioningPtrOutput() ImmutableStorageWithVersioningPtrOutput { + return i.ToImmutableStorageWithVersioningPtrOutputWithContext(context.Background()) +} + +func (i ImmutableStorageWithVersioningArgs) ToImmutableStorageWithVersioningPtrOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageWithVersioningOutput).ToImmutableStorageWithVersioningPtrOutputWithContext(ctx) +} + +// ImmutableStorageWithVersioningPtrInput is an input type that accepts ImmutableStorageWithVersioningArgs, ImmutableStorageWithVersioningPtr and ImmutableStorageWithVersioningPtrOutput values. +// You can construct a concrete instance of `ImmutableStorageWithVersioningPtrInput` via: +// +// ImmutableStorageWithVersioningArgs{...} +// +// or: +// +// nil +type ImmutableStorageWithVersioningPtrInput interface { + pulumi.Input + + ToImmutableStorageWithVersioningPtrOutput() ImmutableStorageWithVersioningPtrOutput + ToImmutableStorageWithVersioningPtrOutputWithContext(context.Context) ImmutableStorageWithVersioningPtrOutput +} + +type immutableStorageWithVersioningPtrType ImmutableStorageWithVersioningArgs + +func ImmutableStorageWithVersioningPtr(v *ImmutableStorageWithVersioningArgs) ImmutableStorageWithVersioningPtrInput { + return (*immutableStorageWithVersioningPtrType)(v) +} + +func (*immutableStorageWithVersioningPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageWithVersioning)(nil)).Elem() +} + +func (i *immutableStorageWithVersioningPtrType) ToImmutableStorageWithVersioningPtrOutput() ImmutableStorageWithVersioningPtrOutput { + return i.ToImmutableStorageWithVersioningPtrOutputWithContext(context.Background()) +} + +func (i *immutableStorageWithVersioningPtrType) ToImmutableStorageWithVersioningPtrOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImmutableStorageWithVersioningPtrOutput) +} + +// Object level immutability properties of the container. +type ImmutableStorageWithVersioningOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageWithVersioningOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageWithVersioning)(nil)).Elem() +} + +func (o ImmutableStorageWithVersioningOutput) ToImmutableStorageWithVersioningOutput() ImmutableStorageWithVersioningOutput { + return o +} + +func (o ImmutableStorageWithVersioningOutput) ToImmutableStorageWithVersioningOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningOutput { + return o +} + +func (o ImmutableStorageWithVersioningOutput) ToImmutableStorageWithVersioningPtrOutput() ImmutableStorageWithVersioningPtrOutput { + return o.ToImmutableStorageWithVersioningPtrOutputWithContext(context.Background()) +} + +func (o ImmutableStorageWithVersioningOutput) ToImmutableStorageWithVersioningPtrOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ImmutableStorageWithVersioning) *ImmutableStorageWithVersioning { + return &v + }).(ImmutableStorageWithVersioningPtrOutput) +} + +// This is an immutable property, when set to true it enables object level immutability at the container level. +func (o ImmutableStorageWithVersioningOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutableStorageWithVersioning) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +type ImmutableStorageWithVersioningPtrOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageWithVersioningPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageWithVersioning)(nil)).Elem() +} + +func (o ImmutableStorageWithVersioningPtrOutput) ToImmutableStorageWithVersioningPtrOutput() ImmutableStorageWithVersioningPtrOutput { + return o +} + +func (o ImmutableStorageWithVersioningPtrOutput) ToImmutableStorageWithVersioningPtrOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningPtrOutput { + return o +} + +func (o ImmutableStorageWithVersioningPtrOutput) Elem() ImmutableStorageWithVersioningOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioning) ImmutableStorageWithVersioning { + if v != nil { + return *v + } + var ret ImmutableStorageWithVersioning + return ret + }).(ImmutableStorageWithVersioningOutput) +} + +// This is an immutable property, when set to true it enables object level immutability at the container level. +func (o ImmutableStorageWithVersioningPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioning) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Object level immutability properties of the container. +type ImmutableStorageWithVersioningResponse struct { + // This is an immutable property, when set to true it enables object level immutability at the container level. + Enabled *bool `pulumi:"enabled"` + // This property denotes the container level immutability to object level immutability migration state. + MigrationState string `pulumi:"migrationState"` + // Returns the date and time the object level immutability was enabled. + TimeStamp string `pulumi:"timeStamp"` +} + +// Object level immutability properties of the container. +type ImmutableStorageWithVersioningResponseOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageWithVersioningResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImmutableStorageWithVersioningResponse)(nil)).Elem() +} + +func (o ImmutableStorageWithVersioningResponseOutput) ToImmutableStorageWithVersioningResponseOutput() ImmutableStorageWithVersioningResponseOutput { + return o +} + +func (o ImmutableStorageWithVersioningResponseOutput) ToImmutableStorageWithVersioningResponseOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningResponseOutput { + return o +} + +// This is an immutable property, when set to true it enables object level immutability at the container level. +func (o ImmutableStorageWithVersioningResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImmutableStorageWithVersioningResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// This property denotes the container level immutability to object level immutability migration state. +func (o ImmutableStorageWithVersioningResponseOutput) MigrationState() pulumi.StringOutput { + return o.ApplyT(func(v ImmutableStorageWithVersioningResponse) string { return v.MigrationState }).(pulumi.StringOutput) +} + +// Returns the date and time the object level immutability was enabled. +func (o ImmutableStorageWithVersioningResponseOutput) TimeStamp() pulumi.StringOutput { + return o.ApplyT(func(v ImmutableStorageWithVersioningResponse) string { return v.TimeStamp }).(pulumi.StringOutput) +} + +type ImmutableStorageWithVersioningResponsePtrOutput struct{ *pulumi.OutputState } + +func (ImmutableStorageWithVersioningResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImmutableStorageWithVersioningResponse)(nil)).Elem() +} + +func (o ImmutableStorageWithVersioningResponsePtrOutput) ToImmutableStorageWithVersioningResponsePtrOutput() ImmutableStorageWithVersioningResponsePtrOutput { + return o +} + +func (o ImmutableStorageWithVersioningResponsePtrOutput) ToImmutableStorageWithVersioningResponsePtrOutputWithContext(ctx context.Context) ImmutableStorageWithVersioningResponsePtrOutput { + return o +} + +func (o ImmutableStorageWithVersioningResponsePtrOutput) Elem() ImmutableStorageWithVersioningResponseOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioningResponse) ImmutableStorageWithVersioningResponse { + if v != nil { + return *v + } + var ret ImmutableStorageWithVersioningResponse + return ret + }).(ImmutableStorageWithVersioningResponseOutput) +} + +// This is an immutable property, when set to true it enables object level immutability at the container level. +func (o ImmutableStorageWithVersioningResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioningResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// This property denotes the container level immutability to object level immutability migration state. +func (o ImmutableStorageWithVersioningResponsePtrOutput) MigrationState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioningResponse) *string { + if v == nil { + return nil + } + return &v.MigrationState + }).(pulumi.StringPtrOutput) +} + +// Returns the date and time the object level immutability was enabled. +func (o ImmutableStorageWithVersioningResponsePtrOutput) TimeStamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ImmutableStorageWithVersioningResponse) *string { + if v == nil { + return nil + } + return &v.TimeStamp + }).(pulumi.StringPtrOutput) +} + +// Storage account keys creation time. +type KeyCreationTimeResponse struct { + Key1 *string `pulumi:"key1"` + Key2 *string `pulumi:"key2"` +} + +// Storage account keys creation time. +type KeyCreationTimeResponseOutput struct{ *pulumi.OutputState } + +func (KeyCreationTimeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyCreationTimeResponse)(nil)).Elem() +} + +func (o KeyCreationTimeResponseOutput) ToKeyCreationTimeResponseOutput() KeyCreationTimeResponseOutput { + return o +} + +func (o KeyCreationTimeResponseOutput) ToKeyCreationTimeResponseOutputWithContext(ctx context.Context) KeyCreationTimeResponseOutput { + return o +} + +func (o KeyCreationTimeResponseOutput) Key1() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyCreationTimeResponse) *string { return v.Key1 }).(pulumi.StringPtrOutput) +} + +func (o KeyCreationTimeResponseOutput) Key2() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyCreationTimeResponse) *string { return v.Key2 }).(pulumi.StringPtrOutput) +} + +// KeyPolicy assigned to the storage account. +type KeyPolicy struct { + // The key expiration period in days. + KeyExpirationPeriodInDays int `pulumi:"keyExpirationPeriodInDays"` +} + +// KeyPolicyInput is an input type that accepts KeyPolicyArgs and KeyPolicyOutput values. +// You can construct a concrete instance of `KeyPolicyInput` via: +// +// KeyPolicyArgs{...} +type KeyPolicyInput interface { + pulumi.Input + + ToKeyPolicyOutput() KeyPolicyOutput + ToKeyPolicyOutputWithContext(context.Context) KeyPolicyOutput +} + +// KeyPolicy assigned to the storage account. +type KeyPolicyArgs struct { + // The key expiration period in days. + KeyExpirationPeriodInDays pulumi.IntInput `pulumi:"keyExpirationPeriodInDays"` +} + +func (KeyPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KeyPolicy)(nil)).Elem() +} + +func (i KeyPolicyArgs) ToKeyPolicyOutput() KeyPolicyOutput { + return i.ToKeyPolicyOutputWithContext(context.Background()) +} + +func (i KeyPolicyArgs) ToKeyPolicyOutputWithContext(ctx context.Context) KeyPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyOutput) +} + +func (i KeyPolicyArgs) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { + return i.ToKeyPolicyPtrOutputWithContext(context.Background()) +} + +func (i KeyPolicyArgs) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyOutput).ToKeyPolicyPtrOutputWithContext(ctx) +} + +// KeyPolicyPtrInput is an input type that accepts KeyPolicyArgs, KeyPolicyPtr and KeyPolicyPtrOutput values. +// You can construct a concrete instance of `KeyPolicyPtrInput` via: +// +// KeyPolicyArgs{...} +// +// or: +// +// nil +type KeyPolicyPtrInput interface { + pulumi.Input + + ToKeyPolicyPtrOutput() KeyPolicyPtrOutput + ToKeyPolicyPtrOutputWithContext(context.Context) KeyPolicyPtrOutput +} + +type keyPolicyPtrType KeyPolicyArgs + +func KeyPolicyPtr(v *KeyPolicyArgs) KeyPolicyPtrInput { + return (*keyPolicyPtrType)(v) +} + +func (*keyPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KeyPolicy)(nil)).Elem() +} + +func (i *keyPolicyPtrType) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { + return i.ToKeyPolicyPtrOutputWithContext(context.Background()) +} + +func (i *keyPolicyPtrType) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyPolicyPtrOutput) +} + +// KeyPolicy assigned to the storage account. +type KeyPolicyOutput struct{ *pulumi.OutputState } + +func (KeyPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyPolicy)(nil)).Elem() +} + +func (o KeyPolicyOutput) ToKeyPolicyOutput() KeyPolicyOutput { + return o +} + +func (o KeyPolicyOutput) ToKeyPolicyOutputWithContext(ctx context.Context) KeyPolicyOutput { + return o +} + +func (o KeyPolicyOutput) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { + return o.ToKeyPolicyPtrOutputWithContext(context.Background()) +} + +func (o KeyPolicyOutput) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyPolicy) *KeyPolicy { + return &v + }).(KeyPolicyPtrOutput) +} + +// The key expiration period in days. +func (o KeyPolicyOutput) KeyExpirationPeriodInDays() pulumi.IntOutput { + return o.ApplyT(func(v KeyPolicy) int { return v.KeyExpirationPeriodInDays }).(pulumi.IntOutput) +} + +type KeyPolicyPtrOutput struct{ *pulumi.OutputState } + +func (KeyPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyPolicy)(nil)).Elem() +} + +func (o KeyPolicyPtrOutput) ToKeyPolicyPtrOutput() KeyPolicyPtrOutput { + return o +} + +func (o KeyPolicyPtrOutput) ToKeyPolicyPtrOutputWithContext(ctx context.Context) KeyPolicyPtrOutput { + return o +} + +func (o KeyPolicyPtrOutput) Elem() KeyPolicyOutput { + return o.ApplyT(func(v *KeyPolicy) KeyPolicy { + if v != nil { + return *v + } + var ret KeyPolicy + return ret + }).(KeyPolicyOutput) +} + +// The key expiration period in days. +func (o KeyPolicyPtrOutput) KeyExpirationPeriodInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *KeyPolicy) *int { + if v == nil { + return nil + } + return &v.KeyExpirationPeriodInDays + }).(pulumi.IntPtrOutput) +} + +// KeyPolicy assigned to the storage account. +type KeyPolicyResponse struct { + // The key expiration period in days. + KeyExpirationPeriodInDays int `pulumi:"keyExpirationPeriodInDays"` +} + +// KeyPolicy assigned to the storage account. +type KeyPolicyResponseOutput struct{ *pulumi.OutputState } + +func (KeyPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyPolicyResponse)(nil)).Elem() +} + +func (o KeyPolicyResponseOutput) ToKeyPolicyResponseOutput() KeyPolicyResponseOutput { + return o +} + +func (o KeyPolicyResponseOutput) ToKeyPolicyResponseOutputWithContext(ctx context.Context) KeyPolicyResponseOutput { + return o +} + +// The key expiration period in days. +func (o KeyPolicyResponseOutput) KeyExpirationPeriodInDays() pulumi.IntOutput { + return o.ApplyT(func(v KeyPolicyResponse) int { return v.KeyExpirationPeriodInDays }).(pulumi.IntOutput) +} + +// Properties of key vault. +type KeyVaultProperties struct { + // The name of KeyVault key. + KeyName *string `pulumi:"keyName"` + // The Uri of KeyVault. + KeyVaultUri *string `pulumi:"keyVaultUri"` + // The version of KeyVault key. + KeyVersion *string `pulumi:"keyVersion"` +} + +// KeyVaultPropertiesInput is an input type that accepts KeyVaultPropertiesArgs and KeyVaultPropertiesOutput values. +// You can construct a concrete instance of `KeyVaultPropertiesInput` via: +// +// KeyVaultPropertiesArgs{...} +type KeyVaultPropertiesInput interface { + pulumi.Input + + ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput + ToKeyVaultPropertiesOutputWithContext(context.Context) KeyVaultPropertiesOutput +} + +// Properties of key vault. +type KeyVaultPropertiesArgs struct { + // The name of KeyVault key. + KeyName pulumi.StringPtrInput `pulumi:"keyName"` + // The Uri of KeyVault. + KeyVaultUri pulumi.StringPtrInput `pulumi:"keyVaultUri"` + // The version of KeyVault key. + KeyVersion pulumi.StringPtrInput `pulumi:"keyVersion"` +} + +func (KeyVaultPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultProperties)(nil)).Elem() +} + +func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput { + return i.ToKeyVaultPropertiesOutputWithContext(context.Background()) +} + +func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesOutputWithContext(ctx context.Context) KeyVaultPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesOutput) +} + +func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { + return i.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) +} + +func (i KeyVaultPropertiesArgs) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesOutput).ToKeyVaultPropertiesPtrOutputWithContext(ctx) +} + +// KeyVaultPropertiesPtrInput is an input type that accepts KeyVaultPropertiesArgs, KeyVaultPropertiesPtr and KeyVaultPropertiesPtrOutput values. +// You can construct a concrete instance of `KeyVaultPropertiesPtrInput` via: +// +// KeyVaultPropertiesArgs{...} +// +// or: +// +// nil +type KeyVaultPropertiesPtrInput interface { + pulumi.Input + + ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput + ToKeyVaultPropertiesPtrOutputWithContext(context.Context) KeyVaultPropertiesPtrOutput +} + +type keyVaultPropertiesPtrType KeyVaultPropertiesArgs + +func KeyVaultPropertiesPtr(v *KeyVaultPropertiesArgs) KeyVaultPropertiesPtrInput { + return (*keyVaultPropertiesPtrType)(v) +} + +func (*keyVaultPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultProperties)(nil)).Elem() +} + +func (i *keyVaultPropertiesPtrType) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { + return i.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *keyVaultPropertiesPtrType) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(KeyVaultPropertiesPtrOutput) +} + +// Properties of key vault. +type KeyVaultPropertiesOutput struct{ *pulumi.OutputState } + +func (KeyVaultPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultProperties)(nil)).Elem() +} + +func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesOutput() KeyVaultPropertiesOutput { + return o +} + +func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesOutputWithContext(ctx context.Context) KeyVaultPropertiesOutput { + return o +} + +func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { + return o.ToKeyVaultPropertiesPtrOutputWithContext(context.Background()) +} + +func (o KeyVaultPropertiesOutput) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v KeyVaultProperties) *KeyVaultProperties { + return &v + }).(KeyVaultPropertiesPtrOutput) +} + +// The name of KeyVault key. +func (o KeyVaultPropertiesOutput) KeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyName }).(pulumi.StringPtrOutput) +} + +// The Uri of KeyVault. +func (o KeyVaultPropertiesOutput) KeyVaultUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyVaultUri }).(pulumi.StringPtrOutput) +} + +// The version of KeyVault key. +func (o KeyVaultPropertiesOutput) KeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyVersion }).(pulumi.StringPtrOutput) +} + +type KeyVaultPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (KeyVaultPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultProperties)(nil)).Elem() +} + +func (o KeyVaultPropertiesPtrOutput) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { + return o +} + +func (o KeyVaultPropertiesPtrOutput) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { + return o +} + +func (o KeyVaultPropertiesPtrOutput) Elem() KeyVaultPropertiesOutput { + return o.ApplyT(func(v *KeyVaultProperties) KeyVaultProperties { + if v != nil { + return *v + } + var ret KeyVaultProperties + return ret + }).(KeyVaultPropertiesOutput) +} + +// The name of KeyVault key. +func (o KeyVaultPropertiesPtrOutput) KeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultProperties) *string { + if v == nil { + return nil + } + return v.KeyName + }).(pulumi.StringPtrOutput) +} + +// The Uri of KeyVault. +func (o KeyVaultPropertiesPtrOutput) KeyVaultUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultProperties) *string { + if v == nil { + return nil + } + return v.KeyVaultUri + }).(pulumi.StringPtrOutput) +} + +// The version of KeyVault key. +func (o KeyVaultPropertiesPtrOutput) KeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultProperties) *string { + if v == nil { + return nil + } + return v.KeyVersion + }).(pulumi.StringPtrOutput) +} + +// Properties of key vault. +type KeyVaultPropertiesResponse struct { + // This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption. + CurrentVersionedKeyExpirationTimestamp string `pulumi:"currentVersionedKeyExpirationTimestamp"` + // The object identifier of the current versioned Key Vault Key in use. + CurrentVersionedKeyIdentifier string `pulumi:"currentVersionedKeyIdentifier"` + // The name of KeyVault key. + KeyName *string `pulumi:"keyName"` + // The Uri of KeyVault. + KeyVaultUri *string `pulumi:"keyVaultUri"` + // The version of KeyVault key. + KeyVersion *string `pulumi:"keyVersion"` + // Timestamp of last rotation of the Key Vault Key. + LastKeyRotationTimestamp string `pulumi:"lastKeyRotationTimestamp"` +} + +// Properties of key vault. +type KeyVaultPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (KeyVaultPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*KeyVaultPropertiesResponse)(nil)).Elem() +} + +func (o KeyVaultPropertiesResponseOutput) ToKeyVaultPropertiesResponseOutput() KeyVaultPropertiesResponseOutput { + return o +} + +func (o KeyVaultPropertiesResponseOutput) ToKeyVaultPropertiesResponseOutputWithContext(ctx context.Context) KeyVaultPropertiesResponseOutput { + return o +} + +// This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption. +func (o KeyVaultPropertiesResponseOutput) CurrentVersionedKeyExpirationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) string { return v.CurrentVersionedKeyExpirationTimestamp }).(pulumi.StringOutput) +} + +// The object identifier of the current versioned Key Vault Key in use. +func (o KeyVaultPropertiesResponseOutput) CurrentVersionedKeyIdentifier() pulumi.StringOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) string { return v.CurrentVersionedKeyIdentifier }).(pulumi.StringOutput) } // The name of KeyVault key. -func (o KeyVaultPropertiesOutput) KeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyName }).(pulumi.StringPtrOutput) +func (o KeyVaultPropertiesResponseOutput) KeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyName }).(pulumi.StringPtrOutput) +} + +// The Uri of KeyVault. +func (o KeyVaultPropertiesResponseOutput) KeyVaultUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyVaultUri }).(pulumi.StringPtrOutput) +} + +// The version of KeyVault key. +func (o KeyVaultPropertiesResponseOutput) KeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyVersion }).(pulumi.StringPtrOutput) +} + +// Timestamp of last rotation of the Key Vault Key. +func (o KeyVaultPropertiesResponseOutput) LastKeyRotationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v KeyVaultPropertiesResponse) string { return v.LastKeyRotationTimestamp }).(pulumi.StringOutput) +} + +type KeyVaultPropertiesResponsePtrOutput struct{ *pulumi.OutputState } + +func (KeyVaultPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**KeyVaultPropertiesResponse)(nil)).Elem() +} + +func (o KeyVaultPropertiesResponsePtrOutput) ToKeyVaultPropertiesResponsePtrOutput() KeyVaultPropertiesResponsePtrOutput { + return o +} + +func (o KeyVaultPropertiesResponsePtrOutput) ToKeyVaultPropertiesResponsePtrOutputWithContext(ctx context.Context) KeyVaultPropertiesResponsePtrOutput { + return o +} + +func (o KeyVaultPropertiesResponsePtrOutput) Elem() KeyVaultPropertiesResponseOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) KeyVaultPropertiesResponse { + if v != nil { + return *v + } + var ret KeyVaultPropertiesResponse + return ret + }).(KeyVaultPropertiesResponseOutput) +} + +// This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption. +func (o KeyVaultPropertiesResponsePtrOutput) CurrentVersionedKeyExpirationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.CurrentVersionedKeyExpirationTimestamp + }).(pulumi.StringPtrOutput) +} + +// The object identifier of the current versioned Key Vault Key in use. +func (o KeyVaultPropertiesResponsePtrOutput) CurrentVersionedKeyIdentifier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.CurrentVersionedKeyIdentifier + }).(pulumi.StringPtrOutput) +} + +// The name of KeyVault key. +func (o KeyVaultPropertiesResponsePtrOutput) KeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return v.KeyName + }).(pulumi.StringPtrOutput) +} + +// The Uri of KeyVault. +func (o KeyVaultPropertiesResponsePtrOutput) KeyVaultUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return v.KeyVaultUri + }).(pulumi.StringPtrOutput) +} + +// The version of KeyVault key. +func (o KeyVaultPropertiesResponsePtrOutput) KeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return v.KeyVersion + }).(pulumi.StringPtrOutput) +} + +// Timestamp of last rotation of the Key Vault Key. +func (o KeyVaultPropertiesResponsePtrOutput) LastKeyRotationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.LastKeyRotationTimestamp + }).(pulumi.StringPtrOutput) +} + +// The blob service properties for Last access time based tracking policy. +type LastAccessTimeTrackingPolicy struct { + // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only + BlobType []string `pulumi:"blobType"` + // When set to true last access time based tracking is enabled. + Enable bool `pulumi:"enable"` + // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only + Name *string `pulumi:"name"` + // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 + TrackingGranularityInDays *int `pulumi:"trackingGranularityInDays"` +} + +// LastAccessTimeTrackingPolicyInput is an input type that accepts LastAccessTimeTrackingPolicyArgs and LastAccessTimeTrackingPolicyOutput values. +// You can construct a concrete instance of `LastAccessTimeTrackingPolicyInput` via: +// +// LastAccessTimeTrackingPolicyArgs{...} +type LastAccessTimeTrackingPolicyInput interface { + pulumi.Input + + ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput + ToLastAccessTimeTrackingPolicyOutputWithContext(context.Context) LastAccessTimeTrackingPolicyOutput +} + +// The blob service properties for Last access time based tracking policy. +type LastAccessTimeTrackingPolicyArgs struct { + // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only + BlobType pulumi.StringArrayInput `pulumi:"blobType"` + // When set to true last access time based tracking is enabled. + Enable pulumi.BoolInput `pulumi:"enable"` + // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only + Name pulumi.StringPtrInput `pulumi:"name"` + // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 + TrackingGranularityInDays pulumi.IntPtrInput `pulumi:"trackingGranularityInDays"` +} + +func (LastAccessTimeTrackingPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LastAccessTimeTrackingPolicy)(nil)).Elem() +} + +func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput { + return i.ToLastAccessTimeTrackingPolicyOutputWithContext(context.Background()) +} + +func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyOutput) +} + +func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { + return i.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) +} + +func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyOutput).ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx) +} + +// LastAccessTimeTrackingPolicyPtrInput is an input type that accepts LastAccessTimeTrackingPolicyArgs, LastAccessTimeTrackingPolicyPtr and LastAccessTimeTrackingPolicyPtrOutput values. +// You can construct a concrete instance of `LastAccessTimeTrackingPolicyPtrInput` via: +// +// LastAccessTimeTrackingPolicyArgs{...} +// +// or: +// +// nil +type LastAccessTimeTrackingPolicyPtrInput interface { + pulumi.Input + + ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput + ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Context) LastAccessTimeTrackingPolicyPtrOutput +} + +type lastAccessTimeTrackingPolicyPtrType LastAccessTimeTrackingPolicyArgs + +func LastAccessTimeTrackingPolicyPtr(v *LastAccessTimeTrackingPolicyArgs) LastAccessTimeTrackingPolicyPtrInput { + return (*lastAccessTimeTrackingPolicyPtrType)(v) +} + +func (*lastAccessTimeTrackingPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LastAccessTimeTrackingPolicy)(nil)).Elem() +} + +func (i *lastAccessTimeTrackingPolicyPtrType) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { + return i.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) +} + +func (i *lastAccessTimeTrackingPolicyPtrType) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyPtrOutput) +} + +// The blob service properties for Last access time based tracking policy. +type LastAccessTimeTrackingPolicyOutput struct{ *pulumi.OutputState } + +func (LastAccessTimeTrackingPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LastAccessTimeTrackingPolicy)(nil)).Elem() +} + +func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { + return o.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) +} + +func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LastAccessTimeTrackingPolicy) *LastAccessTimeTrackingPolicy { + return &v + }).(LastAccessTimeTrackingPolicyPtrOutput) +} + +// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only +func (o LastAccessTimeTrackingPolicyOutput) BlobType() pulumi.StringArrayOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicy) []string { return v.BlobType }).(pulumi.StringArrayOutput) +} + +// When set to true last access time based tracking is enabled. +func (o LastAccessTimeTrackingPolicyOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicy) bool { return v.Enable }).(pulumi.BoolOutput) +} + +// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only +func (o LastAccessTimeTrackingPolicyOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicy) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 +func (o LastAccessTimeTrackingPolicyOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicy) *int { return v.TrackingGranularityInDays }).(pulumi.IntPtrOutput) +} + +type LastAccessTimeTrackingPolicyPtrOutput struct{ *pulumi.OutputState } + +func (LastAccessTimeTrackingPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LastAccessTimeTrackingPolicy)(nil)).Elem() +} + +func (o LastAccessTimeTrackingPolicyPtrOutput) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyPtrOutput) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyPtrOutput) Elem() LastAccessTimeTrackingPolicyOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) LastAccessTimeTrackingPolicy { + if v != nil { + return *v + } + var ret LastAccessTimeTrackingPolicy + return ret + }).(LastAccessTimeTrackingPolicyOutput) +} + +// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only +func (o LastAccessTimeTrackingPolicyPtrOutput) BlobType() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) []string { + if v == nil { + return nil + } + return v.BlobType + }).(pulumi.StringArrayOutput) +} + +// When set to true last access time based tracking is enabled. +func (o LastAccessTimeTrackingPolicyPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *bool { + if v == nil { + return nil + } + return &v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only +func (o LastAccessTimeTrackingPolicyPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 +func (o LastAccessTimeTrackingPolicyPtrOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *int { + if v == nil { + return nil + } + return v.TrackingGranularityInDays + }).(pulumi.IntPtrOutput) +} + +// The blob service properties for Last access time based tracking policy. +type LastAccessTimeTrackingPolicyResponse struct { + // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only + BlobType []string `pulumi:"blobType"` + // When set to true last access time based tracking is enabled. + Enable bool `pulumi:"enable"` + // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only + Name *string `pulumi:"name"` + // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 + TrackingGranularityInDays *int `pulumi:"trackingGranularityInDays"` +} + +// The blob service properties for Last access time based tracking policy. +type LastAccessTimeTrackingPolicyResponseOutput struct{ *pulumi.OutputState } + +func (LastAccessTimeTrackingPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LastAccessTimeTrackingPolicyResponse)(nil)).Elem() +} + +func (o LastAccessTimeTrackingPolicyResponseOutput) ToLastAccessTimeTrackingPolicyResponseOutput() LastAccessTimeTrackingPolicyResponseOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyResponseOutput) ToLastAccessTimeTrackingPolicyResponseOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyResponseOutput { + return o +} + +// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only +func (o LastAccessTimeTrackingPolicyResponseOutput) BlobType() pulumi.StringArrayOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) []string { return v.BlobType }).(pulumi.StringArrayOutput) +} + +// When set to true last access time based tracking is enabled. +func (o LastAccessTimeTrackingPolicyResponseOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) bool { return v.Enable }).(pulumi.BoolOutput) +} + +// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only +func (o LastAccessTimeTrackingPolicyResponseOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 +func (o LastAccessTimeTrackingPolicyResponseOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) *int { return v.TrackingGranularityInDays }).(pulumi.IntPtrOutput) +} + +type LastAccessTimeTrackingPolicyResponsePtrOutput struct{ *pulumi.OutputState } + +func (LastAccessTimeTrackingPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LastAccessTimeTrackingPolicyResponse)(nil)).Elem() +} + +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) ToLastAccessTimeTrackingPolicyResponsePtrOutput() LastAccessTimeTrackingPolicyResponsePtrOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) ToLastAccessTimeTrackingPolicyResponsePtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyResponsePtrOutput { + return o +} + +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Elem() LastAccessTimeTrackingPolicyResponseOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) LastAccessTimeTrackingPolicyResponse { + if v != nil { + return *v + } + var ret LastAccessTimeTrackingPolicyResponse + return ret + }).(LastAccessTimeTrackingPolicyResponseOutput) +} + +// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) BlobType() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) []string { + if v == nil { + return nil + } + return v.BlobType + }).(pulumi.StringArrayOutput) +} + +// When set to true last access time based tracking is enabled. +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *bool { + if v == nil { + return nil + } + return &v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 +func (o LastAccessTimeTrackingPolicyResponsePtrOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *int { + if v == nil { + return nil + } + return v.TrackingGranularityInDays + }).(pulumi.IntPtrOutput) +} + +// The LegalHold property of a blob container. +type LegalHoldPropertiesResponse struct { + // The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. + HasLegalHold bool `pulumi:"hasLegalHold"` + // Protected append blob writes history. + ProtectedAppendWritesHistory *ProtectedAppendWritesHistoryResponse `pulumi:"protectedAppendWritesHistory"` + // The list of LegalHold tags of a blob container. + Tags []TagPropertyResponse `pulumi:"tags"` +} + +// The LegalHold property of a blob container. +type LegalHoldPropertiesResponseOutput struct{ *pulumi.OutputState } + +func (LegalHoldPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LegalHoldPropertiesResponse)(nil)).Elem() +} + +func (o LegalHoldPropertiesResponseOutput) ToLegalHoldPropertiesResponseOutput() LegalHoldPropertiesResponseOutput { + return o +} + +func (o LegalHoldPropertiesResponseOutput) ToLegalHoldPropertiesResponseOutputWithContext(ctx context.Context) LegalHoldPropertiesResponseOutput { + return o +} + +// The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. +func (o LegalHoldPropertiesResponseOutput) HasLegalHold() pulumi.BoolOutput { + return o.ApplyT(func(v LegalHoldPropertiesResponse) bool { return v.HasLegalHold }).(pulumi.BoolOutput) +} + +// Protected append blob writes history. +func (o LegalHoldPropertiesResponseOutput) ProtectedAppendWritesHistory() ProtectedAppendWritesHistoryResponsePtrOutput { + return o.ApplyT(func(v LegalHoldPropertiesResponse) *ProtectedAppendWritesHistoryResponse { + return v.ProtectedAppendWritesHistory + }).(ProtectedAppendWritesHistoryResponsePtrOutput) +} + +// The list of LegalHold tags of a blob container. +func (o LegalHoldPropertiesResponseOutput) Tags() TagPropertyResponseArrayOutput { + return o.ApplyT(func(v LegalHoldPropertiesResponse) []TagPropertyResponse { return v.Tags }).(TagPropertyResponseArrayOutput) +} + +// Actions are applied to the filtered blobs when the execution condition is met. +type ManagementPolicyAction struct { + // The management policy action for base blob + BaseBlob *ManagementPolicyBaseBlob `pulumi:"baseBlob"` + // The management policy action for snapshot + Snapshot *ManagementPolicySnapShot `pulumi:"snapshot"` + // The management policy action for version + Version *ManagementPolicyVersion `pulumi:"version"` +} + +// ManagementPolicyActionInput is an input type that accepts ManagementPolicyActionArgs and ManagementPolicyActionOutput values. +// You can construct a concrete instance of `ManagementPolicyActionInput` via: +// +// ManagementPolicyActionArgs{...} +type ManagementPolicyActionInput interface { + pulumi.Input + + ToManagementPolicyActionOutput() ManagementPolicyActionOutput + ToManagementPolicyActionOutputWithContext(context.Context) ManagementPolicyActionOutput +} + +// Actions are applied to the filtered blobs when the execution condition is met. +type ManagementPolicyActionArgs struct { + // The management policy action for base blob + BaseBlob ManagementPolicyBaseBlobPtrInput `pulumi:"baseBlob"` + // The management policy action for snapshot + Snapshot ManagementPolicySnapShotPtrInput `pulumi:"snapshot"` + // The management policy action for version + Version ManagementPolicyVersionPtrInput `pulumi:"version"` +} + +func (ManagementPolicyActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyAction)(nil)).Elem() +} + +func (i ManagementPolicyActionArgs) ToManagementPolicyActionOutput() ManagementPolicyActionOutput { + return i.ToManagementPolicyActionOutputWithContext(context.Background()) +} + +func (i ManagementPolicyActionArgs) ToManagementPolicyActionOutputWithContext(ctx context.Context) ManagementPolicyActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyActionOutput) } -// The Uri of KeyVault. -func (o KeyVaultPropertiesOutput) KeyVaultUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyVaultUri }).(pulumi.StringPtrOutput) +// Actions are applied to the filtered blobs when the execution condition is met. +type ManagementPolicyActionOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyAction)(nil)).Elem() } -// The version of KeyVault key. -func (o KeyVaultPropertiesOutput) KeyVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultProperties) *string { return v.KeyVersion }).(pulumi.StringPtrOutput) +func (o ManagementPolicyActionOutput) ToManagementPolicyActionOutput() ManagementPolicyActionOutput { + return o } -type KeyVaultPropertiesPtrOutput struct{ *pulumi.OutputState } +func (o ManagementPolicyActionOutput) ToManagementPolicyActionOutputWithContext(ctx context.Context) ManagementPolicyActionOutput { + return o +} -func (KeyVaultPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**KeyVaultProperties)(nil)).Elem() +// The management policy action for base blob +func (o ManagementPolicyActionOutput) BaseBlob() ManagementPolicyBaseBlobPtrOutput { + return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicyBaseBlob { return v.BaseBlob }).(ManagementPolicyBaseBlobPtrOutput) } -func (o KeyVaultPropertiesPtrOutput) ToKeyVaultPropertiesPtrOutput() KeyVaultPropertiesPtrOutput { +// The management policy action for snapshot +func (o ManagementPolicyActionOutput) Snapshot() ManagementPolicySnapShotPtrOutput { + return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicySnapShot { return v.Snapshot }).(ManagementPolicySnapShotPtrOutput) +} + +// The management policy action for version +func (o ManagementPolicyActionOutput) Version() ManagementPolicyVersionPtrOutput { + return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicyVersion { return v.Version }).(ManagementPolicyVersionPtrOutput) +} + +// Actions are applied to the filtered blobs when the execution condition is met. +type ManagementPolicyActionResponse struct { + // The management policy action for base blob + BaseBlob *ManagementPolicyBaseBlobResponse `pulumi:"baseBlob"` + // The management policy action for snapshot + Snapshot *ManagementPolicySnapShotResponse `pulumi:"snapshot"` + // The management policy action for version + Version *ManagementPolicyVersionResponse `pulumi:"version"` +} + +// Actions are applied to the filtered blobs when the execution condition is met. +type ManagementPolicyActionResponseOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyActionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyActionResponse)(nil)).Elem() +} + +func (o ManagementPolicyActionResponseOutput) ToManagementPolicyActionResponseOutput() ManagementPolicyActionResponseOutput { return o } -func (o KeyVaultPropertiesPtrOutput) ToKeyVaultPropertiesPtrOutputWithContext(ctx context.Context) KeyVaultPropertiesPtrOutput { +func (o ManagementPolicyActionResponseOutput) ToManagementPolicyActionResponseOutputWithContext(ctx context.Context) ManagementPolicyActionResponseOutput { return o } -func (o KeyVaultPropertiesPtrOutput) Elem() KeyVaultPropertiesOutput { - return o.ApplyT(func(v *KeyVaultProperties) KeyVaultProperties { +// The management policy action for base blob +func (o ManagementPolicyActionResponseOutput) BaseBlob() ManagementPolicyBaseBlobResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicyBaseBlobResponse { return v.BaseBlob }).(ManagementPolicyBaseBlobResponsePtrOutput) +} + +// The management policy action for snapshot +func (o ManagementPolicyActionResponseOutput) Snapshot() ManagementPolicySnapShotResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicySnapShotResponse { return v.Snapshot }).(ManagementPolicySnapShotResponsePtrOutput) +} + +// The management policy action for version +func (o ManagementPolicyActionResponseOutput) Version() ManagementPolicyVersionResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicyVersionResponse { return v.Version }).(ManagementPolicyVersionResponsePtrOutput) +} + +// Management policy action for base blob. +type ManagementPolicyBaseBlob struct { + // The function to delete the blob + Delete *DateAfterModification `pulumi:"delete"` + // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. + EnableAutoTierToHotFromCool *bool `pulumi:"enableAutoTierToHotFromCool"` + // The function to tier blobs to archive storage. + TierToArchive *DateAfterModification `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterModification `pulumi:"tierToCold"` + // The function to tier blobs to cool storage. + TierToCool *DateAfterModification `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterModification `pulumi:"tierToHot"` +} + +// ManagementPolicyBaseBlobInput is an input type that accepts ManagementPolicyBaseBlobArgs and ManagementPolicyBaseBlobOutput values. +// You can construct a concrete instance of `ManagementPolicyBaseBlobInput` via: +// +// ManagementPolicyBaseBlobArgs{...} +type ManagementPolicyBaseBlobInput interface { + pulumi.Input + + ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput + ToManagementPolicyBaseBlobOutputWithContext(context.Context) ManagementPolicyBaseBlobOutput +} + +// Management policy action for base blob. +type ManagementPolicyBaseBlobArgs struct { + // The function to delete the blob + Delete DateAfterModificationPtrInput `pulumi:"delete"` + // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. + EnableAutoTierToHotFromCool pulumi.BoolPtrInput `pulumi:"enableAutoTierToHotFromCool"` + // The function to tier blobs to archive storage. + TierToArchive DateAfterModificationPtrInput `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold DateAfterModificationPtrInput `pulumi:"tierToCold"` + // The function to tier blobs to cool storage. + TierToCool DateAfterModificationPtrInput `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot DateAfterModificationPtrInput `pulumi:"tierToHot"` +} + +func (ManagementPolicyBaseBlobArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyBaseBlob)(nil)).Elem() +} + +func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput { + return i.ToManagementPolicyBaseBlobOutputWithContext(context.Background()) +} + +func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobOutput) +} + +func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { + return i.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +} + +func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobOutput).ToManagementPolicyBaseBlobPtrOutputWithContext(ctx) +} + +// ManagementPolicyBaseBlobPtrInput is an input type that accepts ManagementPolicyBaseBlobArgs, ManagementPolicyBaseBlobPtr and ManagementPolicyBaseBlobPtrOutput values. +// You can construct a concrete instance of `ManagementPolicyBaseBlobPtrInput` via: +// +// ManagementPolicyBaseBlobArgs{...} +// +// or: +// +// nil +type ManagementPolicyBaseBlobPtrInput interface { + pulumi.Input + + ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput + ToManagementPolicyBaseBlobPtrOutputWithContext(context.Context) ManagementPolicyBaseBlobPtrOutput +} + +type managementPolicyBaseBlobPtrType ManagementPolicyBaseBlobArgs + +func ManagementPolicyBaseBlobPtr(v *ManagementPolicyBaseBlobArgs) ManagementPolicyBaseBlobPtrInput { + return (*managementPolicyBaseBlobPtrType)(v) +} + +func (*managementPolicyBaseBlobPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyBaseBlob)(nil)).Elem() +} + +func (i *managementPolicyBaseBlobPtrType) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { + return i.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +} + +func (i *managementPolicyBaseBlobPtrType) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobPtrOutput) +} + +// Management policy action for base blob. +type ManagementPolicyBaseBlobOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyBaseBlobOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyBaseBlob)(nil)).Elem() +} + +func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput { + return o +} + +func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobOutput { + return o +} + +func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { + return o.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +} + +func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyBaseBlob) *ManagementPolicyBaseBlob { + return &v + }).(ManagementPolicyBaseBlobPtrOutput) +} + +// The function to delete the blob +func (o ManagementPolicyBaseBlobOutput) Delete() DateAfterModificationPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.Delete }).(DateAfterModificationPtrOutput) +} + +// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. +func (o ManagementPolicyBaseBlobOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *bool { return v.EnableAutoTierToHotFromCool }).(pulumi.BoolPtrOutput) +} + +// The function to tier blobs to archive storage. +func (o ManagementPolicyBaseBlobOutput) TierToArchive() DateAfterModificationPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToArchive }).(DateAfterModificationPtrOutput) +} + +// The function to tier blobs to cold storage. +func (o ManagementPolicyBaseBlobOutput) TierToCold() DateAfterModificationPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToCold }).(DateAfterModificationPtrOutput) +} + +// The function to tier blobs to cool storage. +func (o ManagementPolicyBaseBlobOutput) TierToCool() DateAfterModificationPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToCool }).(DateAfterModificationPtrOutput) +} + +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyBaseBlobOutput) TierToHot() DateAfterModificationPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToHot }).(DateAfterModificationPtrOutput) +} + +type ManagementPolicyBaseBlobPtrOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyBaseBlobPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyBaseBlob)(nil)).Elem() +} + +func (o ManagementPolicyBaseBlobPtrOutput) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { + return o +} + +func (o ManagementPolicyBaseBlobPtrOutput) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { + return o +} + +func (o ManagementPolicyBaseBlobPtrOutput) Elem() ManagementPolicyBaseBlobOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) ManagementPolicyBaseBlob { if v != nil { return *v } - var ret KeyVaultProperties + var ret ManagementPolicyBaseBlob return ret - }).(KeyVaultPropertiesOutput) + }).(ManagementPolicyBaseBlobOutput) } -// The name of KeyVault key. -func (o KeyVaultPropertiesPtrOutput) KeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultProperties) *string { +// The function to delete the blob +func (o ManagementPolicyBaseBlobPtrOutput) Delete() DateAfterModificationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { + if v == nil { + return nil + } + return v.Delete + }).(DateAfterModificationPtrOutput) +} + +// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. +func (o ManagementPolicyBaseBlobPtrOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *bool { + if v == nil { + return nil + } + return v.EnableAutoTierToHotFromCool + }).(pulumi.BoolPtrOutput) +} + +// The function to tier blobs to archive storage. +func (o ManagementPolicyBaseBlobPtrOutput) TierToArchive() DateAfterModificationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { + if v == nil { + return nil + } + return v.TierToArchive + }).(DateAfterModificationPtrOutput) +} + +// The function to tier blobs to cold storage. +func (o ManagementPolicyBaseBlobPtrOutput) TierToCold() DateAfterModificationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { if v == nil { return nil } - return v.KeyName - }).(pulumi.StringPtrOutput) + return v.TierToCold + }).(DateAfterModificationPtrOutput) } -// The Uri of KeyVault. -func (o KeyVaultPropertiesPtrOutput) KeyVaultUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultProperties) *string { +// The function to tier blobs to cool storage. +func (o ManagementPolicyBaseBlobPtrOutput) TierToCool() DateAfterModificationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { if v == nil { return nil } - return v.KeyVaultUri - }).(pulumi.StringPtrOutput) + return v.TierToCool + }).(DateAfterModificationPtrOutput) } -// The version of KeyVault key. -func (o KeyVaultPropertiesPtrOutput) KeyVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultProperties) *string { +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyBaseBlobPtrOutput) TierToHot() DateAfterModificationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { if v == nil { return nil } - return v.KeyVersion - }).(pulumi.StringPtrOutput) + return v.TierToHot + }).(DateAfterModificationPtrOutput) } -// Properties of key vault. -type KeyVaultPropertiesResponse struct { - // The object identifier of the current versioned Key Vault Key in use. - CurrentVersionedKeyIdentifier string `pulumi:"currentVersionedKeyIdentifier"` - // The name of KeyVault key. - KeyName *string `pulumi:"keyName"` - // The Uri of KeyVault. - KeyVaultUri *string `pulumi:"keyVaultUri"` - // The version of KeyVault key. - KeyVersion *string `pulumi:"keyVersion"` - // Timestamp of last rotation of the Key Vault Key. - LastKeyRotationTimestamp string `pulumi:"lastKeyRotationTimestamp"` +// Management policy action for base blob. +type ManagementPolicyBaseBlobResponse struct { + // The function to delete the blob + Delete *DateAfterModificationResponse `pulumi:"delete"` + // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. + EnableAutoTierToHotFromCool *bool `pulumi:"enableAutoTierToHotFromCool"` + // The function to tier blobs to archive storage. + TierToArchive *DateAfterModificationResponse `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterModificationResponse `pulumi:"tierToCold"` + // The function to tier blobs to cool storage. + TierToCool *DateAfterModificationResponse `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterModificationResponse `pulumi:"tierToHot"` } -// Properties of key vault. -type KeyVaultPropertiesResponseOutput struct{ *pulumi.OutputState } +// Management policy action for base blob. +type ManagementPolicyBaseBlobResponseOutput struct{ *pulumi.OutputState } -func (KeyVaultPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*KeyVaultPropertiesResponse)(nil)).Elem() +func (ManagementPolicyBaseBlobResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyBaseBlobResponse)(nil)).Elem() } -func (o KeyVaultPropertiesResponseOutput) ToKeyVaultPropertiesResponseOutput() KeyVaultPropertiesResponseOutput { +func (o ManagementPolicyBaseBlobResponseOutput) ToManagementPolicyBaseBlobResponseOutput() ManagementPolicyBaseBlobResponseOutput { return o } -func (o KeyVaultPropertiesResponseOutput) ToKeyVaultPropertiesResponseOutputWithContext(ctx context.Context) KeyVaultPropertiesResponseOutput { +func (o ManagementPolicyBaseBlobResponseOutput) ToManagementPolicyBaseBlobResponseOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobResponseOutput { return o } -// The object identifier of the current versioned Key Vault Key in use. -func (o KeyVaultPropertiesResponseOutput) CurrentVersionedKeyIdentifier() pulumi.StringOutput { - return o.ApplyT(func(v KeyVaultPropertiesResponse) string { return v.CurrentVersionedKeyIdentifier }).(pulumi.StringOutput) +// The function to delete the blob +func (o ManagementPolicyBaseBlobResponseOutput) Delete() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.Delete }).(DateAfterModificationResponsePtrOutput) } -// The name of KeyVault key. -func (o KeyVaultPropertiesResponseOutput) KeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyName }).(pulumi.StringPtrOutput) +// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. +func (o ManagementPolicyBaseBlobResponseOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *bool { return v.EnableAutoTierToHotFromCool }).(pulumi.BoolPtrOutput) } -// The Uri of KeyVault. -func (o KeyVaultPropertiesResponseOutput) KeyVaultUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyVaultUri }).(pulumi.StringPtrOutput) +// The function to tier blobs to archive storage. +func (o ManagementPolicyBaseBlobResponseOutput) TierToArchive() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToArchive }).(DateAfterModificationResponsePtrOutput) } -// The version of KeyVault key. -func (o KeyVaultPropertiesResponseOutput) KeyVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v KeyVaultPropertiesResponse) *string { return v.KeyVersion }).(pulumi.StringPtrOutput) +// The function to tier blobs to cold storage. +func (o ManagementPolicyBaseBlobResponseOutput) TierToCold() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToCold }).(DateAfterModificationResponsePtrOutput) } -// Timestamp of last rotation of the Key Vault Key. -func (o KeyVaultPropertiesResponseOutput) LastKeyRotationTimestamp() pulumi.StringOutput { - return o.ApplyT(func(v KeyVaultPropertiesResponse) string { return v.LastKeyRotationTimestamp }).(pulumi.StringOutput) +// The function to tier blobs to cool storage. +func (o ManagementPolicyBaseBlobResponseOutput) TierToCool() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToCool }).(DateAfterModificationResponsePtrOutput) } -type KeyVaultPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyBaseBlobResponseOutput) TierToHot() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToHot }).(DateAfterModificationResponsePtrOutput) +} -func (KeyVaultPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**KeyVaultPropertiesResponse)(nil)).Elem() +type ManagementPolicyBaseBlobResponsePtrOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyBaseBlobResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyBaseBlobResponse)(nil)).Elem() } -func (o KeyVaultPropertiesResponsePtrOutput) ToKeyVaultPropertiesResponsePtrOutput() KeyVaultPropertiesResponsePtrOutput { +func (o ManagementPolicyBaseBlobResponsePtrOutput) ToManagementPolicyBaseBlobResponsePtrOutput() ManagementPolicyBaseBlobResponsePtrOutput { return o } -func (o KeyVaultPropertiesResponsePtrOutput) ToKeyVaultPropertiesResponsePtrOutputWithContext(ctx context.Context) KeyVaultPropertiesResponsePtrOutput { +func (o ManagementPolicyBaseBlobResponsePtrOutput) ToManagementPolicyBaseBlobResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobResponsePtrOutput { return o } -func (o KeyVaultPropertiesResponsePtrOutput) Elem() KeyVaultPropertiesResponseOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) KeyVaultPropertiesResponse { +func (o ManagementPolicyBaseBlobResponsePtrOutput) Elem() ManagementPolicyBaseBlobResponseOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) ManagementPolicyBaseBlobResponse { if v != nil { return *v } - var ret KeyVaultPropertiesResponse + var ret ManagementPolicyBaseBlobResponse return ret - }).(KeyVaultPropertiesResponseOutput) + }).(ManagementPolicyBaseBlobResponseOutput) } -// The object identifier of the current versioned Key Vault Key in use. -func (o KeyVaultPropertiesResponsePtrOutput) CurrentVersionedKeyIdentifier() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { +// The function to delete the blob +func (o ManagementPolicyBaseBlobResponsePtrOutput) Delete() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { if v == nil { return nil } - return &v.CurrentVersionedKeyIdentifier - }).(pulumi.StringPtrOutput) + return v.Delete + }).(DateAfterModificationResponsePtrOutput) } -// The name of KeyVault key. -func (o KeyVaultPropertiesResponsePtrOutput) KeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { +// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. +func (o ManagementPolicyBaseBlobResponsePtrOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *bool { if v == nil { return nil } - return v.KeyName - }).(pulumi.StringPtrOutput) + return v.EnableAutoTierToHotFromCool + }).(pulumi.BoolPtrOutput) } -// The Uri of KeyVault. -func (o KeyVaultPropertiesResponsePtrOutput) KeyVaultUri() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { +// The function to tier blobs to archive storage. +func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToArchive() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { if v == nil { return nil } - return v.KeyVaultUri - }).(pulumi.StringPtrOutput) + return v.TierToArchive + }).(DateAfterModificationResponsePtrOutput) } -// The version of KeyVault key. -func (o KeyVaultPropertiesResponsePtrOutput) KeyVersion() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { +// The function to tier blobs to cold storage. +func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToCold() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { if v == nil { return nil } - return v.KeyVersion - }).(pulumi.StringPtrOutput) + return v.TierToCold + }).(DateAfterModificationResponsePtrOutput) } -// Timestamp of last rotation of the Key Vault Key. -func (o KeyVaultPropertiesResponsePtrOutput) LastKeyRotationTimestamp() pulumi.StringPtrOutput { - return o.ApplyT(func(v *KeyVaultPropertiesResponse) *string { +// The function to tier blobs to cool storage. +func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToCool() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { if v == nil { return nil } - return &v.LastKeyRotationTimestamp - }).(pulumi.StringPtrOutput) -} - -// The blob service properties for Last access time based tracking policy. -type LastAccessTimeTrackingPolicy struct { - // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only - BlobType []string `pulumi:"blobType"` - // When set to true last access time based tracking is enabled. - Enable bool `pulumi:"enable"` - // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only - Name *string `pulumi:"name"` - // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 - TrackingGranularityInDays *int `pulumi:"trackingGranularityInDays"` -} - -// LastAccessTimeTrackingPolicyInput is an input type that accepts LastAccessTimeTrackingPolicyArgs and LastAccessTimeTrackingPolicyOutput values. -// You can construct a concrete instance of `LastAccessTimeTrackingPolicyInput` via: -// -// LastAccessTimeTrackingPolicyArgs{...} -type LastAccessTimeTrackingPolicyInput interface { - pulumi.Input - - ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput - ToLastAccessTimeTrackingPolicyOutputWithContext(context.Context) LastAccessTimeTrackingPolicyOutput -} - -// The blob service properties for Last access time based tracking policy. -type LastAccessTimeTrackingPolicyArgs struct { - // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only - BlobType pulumi.StringArrayInput `pulumi:"blobType"` - // When set to true last access time based tracking is enabled. - Enable pulumi.BoolInput `pulumi:"enable"` - // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only - Name pulumi.StringPtrInput `pulumi:"name"` - // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 - TrackingGranularityInDays pulumi.IntPtrInput `pulumi:"trackingGranularityInDays"` -} - -func (LastAccessTimeTrackingPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LastAccessTimeTrackingPolicy)(nil)).Elem() -} - -func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput { - return i.ToLastAccessTimeTrackingPolicyOutputWithContext(context.Background()) -} - -func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyOutput) + return v.TierToCool + }).(DateAfterModificationResponsePtrOutput) } -func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { - return i.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToHot() DateAfterModificationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { + if v == nil { + return nil + } + return v.TierToHot + }).(DateAfterModificationResponsePtrOutput) } -func (i LastAccessTimeTrackingPolicyArgs) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyOutput).ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx) +// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. +type ManagementPolicyDefinition struct { + // An object that defines the action set. + Actions ManagementPolicyAction `pulumi:"actions"` + // An object that defines the filter set. + Filters *ManagementPolicyFilter `pulumi:"filters"` } -// LastAccessTimeTrackingPolicyPtrInput is an input type that accepts LastAccessTimeTrackingPolicyArgs, LastAccessTimeTrackingPolicyPtr and LastAccessTimeTrackingPolicyPtrOutput values. -// You can construct a concrete instance of `LastAccessTimeTrackingPolicyPtrInput` via: -// -// LastAccessTimeTrackingPolicyArgs{...} -// -// or: +// ManagementPolicyDefinitionInput is an input type that accepts ManagementPolicyDefinitionArgs and ManagementPolicyDefinitionOutput values. +// You can construct a concrete instance of `ManagementPolicyDefinitionInput` via: // -// nil -type LastAccessTimeTrackingPolicyPtrInput interface { +// ManagementPolicyDefinitionArgs{...} +type ManagementPolicyDefinitionInput interface { pulumi.Input - ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput - ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Context) LastAccessTimeTrackingPolicyPtrOutput -} - -type lastAccessTimeTrackingPolicyPtrType LastAccessTimeTrackingPolicyArgs - -func LastAccessTimeTrackingPolicyPtr(v *LastAccessTimeTrackingPolicyArgs) LastAccessTimeTrackingPolicyPtrInput { - return (*lastAccessTimeTrackingPolicyPtrType)(v) -} - -func (*lastAccessTimeTrackingPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**LastAccessTimeTrackingPolicy)(nil)).Elem() -} - -func (i *lastAccessTimeTrackingPolicyPtrType) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { - return i.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) + ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput + ToManagementPolicyDefinitionOutputWithContext(context.Context) ManagementPolicyDefinitionOutput } -func (i *lastAccessTimeTrackingPolicyPtrType) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(LastAccessTimeTrackingPolicyPtrOutput) +// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. +type ManagementPolicyDefinitionArgs struct { + // An object that defines the action set. + Actions ManagementPolicyActionInput `pulumi:"actions"` + // An object that defines the filter set. + Filters ManagementPolicyFilterPtrInput `pulumi:"filters"` } -// The blob service properties for Last access time based tracking policy. -type LastAccessTimeTrackingPolicyOutput struct{ *pulumi.OutputState } - -func (LastAccessTimeTrackingPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LastAccessTimeTrackingPolicy)(nil)).Elem() +func (ManagementPolicyDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyDefinition)(nil)).Elem() } -func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyOutput() LastAccessTimeTrackingPolicyOutput { - return o +func (i ManagementPolicyDefinitionArgs) ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput { + return i.ToManagementPolicyDefinitionOutputWithContext(context.Background()) } -func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyOutput { - return o +func (i ManagementPolicyDefinitionArgs) ToManagementPolicyDefinitionOutputWithContext(ctx context.Context) ManagementPolicyDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyDefinitionOutput) } -func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { - return o.ToLastAccessTimeTrackingPolicyPtrOutputWithContext(context.Background()) +// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. +type ManagementPolicyDefinitionOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyDefinition)(nil)).Elem() } -func (o LastAccessTimeTrackingPolicyOutput) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v LastAccessTimeTrackingPolicy) *LastAccessTimeTrackingPolicy { - return &v - }).(LastAccessTimeTrackingPolicyPtrOutput) +func (o ManagementPolicyDefinitionOutput) ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput { + return o } -// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only -func (o LastAccessTimeTrackingPolicyOutput) BlobType() pulumi.StringArrayOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicy) []string { return v.BlobType }).(pulumi.StringArrayOutput) +func (o ManagementPolicyDefinitionOutput) ToManagementPolicyDefinitionOutputWithContext(ctx context.Context) ManagementPolicyDefinitionOutput { + return o } -// When set to true last access time based tracking is enabled. -func (o LastAccessTimeTrackingPolicyOutput) Enable() pulumi.BoolOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicy) bool { return v.Enable }).(pulumi.BoolOutput) +// An object that defines the action set. +func (o ManagementPolicyDefinitionOutput) Actions() ManagementPolicyActionOutput { + return o.ApplyT(func(v ManagementPolicyDefinition) ManagementPolicyAction { return v.Actions }).(ManagementPolicyActionOutput) } -// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only -func (o LastAccessTimeTrackingPolicyOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicy) *string { return v.Name }).(pulumi.StringPtrOutput) +// An object that defines the filter set. +func (o ManagementPolicyDefinitionOutput) Filters() ManagementPolicyFilterPtrOutput { + return o.ApplyT(func(v ManagementPolicyDefinition) *ManagementPolicyFilter { return v.Filters }).(ManagementPolicyFilterPtrOutput) } -// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 -func (o LastAccessTimeTrackingPolicyOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicy) *int { return v.TrackingGranularityInDays }).(pulumi.IntPtrOutput) +// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. +type ManagementPolicyDefinitionResponse struct { + // An object that defines the action set. + Actions ManagementPolicyActionResponse `pulumi:"actions"` + // An object that defines the filter set. + Filters *ManagementPolicyFilterResponse `pulumi:"filters"` } -type LastAccessTimeTrackingPolicyPtrOutput struct{ *pulumi.OutputState } +// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. +type ManagementPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } -func (LastAccessTimeTrackingPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LastAccessTimeTrackingPolicy)(nil)).Elem() +func (ManagementPolicyDefinitionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyDefinitionResponse)(nil)).Elem() } -func (o LastAccessTimeTrackingPolicyPtrOutput) ToLastAccessTimeTrackingPolicyPtrOutput() LastAccessTimeTrackingPolicyPtrOutput { +func (o ManagementPolicyDefinitionResponseOutput) ToManagementPolicyDefinitionResponseOutput() ManagementPolicyDefinitionResponseOutput { return o } -func (o LastAccessTimeTrackingPolicyPtrOutput) ToLastAccessTimeTrackingPolicyPtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyPtrOutput { +func (o ManagementPolicyDefinitionResponseOutput) ToManagementPolicyDefinitionResponseOutputWithContext(ctx context.Context) ManagementPolicyDefinitionResponseOutput { return o } -func (o LastAccessTimeTrackingPolicyPtrOutput) Elem() LastAccessTimeTrackingPolicyOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) LastAccessTimeTrackingPolicy { - if v != nil { - return *v - } - var ret LastAccessTimeTrackingPolicy - return ret - }).(LastAccessTimeTrackingPolicyOutput) +// An object that defines the action set. +func (o ManagementPolicyDefinitionResponseOutput) Actions() ManagementPolicyActionResponseOutput { + return o.ApplyT(func(v ManagementPolicyDefinitionResponse) ManagementPolicyActionResponse { return v.Actions }).(ManagementPolicyActionResponseOutput) } -// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only -func (o LastAccessTimeTrackingPolicyPtrOutput) BlobType() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) []string { - if v == nil { - return nil - } - return v.BlobType - }).(pulumi.StringArrayOutput) +// An object that defines the filter set. +func (o ManagementPolicyDefinitionResponseOutput) Filters() ManagementPolicyFilterResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyDefinitionResponse) *ManagementPolicyFilterResponse { return v.Filters }).(ManagementPolicyFilterResponsePtrOutput) } -// When set to true last access time based tracking is enabled. -func (o LastAccessTimeTrackingPolicyPtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *bool { - if v == nil { - return nil - } - return &v.Enable - }).(pulumi.BoolPtrOutput) +// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. +type ManagementPolicyFilter struct { + // An array of blob index tag based filters, there can be at most 10 tag filters + BlobIndexMatch []TagFilter `pulumi:"blobIndexMatch"` + // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. + BlobTypes []string `pulumi:"blobTypes"` + // An array of strings for prefixes to be match. + PrefixMatch []string `pulumi:"prefixMatch"` } -// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only -func (o LastAccessTimeTrackingPolicyPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) -} +// ManagementPolicyFilterInput is an input type that accepts ManagementPolicyFilterArgs and ManagementPolicyFilterOutput values. +// You can construct a concrete instance of `ManagementPolicyFilterInput` via: +// +// ManagementPolicyFilterArgs{...} +type ManagementPolicyFilterInput interface { + pulumi.Input -// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 -func (o LastAccessTimeTrackingPolicyPtrOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicy) *int { - if v == nil { - return nil - } - return v.TrackingGranularityInDays - }).(pulumi.IntPtrOutput) + ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput + ToManagementPolicyFilterOutputWithContext(context.Context) ManagementPolicyFilterOutput } -// The blob service properties for Last access time based tracking policy. -type LastAccessTimeTrackingPolicyResponse struct { - // An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only - BlobType []string `pulumi:"blobType"` - // When set to true last access time based tracking is enabled. - Enable bool `pulumi:"enable"` - // Name of the policy. The valid value is AccessTimeTracking. This field is currently read only - Name *string `pulumi:"name"` - // The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 - TrackingGranularityInDays *int `pulumi:"trackingGranularityInDays"` +// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. +type ManagementPolicyFilterArgs struct { + // An array of blob index tag based filters, there can be at most 10 tag filters + BlobIndexMatch TagFilterArrayInput `pulumi:"blobIndexMatch"` + // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. + BlobTypes pulumi.StringArrayInput `pulumi:"blobTypes"` + // An array of strings for prefixes to be match. + PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` } -// The blob service properties for Last access time based tracking policy. -type LastAccessTimeTrackingPolicyResponseOutput struct{ *pulumi.OutputState } - -func (LastAccessTimeTrackingPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LastAccessTimeTrackingPolicyResponse)(nil)).Elem() +func (ManagementPolicyFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyFilter)(nil)).Elem() } -func (o LastAccessTimeTrackingPolicyResponseOutput) ToLastAccessTimeTrackingPolicyResponseOutput() LastAccessTimeTrackingPolicyResponseOutput { - return o +func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput { + return i.ToManagementPolicyFilterOutputWithContext(context.Background()) } -func (o LastAccessTimeTrackingPolicyResponseOutput) ToLastAccessTimeTrackingPolicyResponseOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyResponseOutput { - return o +func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterOutputWithContext(ctx context.Context) ManagementPolicyFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterOutput) } -// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only -func (o LastAccessTimeTrackingPolicyResponseOutput) BlobType() pulumi.StringArrayOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) []string { return v.BlobType }).(pulumi.StringArrayOutput) +func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { + return i.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) } -// When set to true last access time based tracking is enabled. -func (o LastAccessTimeTrackingPolicyResponseOutput) Enable() pulumi.BoolOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) bool { return v.Enable }).(pulumi.BoolOutput) +func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterOutput).ToManagementPolicyFilterPtrOutputWithContext(ctx) } -// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only -func (o LastAccessTimeTrackingPolicyResponseOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) *string { return v.Name }).(pulumi.StringPtrOutput) -} +// ManagementPolicyFilterPtrInput is an input type that accepts ManagementPolicyFilterArgs, ManagementPolicyFilterPtr and ManagementPolicyFilterPtrOutput values. +// You can construct a concrete instance of `ManagementPolicyFilterPtrInput` via: +// +// ManagementPolicyFilterArgs{...} +// +// or: +// +// nil +type ManagementPolicyFilterPtrInput interface { + pulumi.Input -// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 -func (o LastAccessTimeTrackingPolicyResponseOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v LastAccessTimeTrackingPolicyResponse) *int { return v.TrackingGranularityInDays }).(pulumi.IntPtrOutput) + ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput + ToManagementPolicyFilterPtrOutputWithContext(context.Context) ManagementPolicyFilterPtrOutput } -type LastAccessTimeTrackingPolicyResponsePtrOutput struct{ *pulumi.OutputState } +type managementPolicyFilterPtrType ManagementPolicyFilterArgs -func (LastAccessTimeTrackingPolicyResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**LastAccessTimeTrackingPolicyResponse)(nil)).Elem() +func ManagementPolicyFilterPtr(v *ManagementPolicyFilterArgs) ManagementPolicyFilterPtrInput { + return (*managementPolicyFilterPtrType)(v) } -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) ToLastAccessTimeTrackingPolicyResponsePtrOutput() LastAccessTimeTrackingPolicyResponsePtrOutput { - return o +func (*managementPolicyFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyFilter)(nil)).Elem() } -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) ToLastAccessTimeTrackingPolicyResponsePtrOutputWithContext(ctx context.Context) LastAccessTimeTrackingPolicyResponsePtrOutput { - return o +func (i *managementPolicyFilterPtrType) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { + return i.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) } -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Elem() LastAccessTimeTrackingPolicyResponseOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) LastAccessTimeTrackingPolicyResponse { - if v != nil { - return *v - } - var ret LastAccessTimeTrackingPolicyResponse - return ret - }).(LastAccessTimeTrackingPolicyResponseOutput) +func (i *managementPolicyFilterPtrType) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterPtrOutput) } -// An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) BlobType() pulumi.StringArrayOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) []string { - if v == nil { - return nil - } - return v.BlobType - }).(pulumi.StringArrayOutput) -} +// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. +type ManagementPolicyFilterOutput struct{ *pulumi.OutputState } -// When set to true last access time based tracking is enabled. -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *bool { - if v == nil { - return nil - } - return &v.Enable - }).(pulumi.BoolPtrOutput) +func (ManagementPolicyFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyFilter)(nil)).Elem() } -// Name of the policy. The valid value is AccessTimeTracking. This field is currently read only -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *string { - if v == nil { - return nil - } - return v.Name - }).(pulumi.StringPtrOutput) +func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput { + return o } -// The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 -func (o LastAccessTimeTrackingPolicyResponsePtrOutput) TrackingGranularityInDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *LastAccessTimeTrackingPolicyResponse) *int { - if v == nil { - return nil - } - return v.TrackingGranularityInDays - }).(pulumi.IntPtrOutput) +func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterOutputWithContext(ctx context.Context) ManagementPolicyFilterOutput { + return o } -// The LegalHold property of a blob container. -type LegalHoldPropertiesResponse struct { - // The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. - HasLegalHold bool `pulumi:"hasLegalHold"` - // The list of LegalHold tags of a blob container. - Tags []TagPropertyResponse `pulumi:"tags"` +func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { + return o.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) } -// The LegalHold property of a blob container. -type LegalHoldPropertiesResponseOutput struct{ *pulumi.OutputState } - -func (LegalHoldPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LegalHoldPropertiesResponse)(nil)).Elem() +func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyFilter) *ManagementPolicyFilter { + return &v + }).(ManagementPolicyFilterPtrOutput) } -func (o LegalHoldPropertiesResponseOutput) ToLegalHoldPropertiesResponseOutput() LegalHoldPropertiesResponseOutput { - return o +// An array of blob index tag based filters, there can be at most 10 tag filters +func (o ManagementPolicyFilterOutput) BlobIndexMatch() TagFilterArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilter) []TagFilter { return v.BlobIndexMatch }).(TagFilterArrayOutput) } -func (o LegalHoldPropertiesResponseOutput) ToLegalHoldPropertiesResponseOutputWithContext(ctx context.Context) LegalHoldPropertiesResponseOutput { - return o +// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. +func (o ManagementPolicyFilterOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilter) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) } -// The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. -func (o LegalHoldPropertiesResponseOutput) HasLegalHold() pulumi.BoolOutput { - return o.ApplyT(func(v LegalHoldPropertiesResponse) bool { return v.HasLegalHold }).(pulumi.BoolOutput) +// An array of strings for prefixes to be match. +func (o ManagementPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) } -// The list of LegalHold tags of a blob container. -func (o LegalHoldPropertiesResponseOutput) Tags() TagPropertyResponseArrayOutput { - return o.ApplyT(func(v LegalHoldPropertiesResponse) []TagPropertyResponse { return v.Tags }).(TagPropertyResponseArrayOutput) +type ManagementPolicyFilterPtrOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyFilter)(nil)).Elem() } -// Actions are applied to the filtered blobs when the execution condition is met. -type ManagementPolicyAction struct { - // The management policy action for base blob - BaseBlob *ManagementPolicyBaseBlob `pulumi:"baseBlob"` - // The management policy action for snapshot - Snapshot *ManagementPolicySnapShot `pulumi:"snapshot"` - // The management policy action for version - Version *ManagementPolicyVersion `pulumi:"version"` +func (o ManagementPolicyFilterPtrOutput) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { + return o } -// ManagementPolicyActionInput is an input type that accepts ManagementPolicyActionArgs and ManagementPolicyActionOutput values. -// You can construct a concrete instance of `ManagementPolicyActionInput` via: -// -// ManagementPolicyActionArgs{...} -type ManagementPolicyActionInput interface { - pulumi.Input +func (o ManagementPolicyFilterPtrOutput) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { + return o +} - ToManagementPolicyActionOutput() ManagementPolicyActionOutput - ToManagementPolicyActionOutputWithContext(context.Context) ManagementPolicyActionOutput +func (o ManagementPolicyFilterPtrOutput) Elem() ManagementPolicyFilterOutput { + return o.ApplyT(func(v *ManagementPolicyFilter) ManagementPolicyFilter { + if v != nil { + return *v + } + var ret ManagementPolicyFilter + return ret + }).(ManagementPolicyFilterOutput) } -// Actions are applied to the filtered blobs when the execution condition is met. -type ManagementPolicyActionArgs struct { - // The management policy action for base blob - BaseBlob ManagementPolicyBaseBlobPtrInput `pulumi:"baseBlob"` - // The management policy action for snapshot - Snapshot ManagementPolicySnapShotPtrInput `pulumi:"snapshot"` - // The management policy action for version - Version ManagementPolicyVersionPtrInput `pulumi:"version"` +// An array of blob index tag based filters, there can be at most 10 tag filters +func (o ManagementPolicyFilterPtrOutput) BlobIndexMatch() TagFilterArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilter) []TagFilter { + if v == nil { + return nil + } + return v.BlobIndexMatch + }).(TagFilterArrayOutput) } -func (ManagementPolicyActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyAction)(nil)).Elem() +// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. +func (o ManagementPolicyFilterPtrOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilter) []string { + if v == nil { + return nil + } + return v.BlobTypes + }).(pulumi.StringArrayOutput) } -func (i ManagementPolicyActionArgs) ToManagementPolicyActionOutput() ManagementPolicyActionOutput { - return i.ToManagementPolicyActionOutputWithContext(context.Background()) +// An array of strings for prefixes to be match. +func (o ManagementPolicyFilterPtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilter) []string { + if v == nil { + return nil + } + return v.PrefixMatch + }).(pulumi.StringArrayOutput) } -func (i ManagementPolicyActionArgs) ToManagementPolicyActionOutputWithContext(ctx context.Context) ManagementPolicyActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyActionOutput) +// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. +type ManagementPolicyFilterResponse struct { + // An array of blob index tag based filters, there can be at most 10 tag filters + BlobIndexMatch []TagFilterResponse `pulumi:"blobIndexMatch"` + // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. + BlobTypes []string `pulumi:"blobTypes"` + // An array of strings for prefixes to be match. + PrefixMatch []string `pulumi:"prefixMatch"` } -// Actions are applied to the filtered blobs when the execution condition is met. -type ManagementPolicyActionOutput struct{ *pulumi.OutputState } +// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. +type ManagementPolicyFilterResponseOutput struct{ *pulumi.OutputState } -func (ManagementPolicyActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyAction)(nil)).Elem() +func (ManagementPolicyFilterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyFilterResponse)(nil)).Elem() } -func (o ManagementPolicyActionOutput) ToManagementPolicyActionOutput() ManagementPolicyActionOutput { +func (o ManagementPolicyFilterResponseOutput) ToManagementPolicyFilterResponseOutput() ManagementPolicyFilterResponseOutput { return o } -func (o ManagementPolicyActionOutput) ToManagementPolicyActionOutputWithContext(ctx context.Context) ManagementPolicyActionOutput { +func (o ManagementPolicyFilterResponseOutput) ToManagementPolicyFilterResponseOutputWithContext(ctx context.Context) ManagementPolicyFilterResponseOutput { return o } -// The management policy action for base blob -func (o ManagementPolicyActionOutput) BaseBlob() ManagementPolicyBaseBlobPtrOutput { - return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicyBaseBlob { return v.BaseBlob }).(ManagementPolicyBaseBlobPtrOutput) -} - -// The management policy action for snapshot -func (o ManagementPolicyActionOutput) Snapshot() ManagementPolicySnapShotPtrOutput { - return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicySnapShot { return v.Snapshot }).(ManagementPolicySnapShotPtrOutput) +// An array of blob index tag based filters, there can be at most 10 tag filters +func (o ManagementPolicyFilterResponseOutput) BlobIndexMatch() TagFilterResponseArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilterResponse) []TagFilterResponse { return v.BlobIndexMatch }).(TagFilterResponseArrayOutput) } -// The management policy action for version -func (o ManagementPolicyActionOutput) Version() ManagementPolicyVersionPtrOutput { - return o.ApplyT(func(v ManagementPolicyAction) *ManagementPolicyVersion { return v.Version }).(ManagementPolicyVersionPtrOutput) +// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. +func (o ManagementPolicyFilterResponseOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilterResponse) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) } -// Actions are applied to the filtered blobs when the execution condition is met. -type ManagementPolicyActionResponse struct { - // The management policy action for base blob - BaseBlob *ManagementPolicyBaseBlobResponse `pulumi:"baseBlob"` - // The management policy action for snapshot - Snapshot *ManagementPolicySnapShotResponse `pulumi:"snapshot"` - // The management policy action for version - Version *ManagementPolicyVersionResponse `pulumi:"version"` +// An array of strings for prefixes to be match. +func (o ManagementPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v ManagementPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) } -// Actions are applied to the filtered blobs when the execution condition is met. -type ManagementPolicyActionResponseOutput struct{ *pulumi.OutputState } +type ManagementPolicyFilterResponsePtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicyActionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyActionResponse)(nil)).Elem() +func (ManagementPolicyFilterResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyFilterResponse)(nil)).Elem() } -func (o ManagementPolicyActionResponseOutput) ToManagementPolicyActionResponseOutput() ManagementPolicyActionResponseOutput { +func (o ManagementPolicyFilterResponsePtrOutput) ToManagementPolicyFilterResponsePtrOutput() ManagementPolicyFilterResponsePtrOutput { return o } -func (o ManagementPolicyActionResponseOutput) ToManagementPolicyActionResponseOutputWithContext(ctx context.Context) ManagementPolicyActionResponseOutput { +func (o ManagementPolicyFilterResponsePtrOutput) ToManagementPolicyFilterResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyFilterResponsePtrOutput { return o } -// The management policy action for base blob -func (o ManagementPolicyActionResponseOutput) BaseBlob() ManagementPolicyBaseBlobResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicyBaseBlobResponse { return v.BaseBlob }).(ManagementPolicyBaseBlobResponsePtrOutput) +func (o ManagementPolicyFilterResponsePtrOutput) Elem() ManagementPolicyFilterResponseOutput { + return o.ApplyT(func(v *ManagementPolicyFilterResponse) ManagementPolicyFilterResponse { + if v != nil { + return *v + } + var ret ManagementPolicyFilterResponse + return ret + }).(ManagementPolicyFilterResponseOutput) } -// The management policy action for snapshot -func (o ManagementPolicyActionResponseOutput) Snapshot() ManagementPolicySnapShotResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicySnapShotResponse { return v.Snapshot }).(ManagementPolicySnapShotResponsePtrOutput) +// An array of blob index tag based filters, there can be at most 10 tag filters +func (o ManagementPolicyFilterResponsePtrOutput) BlobIndexMatch() TagFilterResponseArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilterResponse) []TagFilterResponse { + if v == nil { + return nil + } + return v.BlobIndexMatch + }).(TagFilterResponseArrayOutput) } -// The management policy action for version -func (o ManagementPolicyActionResponseOutput) Version() ManagementPolicyVersionResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyActionResponse) *ManagementPolicyVersionResponse { return v.Version }).(ManagementPolicyVersionResponsePtrOutput) +// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. +func (o ManagementPolicyFilterResponsePtrOutput) BlobTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilterResponse) []string { + if v == nil { + return nil + } + return v.BlobTypes + }).(pulumi.StringArrayOutput) } -// Management policy action for base blob. -type ManagementPolicyBaseBlob struct { - // The function to delete the blob - Delete *DateAfterModification `pulumi:"delete"` - // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. - EnableAutoTierToHotFromCool *bool `pulumi:"enableAutoTierToHotFromCool"` - // The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier - TierToArchive *DateAfterModification `pulumi:"tierToArchive"` - // The function to tier blobs to cool storage. Support blobs currently at Hot tier - TierToCool *DateAfterModification `pulumi:"tierToCool"` +// An array of strings for prefixes to be match. +func (o ManagementPolicyFilterResponsePtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ManagementPolicyFilterResponse) []string { + if v == nil { + return nil + } + return v.PrefixMatch + }).(pulumi.StringArrayOutput) } -// ManagementPolicyBaseBlobInput is an input type that accepts ManagementPolicyBaseBlobArgs and ManagementPolicyBaseBlobOutput values. -// You can construct a concrete instance of `ManagementPolicyBaseBlobInput` via: -// -// ManagementPolicyBaseBlobArgs{...} -type ManagementPolicyBaseBlobInput interface { - pulumi.Input - - ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput - ToManagementPolicyBaseBlobOutputWithContext(context.Context) ManagementPolicyBaseBlobOutput +// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. +type ManagementPolicyRule struct { + // An object that defines the Lifecycle rule. + Definition ManagementPolicyDefinition `pulumi:"definition"` + // Rule is enabled if set to true. + Enabled *bool `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name string `pulumi:"name"` + // The valid value is Lifecycle + Type string `pulumi:"type"` } -// Management policy action for base blob. -type ManagementPolicyBaseBlobArgs struct { - // The function to delete the blob - Delete DateAfterModificationPtrInput `pulumi:"delete"` - // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. - EnableAutoTierToHotFromCool pulumi.BoolPtrInput `pulumi:"enableAutoTierToHotFromCool"` - // The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier - TierToArchive DateAfterModificationPtrInput `pulumi:"tierToArchive"` - // The function to tier blobs to cool storage. Support blobs currently at Hot tier - TierToCool DateAfterModificationPtrInput `pulumi:"tierToCool"` -} +// ManagementPolicyRuleInput is an input type that accepts ManagementPolicyRuleArgs and ManagementPolicyRuleOutput values. +// You can construct a concrete instance of `ManagementPolicyRuleInput` via: +// +// ManagementPolicyRuleArgs{...} +type ManagementPolicyRuleInput interface { + pulumi.Input -func (ManagementPolicyBaseBlobArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyBaseBlob)(nil)).Elem() + ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput + ToManagementPolicyRuleOutputWithContext(context.Context) ManagementPolicyRuleOutput } -func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput { - return i.ToManagementPolicyBaseBlobOutputWithContext(context.Background()) +// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. +type ManagementPolicyRuleArgs struct { + // An object that defines the Lifecycle rule. + Definition ManagementPolicyDefinitionInput `pulumi:"definition"` + // Rule is enabled if set to true. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name pulumi.StringInput `pulumi:"name"` + // The valid value is Lifecycle + Type pulumi.StringInput `pulumi:"type"` } -func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobOutput) +func (ManagementPolicyRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyRule)(nil)).Elem() } -func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { - return i.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +func (i ManagementPolicyRuleArgs) ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput { + return i.ToManagementPolicyRuleOutputWithContext(context.Background()) } -func (i ManagementPolicyBaseBlobArgs) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobOutput).ToManagementPolicyBaseBlobPtrOutputWithContext(ctx) +func (i ManagementPolicyRuleArgs) ToManagementPolicyRuleOutputWithContext(ctx context.Context) ManagementPolicyRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyRuleOutput) } -// ManagementPolicyBaseBlobPtrInput is an input type that accepts ManagementPolicyBaseBlobArgs, ManagementPolicyBaseBlobPtr and ManagementPolicyBaseBlobPtrOutput values. -// You can construct a concrete instance of `ManagementPolicyBaseBlobPtrInput` via: -// -// ManagementPolicyBaseBlobArgs{...} -// -// or: +// ManagementPolicyRuleArrayInput is an input type that accepts ManagementPolicyRuleArray and ManagementPolicyRuleArrayOutput values. +// You can construct a concrete instance of `ManagementPolicyRuleArrayInput` via: // -// nil -type ManagementPolicyBaseBlobPtrInput interface { +// ManagementPolicyRuleArray{ ManagementPolicyRuleArgs{...} } +type ManagementPolicyRuleArrayInput interface { pulumi.Input - ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput - ToManagementPolicyBaseBlobPtrOutputWithContext(context.Context) ManagementPolicyBaseBlobPtrOutput + ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput + ToManagementPolicyRuleArrayOutputWithContext(context.Context) ManagementPolicyRuleArrayOutput } -type managementPolicyBaseBlobPtrType ManagementPolicyBaseBlobArgs - -func ManagementPolicyBaseBlobPtr(v *ManagementPolicyBaseBlobArgs) ManagementPolicyBaseBlobPtrInput { - return (*managementPolicyBaseBlobPtrType)(v) -} +type ManagementPolicyRuleArray []ManagementPolicyRuleInput -func (*managementPolicyBaseBlobPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyBaseBlob)(nil)).Elem() +func (ManagementPolicyRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementPolicyRule)(nil)).Elem() } -func (i *managementPolicyBaseBlobPtrType) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { - return i.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +func (i ManagementPolicyRuleArray) ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput { + return i.ToManagementPolicyRuleArrayOutputWithContext(context.Background()) } -func (i *managementPolicyBaseBlobPtrType) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyBaseBlobPtrOutput) +func (i ManagementPolicyRuleArray) ToManagementPolicyRuleArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyRuleArrayOutput) } -// Management policy action for base blob. -type ManagementPolicyBaseBlobOutput struct{ *pulumi.OutputState } +// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. +type ManagementPolicyRuleOutput struct{ *pulumi.OutputState } -func (ManagementPolicyBaseBlobOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyBaseBlob)(nil)).Elem() +func (ManagementPolicyRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyRule)(nil)).Elem() } -func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobOutput() ManagementPolicyBaseBlobOutput { +func (o ManagementPolicyRuleOutput) ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput { return o } -func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobOutput { +func (o ManagementPolicyRuleOutput) ToManagementPolicyRuleOutputWithContext(ctx context.Context) ManagementPolicyRuleOutput { return o } -func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { - return o.ToManagementPolicyBaseBlobPtrOutputWithContext(context.Background()) +// An object that defines the Lifecycle rule. +func (o ManagementPolicyRuleOutput) Definition() ManagementPolicyDefinitionOutput { + return o.ApplyT(func(v ManagementPolicyRule) ManagementPolicyDefinition { return v.Definition }).(ManagementPolicyDefinitionOutput) } -func (o ManagementPolicyBaseBlobOutput) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyBaseBlob) *ManagementPolicyBaseBlob { - return &v - }).(ManagementPolicyBaseBlobPtrOutput) +// Rule is enabled if set to true. +func (o ManagementPolicyRuleOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ManagementPolicyRule) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The function to delete the blob -func (o ManagementPolicyBaseBlobOutput) Delete() DateAfterModificationPtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.Delete }).(DateAfterModificationPtrOutput) +// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. +func (o ManagementPolicyRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ManagementPolicyRule) string { return v.Name }).(pulumi.StringOutput) } -// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. -func (o ManagementPolicyBaseBlobOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlob) *bool { return v.EnableAutoTierToHotFromCool }).(pulumi.BoolPtrOutput) +// The valid value is Lifecycle +func (o ManagementPolicyRuleOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ManagementPolicyRule) string { return v.Type }).(pulumi.StringOutput) } -// The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier -func (o ManagementPolicyBaseBlobOutput) TierToArchive() DateAfterModificationPtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToArchive }).(DateAfterModificationPtrOutput) +type ManagementPolicyRuleArrayOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementPolicyRule)(nil)).Elem() } -// The function to tier blobs to cool storage. Support blobs currently at Hot tier -func (o ManagementPolicyBaseBlobOutput) TierToCool() DateAfterModificationPtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlob) *DateAfterModification { return v.TierToCool }).(DateAfterModificationPtrOutput) +func (o ManagementPolicyRuleArrayOutput) ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput { + return o } -type ManagementPolicyBaseBlobPtrOutput struct{ *pulumi.OutputState } +func (o ManagementPolicyRuleArrayOutput) ToManagementPolicyRuleArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleArrayOutput { + return o +} -func (ManagementPolicyBaseBlobPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyBaseBlob)(nil)).Elem() +func (o ManagementPolicyRuleArrayOutput) Index(i pulumi.IntInput) ManagementPolicyRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementPolicyRule { + return vs[0].([]ManagementPolicyRule)[vs[1].(int)] + }).(ManagementPolicyRuleOutput) } -func (o ManagementPolicyBaseBlobPtrOutput) ToManagementPolicyBaseBlobPtrOutput() ManagementPolicyBaseBlobPtrOutput { - return o +// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. +type ManagementPolicyRuleResponse struct { + // An object that defines the Lifecycle rule. + Definition ManagementPolicyDefinitionResponse `pulumi:"definition"` + // Rule is enabled if set to true. + Enabled *bool `pulumi:"enabled"` + // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + Name string `pulumi:"name"` + // The valid value is Lifecycle + Type string `pulumi:"type"` } -func (o ManagementPolicyBaseBlobPtrOutput) ToManagementPolicyBaseBlobPtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobPtrOutput { - return o +// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. +type ManagementPolicyRuleResponseOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyRuleResponse)(nil)).Elem() } -func (o ManagementPolicyBaseBlobPtrOutput) Elem() ManagementPolicyBaseBlobOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlob) ManagementPolicyBaseBlob { - if v != nil { - return *v - } - var ret ManagementPolicyBaseBlob - return ret - }).(ManagementPolicyBaseBlobOutput) +func (o ManagementPolicyRuleResponseOutput) ToManagementPolicyRuleResponseOutput() ManagementPolicyRuleResponseOutput { + return o } -// The function to delete the blob -func (o ManagementPolicyBaseBlobPtrOutput) Delete() DateAfterModificationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { - if v == nil { - return nil - } - return v.Delete - }).(DateAfterModificationPtrOutput) +func (o ManagementPolicyRuleResponseOutput) ToManagementPolicyRuleResponseOutputWithContext(ctx context.Context) ManagementPolicyRuleResponseOutput { + return o } -// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. -func (o ManagementPolicyBaseBlobPtrOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlob) *bool { - if v == nil { - return nil - } - return v.EnableAutoTierToHotFromCool - }).(pulumi.BoolPtrOutput) +// An object that defines the Lifecycle rule. +func (o ManagementPolicyRuleResponseOutput) Definition() ManagementPolicyDefinitionResponseOutput { + return o.ApplyT(func(v ManagementPolicyRuleResponse) ManagementPolicyDefinitionResponse { return v.Definition }).(ManagementPolicyDefinitionResponseOutput) } -// The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier -func (o ManagementPolicyBaseBlobPtrOutput) TierToArchive() DateAfterModificationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { - if v == nil { - return nil - } - return v.TierToArchive - }).(DateAfterModificationPtrOutput) +// Rule is enabled if set to true. +func (o ManagementPolicyRuleResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ManagementPolicyRuleResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The function to tier blobs to cool storage. Support blobs currently at Hot tier -func (o ManagementPolicyBaseBlobPtrOutput) TierToCool() DateAfterModificationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlob) *DateAfterModification { - if v == nil { - return nil - } - return v.TierToCool - }).(DateAfterModificationPtrOutput) +// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. +func (o ManagementPolicyRuleResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ManagementPolicyRuleResponse) string { return v.Name }).(pulumi.StringOutput) } -// Management policy action for base blob. -type ManagementPolicyBaseBlobResponse struct { - // The function to delete the blob - Delete *DateAfterModificationResponse `pulumi:"delete"` - // This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. - EnableAutoTierToHotFromCool *bool `pulumi:"enableAutoTierToHotFromCool"` - // The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier - TierToArchive *DateAfterModificationResponse `pulumi:"tierToArchive"` - // The function to tier blobs to cool storage. Support blobs currently at Hot tier - TierToCool *DateAfterModificationResponse `pulumi:"tierToCool"` +// The valid value is Lifecycle +func (o ManagementPolicyRuleResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ManagementPolicyRuleResponse) string { return v.Type }).(pulumi.StringOutput) } -// Management policy action for base blob. -type ManagementPolicyBaseBlobResponseOutput struct{ *pulumi.OutputState } +type ManagementPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (ManagementPolicyBaseBlobResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyBaseBlobResponse)(nil)).Elem() +func (ManagementPolicyRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ManagementPolicyRuleResponse)(nil)).Elem() } -func (o ManagementPolicyBaseBlobResponseOutput) ToManagementPolicyBaseBlobResponseOutput() ManagementPolicyBaseBlobResponseOutput { +func (o ManagementPolicyRuleResponseArrayOutput) ToManagementPolicyRuleResponseArrayOutput() ManagementPolicyRuleResponseArrayOutput { return o } -func (o ManagementPolicyBaseBlobResponseOutput) ToManagementPolicyBaseBlobResponseOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobResponseOutput { +func (o ManagementPolicyRuleResponseArrayOutput) ToManagementPolicyRuleResponseArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleResponseArrayOutput { return o } -// The function to delete the blob -func (o ManagementPolicyBaseBlobResponseOutput) Delete() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.Delete }).(DateAfterModificationResponsePtrOutput) +func (o ManagementPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) ManagementPolicyRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementPolicyRuleResponse { + return vs[0].([]ManagementPolicyRuleResponse)[vs[1].(int)] + }).(ManagementPolicyRuleResponseOutput) } -// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. -func (o ManagementPolicyBaseBlobResponseOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *bool { return v.EnableAutoTierToHotFromCool }).(pulumi.BoolPtrOutput) +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +type ManagementPolicySchema struct { + // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + Rules []ManagementPolicyRule `pulumi:"rules"` } -// The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier -func (o ManagementPolicyBaseBlobResponseOutput) TierToArchive() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToArchive }).(DateAfterModificationResponsePtrOutput) +// ManagementPolicySchemaInput is an input type that accepts ManagementPolicySchemaArgs and ManagementPolicySchemaOutput values. +// You can construct a concrete instance of `ManagementPolicySchemaInput` via: +// +// ManagementPolicySchemaArgs{...} +type ManagementPolicySchemaInput interface { + pulumi.Input + + ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput + ToManagementPolicySchemaOutputWithContext(context.Context) ManagementPolicySchemaOutput } -// The function to tier blobs to cool storage. Support blobs currently at Hot tier -func (o ManagementPolicyBaseBlobResponseOutput) TierToCool() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { return v.TierToCool }).(DateAfterModificationResponsePtrOutput) +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +type ManagementPolicySchemaArgs struct { + // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + Rules ManagementPolicyRuleArrayInput `pulumi:"rules"` } -type ManagementPolicyBaseBlobResponsePtrOutput struct{ *pulumi.OutputState } +func (ManagementPolicySchemaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySchema)(nil)).Elem() +} -func (ManagementPolicyBaseBlobResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyBaseBlobResponse)(nil)).Elem() +func (i ManagementPolicySchemaArgs) ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput { + return i.ToManagementPolicySchemaOutputWithContext(context.Background()) } -func (o ManagementPolicyBaseBlobResponsePtrOutput) ToManagementPolicyBaseBlobResponsePtrOutput() ManagementPolicyBaseBlobResponsePtrOutput { +func (i ManagementPolicySchemaArgs) ToManagementPolicySchemaOutputWithContext(ctx context.Context) ManagementPolicySchemaOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySchemaOutput) +} + +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +type ManagementPolicySchemaOutput struct{ *pulumi.OutputState } + +func (ManagementPolicySchemaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySchema)(nil)).Elem() +} + +func (o ManagementPolicySchemaOutput) ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput { return o } -func (o ManagementPolicyBaseBlobResponsePtrOutput) ToManagementPolicyBaseBlobResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyBaseBlobResponsePtrOutput { +func (o ManagementPolicySchemaOutput) ToManagementPolicySchemaOutputWithContext(ctx context.Context) ManagementPolicySchemaOutput { return o } -func (o ManagementPolicyBaseBlobResponsePtrOutput) Elem() ManagementPolicyBaseBlobResponseOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) ManagementPolicyBaseBlobResponse { - if v != nil { - return *v - } - var ret ManagementPolicyBaseBlobResponse - return ret - }).(ManagementPolicyBaseBlobResponseOutput) +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +func (o ManagementPolicySchemaOutput) Rules() ManagementPolicyRuleArrayOutput { + return o.ApplyT(func(v ManagementPolicySchema) []ManagementPolicyRule { return v.Rules }).(ManagementPolicyRuleArrayOutput) +} + +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +type ManagementPolicySchemaResponse struct { + // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. + Rules []ManagementPolicyRuleResponse `pulumi:"rules"` } -// The function to delete the blob -func (o ManagementPolicyBaseBlobResponsePtrOutput) Delete() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { - if v == nil { - return nil - } - return v.Delete - }).(DateAfterModificationResponsePtrOutput) +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +type ManagementPolicySchemaResponseOutput struct{ *pulumi.OutputState } + +func (ManagementPolicySchemaResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySchemaResponse)(nil)).Elem() } -// This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. -func (o ManagementPolicyBaseBlobResponsePtrOutput) EnableAutoTierToHotFromCool() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *bool { - if v == nil { - return nil - } - return v.EnableAutoTierToHotFromCool - }).(pulumi.BoolPtrOutput) +func (o ManagementPolicySchemaResponseOutput) ToManagementPolicySchemaResponseOutput() ManagementPolicySchemaResponseOutput { + return o } -// The function to tier blobs to archive storage. Support blobs currently at Hot or Cool tier -func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToArchive() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { - if v == nil { - return nil - } - return v.TierToArchive - }).(DateAfterModificationResponsePtrOutput) +func (o ManagementPolicySchemaResponseOutput) ToManagementPolicySchemaResponseOutputWithContext(ctx context.Context) ManagementPolicySchemaResponseOutput { + return o } -// The function to tier blobs to cool storage. Support blobs currently at Hot tier -func (o ManagementPolicyBaseBlobResponsePtrOutput) TierToCool() DateAfterModificationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyBaseBlobResponse) *DateAfterModificationResponse { - if v == nil { - return nil - } - return v.TierToCool - }).(DateAfterModificationResponsePtrOutput) +// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. +func (o ManagementPolicySchemaResponseOutput) Rules() ManagementPolicyRuleResponseArrayOutput { + return o.ApplyT(func(v ManagementPolicySchemaResponse) []ManagementPolicyRuleResponse { return v.Rules }).(ManagementPolicyRuleResponseArrayOutput) } -// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. -type ManagementPolicyDefinition struct { - // An object that defines the action set. - Actions ManagementPolicyAction `pulumi:"actions"` - // An object that defines the filter set. - Filters *ManagementPolicyFilter `pulumi:"filters"` +// Management policy action for snapshot. +type ManagementPolicySnapShot struct { + // The function to delete the blob snapshot + Delete *DateAfterCreation `pulumi:"delete"` + // The function to tier blob snapshot to archive storage. + TierToArchive *DateAfterCreation `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterCreation `pulumi:"tierToCold"` + // The function to tier blob snapshot to cool storage. + TierToCool *DateAfterCreation `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterCreation `pulumi:"tierToHot"` } -// ManagementPolicyDefinitionInput is an input type that accepts ManagementPolicyDefinitionArgs and ManagementPolicyDefinitionOutput values. -// You can construct a concrete instance of `ManagementPolicyDefinitionInput` via: +// ManagementPolicySnapShotInput is an input type that accepts ManagementPolicySnapShotArgs and ManagementPolicySnapShotOutput values. +// You can construct a concrete instance of `ManagementPolicySnapShotInput` via: // -// ManagementPolicyDefinitionArgs{...} -type ManagementPolicyDefinitionInput interface { +// ManagementPolicySnapShotArgs{...} +type ManagementPolicySnapShotInput interface { pulumi.Input - ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput - ToManagementPolicyDefinitionOutputWithContext(context.Context) ManagementPolicyDefinitionOutput + ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput + ToManagementPolicySnapShotOutputWithContext(context.Context) ManagementPolicySnapShotOutput } -// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. -type ManagementPolicyDefinitionArgs struct { - // An object that defines the action set. - Actions ManagementPolicyActionInput `pulumi:"actions"` - // An object that defines the filter set. - Filters ManagementPolicyFilterPtrInput `pulumi:"filters"` +// Management policy action for snapshot. +type ManagementPolicySnapShotArgs struct { + // The function to delete the blob snapshot + Delete DateAfterCreationPtrInput `pulumi:"delete"` + // The function to tier blob snapshot to archive storage. + TierToArchive DateAfterCreationPtrInput `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold DateAfterCreationPtrInput `pulumi:"tierToCold"` + // The function to tier blob snapshot to cool storage. + TierToCool DateAfterCreationPtrInput `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot DateAfterCreationPtrInput `pulumi:"tierToHot"` } -func (ManagementPolicyDefinitionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyDefinition)(nil)).Elem() +func (ManagementPolicySnapShotArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySnapShot)(nil)).Elem() } -func (i ManagementPolicyDefinitionArgs) ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput { - return i.ToManagementPolicyDefinitionOutputWithContext(context.Background()) +func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput { + return i.ToManagementPolicySnapShotOutputWithContext(context.Background()) } -func (i ManagementPolicyDefinitionArgs) ToManagementPolicyDefinitionOutputWithContext(ctx context.Context) ManagementPolicyDefinitionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyDefinitionOutput) +func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotOutputWithContext(ctx context.Context) ManagementPolicySnapShotOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotOutput) } -// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. -type ManagementPolicyDefinitionOutput struct{ *pulumi.OutputState } +func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { + return i.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) +} -func (ManagementPolicyDefinitionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyDefinition)(nil)).Elem() +func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotOutput).ToManagementPolicySnapShotPtrOutputWithContext(ctx) } -func (o ManagementPolicyDefinitionOutput) ToManagementPolicyDefinitionOutput() ManagementPolicyDefinitionOutput { - return o +// ManagementPolicySnapShotPtrInput is an input type that accepts ManagementPolicySnapShotArgs, ManagementPolicySnapShotPtr and ManagementPolicySnapShotPtrOutput values. +// You can construct a concrete instance of `ManagementPolicySnapShotPtrInput` via: +// +// ManagementPolicySnapShotArgs{...} +// +// or: +// +// nil +type ManagementPolicySnapShotPtrInput interface { + pulumi.Input + + ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput + ToManagementPolicySnapShotPtrOutputWithContext(context.Context) ManagementPolicySnapShotPtrOutput } -func (o ManagementPolicyDefinitionOutput) ToManagementPolicyDefinitionOutputWithContext(ctx context.Context) ManagementPolicyDefinitionOutput { - return o +type managementPolicySnapShotPtrType ManagementPolicySnapShotArgs + +func ManagementPolicySnapShotPtr(v *ManagementPolicySnapShotArgs) ManagementPolicySnapShotPtrInput { + return (*managementPolicySnapShotPtrType)(v) } -// An object that defines the action set. -func (o ManagementPolicyDefinitionOutput) Actions() ManagementPolicyActionOutput { - return o.ApplyT(func(v ManagementPolicyDefinition) ManagementPolicyAction { return v.Actions }).(ManagementPolicyActionOutput) +func (*managementPolicySnapShotPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicySnapShot)(nil)).Elem() } -// An object that defines the filter set. -func (o ManagementPolicyDefinitionOutput) Filters() ManagementPolicyFilterPtrOutput { - return o.ApplyT(func(v ManagementPolicyDefinition) *ManagementPolicyFilter { return v.Filters }).(ManagementPolicyFilterPtrOutput) +func (i *managementPolicySnapShotPtrType) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { + return i.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) } -// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. -type ManagementPolicyDefinitionResponse struct { - // An object that defines the action set. - Actions ManagementPolicyActionResponse `pulumi:"actions"` - // An object that defines the filter set. - Filters *ManagementPolicyFilterResponse `pulumi:"filters"` +func (i *managementPolicySnapShotPtrType) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotPtrOutput) } -// An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. -type ManagementPolicyDefinitionResponseOutput struct{ *pulumi.OutputState } +// Management policy action for snapshot. +type ManagementPolicySnapShotOutput struct{ *pulumi.OutputState } -func (ManagementPolicyDefinitionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyDefinitionResponse)(nil)).Elem() +func (ManagementPolicySnapShotOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySnapShot)(nil)).Elem() } -func (o ManagementPolicyDefinitionResponseOutput) ToManagementPolicyDefinitionResponseOutput() ManagementPolicyDefinitionResponseOutput { +func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput { return o } -func (o ManagementPolicyDefinitionResponseOutput) ToManagementPolicyDefinitionResponseOutputWithContext(ctx context.Context) ManagementPolicyDefinitionResponseOutput { +func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotOutputWithContext(ctx context.Context) ManagementPolicySnapShotOutput { return o } -// An object that defines the action set. -func (o ManagementPolicyDefinitionResponseOutput) Actions() ManagementPolicyActionResponseOutput { - return o.ApplyT(func(v ManagementPolicyDefinitionResponse) ManagementPolicyActionResponse { return v.Actions }).(ManagementPolicyActionResponseOutput) +func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { + return o.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) } -// An object that defines the filter set. -func (o ManagementPolicyDefinitionResponseOutput) Filters() ManagementPolicyFilterResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyDefinitionResponse) *ManagementPolicyFilterResponse { return v.Filters }).(ManagementPolicyFilterResponsePtrOutput) +func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicySnapShot) *ManagementPolicySnapShot { + return &v + }).(ManagementPolicySnapShotPtrOutput) } -// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. -type ManagementPolicyFilter struct { - // An array of blob index tag based filters, there can be at most 10 tag filters - BlobIndexMatch []TagFilter `pulumi:"blobIndexMatch"` - // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - BlobTypes []string `pulumi:"blobTypes"` - // An array of strings for prefixes to be match. - PrefixMatch []string `pulumi:"prefixMatch"` +// The function to delete the blob snapshot +func (o ManagementPolicySnapShotOutput) Delete() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.Delete }).(DateAfterCreationPtrOutput) } -// ManagementPolicyFilterInput is an input type that accepts ManagementPolicyFilterArgs and ManagementPolicyFilterOutput values. -// You can construct a concrete instance of `ManagementPolicyFilterInput` via: -// -// ManagementPolicyFilterArgs{...} -type ManagementPolicyFilterInput interface { - pulumi.Input - - ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput - ToManagementPolicyFilterOutputWithContext(context.Context) ManagementPolicyFilterOutput +// The function to tier blob snapshot to archive storage. +func (o ManagementPolicySnapShotOutput) TierToArchive() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToArchive }).(DateAfterCreationPtrOutput) } -// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. -type ManagementPolicyFilterArgs struct { - // An array of blob index tag based filters, there can be at most 10 tag filters - BlobIndexMatch TagFilterArrayInput `pulumi:"blobIndexMatch"` - // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - BlobTypes pulumi.StringArrayInput `pulumi:"blobTypes"` - // An array of strings for prefixes to be match. - PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` +// The function to tier blobs to cold storage. +func (o ManagementPolicySnapShotOutput) TierToCold() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToCold }).(DateAfterCreationPtrOutput) } -func (ManagementPolicyFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyFilter)(nil)).Elem() +// The function to tier blob snapshot to cool storage. +func (o ManagementPolicySnapShotOutput) TierToCool() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToCool }).(DateAfterCreationPtrOutput) } -func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput { - return i.ToManagementPolicyFilterOutputWithContext(context.Background()) +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicySnapShotOutput) TierToHot() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToHot }).(DateAfterCreationPtrOutput) } -func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterOutputWithContext(ctx context.Context) ManagementPolicyFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterOutput) +type ManagementPolicySnapShotPtrOutput struct{ *pulumi.OutputState } + +func (ManagementPolicySnapShotPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicySnapShot)(nil)).Elem() } -func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { - return i.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) +func (o ManagementPolicySnapShotPtrOutput) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { + return o } -func (i ManagementPolicyFilterArgs) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterOutput).ToManagementPolicyFilterPtrOutputWithContext(ctx) +func (o ManagementPolicySnapShotPtrOutput) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { + return o } -// ManagementPolicyFilterPtrInput is an input type that accepts ManagementPolicyFilterArgs, ManagementPolicyFilterPtr and ManagementPolicyFilterPtrOutput values. -// You can construct a concrete instance of `ManagementPolicyFilterPtrInput` via: -// -// ManagementPolicyFilterArgs{...} -// -// or: -// -// nil -type ManagementPolicyFilterPtrInput interface { - pulumi.Input +func (o ManagementPolicySnapShotPtrOutput) Elem() ManagementPolicySnapShotOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) ManagementPolicySnapShot { + if v != nil { + return *v + } + var ret ManagementPolicySnapShot + return ret + }).(ManagementPolicySnapShotOutput) +} - ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput - ToManagementPolicyFilterPtrOutputWithContext(context.Context) ManagementPolicyFilterPtrOutput +// The function to delete the blob snapshot +func (o ManagementPolicySnapShotPtrOutput) Delete() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { + if v == nil { + return nil + } + return v.Delete + }).(DateAfterCreationPtrOutput) } -type managementPolicyFilterPtrType ManagementPolicyFilterArgs +// The function to tier blob snapshot to archive storage. +func (o ManagementPolicySnapShotPtrOutput) TierToArchive() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToArchive + }).(DateAfterCreationPtrOutput) +} -func ManagementPolicyFilterPtr(v *ManagementPolicyFilterArgs) ManagementPolicyFilterPtrInput { - return (*managementPolicyFilterPtrType)(v) +// The function to tier blobs to cold storage. +func (o ManagementPolicySnapShotPtrOutput) TierToCold() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToCold + }).(DateAfterCreationPtrOutput) } -func (*managementPolicyFilterPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyFilter)(nil)).Elem() +// The function to tier blob snapshot to cool storage. +func (o ManagementPolicySnapShotPtrOutput) TierToCool() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToCool + }).(DateAfterCreationPtrOutput) } -func (i *managementPolicyFilterPtrType) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { - return i.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicySnapShotPtrOutput) TierToHot() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToHot + }).(DateAfterCreationPtrOutput) } -func (i *managementPolicyFilterPtrType) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyFilterPtrOutput) +// Management policy action for snapshot. +type ManagementPolicySnapShotResponse struct { + // The function to delete the blob snapshot + Delete *DateAfterCreationResponse `pulumi:"delete"` + // The function to tier blob snapshot to archive storage. + TierToArchive *DateAfterCreationResponse `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterCreationResponse `pulumi:"tierToCold"` + // The function to tier blob snapshot to cool storage. + TierToCool *DateAfterCreationResponse `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterCreationResponse `pulumi:"tierToHot"` } -// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. -type ManagementPolicyFilterOutput struct{ *pulumi.OutputState } +// Management policy action for snapshot. +type ManagementPolicySnapShotResponseOutput struct{ *pulumi.OutputState } -func (ManagementPolicyFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyFilter)(nil)).Elem() +func (ManagementPolicySnapShotResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicySnapShotResponse)(nil)).Elem() } -func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterOutput() ManagementPolicyFilterOutput { +func (o ManagementPolicySnapShotResponseOutput) ToManagementPolicySnapShotResponseOutput() ManagementPolicySnapShotResponseOutput { return o } -func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterOutputWithContext(ctx context.Context) ManagementPolicyFilterOutput { +func (o ManagementPolicySnapShotResponseOutput) ToManagementPolicySnapShotResponseOutputWithContext(ctx context.Context) ManagementPolicySnapShotResponseOutput { return o } -func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { - return o.ToManagementPolicyFilterPtrOutputWithContext(context.Background()) +// The function to delete the blob snapshot +func (o ManagementPolicySnapShotResponseOutput) Delete() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.Delete }).(DateAfterCreationResponsePtrOutput) } -func (o ManagementPolicyFilterOutput) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyFilter) *ManagementPolicyFilter { - return &v - }).(ManagementPolicyFilterPtrOutput) +// The function to tier blob snapshot to archive storage. +func (o ManagementPolicySnapShotResponseOutput) TierToArchive() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToArchive }).(DateAfterCreationResponsePtrOutput) } -// An array of blob index tag based filters, there can be at most 10 tag filters -func (o ManagementPolicyFilterOutput) BlobIndexMatch() TagFilterArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilter) []TagFilter { return v.BlobIndexMatch }).(TagFilterArrayOutput) +// The function to tier blobs to cold storage. +func (o ManagementPolicySnapShotResponseOutput) TierToCold() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToCold }).(DateAfterCreationResponsePtrOutput) } -// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. -func (o ManagementPolicyFilterOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilter) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) +// The function to tier blob snapshot to cool storage. +func (o ManagementPolicySnapShotResponseOutput) TierToCool() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToCool }).(DateAfterCreationResponsePtrOutput) } -// An array of strings for prefixes to be match. -func (o ManagementPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicySnapShotResponseOutput) TierToHot() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToHot }).(DateAfterCreationResponsePtrOutput) } -type ManagementPolicyFilterPtrOutput struct{ *pulumi.OutputState } +type ManagementPolicySnapShotResponsePtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicyFilterPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyFilter)(nil)).Elem() +func (ManagementPolicySnapShotResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicySnapShotResponse)(nil)).Elem() } -func (o ManagementPolicyFilterPtrOutput) ToManagementPolicyFilterPtrOutput() ManagementPolicyFilterPtrOutput { +func (o ManagementPolicySnapShotResponsePtrOutput) ToManagementPolicySnapShotResponsePtrOutput() ManagementPolicySnapShotResponsePtrOutput { return o } -func (o ManagementPolicyFilterPtrOutput) ToManagementPolicyFilterPtrOutputWithContext(ctx context.Context) ManagementPolicyFilterPtrOutput { +func (o ManagementPolicySnapShotResponsePtrOutput) ToManagementPolicySnapShotResponsePtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotResponsePtrOutput { return o } -func (o ManagementPolicyFilterPtrOutput) Elem() ManagementPolicyFilterOutput { - return o.ApplyT(func(v *ManagementPolicyFilter) ManagementPolicyFilter { +func (o ManagementPolicySnapShotResponsePtrOutput) Elem() ManagementPolicySnapShotResponseOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) ManagementPolicySnapShotResponse { if v != nil { return *v } - var ret ManagementPolicyFilter + var ret ManagementPolicySnapShotResponse return ret - }).(ManagementPolicyFilterOutput) + }).(ManagementPolicySnapShotResponseOutput) } -// An array of blob index tag based filters, there can be at most 10 tag filters -func (o ManagementPolicyFilterPtrOutput) BlobIndexMatch() TagFilterArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilter) []TagFilter { +// The function to delete the blob snapshot +func (o ManagementPolicySnapShotResponsePtrOutput) Delete() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { if v == nil { return nil } - return v.BlobIndexMatch - }).(TagFilterArrayOutput) + return v.Delete + }).(DateAfterCreationResponsePtrOutput) } -// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. -func (o ManagementPolicyFilterPtrOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilter) []string { +// The function to tier blob snapshot to archive storage. +func (o ManagementPolicySnapShotResponsePtrOutput) TierToArchive() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { if v == nil { return nil } - return v.BlobTypes - }).(pulumi.StringArrayOutput) + return v.TierToArchive + }).(DateAfterCreationResponsePtrOutput) } -// An array of strings for prefixes to be match. -func (o ManagementPolicyFilterPtrOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilter) []string { +// The function to tier blobs to cold storage. +func (o ManagementPolicySnapShotResponsePtrOutput) TierToCold() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { if v == nil { return nil } - return v.PrefixMatch - }).(pulumi.StringArrayOutput) + return v.TierToCold + }).(DateAfterCreationResponsePtrOutput) } -// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. -type ManagementPolicyFilterResponse struct { - // An array of blob index tag based filters, there can be at most 10 tag filters - BlobIndexMatch []TagFilterResponse `pulumi:"blobIndexMatch"` - // An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. - BlobTypes []string `pulumi:"blobTypes"` - // An array of strings for prefixes to be match. - PrefixMatch []string `pulumi:"prefixMatch"` +// The function to tier blob snapshot to cool storage. +func (o ManagementPolicySnapShotResponsePtrOutput) TierToCool() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToCool + }).(DateAfterCreationResponsePtrOutput) } -// Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. -type ManagementPolicyFilterResponseOutput struct{ *pulumi.OutputState } +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicySnapShotResponsePtrOutput) TierToHot() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToHot + }).(DateAfterCreationResponsePtrOutput) +} -func (ManagementPolicyFilterResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyFilterResponse)(nil)).Elem() +// Management policy action for blob version. +type ManagementPolicyVersion struct { + // The function to delete the blob version + Delete *DateAfterCreation `pulumi:"delete"` + // The function to tier blob version to archive storage. + TierToArchive *DateAfterCreation `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterCreation `pulumi:"tierToCold"` + // The function to tier blob version to cool storage. + TierToCool *DateAfterCreation `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterCreation `pulumi:"tierToHot"` } -func (o ManagementPolicyFilterResponseOutput) ToManagementPolicyFilterResponseOutput() ManagementPolicyFilterResponseOutput { +// ManagementPolicyVersionInput is an input type that accepts ManagementPolicyVersionArgs and ManagementPolicyVersionOutput values. +// You can construct a concrete instance of `ManagementPolicyVersionInput` via: +// +// ManagementPolicyVersionArgs{...} +type ManagementPolicyVersionInput interface { + pulumi.Input + + ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput + ToManagementPolicyVersionOutputWithContext(context.Context) ManagementPolicyVersionOutput +} + +// Management policy action for blob version. +type ManagementPolicyVersionArgs struct { + // The function to delete the blob version + Delete DateAfterCreationPtrInput `pulumi:"delete"` + // The function to tier blob version to archive storage. + TierToArchive DateAfterCreationPtrInput `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold DateAfterCreationPtrInput `pulumi:"tierToCold"` + // The function to tier blob version to cool storage. + TierToCool DateAfterCreationPtrInput `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot DateAfterCreationPtrInput `pulumi:"tierToHot"` +} + +func (ManagementPolicyVersionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyVersion)(nil)).Elem() +} + +func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput { + return i.ToManagementPolicyVersionOutputWithContext(context.Background()) +} + +func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionOutputWithContext(ctx context.Context) ManagementPolicyVersionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionOutput) +} + +func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { + return i.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) +} + +func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionOutput).ToManagementPolicyVersionPtrOutputWithContext(ctx) +} + +// ManagementPolicyVersionPtrInput is an input type that accepts ManagementPolicyVersionArgs, ManagementPolicyVersionPtr and ManagementPolicyVersionPtrOutput values. +// You can construct a concrete instance of `ManagementPolicyVersionPtrInput` via: +// +// ManagementPolicyVersionArgs{...} +// +// or: +// +// nil +type ManagementPolicyVersionPtrInput interface { + pulumi.Input + + ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput + ToManagementPolicyVersionPtrOutputWithContext(context.Context) ManagementPolicyVersionPtrOutput +} + +type managementPolicyVersionPtrType ManagementPolicyVersionArgs + +func ManagementPolicyVersionPtr(v *ManagementPolicyVersionArgs) ManagementPolicyVersionPtrInput { + return (*managementPolicyVersionPtrType)(v) +} + +func (*managementPolicyVersionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyVersion)(nil)).Elem() +} + +func (i *managementPolicyVersionPtrType) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { + return i.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) +} + +func (i *managementPolicyVersionPtrType) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionPtrOutput) +} + +// Management policy action for blob version. +type ManagementPolicyVersionOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyVersion)(nil)).Elem() +} + +func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput { return o } -func (o ManagementPolicyFilterResponseOutput) ToManagementPolicyFilterResponseOutputWithContext(ctx context.Context) ManagementPolicyFilterResponseOutput { +func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionOutputWithContext(ctx context.Context) ManagementPolicyVersionOutput { return o } -// An array of blob index tag based filters, there can be at most 10 tag filters -func (o ManagementPolicyFilterResponseOutput) BlobIndexMatch() TagFilterResponseArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilterResponse) []TagFilterResponse { return v.BlobIndexMatch }).(TagFilterResponseArrayOutput) +func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { + return o.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) } -// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. -func (o ManagementPolicyFilterResponseOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilterResponse) []string { return v.BlobTypes }).(pulumi.StringArrayOutput) +func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyVersion) *ManagementPolicyVersion { + return &v + }).(ManagementPolicyVersionPtrOutput) } -// An array of strings for prefixes to be match. -func (o ManagementPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v ManagementPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +// The function to delete the blob version +func (o ManagementPolicyVersionOutput) Delete() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.Delete }).(DateAfterCreationPtrOutput) } -type ManagementPolicyFilterResponsePtrOutput struct{ *pulumi.OutputState } +// The function to tier blob version to archive storage. +func (o ManagementPolicyVersionOutput) TierToArchive() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToArchive }).(DateAfterCreationPtrOutput) +} -func (ManagementPolicyFilterResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyFilterResponse)(nil)).Elem() +// The function to tier blobs to cold storage. +func (o ManagementPolicyVersionOutput) TierToCold() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToCold }).(DateAfterCreationPtrOutput) +} + +// The function to tier blob version to cool storage. +func (o ManagementPolicyVersionOutput) TierToCool() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToCool }).(DateAfterCreationPtrOutput) +} + +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyVersionOutput) TierToHot() DateAfterCreationPtrOutput { + return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToHot }).(DateAfterCreationPtrOutput) +} + +type ManagementPolicyVersionPtrOutput struct{ *pulumi.OutputState } + +func (ManagementPolicyVersionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyVersion)(nil)).Elem() } -func (o ManagementPolicyFilterResponsePtrOutput) ToManagementPolicyFilterResponsePtrOutput() ManagementPolicyFilterResponsePtrOutput { +func (o ManagementPolicyVersionPtrOutput) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { return o } -func (o ManagementPolicyFilterResponsePtrOutput) ToManagementPolicyFilterResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyFilterResponsePtrOutput { +func (o ManagementPolicyVersionPtrOutput) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { return o } -func (o ManagementPolicyFilterResponsePtrOutput) Elem() ManagementPolicyFilterResponseOutput { - return o.ApplyT(func(v *ManagementPolicyFilterResponse) ManagementPolicyFilterResponse { +func (o ManagementPolicyVersionPtrOutput) Elem() ManagementPolicyVersionOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) ManagementPolicyVersion { if v != nil { return *v } - var ret ManagementPolicyFilterResponse + var ret ManagementPolicyVersion return ret - }).(ManagementPolicyFilterResponseOutput) + }).(ManagementPolicyVersionOutput) } -// An array of blob index tag based filters, there can be at most 10 tag filters -func (o ManagementPolicyFilterResponsePtrOutput) BlobIndexMatch() TagFilterResponseArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilterResponse) []TagFilterResponse { +// The function to delete the blob version +func (o ManagementPolicyVersionPtrOutput) Delete() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { if v == nil { return nil } - return v.BlobIndexMatch - }).(TagFilterResponseArrayOutput) + return v.Delete + }).(DateAfterCreationPtrOutput) } -// An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. -func (o ManagementPolicyFilterResponsePtrOutput) BlobTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilterResponse) []string { +// The function to tier blob version to archive storage. +func (o ManagementPolicyVersionPtrOutput) TierToArchive() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { if v == nil { return nil } - return v.BlobTypes - }).(pulumi.StringArrayOutput) + return v.TierToArchive + }).(DateAfterCreationPtrOutput) } -// An array of strings for prefixes to be match. -func (o ManagementPolicyFilterResponsePtrOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ManagementPolicyFilterResponse) []string { +// The function to tier blobs to cold storage. +func (o ManagementPolicyVersionPtrOutput) TierToCold() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { if v == nil { return nil } - return v.PrefixMatch - }).(pulumi.StringArrayOutput) + return v.TierToCold + }).(DateAfterCreationPtrOutput) } -// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. -type ManagementPolicyRule struct { - // An object that defines the Lifecycle rule. - Definition ManagementPolicyDefinition `pulumi:"definition"` - // Rule is enabled if set to true. - Enabled *bool `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name string `pulumi:"name"` - // The valid value is Lifecycle - Type string `pulumi:"type"` +// The function to tier blob version to cool storage. +func (o ManagementPolicyVersionPtrOutput) TierToCool() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToCool + }).(DateAfterCreationPtrOutput) } -// ManagementPolicyRuleInput is an input type that accepts ManagementPolicyRuleArgs and ManagementPolicyRuleOutput values. -// You can construct a concrete instance of `ManagementPolicyRuleInput` via: -// -// ManagementPolicyRuleArgs{...} -type ManagementPolicyRuleInput interface { - pulumi.Input - - ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput - ToManagementPolicyRuleOutputWithContext(context.Context) ManagementPolicyRuleOutput +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyVersionPtrOutput) TierToHot() DateAfterCreationPtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { + if v == nil { + return nil + } + return v.TierToHot + }).(DateAfterCreationPtrOutput) } -// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. -type ManagementPolicyRuleArgs struct { - // An object that defines the Lifecycle rule. - Definition ManagementPolicyDefinitionInput `pulumi:"definition"` - // Rule is enabled if set to true. - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name pulumi.StringInput `pulumi:"name"` - // The valid value is Lifecycle - Type pulumi.StringInput `pulumi:"type"` +// Management policy action for blob version. +type ManagementPolicyVersionResponse struct { + // The function to delete the blob version + Delete *DateAfterCreationResponse `pulumi:"delete"` + // The function to tier blob version to archive storage. + TierToArchive *DateAfterCreationResponse `pulumi:"tierToArchive"` + // The function to tier blobs to cold storage. + TierToCold *DateAfterCreationResponse `pulumi:"tierToCold"` + // The function to tier blob version to cool storage. + TierToCool *DateAfterCreationResponse `pulumi:"tierToCool"` + // The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + TierToHot *DateAfterCreationResponse `pulumi:"tierToHot"` } -func (ManagementPolicyRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyRule)(nil)).Elem() -} +// Management policy action for blob version. +type ManagementPolicyVersionResponseOutput struct{ *pulumi.OutputState } -func (i ManagementPolicyRuleArgs) ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput { - return i.ToManagementPolicyRuleOutputWithContext(context.Background()) +func (ManagementPolicyVersionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagementPolicyVersionResponse)(nil)).Elem() } -func (i ManagementPolicyRuleArgs) ToManagementPolicyRuleOutputWithContext(ctx context.Context) ManagementPolicyRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyRuleOutput) +func (o ManagementPolicyVersionResponseOutput) ToManagementPolicyVersionResponseOutput() ManagementPolicyVersionResponseOutput { + return o } -// ManagementPolicyRuleArrayInput is an input type that accepts ManagementPolicyRuleArray and ManagementPolicyRuleArrayOutput values. -// You can construct a concrete instance of `ManagementPolicyRuleArrayInput` via: -// -// ManagementPolicyRuleArray{ ManagementPolicyRuleArgs{...} } -type ManagementPolicyRuleArrayInput interface { - pulumi.Input +func (o ManagementPolicyVersionResponseOutput) ToManagementPolicyVersionResponseOutputWithContext(ctx context.Context) ManagementPolicyVersionResponseOutput { + return o +} - ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput - ToManagementPolicyRuleArrayOutputWithContext(context.Context) ManagementPolicyRuleArrayOutput +// The function to delete the blob version +func (o ManagementPolicyVersionResponseOutput) Delete() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.Delete }).(DateAfterCreationResponsePtrOutput) } -type ManagementPolicyRuleArray []ManagementPolicyRuleInput +// The function to tier blob version to archive storage. +func (o ManagementPolicyVersionResponseOutput) TierToArchive() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToArchive }).(DateAfterCreationResponsePtrOutput) +} -func (ManagementPolicyRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementPolicyRule)(nil)).Elem() +// The function to tier blobs to cold storage. +func (o ManagementPolicyVersionResponseOutput) TierToCold() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToCold }).(DateAfterCreationResponsePtrOutput) } -func (i ManagementPolicyRuleArray) ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput { - return i.ToManagementPolicyRuleArrayOutputWithContext(context.Background()) +// The function to tier blob version to cool storage. +func (o ManagementPolicyVersionResponseOutput) TierToCool() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToCool }).(DateAfterCreationResponsePtrOutput) } -func (i ManagementPolicyRuleArray) ToManagementPolicyRuleArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyRuleArrayOutput) +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyVersionResponseOutput) TierToHot() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToHot }).(DateAfterCreationResponsePtrOutput) } -// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. -type ManagementPolicyRuleOutput struct{ *pulumi.OutputState } +type ManagementPolicyVersionResponsePtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicyRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyRule)(nil)).Elem() +func (ManagementPolicyVersionResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagementPolicyVersionResponse)(nil)).Elem() } -func (o ManagementPolicyRuleOutput) ToManagementPolicyRuleOutput() ManagementPolicyRuleOutput { +func (o ManagementPolicyVersionResponsePtrOutput) ToManagementPolicyVersionResponsePtrOutput() ManagementPolicyVersionResponsePtrOutput { return o } -func (o ManagementPolicyRuleOutput) ToManagementPolicyRuleOutputWithContext(ctx context.Context) ManagementPolicyRuleOutput { +func (o ManagementPolicyVersionResponsePtrOutput) ToManagementPolicyVersionResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyVersionResponsePtrOutput { return o } -// An object that defines the Lifecycle rule. -func (o ManagementPolicyRuleOutput) Definition() ManagementPolicyDefinitionOutput { - return o.ApplyT(func(v ManagementPolicyRule) ManagementPolicyDefinition { return v.Definition }).(ManagementPolicyDefinitionOutput) +func (o ManagementPolicyVersionResponsePtrOutput) Elem() ManagementPolicyVersionResponseOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) ManagementPolicyVersionResponse { + if v != nil { + return *v + } + var ret ManagementPolicyVersionResponse + return ret + }).(ManagementPolicyVersionResponseOutput) } -// Rule is enabled if set to true. -func (o ManagementPolicyRuleOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ManagementPolicyRule) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// The function to delete the blob version +func (o ManagementPolicyVersionResponsePtrOutput) Delete() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.Delete + }).(DateAfterCreationResponsePtrOutput) } -// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. -func (o ManagementPolicyRuleOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ManagementPolicyRule) string { return v.Name }).(pulumi.StringOutput) +// The function to tier blob version to archive storage. +func (o ManagementPolicyVersionResponsePtrOutput) TierToArchive() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToArchive + }).(DateAfterCreationResponsePtrOutput) } -// The valid value is Lifecycle -func (o ManagementPolicyRuleOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ManagementPolicyRule) string { return v.Type }).(pulumi.StringOutput) +// The function to tier blobs to cold storage. +func (o ManagementPolicyVersionResponsePtrOutput) TierToCold() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToCold + }).(DateAfterCreationResponsePtrOutput) } -type ManagementPolicyRuleArrayOutput struct{ *pulumi.OutputState } +// The function to tier blob version to cool storage. +func (o ManagementPolicyVersionResponsePtrOutput) TierToCool() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToCool + }).(DateAfterCreationResponsePtrOutput) +} -func (ManagementPolicyRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementPolicyRule)(nil)).Elem() +// The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts +func (o ManagementPolicyVersionResponsePtrOutput) TierToHot() DateAfterCreationResponsePtrOutput { + return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { + if v == nil { + return nil + } + return v.TierToHot + }).(DateAfterCreationResponsePtrOutput) } -func (o ManagementPolicyRuleArrayOutput) ToManagementPolicyRuleArrayOutput() ManagementPolicyRuleArrayOutput { - return o +// Multichannel setting. Applies to Premium FileStorage only. +type Multichannel struct { + // Indicates whether multichannel is enabled + Enabled *bool `pulumi:"enabled"` } -func (o ManagementPolicyRuleArrayOutput) ToManagementPolicyRuleArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleArrayOutput { - return o +// MultichannelInput is an input type that accepts MultichannelArgs and MultichannelOutput values. +// You can construct a concrete instance of `MultichannelInput` via: +// +// MultichannelArgs{...} +type MultichannelInput interface { + pulumi.Input + + ToMultichannelOutput() MultichannelOutput + ToMultichannelOutputWithContext(context.Context) MultichannelOutput } -func (o ManagementPolicyRuleArrayOutput) Index(i pulumi.IntInput) ManagementPolicyRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementPolicyRule { - return vs[0].([]ManagementPolicyRule)[vs[1].(int)] - }).(ManagementPolicyRuleOutput) +// Multichannel setting. Applies to Premium FileStorage only. +type MultichannelArgs struct { + // Indicates whether multichannel is enabled + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } -// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. -type ManagementPolicyRuleResponse struct { - // An object that defines the Lifecycle rule. - Definition ManagementPolicyDefinitionResponse `pulumi:"definition"` - // Rule is enabled if set to true. - Enabled *bool `pulumi:"enabled"` - // A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. - Name string `pulumi:"name"` - // The valid value is Lifecycle - Type string `pulumi:"type"` +func (MultichannelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Multichannel)(nil)).Elem() } -// An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. -type ManagementPolicyRuleResponseOutput struct{ *pulumi.OutputState } +func (i MultichannelArgs) ToMultichannelOutput() MultichannelOutput { + return i.ToMultichannelOutputWithContext(context.Background()) +} -func (ManagementPolicyRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyRuleResponse)(nil)).Elem() +func (i MultichannelArgs) ToMultichannelOutputWithContext(ctx context.Context) MultichannelOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultichannelOutput) } -func (o ManagementPolicyRuleResponseOutput) ToManagementPolicyRuleResponseOutput() ManagementPolicyRuleResponseOutput { - return o +func (i MultichannelArgs) ToMultichannelPtrOutput() MultichannelPtrOutput { + return i.ToMultichannelPtrOutputWithContext(context.Background()) +} + +func (i MultichannelArgs) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultichannelOutput).ToMultichannelPtrOutputWithContext(ctx) } -func (o ManagementPolicyRuleResponseOutput) ToManagementPolicyRuleResponseOutputWithContext(ctx context.Context) ManagementPolicyRuleResponseOutput { - return o +// MultichannelPtrInput is an input type that accepts MultichannelArgs, MultichannelPtr and MultichannelPtrOutput values. +// You can construct a concrete instance of `MultichannelPtrInput` via: +// +// MultichannelArgs{...} +// +// or: +// +// nil +type MultichannelPtrInput interface { + pulumi.Input + + ToMultichannelPtrOutput() MultichannelPtrOutput + ToMultichannelPtrOutputWithContext(context.Context) MultichannelPtrOutput } -// An object that defines the Lifecycle rule. -func (o ManagementPolicyRuleResponseOutput) Definition() ManagementPolicyDefinitionResponseOutput { - return o.ApplyT(func(v ManagementPolicyRuleResponse) ManagementPolicyDefinitionResponse { return v.Definition }).(ManagementPolicyDefinitionResponseOutput) +type multichannelPtrType MultichannelArgs + +func MultichannelPtr(v *MultichannelArgs) MultichannelPtrInput { + return (*multichannelPtrType)(v) } -// Rule is enabled if set to true. -func (o ManagementPolicyRuleResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ManagementPolicyRuleResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +func (*multichannelPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Multichannel)(nil)).Elem() } -// A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. -func (o ManagementPolicyRuleResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v ManagementPolicyRuleResponse) string { return v.Name }).(pulumi.StringOutput) +func (i *multichannelPtrType) ToMultichannelPtrOutput() MultichannelPtrOutput { + return i.ToMultichannelPtrOutputWithContext(context.Background()) } -// The valid value is Lifecycle -func (o ManagementPolicyRuleResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v ManagementPolicyRuleResponse) string { return v.Type }).(pulumi.StringOutput) +func (i *multichannelPtrType) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MultichannelPtrOutput) } -type ManagementPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } +// Multichannel setting. Applies to Premium FileStorage only. +type MultichannelOutput struct{ *pulumi.OutputState } -func (ManagementPolicyRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ManagementPolicyRuleResponse)(nil)).Elem() +func (MultichannelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Multichannel)(nil)).Elem() } -func (o ManagementPolicyRuleResponseArrayOutput) ToManagementPolicyRuleResponseArrayOutput() ManagementPolicyRuleResponseArrayOutput { +func (o MultichannelOutput) ToMultichannelOutput() MultichannelOutput { return o } -func (o ManagementPolicyRuleResponseArrayOutput) ToManagementPolicyRuleResponseArrayOutputWithContext(ctx context.Context) ManagementPolicyRuleResponseArrayOutput { +func (o MultichannelOutput) ToMultichannelOutputWithContext(ctx context.Context) MultichannelOutput { return o } -func (o ManagementPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) ManagementPolicyRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ManagementPolicyRuleResponse { - return vs[0].([]ManagementPolicyRuleResponse)[vs[1].(int)] - }).(ManagementPolicyRuleResponseOutput) +func (o MultichannelOutput) ToMultichannelPtrOutput() MultichannelPtrOutput { + return o.ToMultichannelPtrOutputWithContext(context.Background()) } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -type ManagementPolicySchema struct { - // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. - Rules []ManagementPolicyRule `pulumi:"rules"` +func (o MultichannelOutput) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Multichannel) *Multichannel { + return &v + }).(MultichannelPtrOutput) } -// ManagementPolicySchemaInput is an input type that accepts ManagementPolicySchemaArgs and ManagementPolicySchemaOutput values. -// You can construct a concrete instance of `ManagementPolicySchemaInput` via: -// -// ManagementPolicySchemaArgs{...} -type ManagementPolicySchemaInput interface { - pulumi.Input - - ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput - ToManagementPolicySchemaOutputWithContext(context.Context) ManagementPolicySchemaOutput +// Indicates whether multichannel is enabled +func (o MultichannelOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Multichannel) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -type ManagementPolicySchemaArgs struct { - // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. - Rules ManagementPolicyRuleArrayInput `pulumi:"rules"` +type MultichannelPtrOutput struct{ *pulumi.OutputState } + +func (MultichannelPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Multichannel)(nil)).Elem() } -func (ManagementPolicySchemaArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySchema)(nil)).Elem() +func (o MultichannelPtrOutput) ToMultichannelPtrOutput() MultichannelPtrOutput { + return o } -func (i ManagementPolicySchemaArgs) ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput { - return i.ToManagementPolicySchemaOutputWithContext(context.Background()) +func (o MultichannelPtrOutput) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { + return o } -func (i ManagementPolicySchemaArgs) ToManagementPolicySchemaOutputWithContext(ctx context.Context) ManagementPolicySchemaOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySchemaOutput) +func (o MultichannelPtrOutput) Elem() MultichannelOutput { + return o.ApplyT(func(v *Multichannel) Multichannel { + if v != nil { + return *v + } + var ret Multichannel + return ret + }).(MultichannelOutput) } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -type ManagementPolicySchemaOutput struct{ *pulumi.OutputState } +// Indicates whether multichannel is enabled +func (o MultichannelPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Multichannel) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} -func (ManagementPolicySchemaOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySchema)(nil)).Elem() +// Multichannel setting. Applies to Premium FileStorage only. +type MultichannelResponse struct { + // Indicates whether multichannel is enabled + Enabled *bool `pulumi:"enabled"` } -func (o ManagementPolicySchemaOutput) ToManagementPolicySchemaOutput() ManagementPolicySchemaOutput { - return o +// Multichannel setting. Applies to Premium FileStorage only. +type MultichannelResponseOutput struct{ *pulumi.OutputState } + +func (MultichannelResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MultichannelResponse)(nil)).Elem() } -func (o ManagementPolicySchemaOutput) ToManagementPolicySchemaOutputWithContext(ctx context.Context) ManagementPolicySchemaOutput { +func (o MultichannelResponseOutput) ToMultichannelResponseOutput() MultichannelResponseOutput { return o } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -func (o ManagementPolicySchemaOutput) Rules() ManagementPolicyRuleArrayOutput { - return o.ApplyT(func(v ManagementPolicySchema) []ManagementPolicyRule { return v.Rules }).(ManagementPolicyRuleArrayOutput) +func (o MultichannelResponseOutput) ToMultichannelResponseOutputWithContext(ctx context.Context) MultichannelResponseOutput { + return o } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -type ManagementPolicySchemaResponse struct { - // The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. - Rules []ManagementPolicyRuleResponse `pulumi:"rules"` +// Indicates whether multichannel is enabled +func (o MultichannelResponseOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v MultichannelResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -type ManagementPolicySchemaResponseOutput struct{ *pulumi.OutputState } +type MultichannelResponsePtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicySchemaResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySchemaResponse)(nil)).Elem() +func (MultichannelResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MultichannelResponse)(nil)).Elem() } -func (o ManagementPolicySchemaResponseOutput) ToManagementPolicySchemaResponseOutput() ManagementPolicySchemaResponseOutput { +func (o MultichannelResponsePtrOutput) ToMultichannelResponsePtrOutput() MultichannelResponsePtrOutput { return o } -func (o ManagementPolicySchemaResponseOutput) ToManagementPolicySchemaResponseOutputWithContext(ctx context.Context) ManagementPolicySchemaResponseOutput { +func (o MultichannelResponsePtrOutput) ToMultichannelResponsePtrOutputWithContext(ctx context.Context) MultichannelResponsePtrOutput { return o } -// The Storage Account ManagementPolicies Rules. See more details in: https://docs.microsoft.com/en-us/azure/storage/common/storage-lifecycle-managment-concepts. -func (o ManagementPolicySchemaResponseOutput) Rules() ManagementPolicyRuleResponseArrayOutput { - return o.ApplyT(func(v ManagementPolicySchemaResponse) []ManagementPolicyRuleResponse { return v.Rules }).(ManagementPolicyRuleResponseArrayOutput) +func (o MultichannelResponsePtrOutput) Elem() MultichannelResponseOutput { + return o.ApplyT(func(v *MultichannelResponse) MultichannelResponse { + if v != nil { + return *v + } + var ret MultichannelResponse + return ret + }).(MultichannelResponseOutput) } -// Management policy action for snapshot. -type ManagementPolicySnapShot struct { - // The function to delete the blob snapshot - Delete *DateAfterCreation `pulumi:"delete"` - // The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier - TierToArchive *DateAfterCreation `pulumi:"tierToArchive"` - // The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier - TierToCool *DateAfterCreation `pulumi:"tierToCool"` +// Indicates whether multichannel is enabled +func (o MultichannelResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MultichannelResponse) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) } -// ManagementPolicySnapShotInput is an input type that accepts ManagementPolicySnapShotArgs and ManagementPolicySnapShotOutput values. -// You can construct a concrete instance of `ManagementPolicySnapShotInput` via: +// Network rule set +type NetworkRuleSet struct { + // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. + Bypass *string `pulumi:"bypass"` + // Specifies the default action of allow or deny when no other rules match. + DefaultAction DefaultAction `pulumi:"defaultAction"` + // Sets the IP ACL rules + IpRules []IPRule `pulumi:"ipRules"` + // Sets the resource access rules + ResourceAccessRules []ResourceAccessRule `pulumi:"resourceAccessRules"` + // Sets the virtual network rules + VirtualNetworkRules []VirtualNetworkRule `pulumi:"virtualNetworkRules"` +} + +// Defaults sets the appropriate defaults for NetworkRuleSet +func (val *NetworkRuleSet) Defaults() *NetworkRuleSet { + if val == nil { + return nil + } + tmp := *val + if tmp.Bypass == nil { + bypass_ := "AzureServices" + tmp.Bypass = &bypass_ + } + if utilities.IsZero(tmp.DefaultAction) { + tmp.DefaultAction = DefaultAction("Allow") + } + return &tmp +} + +// NetworkRuleSetInput is an input type that accepts NetworkRuleSetArgs and NetworkRuleSetOutput values. +// You can construct a concrete instance of `NetworkRuleSetInput` via: // -// ManagementPolicySnapShotArgs{...} -type ManagementPolicySnapShotInput interface { +// NetworkRuleSetArgs{...} +type NetworkRuleSetInput interface { pulumi.Input - ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput - ToManagementPolicySnapShotOutputWithContext(context.Context) ManagementPolicySnapShotOutput + ToNetworkRuleSetOutput() NetworkRuleSetOutput + ToNetworkRuleSetOutputWithContext(context.Context) NetworkRuleSetOutput } -// Management policy action for snapshot. -type ManagementPolicySnapShotArgs struct { - // The function to delete the blob snapshot - Delete DateAfterCreationPtrInput `pulumi:"delete"` - // The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier - TierToArchive DateAfterCreationPtrInput `pulumi:"tierToArchive"` - // The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier - TierToCool DateAfterCreationPtrInput `pulumi:"tierToCool"` +// Network rule set +type NetworkRuleSetArgs struct { + // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. + Bypass pulumi.StringPtrInput `pulumi:"bypass"` + // Specifies the default action of allow or deny when no other rules match. + DefaultAction DefaultActionInput `pulumi:"defaultAction"` + // Sets the IP ACL rules + IpRules IPRuleArrayInput `pulumi:"ipRules"` + // Sets the resource access rules + ResourceAccessRules ResourceAccessRuleArrayInput `pulumi:"resourceAccessRules"` + // Sets the virtual network rules + VirtualNetworkRules VirtualNetworkRuleArrayInput `pulumi:"virtualNetworkRules"` } -func (ManagementPolicySnapShotArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySnapShot)(nil)).Elem() +// Defaults sets the appropriate defaults for NetworkRuleSetArgs +func (val *NetworkRuleSetArgs) Defaults() *NetworkRuleSetArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Bypass == nil { + tmp.Bypass = pulumi.StringPtr("AzureServices") + } + if tmp.DefaultAction == nil { + tmp.DefaultAction = DefaultAction("Allow") + } + return &tmp } - -func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput { - return i.ToManagementPolicySnapShotOutputWithContext(context.Background()) +func (NetworkRuleSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkRuleSet)(nil)).Elem() } -func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotOutputWithContext(ctx context.Context) ManagementPolicySnapShotOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotOutput) +func (i NetworkRuleSetArgs) ToNetworkRuleSetOutput() NetworkRuleSetOutput { + return i.ToNetworkRuleSetOutputWithContext(context.Background()) } -func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { - return i.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) +func (i NetworkRuleSetArgs) ToNetworkRuleSetOutputWithContext(ctx context.Context) NetworkRuleSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetOutput) } -func (i ManagementPolicySnapShotArgs) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotOutput).ToManagementPolicySnapShotPtrOutputWithContext(ctx) +func (i NetworkRuleSetArgs) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { + return i.ToNetworkRuleSetPtrOutputWithContext(context.Background()) } -// ManagementPolicySnapShotPtrInput is an input type that accepts ManagementPolicySnapShotArgs, ManagementPolicySnapShotPtr and ManagementPolicySnapShotPtrOutput values. -// You can construct a concrete instance of `ManagementPolicySnapShotPtrInput` via: +func (i NetworkRuleSetArgs) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetOutput).ToNetworkRuleSetPtrOutputWithContext(ctx) +} + +// NetworkRuleSetPtrInput is an input type that accepts NetworkRuleSetArgs, NetworkRuleSetPtr and NetworkRuleSetPtrOutput values. +// You can construct a concrete instance of `NetworkRuleSetPtrInput` via: // -// ManagementPolicySnapShotArgs{...} +// NetworkRuleSetArgs{...} // // or: // // nil -type ManagementPolicySnapShotPtrInput interface { +type NetworkRuleSetPtrInput interface { pulumi.Input - ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput - ToManagementPolicySnapShotPtrOutputWithContext(context.Context) ManagementPolicySnapShotPtrOutput + ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput + ToNetworkRuleSetPtrOutputWithContext(context.Context) NetworkRuleSetPtrOutput } -type managementPolicySnapShotPtrType ManagementPolicySnapShotArgs +type networkRuleSetPtrType NetworkRuleSetArgs -func ManagementPolicySnapShotPtr(v *ManagementPolicySnapShotArgs) ManagementPolicySnapShotPtrInput { - return (*managementPolicySnapShotPtrType)(v) +func NetworkRuleSetPtr(v *NetworkRuleSetArgs) NetworkRuleSetPtrInput { + return (*networkRuleSetPtrType)(v) } -func (*managementPolicySnapShotPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicySnapShot)(nil)).Elem() +func (*networkRuleSetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkRuleSet)(nil)).Elem() } -func (i *managementPolicySnapShotPtrType) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { - return i.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) +func (i *networkRuleSetPtrType) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { + return i.ToNetworkRuleSetPtrOutputWithContext(context.Background()) } -func (i *managementPolicySnapShotPtrType) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicySnapShotPtrOutput) +func (i *networkRuleSetPtrType) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetPtrOutput) } -// Management policy action for snapshot. -type ManagementPolicySnapShotOutput struct{ *pulumi.OutputState } +// Network rule set +type NetworkRuleSetOutput struct{ *pulumi.OutputState } -func (ManagementPolicySnapShotOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySnapShot)(nil)).Elem() +func (NetworkRuleSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkRuleSet)(nil)).Elem() } -func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotOutput() ManagementPolicySnapShotOutput { +func (o NetworkRuleSetOutput) ToNetworkRuleSetOutput() NetworkRuleSetOutput { return o } -func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotOutputWithContext(ctx context.Context) ManagementPolicySnapShotOutput { +func (o NetworkRuleSetOutput) ToNetworkRuleSetOutputWithContext(ctx context.Context) NetworkRuleSetOutput { return o } -func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { - return o.ToManagementPolicySnapShotPtrOutputWithContext(context.Background()) +func (o NetworkRuleSetOutput) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { + return o.ToNetworkRuleSetPtrOutputWithContext(context.Background()) } -func (o ManagementPolicySnapShotOutput) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicySnapShot) *ManagementPolicySnapShot { +func (o NetworkRuleSetOutput) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkRuleSet) *NetworkRuleSet { return &v - }).(ManagementPolicySnapShotPtrOutput) + }).(NetworkRuleSetPtrOutput) } -// The function to delete the blob snapshot -func (o ManagementPolicySnapShotOutput) Delete() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.Delete }).(DateAfterCreationPtrOutput) +// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. +func (o NetworkRuleSetOutput) Bypass() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkRuleSet) *string { return v.Bypass }).(pulumi.StringPtrOutput) } -// The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier -func (o ManagementPolicySnapShotOutput) TierToArchive() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToArchive }).(DateAfterCreationPtrOutput) +// Specifies the default action of allow or deny when no other rules match. +func (o NetworkRuleSetOutput) DefaultAction() DefaultActionOutput { + return o.ApplyT(func(v NetworkRuleSet) DefaultAction { return v.DefaultAction }).(DefaultActionOutput) } -// The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier -func (o ManagementPolicySnapShotOutput) TierToCool() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShot) *DateAfterCreation { return v.TierToCool }).(DateAfterCreationPtrOutput) +// Sets the IP ACL rules +func (o NetworkRuleSetOutput) IpRules() IPRuleArrayOutput { + return o.ApplyT(func(v NetworkRuleSet) []IPRule { return v.IpRules }).(IPRuleArrayOutput) } -type ManagementPolicySnapShotPtrOutput struct{ *pulumi.OutputState } +// Sets the resource access rules +func (o NetworkRuleSetOutput) ResourceAccessRules() ResourceAccessRuleArrayOutput { + return o.ApplyT(func(v NetworkRuleSet) []ResourceAccessRule { return v.ResourceAccessRules }).(ResourceAccessRuleArrayOutput) +} -func (ManagementPolicySnapShotPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicySnapShot)(nil)).Elem() +// Sets the virtual network rules +func (o NetworkRuleSetOutput) VirtualNetworkRules() VirtualNetworkRuleArrayOutput { + return o.ApplyT(func(v NetworkRuleSet) []VirtualNetworkRule { return v.VirtualNetworkRules }).(VirtualNetworkRuleArrayOutput) } -func (o ManagementPolicySnapShotPtrOutput) ToManagementPolicySnapShotPtrOutput() ManagementPolicySnapShotPtrOutput { +type NetworkRuleSetPtrOutput struct{ *pulumi.OutputState } + +func (NetworkRuleSetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NetworkRuleSet)(nil)).Elem() +} + +func (o NetworkRuleSetPtrOutput) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { return o } -func (o ManagementPolicySnapShotPtrOutput) ToManagementPolicySnapShotPtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotPtrOutput { +func (o NetworkRuleSetPtrOutput) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { return o } -func (o ManagementPolicySnapShotPtrOutput) Elem() ManagementPolicySnapShotOutput { - return o.ApplyT(func(v *ManagementPolicySnapShot) ManagementPolicySnapShot { +func (o NetworkRuleSetPtrOutput) Elem() NetworkRuleSetOutput { + return o.ApplyT(func(v *NetworkRuleSet) NetworkRuleSet { if v != nil { return *v } - var ret ManagementPolicySnapShot + var ret NetworkRuleSet return ret - }).(ManagementPolicySnapShotOutput) + }).(NetworkRuleSetOutput) } -// The function to delete the blob snapshot -func (o ManagementPolicySnapShotPtrOutput) Delete() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { +// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. +func (o NetworkRuleSetPtrOutput) Bypass() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NetworkRuleSet) *string { if v == nil { return nil } - return v.Delete - }).(DateAfterCreationPtrOutput) + return v.Bypass + }).(pulumi.StringPtrOutput) } -// The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier -func (o ManagementPolicySnapShotPtrOutput) TierToArchive() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { +// Specifies the default action of allow or deny when no other rules match. +func (o NetworkRuleSetPtrOutput) DefaultAction() DefaultActionPtrOutput { + return o.ApplyT(func(v *NetworkRuleSet) *DefaultAction { if v == nil { return nil } - return v.TierToArchive - }).(DateAfterCreationPtrOutput) + return &v.DefaultAction + }).(DefaultActionPtrOutput) } -// The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier -func (o ManagementPolicySnapShotPtrOutput) TierToCool() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShot) *DateAfterCreation { +// Sets the IP ACL rules +func (o NetworkRuleSetPtrOutput) IpRules() IPRuleArrayOutput { + return o.ApplyT(func(v *NetworkRuleSet) []IPRule { if v == nil { return nil } - return v.TierToCool - }).(DateAfterCreationPtrOutput) -} - -// Management policy action for snapshot. -type ManagementPolicySnapShotResponse struct { - // The function to delete the blob snapshot - Delete *DateAfterCreationResponse `pulumi:"delete"` - // The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier - TierToArchive *DateAfterCreationResponse `pulumi:"tierToArchive"` - // The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier - TierToCool *DateAfterCreationResponse `pulumi:"tierToCool"` + return v.IpRules + }).(IPRuleArrayOutput) } -// Management policy action for snapshot. -type ManagementPolicySnapShotResponseOutput struct{ *pulumi.OutputState } - -func (ManagementPolicySnapShotResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicySnapShotResponse)(nil)).Elem() +// Sets the resource access rules +func (o NetworkRuleSetPtrOutput) ResourceAccessRules() ResourceAccessRuleArrayOutput { + return o.ApplyT(func(v *NetworkRuleSet) []ResourceAccessRule { + if v == nil { + return nil + } + return v.ResourceAccessRules + }).(ResourceAccessRuleArrayOutput) } -func (o ManagementPolicySnapShotResponseOutput) ToManagementPolicySnapShotResponseOutput() ManagementPolicySnapShotResponseOutput { - return o +// Sets the virtual network rules +func (o NetworkRuleSetPtrOutput) VirtualNetworkRules() VirtualNetworkRuleArrayOutput { + return o.ApplyT(func(v *NetworkRuleSet) []VirtualNetworkRule { + if v == nil { + return nil + } + return v.VirtualNetworkRules + }).(VirtualNetworkRuleArrayOutput) } -func (o ManagementPolicySnapShotResponseOutput) ToManagementPolicySnapShotResponseOutputWithContext(ctx context.Context) ManagementPolicySnapShotResponseOutput { - return o +// Network rule set +type NetworkRuleSetResponse struct { + // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. + Bypass *string `pulumi:"bypass"` + // Specifies the default action of allow or deny when no other rules match. + DefaultAction string `pulumi:"defaultAction"` + // Sets the IP ACL rules + IpRules []IPRuleResponse `pulumi:"ipRules"` + // Sets the resource access rules + ResourceAccessRules []ResourceAccessRuleResponse `pulumi:"resourceAccessRules"` + // Sets the virtual network rules + VirtualNetworkRules []VirtualNetworkRuleResponse `pulumi:"virtualNetworkRules"` } -// The function to delete the blob snapshot -func (o ManagementPolicySnapShotResponseOutput) Delete() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.Delete }).(DateAfterCreationResponsePtrOutput) +// Defaults sets the appropriate defaults for NetworkRuleSetResponse +func (val *NetworkRuleSetResponse) Defaults() *NetworkRuleSetResponse { + if val == nil { + return nil + } + tmp := *val + if tmp.Bypass == nil { + bypass_ := "AzureServices" + tmp.Bypass = &bypass_ + } + if utilities.IsZero(tmp.DefaultAction) { + tmp.DefaultAction = "Allow" + } + return &tmp } -// The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier -func (o ManagementPolicySnapShotResponseOutput) TierToArchive() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToArchive }).(DateAfterCreationResponsePtrOutput) -} +// Network rule set +type NetworkRuleSetResponseOutput struct{ *pulumi.OutputState } -// The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier -func (o ManagementPolicySnapShotResponseOutput) TierToCool() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicySnapShotResponse) *DateAfterCreationResponse { return v.TierToCool }).(DateAfterCreationResponsePtrOutput) +func (NetworkRuleSetResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkRuleSetResponse)(nil)).Elem() } -type ManagementPolicySnapShotResponsePtrOutput struct{ *pulumi.OutputState } - -func (ManagementPolicySnapShotResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicySnapShotResponse)(nil)).Elem() +func (o NetworkRuleSetResponseOutput) ToNetworkRuleSetResponseOutput() NetworkRuleSetResponseOutput { + return o } -func (o ManagementPolicySnapShotResponsePtrOutput) ToManagementPolicySnapShotResponsePtrOutput() ManagementPolicySnapShotResponsePtrOutput { +func (o NetworkRuleSetResponseOutput) ToNetworkRuleSetResponseOutputWithContext(ctx context.Context) NetworkRuleSetResponseOutput { return o } -func (o ManagementPolicySnapShotResponsePtrOutput) ToManagementPolicySnapShotResponsePtrOutputWithContext(ctx context.Context) ManagementPolicySnapShotResponsePtrOutput { - return o +// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. +func (o NetworkRuleSetResponseOutput) Bypass() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkRuleSetResponse) *string { return v.Bypass }).(pulumi.StringPtrOutput) } -func (o ManagementPolicySnapShotResponsePtrOutput) Elem() ManagementPolicySnapShotResponseOutput { - return o.ApplyT(func(v *ManagementPolicySnapShotResponse) ManagementPolicySnapShotResponse { - if v != nil { - return *v - } - var ret ManagementPolicySnapShotResponse - return ret - }).(ManagementPolicySnapShotResponseOutput) +// Specifies the default action of allow or deny when no other rules match. +func (o NetworkRuleSetResponseOutput) DefaultAction() pulumi.StringOutput { + return o.ApplyT(func(v NetworkRuleSetResponse) string { return v.DefaultAction }).(pulumi.StringOutput) } -// The function to delete the blob snapshot -func (o ManagementPolicySnapShotResponsePtrOutput) Delete() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { - if v == nil { - return nil - } - return v.Delete - }).(DateAfterCreationResponsePtrOutput) +// Sets the IP ACL rules +func (o NetworkRuleSetResponseOutput) IpRules() IPRuleResponseArrayOutput { + return o.ApplyT(func(v NetworkRuleSetResponse) []IPRuleResponse { return v.IpRules }).(IPRuleResponseArrayOutput) } -// The function to tier blob snapshot to archive storage. Support blob snapshot currently at Hot or Cool tier -func (o ManagementPolicySnapShotResponsePtrOutput) TierToArchive() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { - if v == nil { - return nil - } - return v.TierToArchive - }).(DateAfterCreationResponsePtrOutput) +// Sets the resource access rules +func (o NetworkRuleSetResponseOutput) ResourceAccessRules() ResourceAccessRuleResponseArrayOutput { + return o.ApplyT(func(v NetworkRuleSetResponse) []ResourceAccessRuleResponse { return v.ResourceAccessRules }).(ResourceAccessRuleResponseArrayOutput) } -// The function to tier blob snapshot to cool storage. Support blob snapshot currently at Hot tier -func (o ManagementPolicySnapShotResponsePtrOutput) TierToCool() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicySnapShotResponse) *DateAfterCreationResponse { - if v == nil { - return nil - } - return v.TierToCool - }).(DateAfterCreationResponsePtrOutput) +// Sets the virtual network rules +func (o NetworkRuleSetResponseOutput) VirtualNetworkRules() VirtualNetworkRuleResponseArrayOutput { + return o.ApplyT(func(v NetworkRuleSetResponse) []VirtualNetworkRuleResponse { return v.VirtualNetworkRules }).(VirtualNetworkRuleResponseArrayOutput) } -// Management policy action for blob version. -type ManagementPolicyVersion struct { - // The function to delete the blob version - Delete *DateAfterCreation `pulumi:"delete"` - // The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier - TierToArchive *DateAfterCreation `pulumi:"tierToArchive"` - // The function to tier blob version to cool storage. Support blob version currently at Hot tier - TierToCool *DateAfterCreation `pulumi:"tierToCool"` +// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. +type ObjectReplicationPolicyFilter struct { + // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z + MinCreationTime *string `pulumi:"minCreationTime"` + // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. + PrefixMatch []string `pulumi:"prefixMatch"` } -// ManagementPolicyVersionInput is an input type that accepts ManagementPolicyVersionArgs and ManagementPolicyVersionOutput values. -// You can construct a concrete instance of `ManagementPolicyVersionInput` via: +// ObjectReplicationPolicyFilterInput is an input type that accepts ObjectReplicationPolicyFilterArgs and ObjectReplicationPolicyFilterOutput values. +// You can construct a concrete instance of `ObjectReplicationPolicyFilterInput` via: // -// ManagementPolicyVersionArgs{...} -type ManagementPolicyVersionInput interface { +// ObjectReplicationPolicyFilterArgs{...} +type ObjectReplicationPolicyFilterInput interface { pulumi.Input - ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput - ToManagementPolicyVersionOutputWithContext(context.Context) ManagementPolicyVersionOutput + ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput + ToObjectReplicationPolicyFilterOutputWithContext(context.Context) ObjectReplicationPolicyFilterOutput } -// Management policy action for blob version. -type ManagementPolicyVersionArgs struct { - // The function to delete the blob version - Delete DateAfterCreationPtrInput `pulumi:"delete"` - // The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier - TierToArchive DateAfterCreationPtrInput `pulumi:"tierToArchive"` - // The function to tier blob version to cool storage. Support blob version currently at Hot tier - TierToCool DateAfterCreationPtrInput `pulumi:"tierToCool"` +// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. +type ObjectReplicationPolicyFilterArgs struct { + // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z + MinCreationTime pulumi.StringPtrInput `pulumi:"minCreationTime"` + // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. + PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` } -func (ManagementPolicyVersionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyVersion)(nil)).Elem() +func (ObjectReplicationPolicyFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyFilter)(nil)).Elem() } -func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput { - return i.ToManagementPolicyVersionOutputWithContext(context.Background()) +func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput { + return i.ToObjectReplicationPolicyFilterOutputWithContext(context.Background()) } -func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionOutputWithContext(ctx context.Context) ManagementPolicyVersionOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionOutput) +func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterOutput) } -func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { - return i.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) +func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { + return i.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) } -func (i ManagementPolicyVersionArgs) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionOutput).ToManagementPolicyVersionPtrOutputWithContext(ctx) +func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterOutput).ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx) } -// ManagementPolicyVersionPtrInput is an input type that accepts ManagementPolicyVersionArgs, ManagementPolicyVersionPtr and ManagementPolicyVersionPtrOutput values. -// You can construct a concrete instance of `ManagementPolicyVersionPtrInput` via: +// ObjectReplicationPolicyFilterPtrInput is an input type that accepts ObjectReplicationPolicyFilterArgs, ObjectReplicationPolicyFilterPtr and ObjectReplicationPolicyFilterPtrOutput values. +// You can construct a concrete instance of `ObjectReplicationPolicyFilterPtrInput` via: // -// ManagementPolicyVersionArgs{...} +// ObjectReplicationPolicyFilterArgs{...} // // or: // // nil -type ManagementPolicyVersionPtrInput interface { +type ObjectReplicationPolicyFilterPtrInput interface { pulumi.Input - ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput - ToManagementPolicyVersionPtrOutputWithContext(context.Context) ManagementPolicyVersionPtrOutput + ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput + ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Context) ObjectReplicationPolicyFilterPtrOutput } -type managementPolicyVersionPtrType ManagementPolicyVersionArgs +type objectReplicationPolicyFilterPtrType ObjectReplicationPolicyFilterArgs -func ManagementPolicyVersionPtr(v *ManagementPolicyVersionArgs) ManagementPolicyVersionPtrInput { - return (*managementPolicyVersionPtrType)(v) +func ObjectReplicationPolicyFilterPtr(v *ObjectReplicationPolicyFilterArgs) ObjectReplicationPolicyFilterPtrInput { + return (*objectReplicationPolicyFilterPtrType)(v) } -func (*managementPolicyVersionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyVersion)(nil)).Elem() +func (*objectReplicationPolicyFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ObjectReplicationPolicyFilter)(nil)).Elem() } -func (i *managementPolicyVersionPtrType) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { - return i.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) +func (i *objectReplicationPolicyFilterPtrType) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { + return i.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) } -func (i *managementPolicyVersionPtrType) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ManagementPolicyVersionPtrOutput) +func (i *objectReplicationPolicyFilterPtrType) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterPtrOutput) } -// Management policy action for blob version. -type ManagementPolicyVersionOutput struct{ *pulumi.OutputState } +// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. +type ObjectReplicationPolicyFilterOutput struct{ *pulumi.OutputState } -func (ManagementPolicyVersionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyVersion)(nil)).Elem() +func (ObjectReplicationPolicyFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyFilter)(nil)).Elem() } -func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionOutput() ManagementPolicyVersionOutput { +func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput { return o } -func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionOutputWithContext(ctx context.Context) ManagementPolicyVersionOutput { +func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterOutput { return o } -func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { - return o.ToManagementPolicyVersionPtrOutputWithContext(context.Background()) +func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { + return o.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) } -func (o ManagementPolicyVersionOutput) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagementPolicyVersion) *ManagementPolicyVersion { +func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ObjectReplicationPolicyFilter) *ObjectReplicationPolicyFilter { return &v - }).(ManagementPolicyVersionPtrOutput) -} - -// The function to delete the blob version -func (o ManagementPolicyVersionOutput) Delete() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.Delete }).(DateAfterCreationPtrOutput) + }).(ObjectReplicationPolicyFilterPtrOutput) } -// The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier -func (o ManagementPolicyVersionOutput) TierToArchive() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToArchive }).(DateAfterCreationPtrOutput) +// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z +func (o ObjectReplicationPolicyFilterOutput) MinCreationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyFilter) *string { return v.MinCreationTime }).(pulumi.StringPtrOutput) } -// The function to tier blob version to cool storage. Support blob version currently at Hot tier -func (o ManagementPolicyVersionOutput) TierToCool() DateAfterCreationPtrOutput { - return o.ApplyT(func(v ManagementPolicyVersion) *DateAfterCreation { return v.TierToCool }).(DateAfterCreationPtrOutput) +// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. +func (o ObjectReplicationPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObjectReplicationPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) } -type ManagementPolicyVersionPtrOutput struct{ *pulumi.OutputState } +type ObjectReplicationPolicyFilterPtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicyVersionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyVersion)(nil)).Elem() +func (ObjectReplicationPolicyFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObjectReplicationPolicyFilter)(nil)).Elem() } -func (o ManagementPolicyVersionPtrOutput) ToManagementPolicyVersionPtrOutput() ManagementPolicyVersionPtrOutput { +func (o ObjectReplicationPolicyFilterPtrOutput) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { return o } -func (o ManagementPolicyVersionPtrOutput) ToManagementPolicyVersionPtrOutputWithContext(ctx context.Context) ManagementPolicyVersionPtrOutput { +func (o ObjectReplicationPolicyFilterPtrOutput) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { return o } -func (o ManagementPolicyVersionPtrOutput) Elem() ManagementPolicyVersionOutput { - return o.ApplyT(func(v *ManagementPolicyVersion) ManagementPolicyVersion { +func (o ObjectReplicationPolicyFilterPtrOutput) Elem() ObjectReplicationPolicyFilterOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilter) ObjectReplicationPolicyFilter { if v != nil { return *v } - var ret ManagementPolicyVersion + var ret ObjectReplicationPolicyFilter return ret - }).(ManagementPolicyVersionOutput) -} - -// The function to delete the blob version -func (o ManagementPolicyVersionPtrOutput) Delete() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { - if v == nil { - return nil - } - return v.Delete - }).(DateAfterCreationPtrOutput) + }).(ObjectReplicationPolicyFilterOutput) } -// The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier -func (o ManagementPolicyVersionPtrOutput) TierToArchive() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { +// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z +func (o ObjectReplicationPolicyFilterPtrOutput) MinCreationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilter) *string { if v == nil { return nil } - return v.TierToArchive - }).(DateAfterCreationPtrOutput) + return v.MinCreationTime + }).(pulumi.StringPtrOutput) } -// The function to tier blob version to cool storage. Support blob version currently at Hot tier -func (o ManagementPolicyVersionPtrOutput) TierToCool() DateAfterCreationPtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersion) *DateAfterCreation { +// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. +func (o ObjectReplicationPolicyFilterPtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilter) []string { if v == nil { return nil } - return v.TierToCool - }).(DateAfterCreationPtrOutput) + return v.PrefixMatch + }).(pulumi.StringArrayOutput) } -// Management policy action for blob version. -type ManagementPolicyVersionResponse struct { - // The function to delete the blob version - Delete *DateAfterCreationResponse `pulumi:"delete"` - // The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier - TierToArchive *DateAfterCreationResponse `pulumi:"tierToArchive"` - // The function to tier blob version to cool storage. Support blob version currently at Hot tier - TierToCool *DateAfterCreationResponse `pulumi:"tierToCool"` +// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. +type ObjectReplicationPolicyFilterResponse struct { + // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z + MinCreationTime *string `pulumi:"minCreationTime"` + // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. + PrefixMatch []string `pulumi:"prefixMatch"` } -// Management policy action for blob version. -type ManagementPolicyVersionResponseOutput struct{ *pulumi.OutputState } +// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. +type ObjectReplicationPolicyFilterResponseOutput struct{ *pulumi.OutputState } -func (ManagementPolicyVersionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ManagementPolicyVersionResponse)(nil)).Elem() +func (ObjectReplicationPolicyFilterResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyFilterResponse)(nil)).Elem() } -func (o ManagementPolicyVersionResponseOutput) ToManagementPolicyVersionResponseOutput() ManagementPolicyVersionResponseOutput { +func (o ObjectReplicationPolicyFilterResponseOutput) ToObjectReplicationPolicyFilterResponseOutput() ObjectReplicationPolicyFilterResponseOutput { return o } -func (o ManagementPolicyVersionResponseOutput) ToManagementPolicyVersionResponseOutputWithContext(ctx context.Context) ManagementPolicyVersionResponseOutput { +func (o ObjectReplicationPolicyFilterResponseOutput) ToObjectReplicationPolicyFilterResponseOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterResponseOutput { return o } -// The function to delete the blob version -func (o ManagementPolicyVersionResponseOutput) Delete() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.Delete }).(DateAfterCreationResponsePtrOutput) -} - -// The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier -func (o ManagementPolicyVersionResponseOutput) TierToArchive() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToArchive }).(DateAfterCreationResponsePtrOutput) +// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z +func (o ObjectReplicationPolicyFilterResponseOutput) MinCreationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyFilterResponse) *string { return v.MinCreationTime }).(pulumi.StringPtrOutput) } -// The function to tier blob version to cool storage. Support blob version currently at Hot tier -func (o ManagementPolicyVersionResponseOutput) TierToCool() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v ManagementPolicyVersionResponse) *DateAfterCreationResponse { return v.TierToCool }).(DateAfterCreationResponsePtrOutput) +// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. +func (o ObjectReplicationPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObjectReplicationPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) } -type ManagementPolicyVersionResponsePtrOutput struct{ *pulumi.OutputState } +type ObjectReplicationPolicyFilterResponsePtrOutput struct{ *pulumi.OutputState } -func (ManagementPolicyVersionResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ManagementPolicyVersionResponse)(nil)).Elem() +func (ObjectReplicationPolicyFilterResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObjectReplicationPolicyFilterResponse)(nil)).Elem() } -func (o ManagementPolicyVersionResponsePtrOutput) ToManagementPolicyVersionResponsePtrOutput() ManagementPolicyVersionResponsePtrOutput { +func (o ObjectReplicationPolicyFilterResponsePtrOutput) ToObjectReplicationPolicyFilterResponsePtrOutput() ObjectReplicationPolicyFilterResponsePtrOutput { return o } -func (o ManagementPolicyVersionResponsePtrOutput) ToManagementPolicyVersionResponsePtrOutputWithContext(ctx context.Context) ManagementPolicyVersionResponsePtrOutput { +func (o ObjectReplicationPolicyFilterResponsePtrOutput) ToObjectReplicationPolicyFilterResponsePtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterResponsePtrOutput { return o } -func (o ManagementPolicyVersionResponsePtrOutput) Elem() ManagementPolicyVersionResponseOutput { - return o.ApplyT(func(v *ManagementPolicyVersionResponse) ManagementPolicyVersionResponse { +func (o ObjectReplicationPolicyFilterResponsePtrOutput) Elem() ObjectReplicationPolicyFilterResponseOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) ObjectReplicationPolicyFilterResponse { if v != nil { return *v } - var ret ManagementPolicyVersionResponse + var ret ObjectReplicationPolicyFilterResponse return ret - }).(ManagementPolicyVersionResponseOutput) + }).(ObjectReplicationPolicyFilterResponseOutput) } -// The function to delete the blob version -func (o ManagementPolicyVersionResponsePtrOutput) Delete() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { +// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z +func (o ObjectReplicationPolicyFilterResponsePtrOutput) MinCreationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) *string { if v == nil { return nil } - return v.Delete - }).(DateAfterCreationResponsePtrOutput) + return v.MinCreationTime + }).(pulumi.StringPtrOutput) +} + +// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. +func (o ObjectReplicationPolicyFilterResponsePtrOutput) PrefixMatch() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) []string { + if v == nil { + return nil + } + return v.PrefixMatch + }).(pulumi.StringArrayOutput) +} + +// The replication policy rule between two containers. +type ObjectReplicationPolicyRule struct { + // Required. Destination container name. + DestinationContainer string `pulumi:"destinationContainer"` + // Optional. An object that defines the filter set. + Filters *ObjectReplicationPolicyFilter `pulumi:"filters"` + // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. + RuleId *string `pulumi:"ruleId"` + // Required. Source container name. + SourceContainer string `pulumi:"sourceContainer"` +} + +// ObjectReplicationPolicyRuleInput is an input type that accepts ObjectReplicationPolicyRuleArgs and ObjectReplicationPolicyRuleOutput values. +// You can construct a concrete instance of `ObjectReplicationPolicyRuleInput` via: +// +// ObjectReplicationPolicyRuleArgs{...} +type ObjectReplicationPolicyRuleInput interface { + pulumi.Input + + ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput + ToObjectReplicationPolicyRuleOutputWithContext(context.Context) ObjectReplicationPolicyRuleOutput } -// The function to tier blob version to archive storage. Support blob version currently at Hot or Cool tier -func (o ManagementPolicyVersionResponsePtrOutput) TierToArchive() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { - if v == nil { - return nil - } - return v.TierToArchive - }).(DateAfterCreationResponsePtrOutput) +// The replication policy rule between two containers. +type ObjectReplicationPolicyRuleArgs struct { + // Required. Destination container name. + DestinationContainer pulumi.StringInput `pulumi:"destinationContainer"` + // Optional. An object that defines the filter set. + Filters ObjectReplicationPolicyFilterPtrInput `pulumi:"filters"` + // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. + RuleId pulumi.StringPtrInput `pulumi:"ruleId"` + // Required. Source container name. + SourceContainer pulumi.StringInput `pulumi:"sourceContainer"` } -// The function to tier blob version to cool storage. Support blob version currently at Hot tier -func (o ManagementPolicyVersionResponsePtrOutput) TierToCool() DateAfterCreationResponsePtrOutput { - return o.ApplyT(func(v *ManagementPolicyVersionResponse) *DateAfterCreationResponse { - if v == nil { - return nil - } - return v.TierToCool - }).(DateAfterCreationResponsePtrOutput) +func (ObjectReplicationPolicyRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyRule)(nil)).Elem() } -// Multichannel setting. Applies to Premium FileStorage only. -type Multichannel struct { - // Indicates whether multichannel is enabled - Enabled *bool `pulumi:"enabled"` +func (i ObjectReplicationPolicyRuleArgs) ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput { + return i.ToObjectReplicationPolicyRuleOutputWithContext(context.Background()) } -// MultichannelInput is an input type that accepts MultichannelArgs and MultichannelOutput values. -// You can construct a concrete instance of `MultichannelInput` via: +func (i ObjectReplicationPolicyRuleArgs) ToObjectReplicationPolicyRuleOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyRuleOutput) +} + +// ObjectReplicationPolicyRuleArrayInput is an input type that accepts ObjectReplicationPolicyRuleArray and ObjectReplicationPolicyRuleArrayOutput values. +// You can construct a concrete instance of `ObjectReplicationPolicyRuleArrayInput` via: // -// MultichannelArgs{...} -type MultichannelInput interface { +// ObjectReplicationPolicyRuleArray{ ObjectReplicationPolicyRuleArgs{...} } +type ObjectReplicationPolicyRuleArrayInput interface { pulumi.Input - ToMultichannelOutput() MultichannelOutput - ToMultichannelOutputWithContext(context.Context) MultichannelOutput + ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput + ToObjectReplicationPolicyRuleArrayOutputWithContext(context.Context) ObjectReplicationPolicyRuleArrayOutput } -// Multichannel setting. Applies to Premium FileStorage only. -type MultichannelArgs struct { - // Indicates whether multichannel is enabled - Enabled pulumi.BoolPtrInput `pulumi:"enabled"` -} +type ObjectReplicationPolicyRuleArray []ObjectReplicationPolicyRuleInput -func (MultichannelArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Multichannel)(nil)).Elem() +func (ObjectReplicationPolicyRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObjectReplicationPolicyRule)(nil)).Elem() } -func (i MultichannelArgs) ToMultichannelOutput() MultichannelOutput { - return i.ToMultichannelOutputWithContext(context.Background()) +func (i ObjectReplicationPolicyRuleArray) ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput { + return i.ToObjectReplicationPolicyRuleArrayOutputWithContext(context.Background()) } -func (i MultichannelArgs) ToMultichannelOutputWithContext(ctx context.Context) MultichannelOutput { - return pulumi.ToOutputWithContext(ctx, i).(MultichannelOutput) +func (i ObjectReplicationPolicyRuleArray) ToObjectReplicationPolicyRuleArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyRuleArrayOutput) } -func (i MultichannelArgs) ToMultichannelPtrOutput() MultichannelPtrOutput { - return i.ToMultichannelPtrOutputWithContext(context.Background()) -} +// The replication policy rule between two containers. +type ObjectReplicationPolicyRuleOutput struct{ *pulumi.OutputState } -func (i MultichannelArgs) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MultichannelOutput).ToMultichannelPtrOutputWithContext(ctx) +func (ObjectReplicationPolicyRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyRule)(nil)).Elem() } -// MultichannelPtrInput is an input type that accepts MultichannelArgs, MultichannelPtr and MultichannelPtrOutput values. -// You can construct a concrete instance of `MultichannelPtrInput` via: -// -// MultichannelArgs{...} -// -// or: -// -// nil -type MultichannelPtrInput interface { - pulumi.Input - - ToMultichannelPtrOutput() MultichannelPtrOutput - ToMultichannelPtrOutputWithContext(context.Context) MultichannelPtrOutput +func (o ObjectReplicationPolicyRuleOutput) ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput { + return o } -type multichannelPtrType MultichannelArgs +func (o ObjectReplicationPolicyRuleOutput) ToObjectReplicationPolicyRuleOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleOutput { + return o +} -func MultichannelPtr(v *MultichannelArgs) MultichannelPtrInput { - return (*multichannelPtrType)(v) +// Required. Destination container name. +func (o ObjectReplicationPolicyRuleOutput) DestinationContainer() pulumi.StringOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRule) string { return v.DestinationContainer }).(pulumi.StringOutput) } -func (*multichannelPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**Multichannel)(nil)).Elem() +// Optional. An object that defines the filter set. +func (o ObjectReplicationPolicyRuleOutput) Filters() ObjectReplicationPolicyFilterPtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRule) *ObjectReplicationPolicyFilter { return v.Filters }).(ObjectReplicationPolicyFilterPtrOutput) } -func (i *multichannelPtrType) ToMultichannelPtrOutput() MultichannelPtrOutput { - return i.ToMultichannelPtrOutputWithContext(context.Background()) +// Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. +func (o ObjectReplicationPolicyRuleOutput) RuleId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRule) *string { return v.RuleId }).(pulumi.StringPtrOutput) } -func (i *multichannelPtrType) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MultichannelPtrOutput) +// Required. Source container name. +func (o ObjectReplicationPolicyRuleOutput) SourceContainer() pulumi.StringOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRule) string { return v.SourceContainer }).(pulumi.StringOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -type MultichannelOutput struct{ *pulumi.OutputState } +type ObjectReplicationPolicyRuleArrayOutput struct{ *pulumi.OutputState } -func (MultichannelOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Multichannel)(nil)).Elem() +func (ObjectReplicationPolicyRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObjectReplicationPolicyRule)(nil)).Elem() } -func (o MultichannelOutput) ToMultichannelOutput() MultichannelOutput { +func (o ObjectReplicationPolicyRuleArrayOutput) ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput { return o } -func (o MultichannelOutput) ToMultichannelOutputWithContext(ctx context.Context) MultichannelOutput { +func (o ObjectReplicationPolicyRuleArrayOutput) ToObjectReplicationPolicyRuleArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleArrayOutput { return o } -func (o MultichannelOutput) ToMultichannelPtrOutput() MultichannelPtrOutput { - return o.ToMultichannelPtrOutputWithContext(context.Background()) -} - -func (o MultichannelOutput) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v Multichannel) *Multichannel { - return &v - }).(MultichannelPtrOutput) +func (o ObjectReplicationPolicyRuleArrayOutput) Index(i pulumi.IntInput) ObjectReplicationPolicyRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObjectReplicationPolicyRule { + return vs[0].([]ObjectReplicationPolicyRule)[vs[1].(int)] + }).(ObjectReplicationPolicyRuleOutput) } -// Indicates whether multichannel is enabled -func (o MultichannelOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v Multichannel) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +// The replication policy rule between two containers. +type ObjectReplicationPolicyRuleResponse struct { + // Required. Destination container name. + DestinationContainer string `pulumi:"destinationContainer"` + // Optional. An object that defines the filter set. + Filters *ObjectReplicationPolicyFilterResponse `pulumi:"filters"` + // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. + RuleId *string `pulumi:"ruleId"` + // Required. Source container name. + SourceContainer string `pulumi:"sourceContainer"` } -type MultichannelPtrOutput struct{ *pulumi.OutputState } +// The replication policy rule between two containers. +type ObjectReplicationPolicyRuleResponseOutput struct{ *pulumi.OutputState } -func (MultichannelPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**Multichannel)(nil)).Elem() +func (ObjectReplicationPolicyRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectReplicationPolicyRuleResponse)(nil)).Elem() } -func (o MultichannelPtrOutput) ToMultichannelPtrOutput() MultichannelPtrOutput { +func (o ObjectReplicationPolicyRuleResponseOutput) ToObjectReplicationPolicyRuleResponseOutput() ObjectReplicationPolicyRuleResponseOutput { return o } -func (o MultichannelPtrOutput) ToMultichannelPtrOutputWithContext(ctx context.Context) MultichannelPtrOutput { +func (o ObjectReplicationPolicyRuleResponseOutput) ToObjectReplicationPolicyRuleResponseOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleResponseOutput { return o } -func (o MultichannelPtrOutput) Elem() MultichannelOutput { - return o.ApplyT(func(v *Multichannel) Multichannel { - if v != nil { - return *v - } - var ret Multichannel - return ret - }).(MultichannelOutput) +// Required. Destination container name. +func (o ObjectReplicationPolicyRuleResponseOutput) DestinationContainer() pulumi.StringOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) string { return v.DestinationContainer }).(pulumi.StringOutput) } -// Indicates whether multichannel is enabled -func (o MultichannelPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *Multichannel) *bool { - if v == nil { - return nil - } - return v.Enabled - }).(pulumi.BoolPtrOutput) +// Optional. An object that defines the filter set. +func (o ObjectReplicationPolicyRuleResponseOutput) Filters() ObjectReplicationPolicyFilterResponsePtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) *ObjectReplicationPolicyFilterResponse { return v.Filters }).(ObjectReplicationPolicyFilterResponsePtrOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -type MultichannelResponse struct { - // Indicates whether multichannel is enabled - Enabled *bool `pulumi:"enabled"` +// Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. +func (o ObjectReplicationPolicyRuleResponseOutput) RuleId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) *string { return v.RuleId }).(pulumi.StringPtrOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -type MultichannelResponseOutput struct{ *pulumi.OutputState } +// Required. Source container name. +func (o ObjectReplicationPolicyRuleResponseOutput) SourceContainer() pulumi.StringOutput { + return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) string { return v.SourceContainer }).(pulumi.StringOutput) +} -func (MultichannelResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MultichannelResponse)(nil)).Elem() +type ObjectReplicationPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } + +func (ObjectReplicationPolicyRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObjectReplicationPolicyRuleResponse)(nil)).Elem() } -func (o MultichannelResponseOutput) ToMultichannelResponseOutput() MultichannelResponseOutput { +func (o ObjectReplicationPolicyRuleResponseArrayOutput) ToObjectReplicationPolicyRuleResponseArrayOutput() ObjectReplicationPolicyRuleResponseArrayOutput { return o } -func (o MultichannelResponseOutput) ToMultichannelResponseOutputWithContext(ctx context.Context) MultichannelResponseOutput { +func (o ObjectReplicationPolicyRuleResponseArrayOutput) ToObjectReplicationPolicyRuleResponseArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleResponseArrayOutput { return o } -// Indicates whether multichannel is enabled -func (o MultichannelResponseOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v MultichannelResponse) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +func (o ObjectReplicationPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) ObjectReplicationPolicyRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObjectReplicationPolicyRuleResponse { + return vs[0].([]ObjectReplicationPolicyRuleResponse)[vs[1].(int)] + }).(ObjectReplicationPolicyRuleResponseOutput) } -type MultichannelResponsePtrOutput struct{ *pulumi.OutputState } - -func (MultichannelResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MultichannelResponse)(nil)).Elem() +type PermissionScope struct { + // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). + Permissions string `pulumi:"permissions"` + // The name of resource, normally the container name or the file share name, used by the local user. + ResourceName string `pulumi:"resourceName"` + // The service used by the local user, e.g. blob, file. + Service string `pulumi:"service"` } -func (o MultichannelResponsePtrOutput) ToMultichannelResponsePtrOutput() MultichannelResponsePtrOutput { - return o -} +// PermissionScopeInput is an input type that accepts PermissionScopeArgs and PermissionScopeOutput values. +// You can construct a concrete instance of `PermissionScopeInput` via: +// +// PermissionScopeArgs{...} +type PermissionScopeInput interface { + pulumi.Input -func (o MultichannelResponsePtrOutput) ToMultichannelResponsePtrOutputWithContext(ctx context.Context) MultichannelResponsePtrOutput { - return o + ToPermissionScopeOutput() PermissionScopeOutput + ToPermissionScopeOutputWithContext(context.Context) PermissionScopeOutput } -func (o MultichannelResponsePtrOutput) Elem() MultichannelResponseOutput { - return o.ApplyT(func(v *MultichannelResponse) MultichannelResponse { - if v != nil { - return *v - } - var ret MultichannelResponse - return ret - }).(MultichannelResponseOutput) +type PermissionScopeArgs struct { + // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). + Permissions pulumi.StringInput `pulumi:"permissions"` + // The name of resource, normally the container name or the file share name, used by the local user. + ResourceName pulumi.StringInput `pulumi:"resourceName"` + // The service used by the local user, e.g. blob, file. + Service pulumi.StringInput `pulumi:"service"` } -// Indicates whether multichannel is enabled -func (o MultichannelResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *MultichannelResponse) *bool { - if v == nil { - return nil - } - return v.Enabled - }).(pulumi.BoolPtrOutput) +func (PermissionScopeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PermissionScope)(nil)).Elem() } -// Network rule set -type NetworkRuleSet struct { - // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. - Bypass *string `pulumi:"bypass"` - // Specifies the default action of allow or deny when no other rules match. - DefaultAction DefaultAction `pulumi:"defaultAction"` - // Sets the IP ACL rules - IpRules []IPRule `pulumi:"ipRules"` - // Sets the resource access rules - ResourceAccessRules []ResourceAccessRule `pulumi:"resourceAccessRules"` - // Sets the virtual network rules - VirtualNetworkRules []VirtualNetworkRule `pulumi:"virtualNetworkRules"` +func (i PermissionScopeArgs) ToPermissionScopeOutput() PermissionScopeOutput { + return i.ToPermissionScopeOutputWithContext(context.Background()) } -// Defaults sets the appropriate defaults for NetworkRuleSet -func (val *NetworkRuleSet) Defaults() *NetworkRuleSet { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Bypass) { - bypass_ := "AzureServices" - tmp.Bypass = &bypass_ - } - if isZero(tmp.DefaultAction) { - tmp.DefaultAction = DefaultAction("Allow") - } - return &tmp +func (i PermissionScopeArgs) ToPermissionScopeOutputWithContext(ctx context.Context) PermissionScopeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PermissionScopeOutput) } -// NetworkRuleSetInput is an input type that accepts NetworkRuleSetArgs and NetworkRuleSetOutput values. -// You can construct a concrete instance of `NetworkRuleSetInput` via: +// PermissionScopeArrayInput is an input type that accepts PermissionScopeArray and PermissionScopeArrayOutput values. +// You can construct a concrete instance of `PermissionScopeArrayInput` via: // -// NetworkRuleSetArgs{...} -type NetworkRuleSetInput interface { +// PermissionScopeArray{ PermissionScopeArgs{...} } +type PermissionScopeArrayInput interface { pulumi.Input - ToNetworkRuleSetOutput() NetworkRuleSetOutput - ToNetworkRuleSetOutputWithContext(context.Context) NetworkRuleSetOutput + ToPermissionScopeArrayOutput() PermissionScopeArrayOutput + ToPermissionScopeArrayOutputWithContext(context.Context) PermissionScopeArrayOutput } -// Network rule set -type NetworkRuleSetArgs struct { - // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. - Bypass pulumi.StringPtrInput `pulumi:"bypass"` - // Specifies the default action of allow or deny when no other rules match. - DefaultAction DefaultActionInput `pulumi:"defaultAction"` - // Sets the IP ACL rules - IpRules IPRuleArrayInput `pulumi:"ipRules"` - // Sets the resource access rules - ResourceAccessRules ResourceAccessRuleArrayInput `pulumi:"resourceAccessRules"` - // Sets the virtual network rules - VirtualNetworkRules VirtualNetworkRuleArrayInput `pulumi:"virtualNetworkRules"` -} +type PermissionScopeArray []PermissionScopeInput -// Defaults sets the appropriate defaults for NetworkRuleSetArgs -func (val *NetworkRuleSetArgs) Defaults() *NetworkRuleSetArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Bypass) { - tmp.Bypass = pulumi.StringPtr("AzureServices") - } - if isZero(tmp.DefaultAction) { - tmp.DefaultAction = DefaultAction("Allow") - } - return &tmp -} -func (NetworkRuleSetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkRuleSet)(nil)).Elem() +func (PermissionScopeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PermissionScope)(nil)).Elem() } -func (i NetworkRuleSetArgs) ToNetworkRuleSetOutput() NetworkRuleSetOutput { - return i.ToNetworkRuleSetOutputWithContext(context.Background()) +func (i PermissionScopeArray) ToPermissionScopeArrayOutput() PermissionScopeArrayOutput { + return i.ToPermissionScopeArrayOutputWithContext(context.Background()) } -func (i NetworkRuleSetArgs) ToNetworkRuleSetOutputWithContext(ctx context.Context) NetworkRuleSetOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetOutput) +func (i PermissionScopeArray) ToPermissionScopeArrayOutputWithContext(ctx context.Context) PermissionScopeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PermissionScopeArrayOutput) } -func (i NetworkRuleSetArgs) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { - return i.ToNetworkRuleSetPtrOutputWithContext(context.Background()) -} +type PermissionScopeOutput struct{ *pulumi.OutputState } -func (i NetworkRuleSetArgs) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetOutput).ToNetworkRuleSetPtrOutputWithContext(ctx) +func (PermissionScopeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PermissionScope)(nil)).Elem() } -// NetworkRuleSetPtrInput is an input type that accepts NetworkRuleSetArgs, NetworkRuleSetPtr and NetworkRuleSetPtrOutput values. -// You can construct a concrete instance of `NetworkRuleSetPtrInput` via: -// -// NetworkRuleSetArgs{...} -// -// or: -// -// nil -type NetworkRuleSetPtrInput interface { - pulumi.Input - - ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput - ToNetworkRuleSetPtrOutputWithContext(context.Context) NetworkRuleSetPtrOutput +func (o PermissionScopeOutput) ToPermissionScopeOutput() PermissionScopeOutput { + return o } -type networkRuleSetPtrType NetworkRuleSetArgs - -func NetworkRuleSetPtr(v *NetworkRuleSetArgs) NetworkRuleSetPtrInput { - return (*networkRuleSetPtrType)(v) +func (o PermissionScopeOutput) ToPermissionScopeOutputWithContext(ctx context.Context) PermissionScopeOutput { + return o } -func (*networkRuleSetPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkRuleSet)(nil)).Elem() +// The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). +func (o PermissionScopeOutput) Permissions() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScope) string { return v.Permissions }).(pulumi.StringOutput) } -func (i *networkRuleSetPtrType) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { - return i.ToNetworkRuleSetPtrOutputWithContext(context.Background()) +// The name of resource, normally the container name or the file share name, used by the local user. +func (o PermissionScopeOutput) ResourceName() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScope) string { return v.ResourceName }).(pulumi.StringOutput) } -func (i *networkRuleSetPtrType) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(NetworkRuleSetPtrOutput) +// The service used by the local user, e.g. blob, file. +func (o PermissionScopeOutput) Service() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScope) string { return v.Service }).(pulumi.StringOutput) } -// Network rule set -type NetworkRuleSetOutput struct{ *pulumi.OutputState } +type PermissionScopeArrayOutput struct{ *pulumi.OutputState } -func (NetworkRuleSetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkRuleSet)(nil)).Elem() +func (PermissionScopeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PermissionScope)(nil)).Elem() } -func (o NetworkRuleSetOutput) ToNetworkRuleSetOutput() NetworkRuleSetOutput { +func (o PermissionScopeArrayOutput) ToPermissionScopeArrayOutput() PermissionScopeArrayOutput { return o } -func (o NetworkRuleSetOutput) ToNetworkRuleSetOutputWithContext(ctx context.Context) NetworkRuleSetOutput { +func (o PermissionScopeArrayOutput) ToPermissionScopeArrayOutputWithContext(ctx context.Context) PermissionScopeArrayOutput { return o } -func (o NetworkRuleSetOutput) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { - return o.ToNetworkRuleSetPtrOutputWithContext(context.Background()) +func (o PermissionScopeArrayOutput) Index(i pulumi.IntInput) PermissionScopeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PermissionScope { + return vs[0].([]PermissionScope)[vs[1].(int)] + }).(PermissionScopeOutput) } -func (o NetworkRuleSetOutput) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v NetworkRuleSet) *NetworkRuleSet { - return &v - }).(NetworkRuleSetPtrOutput) +type PermissionScopeResponse struct { + // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). + Permissions string `pulumi:"permissions"` + // The name of resource, normally the container name or the file share name, used by the local user. + ResourceName string `pulumi:"resourceName"` + // The service used by the local user, e.g. blob, file. + Service string `pulumi:"service"` } -// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. -func (o NetworkRuleSetOutput) Bypass() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkRuleSet) *string { return v.Bypass }).(pulumi.StringPtrOutput) +type PermissionScopeResponseOutput struct{ *pulumi.OutputState } + +func (PermissionScopeResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PermissionScopeResponse)(nil)).Elem() } -// Specifies the default action of allow or deny when no other rules match. -func (o NetworkRuleSetOutput) DefaultAction() DefaultActionOutput { - return o.ApplyT(func(v NetworkRuleSet) DefaultAction { return v.DefaultAction }).(DefaultActionOutput) +func (o PermissionScopeResponseOutput) ToPermissionScopeResponseOutput() PermissionScopeResponseOutput { + return o } -// Sets the IP ACL rules -func (o NetworkRuleSetOutput) IpRules() IPRuleArrayOutput { - return o.ApplyT(func(v NetworkRuleSet) []IPRule { return v.IpRules }).(IPRuleArrayOutput) +func (o PermissionScopeResponseOutput) ToPermissionScopeResponseOutputWithContext(ctx context.Context) PermissionScopeResponseOutput { + return o } -// Sets the resource access rules -func (o NetworkRuleSetOutput) ResourceAccessRules() ResourceAccessRuleArrayOutput { - return o.ApplyT(func(v NetworkRuleSet) []ResourceAccessRule { return v.ResourceAccessRules }).(ResourceAccessRuleArrayOutput) +// The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). +func (o PermissionScopeResponseOutput) Permissions() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScopeResponse) string { return v.Permissions }).(pulumi.StringOutput) } -// Sets the virtual network rules -func (o NetworkRuleSetOutput) VirtualNetworkRules() VirtualNetworkRuleArrayOutput { - return o.ApplyT(func(v NetworkRuleSet) []VirtualNetworkRule { return v.VirtualNetworkRules }).(VirtualNetworkRuleArrayOutput) +// The name of resource, normally the container name or the file share name, used by the local user. +func (o PermissionScopeResponseOutput) ResourceName() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScopeResponse) string { return v.ResourceName }).(pulumi.StringOutput) } -type NetworkRuleSetPtrOutput struct{ *pulumi.OutputState } +// The service used by the local user, e.g. blob, file. +func (o PermissionScopeResponseOutput) Service() pulumi.StringOutput { + return o.ApplyT(func(v PermissionScopeResponse) string { return v.Service }).(pulumi.StringOutput) +} -func (NetworkRuleSetPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**NetworkRuleSet)(nil)).Elem() +type PermissionScopeResponseArrayOutput struct{ *pulumi.OutputState } + +func (PermissionScopeResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PermissionScopeResponse)(nil)).Elem() } -func (o NetworkRuleSetPtrOutput) ToNetworkRuleSetPtrOutput() NetworkRuleSetPtrOutput { +func (o PermissionScopeResponseArrayOutput) ToPermissionScopeResponseArrayOutput() PermissionScopeResponseArrayOutput { return o } -func (o NetworkRuleSetPtrOutput) ToNetworkRuleSetPtrOutputWithContext(ctx context.Context) NetworkRuleSetPtrOutput { +func (o PermissionScopeResponseArrayOutput) ToPermissionScopeResponseArrayOutputWithContext(ctx context.Context) PermissionScopeResponseArrayOutput { return o } -func (o NetworkRuleSetPtrOutput) Elem() NetworkRuleSetOutput { - return o.ApplyT(func(v *NetworkRuleSet) NetworkRuleSet { - if v != nil { - return *v - } - var ret NetworkRuleSet - return ret - }).(NetworkRuleSetOutput) +func (o PermissionScopeResponseArrayOutput) Index(i pulumi.IntInput) PermissionScopeResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PermissionScopeResponse { + return vs[0].([]PermissionScopeResponse)[vs[1].(int)] + }).(PermissionScopeResponseOutput) } -// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. -func (o NetworkRuleSetPtrOutput) Bypass() pulumi.StringPtrOutput { - return o.ApplyT(func(v *NetworkRuleSet) *string { - if v == nil { - return nil - } - return v.Bypass - }).(pulumi.StringPtrOutput) +// The Private Endpoint Connection resource. +type PrivateEndpointConnectionResponse struct { + // Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id string `pulumi:"id"` + // The name of the resource + Name string `pulumi:"name"` + // The resource of private end point. + PrivateEndpoint *PrivateEndpointResponse `pulumi:"privateEndpoint"` + // A collection of information about the state of the connection between service consumer and provider. + PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` + // The provisioning state of the private endpoint connection resource. + ProvisioningState string `pulumi:"provisioningState"` + // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type string `pulumi:"type"` } -// Specifies the default action of allow or deny when no other rules match. -func (o NetworkRuleSetPtrOutput) DefaultAction() DefaultActionPtrOutput { - return o.ApplyT(func(v *NetworkRuleSet) *DefaultAction { - if v == nil { - return nil - } - return &v.DefaultAction - }).(DefaultActionPtrOutput) +// The Private Endpoint Connection resource. +type PrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointConnectionResponse)(nil)).Elem() +} + +func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutput() PrivateEndpointConnectionResponseOutput { + return o +} + +func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseOutput { + return o } -// Sets the IP ACL rules -func (o NetworkRuleSetPtrOutput) IpRules() IPRuleArrayOutput { - return o.ApplyT(func(v *NetworkRuleSet) []IPRule { - if v == nil { - return nil - } - return v.IpRules - }).(IPRuleArrayOutput) +// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} +func (o PrivateEndpointConnectionResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Id }).(pulumi.StringOutput) } -// Sets the resource access rules -func (o NetworkRuleSetPtrOutput) ResourceAccessRules() ResourceAccessRuleArrayOutput { - return o.ApplyT(func(v *NetworkRuleSet) []ResourceAccessRule { - if v == nil { - return nil - } - return v.ResourceAccessRules - }).(ResourceAccessRuleArrayOutput) +// The name of the resource +func (o PrivateEndpointConnectionResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Name }).(pulumi.StringOutput) } -// Sets the virtual network rules -func (o NetworkRuleSetPtrOutput) VirtualNetworkRules() VirtualNetworkRuleArrayOutput { - return o.ApplyT(func(v *NetworkRuleSet) []VirtualNetworkRule { - if v == nil { - return nil - } - return v.VirtualNetworkRules - }).(VirtualNetworkRuleArrayOutput) +// The resource of private end point. +func (o PrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponsePtrOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) *PrivateEndpointResponse { return v.PrivateEndpoint }).(PrivateEndpointResponsePtrOutput) } -// Network rule set -type NetworkRuleSetResponse struct { - // Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. - Bypass *string `pulumi:"bypass"` - // Specifies the default action of allow or deny when no other rules match. - DefaultAction string `pulumi:"defaultAction"` - // Sets the IP ACL rules - IpRules []IPRuleResponse `pulumi:"ipRules"` - // Sets the resource access rules - ResourceAccessRules []ResourceAccessRuleResponse `pulumi:"resourceAccessRules"` - // Sets the virtual network rules - VirtualNetworkRules []VirtualNetworkRuleResponse `pulumi:"virtualNetworkRules"` +// A collection of information about the state of the connection between service consumer and provider. +func (o PrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponseOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) PrivateLinkServiceConnectionStateResponse { + return v.PrivateLinkServiceConnectionState + }).(PrivateLinkServiceConnectionStateResponseOutput) } -// Defaults sets the appropriate defaults for NetworkRuleSetResponse -func (val *NetworkRuleSetResponse) Defaults() *NetworkRuleSetResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.Bypass) { - bypass_ := "AzureServices" - tmp.Bypass = &bypass_ - } - if isZero(tmp.DefaultAction) { - tmp.DefaultAction = "Allow" - } - return &tmp +// The provisioning state of the private endpoint connection resource. +func (o PrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) } -// Network rule set -type NetworkRuleSetResponseOutput struct{ *pulumi.OutputState } +// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" +func (o PrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) +} -func (NetworkRuleSetResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*NetworkRuleSetResponse)(nil)).Elem() +type PrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PrivateEndpointConnectionResponse)(nil)).Elem() } -func (o NetworkRuleSetResponseOutput) ToNetworkRuleSetResponseOutput() NetworkRuleSetResponseOutput { +func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutput() PrivateEndpointConnectionResponseArrayOutput { return o } -func (o NetworkRuleSetResponseOutput) ToNetworkRuleSetResponseOutputWithContext(ctx context.Context) NetworkRuleSetResponseOutput { +func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseArrayOutput { return o } -// Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. -func (o NetworkRuleSetResponseOutput) Bypass() pulumi.StringPtrOutput { - return o.ApplyT(func(v NetworkRuleSetResponse) *string { return v.Bypass }).(pulumi.StringPtrOutput) +func (o PrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointConnectionResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointConnectionResponse { + return vs[0].([]PrivateEndpointConnectionResponse)[vs[1].(int)] + }).(PrivateEndpointConnectionResponseOutput) } -// Specifies the default action of allow or deny when no other rules match. -func (o NetworkRuleSetResponseOutput) DefaultAction() pulumi.StringOutput { - return o.ApplyT(func(v NetworkRuleSetResponse) string { return v.DefaultAction }).(pulumi.StringOutput) +// The Private Endpoint resource. +type PrivateEndpointResponse struct { + // The ARM identifier for Private Endpoint + Id string `pulumi:"id"` } -// Sets the IP ACL rules -func (o NetworkRuleSetResponseOutput) IpRules() IPRuleResponseArrayOutput { - return o.ApplyT(func(v NetworkRuleSetResponse) []IPRuleResponse { return v.IpRules }).(IPRuleResponseArrayOutput) -} +// The Private Endpoint resource. +type PrivateEndpointResponseOutput struct{ *pulumi.OutputState } -// Sets the resource access rules -func (o NetworkRuleSetResponseOutput) ResourceAccessRules() ResourceAccessRuleResponseArrayOutput { - return o.ApplyT(func(v NetworkRuleSetResponse) []ResourceAccessRuleResponse { return v.ResourceAccessRules }).(ResourceAccessRuleResponseArrayOutput) +func (PrivateEndpointResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointResponse)(nil)).Elem() } -// Sets the virtual network rules -func (o NetworkRuleSetResponseOutput) VirtualNetworkRules() VirtualNetworkRuleResponseArrayOutput { - return o.ApplyT(func(v NetworkRuleSetResponse) []VirtualNetworkRuleResponse { return v.VirtualNetworkRules }).(VirtualNetworkRuleResponseArrayOutput) +func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutput() PrivateEndpointResponseOutput { + return o } -// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. -type ObjectReplicationPolicyFilter struct { - // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z - MinCreationTime *string `pulumi:"minCreationTime"` - // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. - PrefixMatch []string `pulumi:"prefixMatch"` +func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutputWithContext(ctx context.Context) PrivateEndpointResponseOutput { + return o } -// ObjectReplicationPolicyFilterInput is an input type that accepts ObjectReplicationPolicyFilterArgs and ObjectReplicationPolicyFilterOutput values. -// You can construct a concrete instance of `ObjectReplicationPolicyFilterInput` via: -// -// ObjectReplicationPolicyFilterArgs{...} -type ObjectReplicationPolicyFilterInput interface { - pulumi.Input - - ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput - ToObjectReplicationPolicyFilterOutputWithContext(context.Context) ObjectReplicationPolicyFilterOutput +// The ARM identifier for Private Endpoint +func (o PrivateEndpointResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Id }).(pulumi.StringOutput) } -// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. -type ObjectReplicationPolicyFilterArgs struct { - // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z - MinCreationTime pulumi.StringPtrInput `pulumi:"minCreationTime"` - // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. - PrefixMatch pulumi.StringArrayInput `pulumi:"prefixMatch"` +type PrivateEndpointResponsePtrOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateEndpointResponse)(nil)).Elem() } -func (ObjectReplicationPolicyFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyFilter)(nil)).Elem() +func (o PrivateEndpointResponsePtrOutput) ToPrivateEndpointResponsePtrOutput() PrivateEndpointResponsePtrOutput { + return o } -func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput { - return i.ToObjectReplicationPolicyFilterOutputWithContext(context.Background()) +func (o PrivateEndpointResponsePtrOutput) ToPrivateEndpointResponsePtrOutputWithContext(ctx context.Context) PrivateEndpointResponsePtrOutput { + return o } -func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterOutput) +func (o PrivateEndpointResponsePtrOutput) Elem() PrivateEndpointResponseOutput { + return o.ApplyT(func(v *PrivateEndpointResponse) PrivateEndpointResponse { + if v != nil { + return *v + } + var ret PrivateEndpointResponse + return ret + }).(PrivateEndpointResponseOutput) } -func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { - return i.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) +// The ARM identifier for Private Endpoint +func (o PrivateEndpointResponsePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateEndpointResponse) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) } -func (i ObjectReplicationPolicyFilterArgs) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterOutput).ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx) +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionState struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionRequired *string `pulumi:"actionRequired"` + // The reason for approval/rejection of the connection. + Description *string `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *string `pulumi:"status"` } -// ObjectReplicationPolicyFilterPtrInput is an input type that accepts ObjectReplicationPolicyFilterArgs, ObjectReplicationPolicyFilterPtr and ObjectReplicationPolicyFilterPtrOutput values. -// You can construct a concrete instance of `ObjectReplicationPolicyFilterPtrInput` via: -// -// ObjectReplicationPolicyFilterArgs{...} -// -// or: +// PrivateLinkServiceConnectionStateInput is an input type that accepts PrivateLinkServiceConnectionStateArgs and PrivateLinkServiceConnectionStateOutput values. +// You can construct a concrete instance of `PrivateLinkServiceConnectionStateInput` via: // -// nil -type ObjectReplicationPolicyFilterPtrInput interface { +// PrivateLinkServiceConnectionStateArgs{...} +type PrivateLinkServiceConnectionStateInput interface { pulumi.Input - ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput - ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Context) ObjectReplicationPolicyFilterPtrOutput + ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput + ToPrivateLinkServiceConnectionStateOutputWithContext(context.Context) PrivateLinkServiceConnectionStateOutput } -type objectReplicationPolicyFilterPtrType ObjectReplicationPolicyFilterArgs - -func ObjectReplicationPolicyFilterPtr(v *ObjectReplicationPolicyFilterArgs) ObjectReplicationPolicyFilterPtrInput { - return (*objectReplicationPolicyFilterPtrType)(v) +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateArgs struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionRequired pulumi.StringPtrInput `pulumi:"actionRequired"` + // The reason for approval/rejection of the connection. + Description pulumi.StringPtrInput `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status pulumi.StringPtrInput `pulumi:"status"` } -func (*objectReplicationPolicyFilterPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ObjectReplicationPolicyFilter)(nil)).Elem() +func (PrivateLinkServiceConnectionStateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() } -func (i *objectReplicationPolicyFilterPtrType) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { - return i.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { + return i.ToPrivateLinkServiceConnectionStateOutputWithContext(context.Background()) } -func (i *objectReplicationPolicyFilterPtrType) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyFilterPtrOutput) +func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput) } -// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. -type ObjectReplicationPolicyFilterOutput struct{ *pulumi.OutputState } +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateOutput struct{ *pulumi.OutputState } -func (ObjectReplicationPolicyFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyFilter)(nil)).Elem() +func (PrivateLinkServiceConnectionStateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() } -func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterOutput() ObjectReplicationPolicyFilterOutput { +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { return o } -func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterOutput { +func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { return o } -func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { - return o.ToObjectReplicationPolicyFilterPtrOutputWithContext(context.Background()) +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStateOutput) ActionRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.ActionRequired }).(pulumi.StringPtrOutput) } -func (o ObjectReplicationPolicyFilterOutput) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ObjectReplicationPolicyFilter) *ObjectReplicationPolicyFilter { - return &v - }).(ObjectReplicationPolicyFilterPtrOutput) +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStateOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z -func (o ObjectReplicationPolicyFilterOutput) MinCreationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyFilter) *string { return v.MinCreationTime }).(pulumi.StringPtrOutput) +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStateOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Status }).(pulumi.StringPtrOutput) } -// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. -func (o ObjectReplicationPolicyFilterOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObjectReplicationPolicyFilter) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateResponse struct { + // A message indicating if changes on the service provider require any updates on the consumer. + ActionRequired *string `pulumi:"actionRequired"` + // The reason for approval/rejection of the connection. + Description *string `pulumi:"description"` + // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *string `pulumi:"status"` } -type ObjectReplicationPolicyFilterPtrOutput struct{ *pulumi.OutputState } +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionStateResponseOutput struct{ *pulumi.OutputState } -func (ObjectReplicationPolicyFilterPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObjectReplicationPolicyFilter)(nil)).Elem() +func (PrivateLinkServiceConnectionStateResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateLinkServiceConnectionStateResponse)(nil)).Elem() } -func (o ObjectReplicationPolicyFilterPtrOutput) ToObjectReplicationPolicyFilterPtrOutput() ObjectReplicationPolicyFilterPtrOutput { +func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutput() PrivateLinkServiceConnectionStateResponseOutput { return o } -func (o ObjectReplicationPolicyFilterPtrOutput) ToObjectReplicationPolicyFilterPtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterPtrOutput { +func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponseOutput { return o } -func (o ObjectReplicationPolicyFilterPtrOutput) Elem() ObjectReplicationPolicyFilterOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilter) ObjectReplicationPolicyFilter { - if v != nil { - return *v - } - var ret ObjectReplicationPolicyFilter - return ret - }).(ObjectReplicationPolicyFilterOutput) +// A message indicating if changes on the service provider require any updates on the consumer. +func (o PrivateLinkServiceConnectionStateResponseOutput) ActionRequired() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.ActionRequired }).(pulumi.StringPtrOutput) } -// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z -func (o ObjectReplicationPolicyFilterPtrOutput) MinCreationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilter) *string { - if v == nil { - return nil - } - return v.MinCreationTime - }).(pulumi.StringPtrOutput) +// The reason for approval/rejection of the connection. +func (o PrivateLinkServiceConnectionStateResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. -func (o ObjectReplicationPolicyFilterPtrOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilter) []string { - if v == nil { - return nil - } - return v.PrefixMatch - }).(pulumi.StringArrayOutput) +// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. +func (o PrivateLinkServiceConnectionStateResponseOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Status }).(pulumi.StringPtrOutput) } -// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. -type ObjectReplicationPolicyFilterResponse struct { - // Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z - MinCreationTime *string `pulumi:"minCreationTime"` - // Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. - PrefixMatch []string `pulumi:"prefixMatch"` +// Protected append writes history setting for the blob container with Legal holds. +type ProtectedAppendWritesHistoryResponse struct { + // When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + AllowProtectedAppendWritesAll *bool `pulumi:"allowProtectedAppendWritesAll"` + // Returns the date and time the tag was added. + Timestamp string `pulumi:"timestamp"` } -// Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. -type ObjectReplicationPolicyFilterResponseOutput struct{ *pulumi.OutputState } +// Protected append writes history setting for the blob container with Legal holds. +type ProtectedAppendWritesHistoryResponseOutput struct{ *pulumi.OutputState } -func (ObjectReplicationPolicyFilterResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyFilterResponse)(nil)).Elem() +func (ProtectedAppendWritesHistoryResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProtectedAppendWritesHistoryResponse)(nil)).Elem() } -func (o ObjectReplicationPolicyFilterResponseOutput) ToObjectReplicationPolicyFilterResponseOutput() ObjectReplicationPolicyFilterResponseOutput { +func (o ProtectedAppendWritesHistoryResponseOutput) ToProtectedAppendWritesHistoryResponseOutput() ProtectedAppendWritesHistoryResponseOutput { return o } -func (o ObjectReplicationPolicyFilterResponseOutput) ToObjectReplicationPolicyFilterResponseOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterResponseOutput { +func (o ProtectedAppendWritesHistoryResponseOutput) ToProtectedAppendWritesHistoryResponseOutputWithContext(ctx context.Context) ProtectedAppendWritesHistoryResponseOutput { return o } -// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z -func (o ObjectReplicationPolicyFilterResponseOutput) MinCreationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyFilterResponse) *string { return v.MinCreationTime }).(pulumi.StringPtrOutput) +// When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o ProtectedAppendWritesHistoryResponseOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ProtectedAppendWritesHistoryResponse) *bool { return v.AllowProtectedAppendWritesAll }).(pulumi.BoolPtrOutput) } -// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. -func (o ObjectReplicationPolicyFilterResponseOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v ObjectReplicationPolicyFilterResponse) []string { return v.PrefixMatch }).(pulumi.StringArrayOutput) +// Returns the date and time the tag was added. +func (o ProtectedAppendWritesHistoryResponseOutput) Timestamp() pulumi.StringOutput { + return o.ApplyT(func(v ProtectedAppendWritesHistoryResponse) string { return v.Timestamp }).(pulumi.StringOutput) } -type ObjectReplicationPolicyFilterResponsePtrOutput struct{ *pulumi.OutputState } +type ProtectedAppendWritesHistoryResponsePtrOutput struct{ *pulumi.OutputState } -func (ObjectReplicationPolicyFilterResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ObjectReplicationPolicyFilterResponse)(nil)).Elem() +func (ProtectedAppendWritesHistoryResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProtectedAppendWritesHistoryResponse)(nil)).Elem() } -func (o ObjectReplicationPolicyFilterResponsePtrOutput) ToObjectReplicationPolicyFilterResponsePtrOutput() ObjectReplicationPolicyFilterResponsePtrOutput { +func (o ProtectedAppendWritesHistoryResponsePtrOutput) ToProtectedAppendWritesHistoryResponsePtrOutput() ProtectedAppendWritesHistoryResponsePtrOutput { return o } -func (o ObjectReplicationPolicyFilterResponsePtrOutput) ToObjectReplicationPolicyFilterResponsePtrOutputWithContext(ctx context.Context) ObjectReplicationPolicyFilterResponsePtrOutput { +func (o ProtectedAppendWritesHistoryResponsePtrOutput) ToProtectedAppendWritesHistoryResponsePtrOutputWithContext(ctx context.Context) ProtectedAppendWritesHistoryResponsePtrOutput { return o } -func (o ObjectReplicationPolicyFilterResponsePtrOutput) Elem() ObjectReplicationPolicyFilterResponseOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) ObjectReplicationPolicyFilterResponse { +func (o ProtectedAppendWritesHistoryResponsePtrOutput) Elem() ProtectedAppendWritesHistoryResponseOutput { + return o.ApplyT(func(v *ProtectedAppendWritesHistoryResponse) ProtectedAppendWritesHistoryResponse { if v != nil { return *v } - var ret ObjectReplicationPolicyFilterResponse + var ret ProtectedAppendWritesHistoryResponse return ret - }).(ObjectReplicationPolicyFilterResponseOutput) + }).(ProtectedAppendWritesHistoryResponseOutput) } -// Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z -func (o ObjectReplicationPolicyFilterResponsePtrOutput) MinCreationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) *string { +// When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. +func (o ProtectedAppendWritesHistoryResponsePtrOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ProtectedAppendWritesHistoryResponse) *bool { if v == nil { return nil } - return v.MinCreationTime - }).(pulumi.StringPtrOutput) + return v.AllowProtectedAppendWritesAll + }).(pulumi.BoolPtrOutput) } -// Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. -func (o ObjectReplicationPolicyFilterResponsePtrOutput) PrefixMatch() pulumi.StringArrayOutput { - return o.ApplyT(func(v *ObjectReplicationPolicyFilterResponse) []string { +// Returns the date and time the tag was added. +func (o ProtectedAppendWritesHistoryResponsePtrOutput) Timestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ProtectedAppendWritesHistoryResponse) *string { if v == nil { return nil } - return v.PrefixMatch - }).(pulumi.StringArrayOutput) + return &v.Timestamp + }).(pulumi.StringPtrOutput) } -// The replication policy rule between two containers. -type ObjectReplicationPolicyRule struct { - // Required. Destination container name. - DestinationContainer string `pulumi:"destinationContainer"` - // Optional. An object that defines the filter set. - Filters *ObjectReplicationPolicyFilter `pulumi:"filters"` - // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. - RuleId *string `pulumi:"ruleId"` - // Required. Source container name. - SourceContainer string `pulumi:"sourceContainer"` +// Protocol settings for file service +type ProtocolSettings struct { + // Setting for SMB protocol + Smb *SmbSetting `pulumi:"smb"` } -// ObjectReplicationPolicyRuleInput is an input type that accepts ObjectReplicationPolicyRuleArgs and ObjectReplicationPolicyRuleOutput values. -// You can construct a concrete instance of `ObjectReplicationPolicyRuleInput` via: +// ProtocolSettingsInput is an input type that accepts ProtocolSettingsArgs and ProtocolSettingsOutput values. +// You can construct a concrete instance of `ProtocolSettingsInput` via: // -// ObjectReplicationPolicyRuleArgs{...} -type ObjectReplicationPolicyRuleInput interface { +// ProtocolSettingsArgs{...} +type ProtocolSettingsInput interface { pulumi.Input - ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput - ToObjectReplicationPolicyRuleOutputWithContext(context.Context) ObjectReplicationPolicyRuleOutput + ToProtocolSettingsOutput() ProtocolSettingsOutput + ToProtocolSettingsOutputWithContext(context.Context) ProtocolSettingsOutput } -// The replication policy rule between two containers. -type ObjectReplicationPolicyRuleArgs struct { - // Required. Destination container name. - DestinationContainer pulumi.StringInput `pulumi:"destinationContainer"` - // Optional. An object that defines the filter set. - Filters ObjectReplicationPolicyFilterPtrInput `pulumi:"filters"` - // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. - RuleId pulumi.StringPtrInput `pulumi:"ruleId"` - // Required. Source container name. - SourceContainer pulumi.StringInput `pulumi:"sourceContainer"` +// Protocol settings for file service +type ProtocolSettingsArgs struct { + // Setting for SMB protocol + Smb SmbSettingPtrInput `pulumi:"smb"` } -func (ObjectReplicationPolicyRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyRule)(nil)).Elem() +func (ProtocolSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProtocolSettings)(nil)).Elem() } -func (i ObjectReplicationPolicyRuleArgs) ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput { - return i.ToObjectReplicationPolicyRuleOutputWithContext(context.Background()) +func (i ProtocolSettingsArgs) ToProtocolSettingsOutput() ProtocolSettingsOutput { + return i.ToProtocolSettingsOutputWithContext(context.Background()) } -func (i ObjectReplicationPolicyRuleArgs) ToObjectReplicationPolicyRuleOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyRuleOutput) +func (i ProtocolSettingsArgs) ToProtocolSettingsOutputWithContext(ctx context.Context) ProtocolSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsOutput) } -// ObjectReplicationPolicyRuleArrayInput is an input type that accepts ObjectReplicationPolicyRuleArray and ObjectReplicationPolicyRuleArrayOutput values. -// You can construct a concrete instance of `ObjectReplicationPolicyRuleArrayInput` via: -// -// ObjectReplicationPolicyRuleArray{ ObjectReplicationPolicyRuleArgs{...} } -type ObjectReplicationPolicyRuleArrayInput interface { - pulumi.Input - - ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput - ToObjectReplicationPolicyRuleArrayOutputWithContext(context.Context) ObjectReplicationPolicyRuleArrayOutput +func (i ProtocolSettingsArgs) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { + return i.ToProtocolSettingsPtrOutputWithContext(context.Background()) } -type ObjectReplicationPolicyRuleArray []ObjectReplicationPolicyRuleInput - -func (ObjectReplicationPolicyRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObjectReplicationPolicyRule)(nil)).Elem() +func (i ProtocolSettingsArgs) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsOutput).ToProtocolSettingsPtrOutputWithContext(ctx) } -func (i ObjectReplicationPolicyRuleArray) ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput { - return i.ToObjectReplicationPolicyRuleArrayOutputWithContext(context.Background()) -} +// ProtocolSettingsPtrInput is an input type that accepts ProtocolSettingsArgs, ProtocolSettingsPtr and ProtocolSettingsPtrOutput values. +// You can construct a concrete instance of `ProtocolSettingsPtrInput` via: +// +// ProtocolSettingsArgs{...} +// +// or: +// +// nil +type ProtocolSettingsPtrInput interface { + pulumi.Input -func (i ObjectReplicationPolicyRuleArray) ToObjectReplicationPolicyRuleArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ObjectReplicationPolicyRuleArrayOutput) + ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput + ToProtocolSettingsPtrOutputWithContext(context.Context) ProtocolSettingsPtrOutput } -// The replication policy rule between two containers. -type ObjectReplicationPolicyRuleOutput struct{ *pulumi.OutputState } - -func (ObjectReplicationPolicyRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyRule)(nil)).Elem() -} +type protocolSettingsPtrType ProtocolSettingsArgs -func (o ObjectReplicationPolicyRuleOutput) ToObjectReplicationPolicyRuleOutput() ObjectReplicationPolicyRuleOutput { - return o +func ProtocolSettingsPtr(v *ProtocolSettingsArgs) ProtocolSettingsPtrInput { + return (*protocolSettingsPtrType)(v) } -func (o ObjectReplicationPolicyRuleOutput) ToObjectReplicationPolicyRuleOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleOutput { - return o +func (*protocolSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProtocolSettings)(nil)).Elem() } -// Required. Destination container name. -func (o ObjectReplicationPolicyRuleOutput) DestinationContainer() pulumi.StringOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRule) string { return v.DestinationContainer }).(pulumi.StringOutput) +func (i *protocolSettingsPtrType) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { + return i.ToProtocolSettingsPtrOutputWithContext(context.Background()) } -// Optional. An object that defines the filter set. -func (o ObjectReplicationPolicyRuleOutput) Filters() ObjectReplicationPolicyFilterPtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRule) *ObjectReplicationPolicyFilter { return v.Filters }).(ObjectReplicationPolicyFilterPtrOutput) +func (i *protocolSettingsPtrType) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsPtrOutput) } -// Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. -func (o ObjectReplicationPolicyRuleOutput) RuleId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRule) *string { return v.RuleId }).(pulumi.StringPtrOutput) -} +// Protocol settings for file service +type ProtocolSettingsOutput struct{ *pulumi.OutputState } -// Required. Source container name. -func (o ObjectReplicationPolicyRuleOutput) SourceContainer() pulumi.StringOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRule) string { return v.SourceContainer }).(pulumi.StringOutput) +func (ProtocolSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProtocolSettings)(nil)).Elem() } -type ObjectReplicationPolicyRuleArrayOutput struct{ *pulumi.OutputState } - -func (ObjectReplicationPolicyRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObjectReplicationPolicyRule)(nil)).Elem() +func (o ProtocolSettingsOutput) ToProtocolSettingsOutput() ProtocolSettingsOutput { + return o } -func (o ObjectReplicationPolicyRuleArrayOutput) ToObjectReplicationPolicyRuleArrayOutput() ObjectReplicationPolicyRuleArrayOutput { +func (o ProtocolSettingsOutput) ToProtocolSettingsOutputWithContext(ctx context.Context) ProtocolSettingsOutput { return o } -func (o ObjectReplicationPolicyRuleArrayOutput) ToObjectReplicationPolicyRuleArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleArrayOutput { - return o +func (o ProtocolSettingsOutput) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { + return o.ToProtocolSettingsPtrOutputWithContext(context.Background()) } -func (o ObjectReplicationPolicyRuleArrayOutput) Index(i pulumi.IntInput) ObjectReplicationPolicyRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObjectReplicationPolicyRule { - return vs[0].([]ObjectReplicationPolicyRule)[vs[1].(int)] - }).(ObjectReplicationPolicyRuleOutput) +func (o ProtocolSettingsOutput) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ProtocolSettings) *ProtocolSettings { + return &v + }).(ProtocolSettingsPtrOutput) } -// The replication policy rule between two containers. -type ObjectReplicationPolicyRuleResponse struct { - // Required. Destination container name. - DestinationContainer string `pulumi:"destinationContainer"` - // Optional. An object that defines the filter set. - Filters *ObjectReplicationPolicyFilterResponse `pulumi:"filters"` - // Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. - RuleId *string `pulumi:"ruleId"` - // Required. Source container name. - SourceContainer string `pulumi:"sourceContainer"` +// Setting for SMB protocol +func (o ProtocolSettingsOutput) Smb() SmbSettingPtrOutput { + return o.ApplyT(func(v ProtocolSettings) *SmbSetting { return v.Smb }).(SmbSettingPtrOutput) } -// The replication policy rule between two containers. -type ObjectReplicationPolicyRuleResponseOutput struct{ *pulumi.OutputState } +type ProtocolSettingsPtrOutput struct{ *pulumi.OutputState } -func (ObjectReplicationPolicyRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ObjectReplicationPolicyRuleResponse)(nil)).Elem() +func (ProtocolSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProtocolSettings)(nil)).Elem() } -func (o ObjectReplicationPolicyRuleResponseOutput) ToObjectReplicationPolicyRuleResponseOutput() ObjectReplicationPolicyRuleResponseOutput { +func (o ProtocolSettingsPtrOutput) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { return o } -func (o ObjectReplicationPolicyRuleResponseOutput) ToObjectReplicationPolicyRuleResponseOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleResponseOutput { +func (o ProtocolSettingsPtrOutput) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { return o } -// Required. Destination container name. -func (o ObjectReplicationPolicyRuleResponseOutput) DestinationContainer() pulumi.StringOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) string { return v.DestinationContainer }).(pulumi.StringOutput) +func (o ProtocolSettingsPtrOutput) Elem() ProtocolSettingsOutput { + return o.ApplyT(func(v *ProtocolSettings) ProtocolSettings { + if v != nil { + return *v + } + var ret ProtocolSettings + return ret + }).(ProtocolSettingsOutput) } -// Optional. An object that defines the filter set. -func (o ObjectReplicationPolicyRuleResponseOutput) Filters() ObjectReplicationPolicyFilterResponsePtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) *ObjectReplicationPolicyFilterResponse { return v.Filters }).(ObjectReplicationPolicyFilterResponsePtrOutput) +// Setting for SMB protocol +func (o ProtocolSettingsPtrOutput) Smb() SmbSettingPtrOutput { + return o.ApplyT(func(v *ProtocolSettings) *SmbSetting { + if v == nil { + return nil + } + return v.Smb + }).(SmbSettingPtrOutput) } -// Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. -func (o ObjectReplicationPolicyRuleResponseOutput) RuleId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) *string { return v.RuleId }).(pulumi.StringPtrOutput) +// Protocol settings for file service +type ProtocolSettingsResponse struct { + // Setting for SMB protocol + Smb *SmbSettingResponse `pulumi:"smb"` } -// Required. Source container name. -func (o ObjectReplicationPolicyRuleResponseOutput) SourceContainer() pulumi.StringOutput { - return o.ApplyT(func(v ObjectReplicationPolicyRuleResponse) string { return v.SourceContainer }).(pulumi.StringOutput) +// Protocol settings for file service +type ProtocolSettingsResponseOutput struct{ *pulumi.OutputState } + +func (ProtocolSettingsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProtocolSettingsResponse)(nil)).Elem() } -type ObjectReplicationPolicyRuleResponseArrayOutput struct{ *pulumi.OutputState } +func (o ProtocolSettingsResponseOutput) ToProtocolSettingsResponseOutput() ProtocolSettingsResponseOutput { + return o +} -func (ObjectReplicationPolicyRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ObjectReplicationPolicyRuleResponse)(nil)).Elem() +func (o ProtocolSettingsResponseOutput) ToProtocolSettingsResponseOutputWithContext(ctx context.Context) ProtocolSettingsResponseOutput { + return o } -func (o ObjectReplicationPolicyRuleResponseArrayOutput) ToObjectReplicationPolicyRuleResponseArrayOutput() ObjectReplicationPolicyRuleResponseArrayOutput { +// Setting for SMB protocol +func (o ProtocolSettingsResponseOutput) Smb() SmbSettingResponsePtrOutput { + return o.ApplyT(func(v ProtocolSettingsResponse) *SmbSettingResponse { return v.Smb }).(SmbSettingResponsePtrOutput) +} + +type ProtocolSettingsResponsePtrOutput struct{ *pulumi.OutputState } + +func (ProtocolSettingsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProtocolSettingsResponse)(nil)).Elem() +} + +func (o ProtocolSettingsResponsePtrOutput) ToProtocolSettingsResponsePtrOutput() ProtocolSettingsResponsePtrOutput { return o } -func (o ObjectReplicationPolicyRuleResponseArrayOutput) ToObjectReplicationPolicyRuleResponseArrayOutputWithContext(ctx context.Context) ObjectReplicationPolicyRuleResponseArrayOutput { +func (o ProtocolSettingsResponsePtrOutput) ToProtocolSettingsResponsePtrOutputWithContext(ctx context.Context) ProtocolSettingsResponsePtrOutput { return o } -func (o ObjectReplicationPolicyRuleResponseArrayOutput) Index(i pulumi.IntInput) ObjectReplicationPolicyRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObjectReplicationPolicyRuleResponse { - return vs[0].([]ObjectReplicationPolicyRuleResponse)[vs[1].(int)] - }).(ObjectReplicationPolicyRuleResponseOutput) +func (o ProtocolSettingsResponsePtrOutput) Elem() ProtocolSettingsResponseOutput { + return o.ApplyT(func(v *ProtocolSettingsResponse) ProtocolSettingsResponse { + if v != nil { + return *v + } + var ret ProtocolSettingsResponse + return ret + }).(ProtocolSettingsResponseOutput) } -type PermissionScope struct { - // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). - Permissions string `pulumi:"permissions"` - // The name of resource, normally the container name or the file share name, used by the local user. - ResourceName string `pulumi:"resourceName"` - // The service used by the local user, e.g. blob, file. - Service string `pulumi:"service"` +// Setting for SMB protocol +func (o ProtocolSettingsResponsePtrOutput) Smb() SmbSettingResponsePtrOutput { + return o.ApplyT(func(v *ProtocolSettingsResponse) *SmbSettingResponse { + if v == nil { + return nil + } + return v.Smb + }).(SmbSettingResponsePtrOutput) } -// PermissionScopeInput is an input type that accepts PermissionScopeArgs and PermissionScopeOutput values. -// You can construct a concrete instance of `PermissionScopeInput` via: +// Resource Access Rule. +type ResourceAccessRule struct { + // Resource Id + ResourceId *string `pulumi:"resourceId"` + // Tenant Id + TenantId *string `pulumi:"tenantId"` +} + +// ResourceAccessRuleInput is an input type that accepts ResourceAccessRuleArgs and ResourceAccessRuleOutput values. +// You can construct a concrete instance of `ResourceAccessRuleInput` via: // -// PermissionScopeArgs{...} -type PermissionScopeInput interface { +// ResourceAccessRuleArgs{...} +type ResourceAccessRuleInput interface { pulumi.Input - ToPermissionScopeOutput() PermissionScopeOutput - ToPermissionScopeOutputWithContext(context.Context) PermissionScopeOutput + ToResourceAccessRuleOutput() ResourceAccessRuleOutput + ToResourceAccessRuleOutputWithContext(context.Context) ResourceAccessRuleOutput } -type PermissionScopeArgs struct { - // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). - Permissions pulumi.StringInput `pulumi:"permissions"` - // The name of resource, normally the container name or the file share name, used by the local user. - ResourceName pulumi.StringInput `pulumi:"resourceName"` - // The service used by the local user, e.g. blob, file. - Service pulumi.StringInput `pulumi:"service"` +// Resource Access Rule. +type ResourceAccessRuleArgs struct { + // Resource Id + ResourceId pulumi.StringPtrInput `pulumi:"resourceId"` + // Tenant Id + TenantId pulumi.StringPtrInput `pulumi:"tenantId"` } -func (PermissionScopeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PermissionScope)(nil)).Elem() +func (ResourceAccessRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceAccessRule)(nil)).Elem() } -func (i PermissionScopeArgs) ToPermissionScopeOutput() PermissionScopeOutput { - return i.ToPermissionScopeOutputWithContext(context.Background()) +func (i ResourceAccessRuleArgs) ToResourceAccessRuleOutput() ResourceAccessRuleOutput { + return i.ToResourceAccessRuleOutputWithContext(context.Background()) } -func (i PermissionScopeArgs) ToPermissionScopeOutputWithContext(ctx context.Context) PermissionScopeOutput { - return pulumi.ToOutputWithContext(ctx, i).(PermissionScopeOutput) +func (i ResourceAccessRuleArgs) ToResourceAccessRuleOutputWithContext(ctx context.Context) ResourceAccessRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceAccessRuleOutput) } -// PermissionScopeArrayInput is an input type that accepts PermissionScopeArray and PermissionScopeArrayOutput values. -// You can construct a concrete instance of `PermissionScopeArrayInput` via: +// ResourceAccessRuleArrayInput is an input type that accepts ResourceAccessRuleArray and ResourceAccessRuleArrayOutput values. +// You can construct a concrete instance of `ResourceAccessRuleArrayInput` via: // -// PermissionScopeArray{ PermissionScopeArgs{...} } -type PermissionScopeArrayInput interface { +// ResourceAccessRuleArray{ ResourceAccessRuleArgs{...} } +type ResourceAccessRuleArrayInput interface { pulumi.Input - ToPermissionScopeArrayOutput() PermissionScopeArrayOutput - ToPermissionScopeArrayOutputWithContext(context.Context) PermissionScopeArrayOutput + ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput + ToResourceAccessRuleArrayOutputWithContext(context.Context) ResourceAccessRuleArrayOutput } -type PermissionScopeArray []PermissionScopeInput +type ResourceAccessRuleArray []ResourceAccessRuleInput -func (PermissionScopeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]PermissionScope)(nil)).Elem() +func (ResourceAccessRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceAccessRule)(nil)).Elem() } -func (i PermissionScopeArray) ToPermissionScopeArrayOutput() PermissionScopeArrayOutput { - return i.ToPermissionScopeArrayOutputWithContext(context.Background()) +func (i ResourceAccessRuleArray) ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput { + return i.ToResourceAccessRuleArrayOutputWithContext(context.Background()) } -func (i PermissionScopeArray) ToPermissionScopeArrayOutputWithContext(ctx context.Context) PermissionScopeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(PermissionScopeArrayOutput) +func (i ResourceAccessRuleArray) ToResourceAccessRuleArrayOutputWithContext(ctx context.Context) ResourceAccessRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourceAccessRuleArrayOutput) } -type PermissionScopeOutput struct{ *pulumi.OutputState } +// Resource Access Rule. +type ResourceAccessRuleOutput struct{ *pulumi.OutputState } -func (PermissionScopeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PermissionScope)(nil)).Elem() +func (ResourceAccessRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceAccessRule)(nil)).Elem() } -func (o PermissionScopeOutput) ToPermissionScopeOutput() PermissionScopeOutput { +func (o ResourceAccessRuleOutput) ToResourceAccessRuleOutput() ResourceAccessRuleOutput { return o } -func (o PermissionScopeOutput) ToPermissionScopeOutputWithContext(ctx context.Context) PermissionScopeOutput { +func (o ResourceAccessRuleOutput) ToResourceAccessRuleOutputWithContext(ctx context.Context) ResourceAccessRuleOutput { return o } -// The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). -func (o PermissionScopeOutput) Permissions() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScope) string { return v.Permissions }).(pulumi.StringOutput) -} - -// The name of resource, normally the container name or the file share name, used by the local user. -func (o PermissionScopeOutput) ResourceName() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScope) string { return v.ResourceName }).(pulumi.StringOutput) +// Resource Id +func (o ResourceAccessRuleOutput) ResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceAccessRule) *string { return v.ResourceId }).(pulumi.StringPtrOutput) } -// The service used by the local user, e.g. blob, file. -func (o PermissionScopeOutput) Service() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScope) string { return v.Service }).(pulumi.StringOutput) +// Tenant Id +func (o ResourceAccessRuleOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceAccessRule) *string { return v.TenantId }).(pulumi.StringPtrOutput) } -type PermissionScopeArrayOutput struct{ *pulumi.OutputState } +type ResourceAccessRuleArrayOutput struct{ *pulumi.OutputState } -func (PermissionScopeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PermissionScope)(nil)).Elem() +func (ResourceAccessRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceAccessRule)(nil)).Elem() } -func (o PermissionScopeArrayOutput) ToPermissionScopeArrayOutput() PermissionScopeArrayOutput { +func (o ResourceAccessRuleArrayOutput) ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput { return o } -func (o PermissionScopeArrayOutput) ToPermissionScopeArrayOutputWithContext(ctx context.Context) PermissionScopeArrayOutput { +func (o ResourceAccessRuleArrayOutput) ToResourceAccessRuleArrayOutputWithContext(ctx context.Context) ResourceAccessRuleArrayOutput { return o } -func (o PermissionScopeArrayOutput) Index(i pulumi.IntInput) PermissionScopeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PermissionScope { - return vs[0].([]PermissionScope)[vs[1].(int)] - }).(PermissionScopeOutput) +func (o ResourceAccessRuleArrayOutput) Index(i pulumi.IntInput) ResourceAccessRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceAccessRule { + return vs[0].([]ResourceAccessRule)[vs[1].(int)] + }).(ResourceAccessRuleOutput) } -type PermissionScopeResponse struct { - // The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). - Permissions string `pulumi:"permissions"` - // The name of resource, normally the container name or the file share name, used by the local user. - ResourceName string `pulumi:"resourceName"` - // The service used by the local user, e.g. blob, file. - Service string `pulumi:"service"` +// Resource Access Rule. +type ResourceAccessRuleResponse struct { + // Resource Id + ResourceId *string `pulumi:"resourceId"` + // Tenant Id + TenantId *string `pulumi:"tenantId"` } -type PermissionScopeResponseOutput struct{ *pulumi.OutputState } +// Resource Access Rule. +type ResourceAccessRuleResponseOutput struct{ *pulumi.OutputState } -func (PermissionScopeResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PermissionScopeResponse)(nil)).Elem() +func (ResourceAccessRuleResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourceAccessRuleResponse)(nil)).Elem() } -func (o PermissionScopeResponseOutput) ToPermissionScopeResponseOutput() PermissionScopeResponseOutput { +func (o ResourceAccessRuleResponseOutput) ToResourceAccessRuleResponseOutput() ResourceAccessRuleResponseOutput { return o } -func (o PermissionScopeResponseOutput) ToPermissionScopeResponseOutputWithContext(ctx context.Context) PermissionScopeResponseOutput { +func (o ResourceAccessRuleResponseOutput) ToResourceAccessRuleResponseOutputWithContext(ctx context.Context) ResourceAccessRuleResponseOutput { return o } -// The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), and Create (c). -func (o PermissionScopeResponseOutput) Permissions() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScopeResponse) string { return v.Permissions }).(pulumi.StringOutput) -} - -// The name of resource, normally the container name or the file share name, used by the local user. -func (o PermissionScopeResponseOutput) ResourceName() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScopeResponse) string { return v.ResourceName }).(pulumi.StringOutput) +// Resource Id +func (o ResourceAccessRuleResponseOutput) ResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceAccessRuleResponse) *string { return v.ResourceId }).(pulumi.StringPtrOutput) } -// The service used by the local user, e.g. blob, file. -func (o PermissionScopeResponseOutput) Service() pulumi.StringOutput { - return o.ApplyT(func(v PermissionScopeResponse) string { return v.Service }).(pulumi.StringOutput) +// Tenant Id +func (o ResourceAccessRuleResponseOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourceAccessRuleResponse) *string { return v.TenantId }).(pulumi.StringPtrOutput) } -type PermissionScopeResponseArrayOutput struct{ *pulumi.OutputState } +type ResourceAccessRuleResponseArrayOutput struct{ *pulumi.OutputState } -func (PermissionScopeResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PermissionScopeResponse)(nil)).Elem() +func (ResourceAccessRuleResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourceAccessRuleResponse)(nil)).Elem() } -func (o PermissionScopeResponseArrayOutput) ToPermissionScopeResponseArrayOutput() PermissionScopeResponseArrayOutput { +func (o ResourceAccessRuleResponseArrayOutput) ToResourceAccessRuleResponseArrayOutput() ResourceAccessRuleResponseArrayOutput { return o } -func (o PermissionScopeResponseArrayOutput) ToPermissionScopeResponseArrayOutputWithContext(ctx context.Context) PermissionScopeResponseArrayOutput { +func (o ResourceAccessRuleResponseArrayOutput) ToResourceAccessRuleResponseArrayOutputWithContext(ctx context.Context) ResourceAccessRuleResponseArrayOutput { return o } -func (o PermissionScopeResponseArrayOutput) Index(i pulumi.IntInput) PermissionScopeResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PermissionScopeResponse { - return vs[0].([]PermissionScopeResponse)[vs[1].(int)] - }).(PermissionScopeResponseOutput) +func (o ResourceAccessRuleResponseArrayOutput) Index(i pulumi.IntInput) ResourceAccessRuleResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceAccessRuleResponse { + return vs[0].([]ResourceAccessRuleResponse)[vs[1].(int)] + }).(ResourceAccessRuleResponseOutput) } -// The Private Endpoint Connection resource. -type PrivateEndpointConnectionResponse struct { - // Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - Id string `pulumi:"id"` - // The name of the resource - Name string `pulumi:"name"` - // The resource of private end point. - PrivateEndpoint *PrivateEndpointResponse `pulumi:"privateEndpoint"` - // A collection of information about the state of the connection between service consumer and provider. - PrivateLinkServiceConnectionState PrivateLinkServiceConnectionStateResponse `pulumi:"privateLinkServiceConnectionState"` - // The provisioning state of the private endpoint connection resource. - ProvisioningState string `pulumi:"provisioningState"` - // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" - Type string `pulumi:"type"` +// The blob service properties for blob restore policy +type RestorePolicyProperties struct { + // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. + Days *int `pulumi:"days"` + // Blob restore is enabled if set to true. + Enabled bool `pulumi:"enabled"` } -// The Private Endpoint Connection resource. -type PrivateEndpointConnectionResponseOutput struct{ *pulumi.OutputState } +// RestorePolicyPropertiesInput is an input type that accepts RestorePolicyPropertiesArgs and RestorePolicyPropertiesOutput values. +// You can construct a concrete instance of `RestorePolicyPropertiesInput` via: +// +// RestorePolicyPropertiesArgs{...} +type RestorePolicyPropertiesInput interface { + pulumi.Input -func (PrivateEndpointConnectionResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateEndpointConnectionResponse)(nil)).Elem() + ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput + ToRestorePolicyPropertiesOutputWithContext(context.Context) RestorePolicyPropertiesOutput } -func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutput() PrivateEndpointConnectionResponseOutput { - return o +// The blob service properties for blob restore policy +type RestorePolicyPropertiesArgs struct { + // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. + Days pulumi.IntPtrInput `pulumi:"days"` + // Blob restore is enabled if set to true. + Enabled pulumi.BoolInput `pulumi:"enabled"` } -func (o PrivateEndpointConnectionResponseOutput) ToPrivateEndpointConnectionResponseOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseOutput { - return o +func (RestorePolicyPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePolicyProperties)(nil)).Elem() } -// Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} -func (o PrivateEndpointConnectionResponseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Id }).(pulumi.StringOutput) +func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput { + return i.ToRestorePolicyPropertiesOutputWithContext(context.Background()) } -// The name of the resource -func (o PrivateEndpointConnectionResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Name }).(pulumi.StringOutput) +func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesOutputWithContext(ctx context.Context) RestorePolicyPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesOutput) } -// The resource of private end point. -func (o PrivateEndpointConnectionResponseOutput) PrivateEndpoint() PrivateEndpointResponsePtrOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) *PrivateEndpointResponse { return v.PrivateEndpoint }).(PrivateEndpointResponsePtrOutput) +func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { + return i.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) } -// A collection of information about the state of the connection between service consumer and provider. -func (o PrivateEndpointConnectionResponseOutput) PrivateLinkServiceConnectionState() PrivateLinkServiceConnectionStateResponseOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) PrivateLinkServiceConnectionStateResponse { - return v.PrivateLinkServiceConnectionState - }).(PrivateLinkServiceConnectionStateResponseOutput) +func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesOutput).ToRestorePolicyPropertiesPtrOutputWithContext(ctx) } -// The provisioning state of the private endpoint connection resource. -func (o PrivateEndpointConnectionResponseOutput) ProvisioningState() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.ProvisioningState }).(pulumi.StringOutput) -} +// RestorePolicyPropertiesPtrInput is an input type that accepts RestorePolicyPropertiesArgs, RestorePolicyPropertiesPtr and RestorePolicyPropertiesPtrOutput values. +// You can construct a concrete instance of `RestorePolicyPropertiesPtrInput` via: +// +// RestorePolicyPropertiesArgs{...} +// +// or: +// +// nil +type RestorePolicyPropertiesPtrInput interface { + pulumi.Input -// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" -func (o PrivateEndpointConnectionResponseOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointConnectionResponse) string { return v.Type }).(pulumi.StringOutput) + ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput + ToRestorePolicyPropertiesPtrOutputWithContext(context.Context) RestorePolicyPropertiesPtrOutput } -type PrivateEndpointConnectionResponseArrayOutput struct{ *pulumi.OutputState } - -func (PrivateEndpointConnectionResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]PrivateEndpointConnectionResponse)(nil)).Elem() -} +type restorePolicyPropertiesPtrType RestorePolicyPropertiesArgs -func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutput() PrivateEndpointConnectionResponseArrayOutput { - return o +func RestorePolicyPropertiesPtr(v *RestorePolicyPropertiesArgs) RestorePolicyPropertiesPtrInput { + return (*restorePolicyPropertiesPtrType)(v) } -func (o PrivateEndpointConnectionResponseArrayOutput) ToPrivateEndpointConnectionResponseArrayOutputWithContext(ctx context.Context) PrivateEndpointConnectionResponseArrayOutput { - return o +func (*restorePolicyPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePolicyProperties)(nil)).Elem() } -func (o PrivateEndpointConnectionResponseArrayOutput) Index(i pulumi.IntInput) PrivateEndpointConnectionResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) PrivateEndpointConnectionResponse { - return vs[0].([]PrivateEndpointConnectionResponse)[vs[1].(int)] - }).(PrivateEndpointConnectionResponseOutput) +func (i *restorePolicyPropertiesPtrType) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { + return i.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) } -// The Private Endpoint resource. -type PrivateEndpointResponse struct { - // The ARM identifier for Private Endpoint - Id string `pulumi:"id"` +func (i *restorePolicyPropertiesPtrType) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesPtrOutput) } -// The Private Endpoint resource. -type PrivateEndpointResponseOutput struct{ *pulumi.OutputState } +// The blob service properties for blob restore policy +type RestorePolicyPropertiesOutput struct{ *pulumi.OutputState } -func (PrivateEndpointResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateEndpointResponse)(nil)).Elem() +func (RestorePolicyPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePolicyProperties)(nil)).Elem() } -func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutput() PrivateEndpointResponseOutput { +func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput { return o } -func (o PrivateEndpointResponseOutput) ToPrivateEndpointResponseOutputWithContext(ctx context.Context) PrivateEndpointResponseOutput { +func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesOutputWithContext(ctx context.Context) RestorePolicyPropertiesOutput { return o } -// The ARM identifier for Private Endpoint -func (o PrivateEndpointResponseOutput) Id() pulumi.StringOutput { - return o.ApplyT(func(v PrivateEndpointResponse) string { return v.Id }).(pulumi.StringOutput) +func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { + return o.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) } -type PrivateEndpointResponsePtrOutput struct{ *pulumi.OutputState } +func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePolicyProperties) *RestorePolicyProperties { + return &v + }).(RestorePolicyPropertiesPtrOutput) +} -func (PrivateEndpointResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**PrivateEndpointResponse)(nil)).Elem() +// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. +func (o RestorePolicyPropertiesOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v RestorePolicyProperties) *int { return v.Days }).(pulumi.IntPtrOutput) } -func (o PrivateEndpointResponsePtrOutput) ToPrivateEndpointResponsePtrOutput() PrivateEndpointResponsePtrOutput { +// Blob restore is enabled if set to true. +func (o RestorePolicyPropertiesOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v RestorePolicyProperties) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type RestorePolicyPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (RestorePolicyPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePolicyProperties)(nil)).Elem() +} + +func (o RestorePolicyPropertiesPtrOutput) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { return o } -func (o PrivateEndpointResponsePtrOutput) ToPrivateEndpointResponsePtrOutputWithContext(ctx context.Context) PrivateEndpointResponsePtrOutput { +func (o RestorePolicyPropertiesPtrOutput) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { return o } -func (o PrivateEndpointResponsePtrOutput) Elem() PrivateEndpointResponseOutput { - return o.ApplyT(func(v *PrivateEndpointResponse) PrivateEndpointResponse { +func (o RestorePolicyPropertiesPtrOutput) Elem() RestorePolicyPropertiesOutput { + return o.ApplyT(func(v *RestorePolicyProperties) RestorePolicyProperties { if v != nil { return *v } - var ret PrivateEndpointResponse + var ret RestorePolicyProperties return ret - }).(PrivateEndpointResponseOutput) + }).(RestorePolicyPropertiesOutput) } -// The ARM identifier for Private Endpoint -func (o PrivateEndpointResponsePtrOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v *PrivateEndpointResponse) *string { +// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. +func (o RestorePolicyPropertiesPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RestorePolicyProperties) *int { if v == nil { return nil } - return &v.Id - }).(pulumi.StringPtrOutput) -} - -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionState struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionRequired *string `pulumi:"actionRequired"` - // The reason for approval/rejection of the connection. - Description *string `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status *string `pulumi:"status"` -} - -// PrivateLinkServiceConnectionStateInput is an input type that accepts PrivateLinkServiceConnectionStateArgs and PrivateLinkServiceConnectionStateOutput values. -// You can construct a concrete instance of `PrivateLinkServiceConnectionStateInput` via: -// -// PrivateLinkServiceConnectionStateArgs{...} -type PrivateLinkServiceConnectionStateInput interface { - pulumi.Input - - ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput - ToPrivateLinkServiceConnectionStateOutputWithContext(context.Context) PrivateLinkServiceConnectionStateOutput -} - -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateArgs struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionRequired pulumi.StringPtrInput `pulumi:"actionRequired"` - // The reason for approval/rejection of the connection. - Description pulumi.StringPtrInput `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status pulumi.StringPtrInput `pulumi:"status"` -} - -func (PrivateLinkServiceConnectionStateArgs) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() + return v.Days + }).(pulumi.IntPtrOutput) } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { - return i.ToPrivateLinkServiceConnectionStateOutputWithContext(context.Background()) +// Blob restore is enabled if set to true. +func (o RestorePolicyPropertiesPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RestorePolicyProperties) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -func (i PrivateLinkServiceConnectionStateArgs) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { - return pulumi.ToOutputWithContext(ctx, i).(PrivateLinkServiceConnectionStateOutput) +// The blob service properties for blob restore policy +type RestorePolicyPropertiesResponse struct { + // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. + Days *int `pulumi:"days"` + // Blob restore is enabled if set to true. + Enabled bool `pulumi:"enabled"` + // Deprecated in favor of minRestoreTime property. + LastEnabledTime string `pulumi:"lastEnabledTime"` + // Returns the minimum date and time that the restore can be started. + MinRestoreTime string `pulumi:"minRestoreTime"` } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateOutput struct{ *pulumi.OutputState } +// The blob service properties for blob restore policy +type RestorePolicyPropertiesResponseOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStateOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionState)(nil)).Elem() +func (RestorePolicyPropertiesResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RestorePolicyPropertiesResponse)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutput() PrivateLinkServiceConnectionStateOutput { +func (o RestorePolicyPropertiesResponseOutput) ToRestorePolicyPropertiesResponseOutput() RestorePolicyPropertiesResponseOutput { return o } -func (o PrivateLinkServiceConnectionStateOutput) ToPrivateLinkServiceConnectionStateOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateOutput { +func (o RestorePolicyPropertiesResponseOutput) ToRestorePolicyPropertiesResponseOutputWithContext(ctx context.Context) RestorePolicyPropertiesResponseOutput { return o } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStateOutput) ActionRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.ActionRequired }).(pulumi.StringPtrOutput) +// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. +func (o RestorePolicyPropertiesResponseOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v RestorePolicyPropertiesResponse) *int { return v.Days }).(pulumi.IntPtrOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStateOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Description }).(pulumi.StringPtrOutput) +// Blob restore is enabled if set to true. +func (o RestorePolicyPropertiesResponseOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v RestorePolicyPropertiesResponse) bool { return v.Enabled }).(pulumi.BoolOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStateOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionState) *string { return v.Status }).(pulumi.StringPtrOutput) +// Deprecated in favor of minRestoreTime property. +func (o RestorePolicyPropertiesResponseOutput) LastEnabledTime() pulumi.StringOutput { + return o.ApplyT(func(v RestorePolicyPropertiesResponse) string { return v.LastEnabledTime }).(pulumi.StringOutput) } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateResponse struct { - // A message indicating if changes on the service provider require any updates on the consumer. - ActionRequired *string `pulumi:"actionRequired"` - // The reason for approval/rejection of the connection. - Description *string `pulumi:"description"` - // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. - Status *string `pulumi:"status"` +// Returns the minimum date and time that the restore can be started. +func (o RestorePolicyPropertiesResponseOutput) MinRestoreTime() pulumi.StringOutput { + return o.ApplyT(func(v RestorePolicyPropertiesResponse) string { return v.MinRestoreTime }).(pulumi.StringOutput) } -// A collection of information about the state of the connection between service consumer and provider. -type PrivateLinkServiceConnectionStateResponseOutput struct{ *pulumi.OutputState } +type RestorePolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } -func (PrivateLinkServiceConnectionStateResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*PrivateLinkServiceConnectionStateResponse)(nil)).Elem() +func (RestorePolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RestorePolicyPropertiesResponse)(nil)).Elem() } -func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutput() PrivateLinkServiceConnectionStateResponseOutput { +func (o RestorePolicyPropertiesResponsePtrOutput) ToRestorePolicyPropertiesResponsePtrOutput() RestorePolicyPropertiesResponsePtrOutput { return o } -func (o PrivateLinkServiceConnectionStateResponseOutput) ToPrivateLinkServiceConnectionStateResponseOutputWithContext(ctx context.Context) PrivateLinkServiceConnectionStateResponseOutput { +func (o RestorePolicyPropertiesResponsePtrOutput) ToRestorePolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesResponsePtrOutput { return o } -// A message indicating if changes on the service provider require any updates on the consumer. -func (o PrivateLinkServiceConnectionStateResponseOutput) ActionRequired() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.ActionRequired }).(pulumi.StringPtrOutput) +func (o RestorePolicyPropertiesResponsePtrOutput) Elem() RestorePolicyPropertiesResponseOutput { + return o.ApplyT(func(v *RestorePolicyPropertiesResponse) RestorePolicyPropertiesResponse { + if v != nil { + return *v + } + var ret RestorePolicyPropertiesResponse + return ret + }).(RestorePolicyPropertiesResponseOutput) } -// The reason for approval/rejection of the connection. -func (o PrivateLinkServiceConnectionStateResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Description }).(pulumi.StringPtrOutput) +// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. +func (o RestorePolicyPropertiesResponsePtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) } -// Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. -func (o PrivateLinkServiceConnectionStateResponseOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v PrivateLinkServiceConnectionStateResponse) *string { return v.Status }).(pulumi.StringPtrOutput) +// Blob restore is enabled if set to true. +func (o RestorePolicyPropertiesResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) } -// Protocol settings for file service -type ProtocolSettings struct { - // Setting for SMB protocol - Smb *SmbSetting `pulumi:"smb"` +// Deprecated in favor of minRestoreTime property. +func (o RestorePolicyPropertiesResponsePtrOutput) LastEnabledTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.LastEnabledTime + }).(pulumi.StringPtrOutput) } -// ProtocolSettingsInput is an input type that accepts ProtocolSettingsArgs and ProtocolSettingsOutput values. -// You can construct a concrete instance of `ProtocolSettingsInput` via: +// Returns the minimum date and time that the restore can be started. +func (o RestorePolicyPropertiesResponsePtrOutput) MinRestoreTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *string { + if v == nil { + return nil + } + return &v.MinRestoreTime + }).(pulumi.StringPtrOutput) +} + +// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing +type RoutingPreference struct { + // A boolean flag which indicates whether internet routing storage endpoints are to be published + PublishInternetEndpoints *bool `pulumi:"publishInternetEndpoints"` + // A boolean flag which indicates whether microsoft routing storage endpoints are to be published + PublishMicrosoftEndpoints *bool `pulumi:"publishMicrosoftEndpoints"` + // Routing Choice defines the kind of network routing opted by the user. + RoutingChoice *string `pulumi:"routingChoice"` +} + +// RoutingPreferenceInput is an input type that accepts RoutingPreferenceArgs and RoutingPreferenceOutput values. +// You can construct a concrete instance of `RoutingPreferenceInput` via: // -// ProtocolSettingsArgs{...} -type ProtocolSettingsInput interface { +// RoutingPreferenceArgs{...} +type RoutingPreferenceInput interface { pulumi.Input - ToProtocolSettingsOutput() ProtocolSettingsOutput - ToProtocolSettingsOutputWithContext(context.Context) ProtocolSettingsOutput + ToRoutingPreferenceOutput() RoutingPreferenceOutput + ToRoutingPreferenceOutputWithContext(context.Context) RoutingPreferenceOutput } -// Protocol settings for file service -type ProtocolSettingsArgs struct { - // Setting for SMB protocol - Smb SmbSettingPtrInput `pulumi:"smb"` +// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing +type RoutingPreferenceArgs struct { + // A boolean flag which indicates whether internet routing storage endpoints are to be published + PublishInternetEndpoints pulumi.BoolPtrInput `pulumi:"publishInternetEndpoints"` + // A boolean flag which indicates whether microsoft routing storage endpoints are to be published + PublishMicrosoftEndpoints pulumi.BoolPtrInput `pulumi:"publishMicrosoftEndpoints"` + // Routing Choice defines the kind of network routing opted by the user. + RoutingChoice pulumi.StringPtrInput `pulumi:"routingChoice"` } -func (ProtocolSettingsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolSettings)(nil)).Elem() +func (RoutingPreferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPreference)(nil)).Elem() } -func (i ProtocolSettingsArgs) ToProtocolSettingsOutput() ProtocolSettingsOutput { - return i.ToProtocolSettingsOutputWithContext(context.Background()) +func (i RoutingPreferenceArgs) ToRoutingPreferenceOutput() RoutingPreferenceOutput { + return i.ToRoutingPreferenceOutputWithContext(context.Background()) } -func (i ProtocolSettingsArgs) ToProtocolSettingsOutputWithContext(ctx context.Context) ProtocolSettingsOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsOutput) +func (i RoutingPreferenceArgs) ToRoutingPreferenceOutputWithContext(ctx context.Context) RoutingPreferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferenceOutput) } -func (i ProtocolSettingsArgs) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { - return i.ToProtocolSettingsPtrOutputWithContext(context.Background()) +func (i RoutingPreferenceArgs) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { + return i.ToRoutingPreferencePtrOutputWithContext(context.Background()) } -func (i ProtocolSettingsArgs) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsOutput).ToProtocolSettingsPtrOutputWithContext(ctx) +func (i RoutingPreferenceArgs) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferenceOutput).ToRoutingPreferencePtrOutputWithContext(ctx) } -// ProtocolSettingsPtrInput is an input type that accepts ProtocolSettingsArgs, ProtocolSettingsPtr and ProtocolSettingsPtrOutput values. -// You can construct a concrete instance of `ProtocolSettingsPtrInput` via: +// RoutingPreferencePtrInput is an input type that accepts RoutingPreferenceArgs, RoutingPreferencePtr and RoutingPreferencePtrOutput values. +// You can construct a concrete instance of `RoutingPreferencePtrInput` via: // -// ProtocolSettingsArgs{...} +// RoutingPreferenceArgs{...} // // or: // // nil -type ProtocolSettingsPtrInput interface { +type RoutingPreferencePtrInput interface { pulumi.Input - ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput - ToProtocolSettingsPtrOutputWithContext(context.Context) ProtocolSettingsPtrOutput + ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput + ToRoutingPreferencePtrOutputWithContext(context.Context) RoutingPreferencePtrOutput } -type protocolSettingsPtrType ProtocolSettingsArgs +type routingPreferencePtrType RoutingPreferenceArgs -func ProtocolSettingsPtr(v *ProtocolSettingsArgs) ProtocolSettingsPtrInput { - return (*protocolSettingsPtrType)(v) +func RoutingPreferencePtr(v *RoutingPreferenceArgs) RoutingPreferencePtrInput { + return (*routingPreferencePtrType)(v) } -func (*protocolSettingsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ProtocolSettings)(nil)).Elem() +func (*routingPreferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingPreference)(nil)).Elem() } -func (i *protocolSettingsPtrType) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { - return i.ToProtocolSettingsPtrOutputWithContext(context.Background()) +func (i *routingPreferencePtrType) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { + return i.ToRoutingPreferencePtrOutputWithContext(context.Background()) } -func (i *protocolSettingsPtrType) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ProtocolSettingsPtrOutput) +func (i *routingPreferencePtrType) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferencePtrOutput) } -// Protocol settings for file service -type ProtocolSettingsOutput struct{ *pulumi.OutputState } +// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing +type RoutingPreferenceOutput struct{ *pulumi.OutputState } -func (ProtocolSettingsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolSettings)(nil)).Elem() +func (RoutingPreferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPreference)(nil)).Elem() } -func (o ProtocolSettingsOutput) ToProtocolSettingsOutput() ProtocolSettingsOutput { +func (o RoutingPreferenceOutput) ToRoutingPreferenceOutput() RoutingPreferenceOutput { return o } -func (o ProtocolSettingsOutput) ToProtocolSettingsOutputWithContext(ctx context.Context) ProtocolSettingsOutput { +func (o RoutingPreferenceOutput) ToRoutingPreferenceOutputWithContext(ctx context.Context) RoutingPreferenceOutput { return o } -func (o ProtocolSettingsOutput) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { - return o.ToProtocolSettingsPtrOutputWithContext(context.Background()) +func (o RoutingPreferenceOutput) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { + return o.ToRoutingPreferencePtrOutputWithContext(context.Background()) } -func (o ProtocolSettingsOutput) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ProtocolSettings) *ProtocolSettings { +func (o RoutingPreferenceOutput) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingPreference) *RoutingPreference { return &v - }).(ProtocolSettingsPtrOutput) + }).(RoutingPreferencePtrOutput) } -// Setting for SMB protocol -func (o ProtocolSettingsOutput) Smb() SmbSettingPtrOutput { - return o.ApplyT(func(v ProtocolSettings) *SmbSetting { return v.Smb }).(SmbSettingPtrOutput) +// A boolean flag which indicates whether internet routing storage endpoints are to be published +func (o RoutingPreferenceOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RoutingPreference) *bool { return v.PublishInternetEndpoints }).(pulumi.BoolPtrOutput) } -type ProtocolSettingsPtrOutput struct{ *pulumi.OutputState } +// A boolean flag which indicates whether microsoft routing storage endpoints are to be published +func (o RoutingPreferenceOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RoutingPreference) *bool { return v.PublishMicrosoftEndpoints }).(pulumi.BoolPtrOutput) +} -func (ProtocolSettingsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ProtocolSettings)(nil)).Elem() +// Routing Choice defines the kind of network routing opted by the user. +func (o RoutingPreferenceOutput) RoutingChoice() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingPreference) *string { return v.RoutingChoice }).(pulumi.StringPtrOutput) } -func (o ProtocolSettingsPtrOutput) ToProtocolSettingsPtrOutput() ProtocolSettingsPtrOutput { +type RoutingPreferencePtrOutput struct{ *pulumi.OutputState } + +func (RoutingPreferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingPreference)(nil)).Elem() +} + +func (o RoutingPreferencePtrOutput) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { return o } -func (o ProtocolSettingsPtrOutput) ToProtocolSettingsPtrOutputWithContext(ctx context.Context) ProtocolSettingsPtrOutput { +func (o RoutingPreferencePtrOutput) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { return o } -func (o ProtocolSettingsPtrOutput) Elem() ProtocolSettingsOutput { - return o.ApplyT(func(v *ProtocolSettings) ProtocolSettings { +func (o RoutingPreferencePtrOutput) Elem() RoutingPreferenceOutput { + return o.ApplyT(func(v *RoutingPreference) RoutingPreference { if v != nil { return *v } - var ret ProtocolSettings + var ret RoutingPreference return ret - }).(ProtocolSettingsOutput) + }).(RoutingPreferenceOutput) } -// Setting for SMB protocol -func (o ProtocolSettingsPtrOutput) Smb() SmbSettingPtrOutput { - return o.ApplyT(func(v *ProtocolSettings) *SmbSetting { +// A boolean flag which indicates whether internet routing storage endpoints are to be published +func (o RoutingPreferencePtrOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RoutingPreference) *bool { + if v == nil { + return nil + } + return v.PublishInternetEndpoints + }).(pulumi.BoolPtrOutput) +} + +// A boolean flag which indicates whether microsoft routing storage endpoints are to be published +func (o RoutingPreferencePtrOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RoutingPreference) *bool { + if v == nil { + return nil + } + return v.PublishMicrosoftEndpoints + }).(pulumi.BoolPtrOutput) +} + +// Routing Choice defines the kind of network routing opted by the user. +func (o RoutingPreferencePtrOutput) RoutingChoice() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingPreference) *string { if v == nil { return nil } - return v.Smb - }).(SmbSettingPtrOutput) + return v.RoutingChoice + }).(pulumi.StringPtrOutput) } -// Protocol settings for file service -type ProtocolSettingsResponse struct { - // Setting for SMB protocol - Smb *SmbSettingResponse `pulumi:"smb"` +// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing +type RoutingPreferenceResponse struct { + // A boolean flag which indicates whether internet routing storage endpoints are to be published + PublishInternetEndpoints *bool `pulumi:"publishInternetEndpoints"` + // A boolean flag which indicates whether microsoft routing storage endpoints are to be published + PublishMicrosoftEndpoints *bool `pulumi:"publishMicrosoftEndpoints"` + // Routing Choice defines the kind of network routing opted by the user. + RoutingChoice *string `pulumi:"routingChoice"` } -// Protocol settings for file service -type ProtocolSettingsResponseOutput struct{ *pulumi.OutputState } +// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing +type RoutingPreferenceResponseOutput struct{ *pulumi.OutputState } -func (ProtocolSettingsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ProtocolSettingsResponse)(nil)).Elem() +func (RoutingPreferenceResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoutingPreferenceResponse)(nil)).Elem() } -func (o ProtocolSettingsResponseOutput) ToProtocolSettingsResponseOutput() ProtocolSettingsResponseOutput { +func (o RoutingPreferenceResponseOutput) ToRoutingPreferenceResponseOutput() RoutingPreferenceResponseOutput { return o } -func (o ProtocolSettingsResponseOutput) ToProtocolSettingsResponseOutputWithContext(ctx context.Context) ProtocolSettingsResponseOutput { +func (o RoutingPreferenceResponseOutput) ToRoutingPreferenceResponseOutputWithContext(ctx context.Context) RoutingPreferenceResponseOutput { return o } -// Setting for SMB protocol -func (o ProtocolSettingsResponseOutput) Smb() SmbSettingResponsePtrOutput { - return o.ApplyT(func(v ProtocolSettingsResponse) *SmbSettingResponse { return v.Smb }).(SmbSettingResponsePtrOutput) +// A boolean flag which indicates whether internet routing storage endpoints are to be published +func (o RoutingPreferenceResponseOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RoutingPreferenceResponse) *bool { return v.PublishInternetEndpoints }).(pulumi.BoolPtrOutput) } -type ProtocolSettingsResponsePtrOutput struct{ *pulumi.OutputState } +// A boolean flag which indicates whether microsoft routing storage endpoints are to be published +func (o RoutingPreferenceResponseOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RoutingPreferenceResponse) *bool { return v.PublishMicrosoftEndpoints }).(pulumi.BoolPtrOutput) +} -func (ProtocolSettingsResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ProtocolSettingsResponse)(nil)).Elem() +// Routing Choice defines the kind of network routing opted by the user. +func (o RoutingPreferenceResponseOutput) RoutingChoice() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoutingPreferenceResponse) *string { return v.RoutingChoice }).(pulumi.StringPtrOutput) } -func (o ProtocolSettingsResponsePtrOutput) ToProtocolSettingsResponsePtrOutput() ProtocolSettingsResponsePtrOutput { +type RoutingPreferenceResponsePtrOutput struct{ *pulumi.OutputState } + +func (RoutingPreferenceResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoutingPreferenceResponse)(nil)).Elem() +} + +func (o RoutingPreferenceResponsePtrOutput) ToRoutingPreferenceResponsePtrOutput() RoutingPreferenceResponsePtrOutput { return o } -func (o ProtocolSettingsResponsePtrOutput) ToProtocolSettingsResponsePtrOutputWithContext(ctx context.Context) ProtocolSettingsResponsePtrOutput { +func (o RoutingPreferenceResponsePtrOutput) ToRoutingPreferenceResponsePtrOutputWithContext(ctx context.Context) RoutingPreferenceResponsePtrOutput { return o } -func (o ProtocolSettingsResponsePtrOutput) Elem() ProtocolSettingsResponseOutput { - return o.ApplyT(func(v *ProtocolSettingsResponse) ProtocolSettingsResponse { +func (o RoutingPreferenceResponsePtrOutput) Elem() RoutingPreferenceResponseOutput { + return o.ApplyT(func(v *RoutingPreferenceResponse) RoutingPreferenceResponse { if v != nil { return *v } - var ret ProtocolSettingsResponse + var ret RoutingPreferenceResponse return ret - }).(ProtocolSettingsResponseOutput) + }).(RoutingPreferenceResponseOutput) } -// Setting for SMB protocol -func (o ProtocolSettingsResponsePtrOutput) Smb() SmbSettingResponsePtrOutput { - return o.ApplyT(func(v *ProtocolSettingsResponse) *SmbSettingResponse { +// A boolean flag which indicates whether internet routing storage endpoints are to be published +func (o RoutingPreferenceResponsePtrOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RoutingPreferenceResponse) *bool { if v == nil { return nil } - return v.Smb - }).(SmbSettingResponsePtrOutput) + return v.PublishInternetEndpoints + }).(pulumi.BoolPtrOutput) } -// Resource Access Rule. -type ResourceAccessRule struct { - // Resource Id - ResourceId *string `pulumi:"resourceId"` - // Tenant Id - TenantId *string `pulumi:"tenantId"` +// A boolean flag which indicates whether microsoft routing storage endpoints are to be published +func (o RoutingPreferenceResponsePtrOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RoutingPreferenceResponse) *bool { + if v == nil { + return nil + } + return v.PublishMicrosoftEndpoints + }).(pulumi.BoolPtrOutput) } -// ResourceAccessRuleInput is an input type that accepts ResourceAccessRuleArgs and ResourceAccessRuleOutput values. -// You can construct a concrete instance of `ResourceAccessRuleInput` via: -// -// ResourceAccessRuleArgs{...} -type ResourceAccessRuleInput interface { - pulumi.Input - - ToResourceAccessRuleOutput() ResourceAccessRuleOutput - ToResourceAccessRuleOutputWithContext(context.Context) ResourceAccessRuleOutput +// Routing Choice defines the kind of network routing opted by the user. +func (o RoutingPreferenceResponsePtrOutput) RoutingChoice() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoutingPreferenceResponse) *string { + if v == nil { + return nil + } + return v.RoutingChoice + }).(pulumi.StringPtrOutput) } -// Resource Access Rule. -type ResourceAccessRuleArgs struct { - // Resource Id - ResourceId pulumi.StringPtrInput `pulumi:"resourceId"` - // Tenant Id - TenantId pulumi.StringPtrInput `pulumi:"tenantId"` +// SasPolicy assigned to the storage account. +type SasPolicy struct { + // The SAS expiration action. Can only be Log. + ExpirationAction string `pulumi:"expirationAction"` + // The SAS expiration period, DD.HH:MM:SS. + SasExpirationPeriod string `pulumi:"sasExpirationPeriod"` } -func (ResourceAccessRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceAccessRule)(nil)).Elem() +// Defaults sets the appropriate defaults for SasPolicy +func (val *SasPolicy) Defaults() *SasPolicy { + if val == nil { + return nil + } + tmp := *val + if utilities.IsZero(tmp.ExpirationAction) { + tmp.ExpirationAction = "Log" + } + return &tmp } -func (i ResourceAccessRuleArgs) ToResourceAccessRuleOutput() ResourceAccessRuleOutput { - return i.ToResourceAccessRuleOutputWithContext(context.Background()) -} +// SasPolicyInput is an input type that accepts SasPolicyArgs and SasPolicyOutput values. +// You can construct a concrete instance of `SasPolicyInput` via: +// +// SasPolicyArgs{...} +type SasPolicyInput interface { + pulumi.Input -func (i ResourceAccessRuleArgs) ToResourceAccessRuleOutputWithContext(ctx context.Context) ResourceAccessRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourceAccessRuleOutput) + ToSasPolicyOutput() SasPolicyOutput + ToSasPolicyOutputWithContext(context.Context) SasPolicyOutput } -// ResourceAccessRuleArrayInput is an input type that accepts ResourceAccessRuleArray and ResourceAccessRuleArrayOutput values. -// You can construct a concrete instance of `ResourceAccessRuleArrayInput` via: -// -// ResourceAccessRuleArray{ ResourceAccessRuleArgs{...} } -type ResourceAccessRuleArrayInput interface { - pulumi.Input +// SasPolicy assigned to the storage account. +type SasPolicyArgs struct { + // The SAS expiration action. Can only be Log. + ExpirationAction pulumi.StringInput `pulumi:"expirationAction"` + // The SAS expiration period, DD.HH:MM:SS. + SasExpirationPeriod pulumi.StringInput `pulumi:"sasExpirationPeriod"` +} - ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput - ToResourceAccessRuleArrayOutputWithContext(context.Context) ResourceAccessRuleArrayOutput +// Defaults sets the appropriate defaults for SasPolicyArgs +func (val *SasPolicyArgs) Defaults() *SasPolicyArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.ExpirationAction == nil { + tmp.ExpirationAction = pulumi.String("Log") + } + return &tmp +} +func (SasPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SasPolicy)(nil)).Elem() } -type ResourceAccessRuleArray []ResourceAccessRuleInput +func (i SasPolicyArgs) ToSasPolicyOutput() SasPolicyOutput { + return i.ToSasPolicyOutputWithContext(context.Background()) +} -func (ResourceAccessRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourceAccessRule)(nil)).Elem() +func (i SasPolicyArgs) ToSasPolicyOutputWithContext(ctx context.Context) SasPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SasPolicyOutput) } -func (i ResourceAccessRuleArray) ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput { - return i.ToResourceAccessRuleArrayOutputWithContext(context.Background()) +func (i SasPolicyArgs) ToSasPolicyPtrOutput() SasPolicyPtrOutput { + return i.ToSasPolicyPtrOutputWithContext(context.Background()) } -func (i ResourceAccessRuleArray) ToResourceAccessRuleArrayOutputWithContext(ctx context.Context) ResourceAccessRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourceAccessRuleArrayOutput) +func (i SasPolicyArgs) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SasPolicyOutput).ToSasPolicyPtrOutputWithContext(ctx) } -// Resource Access Rule. -type ResourceAccessRuleOutput struct{ *pulumi.OutputState } +// SasPolicyPtrInput is an input type that accepts SasPolicyArgs, SasPolicyPtr and SasPolicyPtrOutput values. +// You can construct a concrete instance of `SasPolicyPtrInput` via: +// +// SasPolicyArgs{...} +// +// or: +// +// nil +type SasPolicyPtrInput interface { + pulumi.Input -func (ResourceAccessRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceAccessRule)(nil)).Elem() + ToSasPolicyPtrOutput() SasPolicyPtrOutput + ToSasPolicyPtrOutputWithContext(context.Context) SasPolicyPtrOutput } -func (o ResourceAccessRuleOutput) ToResourceAccessRuleOutput() ResourceAccessRuleOutput { - return o +type sasPolicyPtrType SasPolicyArgs + +func SasPolicyPtr(v *SasPolicyArgs) SasPolicyPtrInput { + return (*sasPolicyPtrType)(v) } -func (o ResourceAccessRuleOutput) ToResourceAccessRuleOutputWithContext(ctx context.Context) ResourceAccessRuleOutput { - return o +func (*sasPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SasPolicy)(nil)).Elem() } -// Resource Id -func (o ResourceAccessRuleOutput) ResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceAccessRule) *string { return v.ResourceId }).(pulumi.StringPtrOutput) +func (i *sasPolicyPtrType) ToSasPolicyPtrOutput() SasPolicyPtrOutput { + return i.ToSasPolicyPtrOutputWithContext(context.Background()) } -// Tenant Id -func (o ResourceAccessRuleOutput) TenantId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceAccessRule) *string { return v.TenantId }).(pulumi.StringPtrOutput) +func (i *sasPolicyPtrType) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SasPolicyPtrOutput) } -type ResourceAccessRuleArrayOutput struct{ *pulumi.OutputState } +// SasPolicy assigned to the storage account. +type SasPolicyOutput struct{ *pulumi.OutputState } -func (ResourceAccessRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourceAccessRule)(nil)).Elem() +func (SasPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SasPolicy)(nil)).Elem() } -func (o ResourceAccessRuleArrayOutput) ToResourceAccessRuleArrayOutput() ResourceAccessRuleArrayOutput { +func (o SasPolicyOutput) ToSasPolicyOutput() SasPolicyOutput { return o } -func (o ResourceAccessRuleArrayOutput) ToResourceAccessRuleArrayOutputWithContext(ctx context.Context) ResourceAccessRuleArrayOutput { +func (o SasPolicyOutput) ToSasPolicyOutputWithContext(ctx context.Context) SasPolicyOutput { return o } -func (o ResourceAccessRuleArrayOutput) Index(i pulumi.IntInput) ResourceAccessRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceAccessRule { - return vs[0].([]ResourceAccessRule)[vs[1].(int)] - }).(ResourceAccessRuleOutput) +func (o SasPolicyOutput) ToSasPolicyPtrOutput() SasPolicyPtrOutput { + return o.ToSasPolicyPtrOutputWithContext(context.Background()) } -// Resource Access Rule. -type ResourceAccessRuleResponse struct { - // Resource Id - ResourceId *string `pulumi:"resourceId"` - // Tenant Id - TenantId *string `pulumi:"tenantId"` +func (o SasPolicyOutput) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SasPolicy) *SasPolicy { + return &v + }).(SasPolicyPtrOutput) +} + +// The SAS expiration action. Can only be Log. +func (o SasPolicyOutput) ExpirationAction() pulumi.StringOutput { + return o.ApplyT(func(v SasPolicy) string { return v.ExpirationAction }).(pulumi.StringOutput) +} + +// The SAS expiration period, DD.HH:MM:SS. +func (o SasPolicyOutput) SasExpirationPeriod() pulumi.StringOutput { + return o.ApplyT(func(v SasPolicy) string { return v.SasExpirationPeriod }).(pulumi.StringOutput) } -// Resource Access Rule. -type ResourceAccessRuleResponseOutput struct{ *pulumi.OutputState } +type SasPolicyPtrOutput struct{ *pulumi.OutputState } -func (ResourceAccessRuleResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourceAccessRuleResponse)(nil)).Elem() +func (SasPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SasPolicy)(nil)).Elem() } -func (o ResourceAccessRuleResponseOutput) ToResourceAccessRuleResponseOutput() ResourceAccessRuleResponseOutput { +func (o SasPolicyPtrOutput) ToSasPolicyPtrOutput() SasPolicyPtrOutput { return o } -func (o ResourceAccessRuleResponseOutput) ToResourceAccessRuleResponseOutputWithContext(ctx context.Context) ResourceAccessRuleResponseOutput { +func (o SasPolicyPtrOutput) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { return o } -// Resource Id -func (o ResourceAccessRuleResponseOutput) ResourceId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceAccessRuleResponse) *string { return v.ResourceId }).(pulumi.StringPtrOutput) +func (o SasPolicyPtrOutput) Elem() SasPolicyOutput { + return o.ApplyT(func(v *SasPolicy) SasPolicy { + if v != nil { + return *v + } + var ret SasPolicy + return ret + }).(SasPolicyOutput) } -// Tenant Id -func (o ResourceAccessRuleResponseOutput) TenantId() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourceAccessRuleResponse) *string { return v.TenantId }).(pulumi.StringPtrOutput) +// The SAS expiration action. Can only be Log. +func (o SasPolicyPtrOutput) ExpirationAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SasPolicy) *string { + if v == nil { + return nil + } + return &v.ExpirationAction + }).(pulumi.StringPtrOutput) } -type ResourceAccessRuleResponseArrayOutput struct{ *pulumi.OutputState } +// The SAS expiration period, DD.HH:MM:SS. +func (o SasPolicyPtrOutput) SasExpirationPeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SasPolicy) *string { + if v == nil { + return nil + } + return &v.SasExpirationPeriod + }).(pulumi.StringPtrOutput) +} -func (ResourceAccessRuleResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourceAccessRuleResponse)(nil)).Elem() +// SasPolicy assigned to the storage account. +type SasPolicyResponse struct { + // The SAS expiration action. Can only be Log. + ExpirationAction string `pulumi:"expirationAction"` + // The SAS expiration period, DD.HH:MM:SS. + SasExpirationPeriod string `pulumi:"sasExpirationPeriod"` } -func (o ResourceAccessRuleResponseArrayOutput) ToResourceAccessRuleResponseArrayOutput() ResourceAccessRuleResponseArrayOutput { - return o +// Defaults sets the appropriate defaults for SasPolicyResponse +func (val *SasPolicyResponse) Defaults() *SasPolicyResponse { + if val == nil { + return nil + } + tmp := *val + if utilities.IsZero(tmp.ExpirationAction) { + tmp.ExpirationAction = "Log" + } + return &tmp } -func (o ResourceAccessRuleResponseArrayOutput) ToResourceAccessRuleResponseArrayOutputWithContext(ctx context.Context) ResourceAccessRuleResponseArrayOutput { - return o +// SasPolicy assigned to the storage account. +type SasPolicyResponseOutput struct{ *pulumi.OutputState } + +func (SasPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SasPolicyResponse)(nil)).Elem() } -func (o ResourceAccessRuleResponseArrayOutput) Index(i pulumi.IntInput) ResourceAccessRuleResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourceAccessRuleResponse { - return vs[0].([]ResourceAccessRuleResponse)[vs[1].(int)] - }).(ResourceAccessRuleResponseOutput) +func (o SasPolicyResponseOutput) ToSasPolicyResponseOutput() SasPolicyResponseOutput { + return o } -// The blob service properties for blob restore policy -type RestorePolicyProperties struct { - // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. - Days *int `pulumi:"days"` - // Blob restore is enabled if set to true. - Enabled bool `pulumi:"enabled"` +func (o SasPolicyResponseOutput) ToSasPolicyResponseOutputWithContext(ctx context.Context) SasPolicyResponseOutput { + return o } -// RestorePolicyPropertiesInput is an input type that accepts RestorePolicyPropertiesArgs and RestorePolicyPropertiesOutput values. -// You can construct a concrete instance of `RestorePolicyPropertiesInput` via: -// -// RestorePolicyPropertiesArgs{...} -type RestorePolicyPropertiesInput interface { - pulumi.Input +// The SAS expiration action. Can only be Log. +func (o SasPolicyResponseOutput) ExpirationAction() pulumi.StringOutput { + return o.ApplyT(func(v SasPolicyResponse) string { return v.ExpirationAction }).(pulumi.StringOutput) +} - ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput - ToRestorePolicyPropertiesOutputWithContext(context.Context) RestorePolicyPropertiesOutput +// The SAS expiration period, DD.HH:MM:SS. +func (o SasPolicyResponseOutput) SasExpirationPeriod() pulumi.StringOutput { + return o.ApplyT(func(v SasPolicyResponse) string { return v.SasExpirationPeriod }).(pulumi.StringOutput) } -// The blob service properties for blob restore policy -type RestorePolicyPropertiesArgs struct { - // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. - Days pulumi.IntPtrInput `pulumi:"days"` - // Blob restore is enabled if set to true. - Enabled pulumi.BoolInput `pulumi:"enabled"` +type SignedIdentifier struct { + // Access policy + AccessPolicy *AccessPolicy `pulumi:"accessPolicy"` + // An unique identifier of the stored access policy. + Id *string `pulumi:"id"` } -func (RestorePolicyPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RestorePolicyProperties)(nil)).Elem() +// SignedIdentifierInput is an input type that accepts SignedIdentifierArgs and SignedIdentifierOutput values. +// You can construct a concrete instance of `SignedIdentifierInput` via: +// +// SignedIdentifierArgs{...} +type SignedIdentifierInput interface { + pulumi.Input + + ToSignedIdentifierOutput() SignedIdentifierOutput + ToSignedIdentifierOutputWithContext(context.Context) SignedIdentifierOutput } -func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput { - return i.ToRestorePolicyPropertiesOutputWithContext(context.Background()) +type SignedIdentifierArgs struct { + // Access policy + AccessPolicy AccessPolicyPtrInput `pulumi:"accessPolicy"` + // An unique identifier of the stored access policy. + Id pulumi.StringPtrInput `pulumi:"id"` } -func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesOutputWithContext(ctx context.Context) RestorePolicyPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesOutput) +func (SignedIdentifierArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SignedIdentifier)(nil)).Elem() } -func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { - return i.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) +func (i SignedIdentifierArgs) ToSignedIdentifierOutput() SignedIdentifierOutput { + return i.ToSignedIdentifierOutputWithContext(context.Background()) } -func (i RestorePolicyPropertiesArgs) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesOutput).ToRestorePolicyPropertiesPtrOutputWithContext(ctx) +func (i SignedIdentifierArgs) ToSignedIdentifierOutputWithContext(ctx context.Context) SignedIdentifierOutput { + return pulumi.ToOutputWithContext(ctx, i).(SignedIdentifierOutput) } -// RestorePolicyPropertiesPtrInput is an input type that accepts RestorePolicyPropertiesArgs, RestorePolicyPropertiesPtr and RestorePolicyPropertiesPtrOutput values. -// You can construct a concrete instance of `RestorePolicyPropertiesPtrInput` via: -// -// RestorePolicyPropertiesArgs{...} -// -// or: +// SignedIdentifierArrayInput is an input type that accepts SignedIdentifierArray and SignedIdentifierArrayOutput values. +// You can construct a concrete instance of `SignedIdentifierArrayInput` via: // -// nil -type RestorePolicyPropertiesPtrInput interface { +// SignedIdentifierArray{ SignedIdentifierArgs{...} } +type SignedIdentifierArrayInput interface { pulumi.Input - ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput - ToRestorePolicyPropertiesPtrOutputWithContext(context.Context) RestorePolicyPropertiesPtrOutput + ToSignedIdentifierArrayOutput() SignedIdentifierArrayOutput + ToSignedIdentifierArrayOutputWithContext(context.Context) SignedIdentifierArrayOutput } -type restorePolicyPropertiesPtrType RestorePolicyPropertiesArgs - -func RestorePolicyPropertiesPtr(v *RestorePolicyPropertiesArgs) RestorePolicyPropertiesPtrInput { - return (*restorePolicyPropertiesPtrType)(v) -} +type SignedIdentifierArray []SignedIdentifierInput -func (*restorePolicyPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RestorePolicyProperties)(nil)).Elem() +func (SignedIdentifierArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SignedIdentifier)(nil)).Elem() } -func (i *restorePolicyPropertiesPtrType) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { - return i.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) +func (i SignedIdentifierArray) ToSignedIdentifierArrayOutput() SignedIdentifierArrayOutput { + return i.ToSignedIdentifierArrayOutputWithContext(context.Background()) } -func (i *restorePolicyPropertiesPtrType) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RestorePolicyPropertiesPtrOutput) +func (i SignedIdentifierArray) ToSignedIdentifierArrayOutputWithContext(ctx context.Context) SignedIdentifierArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SignedIdentifierArrayOutput) } -// The blob service properties for blob restore policy -type RestorePolicyPropertiesOutput struct{ *pulumi.OutputState } +type SignedIdentifierOutput struct{ *pulumi.OutputState } -func (RestorePolicyPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RestorePolicyProperties)(nil)).Elem() +func (SignedIdentifierOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SignedIdentifier)(nil)).Elem() } -func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesOutput() RestorePolicyPropertiesOutput { +func (o SignedIdentifierOutput) ToSignedIdentifierOutput() SignedIdentifierOutput { return o } -func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesOutputWithContext(ctx context.Context) RestorePolicyPropertiesOutput { +func (o SignedIdentifierOutput) ToSignedIdentifierOutputWithContext(ctx context.Context) SignedIdentifierOutput { return o } -func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { - return o.ToRestorePolicyPropertiesPtrOutputWithContext(context.Background()) +// Access policy +func (o SignedIdentifierOutput) AccessPolicy() AccessPolicyPtrOutput { + return o.ApplyT(func(v SignedIdentifier) *AccessPolicy { return v.AccessPolicy }).(AccessPolicyPtrOutput) } -func (o RestorePolicyPropertiesOutput) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RestorePolicyProperties) *RestorePolicyProperties { - return &v - }).(RestorePolicyPropertiesPtrOutput) +// An unique identifier of the stored access policy. +func (o SignedIdentifierOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SignedIdentifier) *string { return v.Id }).(pulumi.StringPtrOutput) } -// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. -func (o RestorePolicyPropertiesOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v RestorePolicyProperties) *int { return v.Days }).(pulumi.IntPtrOutput) +type SignedIdentifierArrayOutput struct{ *pulumi.OutputState } + +func (SignedIdentifierArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SignedIdentifier)(nil)).Elem() } -// Blob restore is enabled if set to true. -func (o RestorePolicyPropertiesOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v RestorePolicyProperties) bool { return v.Enabled }).(pulumi.BoolOutput) +func (o SignedIdentifierArrayOutput) ToSignedIdentifierArrayOutput() SignedIdentifierArrayOutput { + return o } -type RestorePolicyPropertiesPtrOutput struct{ *pulumi.OutputState } +func (o SignedIdentifierArrayOutput) ToSignedIdentifierArrayOutputWithContext(ctx context.Context) SignedIdentifierArrayOutput { + return o +} -func (RestorePolicyPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RestorePolicyProperties)(nil)).Elem() +func (o SignedIdentifierArrayOutput) Index(i pulumi.IntInput) SignedIdentifierOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SignedIdentifier { + return vs[0].([]SignedIdentifier)[vs[1].(int)] + }).(SignedIdentifierOutput) } -func (o RestorePolicyPropertiesPtrOutput) ToRestorePolicyPropertiesPtrOutput() RestorePolicyPropertiesPtrOutput { - return o +type SignedIdentifierResponse struct { + // Access policy + AccessPolicy *AccessPolicyResponse `pulumi:"accessPolicy"` + // An unique identifier of the stored access policy. + Id *string `pulumi:"id"` } -func (o RestorePolicyPropertiesPtrOutput) ToRestorePolicyPropertiesPtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesPtrOutput { - return o +type SignedIdentifierResponseOutput struct{ *pulumi.OutputState } + +func (SignedIdentifierResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SignedIdentifierResponse)(nil)).Elem() } -func (o RestorePolicyPropertiesPtrOutput) Elem() RestorePolicyPropertiesOutput { - return o.ApplyT(func(v *RestorePolicyProperties) RestorePolicyProperties { - if v != nil { - return *v - } - var ret RestorePolicyProperties - return ret - }).(RestorePolicyPropertiesOutput) +func (o SignedIdentifierResponseOutput) ToSignedIdentifierResponseOutput() SignedIdentifierResponseOutput { + return o } -// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. -func (o RestorePolicyPropertiesPtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RestorePolicyProperties) *int { - if v == nil { - return nil - } - return v.Days - }).(pulumi.IntPtrOutput) +func (o SignedIdentifierResponseOutput) ToSignedIdentifierResponseOutputWithContext(ctx context.Context) SignedIdentifierResponseOutput { + return o } -// Blob restore is enabled if set to true. -func (o RestorePolicyPropertiesPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RestorePolicyProperties) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +// Access policy +func (o SignedIdentifierResponseOutput) AccessPolicy() AccessPolicyResponsePtrOutput { + return o.ApplyT(func(v SignedIdentifierResponse) *AccessPolicyResponse { return v.AccessPolicy }).(AccessPolicyResponsePtrOutput) } -// The blob service properties for blob restore policy -type RestorePolicyPropertiesResponse struct { - // how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. - Days *int `pulumi:"days"` - // Blob restore is enabled if set to true. - Enabled bool `pulumi:"enabled"` - // Deprecated in favor of minRestoreTime property. - LastEnabledTime string `pulumi:"lastEnabledTime"` - // Returns the minimum date and time that the restore can be started. - MinRestoreTime string `pulumi:"minRestoreTime"` +// An unique identifier of the stored access policy. +func (o SignedIdentifierResponseOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v SignedIdentifierResponse) *string { return v.Id }).(pulumi.StringPtrOutput) } -// The blob service properties for blob restore policy -type RestorePolicyPropertiesResponseOutput struct{ *pulumi.OutputState } +type SignedIdentifierResponseArrayOutput struct{ *pulumi.OutputState } -func (RestorePolicyPropertiesResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RestorePolicyPropertiesResponse)(nil)).Elem() +func (SignedIdentifierResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SignedIdentifierResponse)(nil)).Elem() } -func (o RestorePolicyPropertiesResponseOutput) ToRestorePolicyPropertiesResponseOutput() RestorePolicyPropertiesResponseOutput { +func (o SignedIdentifierResponseArrayOutput) ToSignedIdentifierResponseArrayOutput() SignedIdentifierResponseArrayOutput { return o } -func (o RestorePolicyPropertiesResponseOutput) ToRestorePolicyPropertiesResponseOutputWithContext(ctx context.Context) RestorePolicyPropertiesResponseOutput { +func (o SignedIdentifierResponseArrayOutput) ToSignedIdentifierResponseArrayOutputWithContext(ctx context.Context) SignedIdentifierResponseArrayOutput { return o } -// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. -func (o RestorePolicyPropertiesResponseOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v RestorePolicyPropertiesResponse) *int { return v.Days }).(pulumi.IntPtrOutput) +func (o SignedIdentifierResponseArrayOutput) Index(i pulumi.IntInput) SignedIdentifierResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SignedIdentifierResponse { + return vs[0].([]SignedIdentifierResponse)[vs[1].(int)] + }).(SignedIdentifierResponseOutput) } -// Blob restore is enabled if set to true. -func (o RestorePolicyPropertiesResponseOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v RestorePolicyPropertiesResponse) bool { return v.Enabled }).(pulumi.BoolOutput) +// The SKU of the storage account. +type Sku struct { + // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + Name string `pulumi:"name"` } -// Deprecated in favor of minRestoreTime property. -func (o RestorePolicyPropertiesResponseOutput) LastEnabledTime() pulumi.StringOutput { - return o.ApplyT(func(v RestorePolicyPropertiesResponse) string { return v.LastEnabledTime }).(pulumi.StringOutput) +// SkuInput is an input type that accepts SkuArgs and SkuOutput values. +// You can construct a concrete instance of `SkuInput` via: +// +// SkuArgs{...} +type SkuInput interface { + pulumi.Input + + ToSkuOutput() SkuOutput + ToSkuOutputWithContext(context.Context) SkuOutput } -// Returns the minimum date and time that the restore can be started. -func (o RestorePolicyPropertiesResponseOutput) MinRestoreTime() pulumi.StringOutput { - return o.ApplyT(func(v RestorePolicyPropertiesResponse) string { return v.MinRestoreTime }).(pulumi.StringOutput) +// The SKU of the storage account. +type SkuArgs struct { + // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + Name pulumi.StringInput `pulumi:"name"` } -type RestorePolicyPropertiesResponsePtrOutput struct{ *pulumi.OutputState } +func (SkuArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Sku)(nil)).Elem() +} -func (RestorePolicyPropertiesResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RestorePolicyPropertiesResponse)(nil)).Elem() +func (i SkuArgs) ToSkuOutput() SkuOutput { + return i.ToSkuOutputWithContext(context.Background()) +} + +func (i SkuArgs) ToSkuOutputWithContext(ctx context.Context) SkuOutput { + return pulumi.ToOutputWithContext(ctx, i).(SkuOutput) +} + +// The SKU of the storage account. +type SkuOutput struct{ *pulumi.OutputState } + +func (SkuOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Sku)(nil)).Elem() } -func (o RestorePolicyPropertiesResponsePtrOutput) ToRestorePolicyPropertiesResponsePtrOutput() RestorePolicyPropertiesResponsePtrOutput { +func (o SkuOutput) ToSkuOutput() SkuOutput { return o } -func (o RestorePolicyPropertiesResponsePtrOutput) ToRestorePolicyPropertiesResponsePtrOutputWithContext(ctx context.Context) RestorePolicyPropertiesResponsePtrOutput { +func (o SkuOutput) ToSkuOutputWithContext(ctx context.Context) SkuOutput { return o } -func (o RestorePolicyPropertiesResponsePtrOutput) Elem() RestorePolicyPropertiesResponseOutput { - return o.ApplyT(func(v *RestorePolicyPropertiesResponse) RestorePolicyPropertiesResponse { - if v != nil { - return *v - } - var ret RestorePolicyPropertiesResponse - return ret - }).(RestorePolicyPropertiesResponseOutput) +// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. +func (o SkuOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v Sku) string { return v.Name }).(pulumi.StringOutput) } -// how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. -func (o RestorePolicyPropertiesResponsePtrOutput) Days() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *int { - if v == nil { - return nil - } - return v.Days - }).(pulumi.IntPtrOutput) +// The SKU of the storage account. +type SkuResponse struct { + // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + Name string `pulumi:"name"` + // The SKU tier. This is based on the SKU name. + Tier string `pulumi:"tier"` } -// Blob restore is enabled if set to true. -func (o RestorePolicyPropertiesResponsePtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) +// The SKU of the storage account. +type SkuResponseOutput struct{ *pulumi.OutputState } + +func (SkuResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SkuResponse)(nil)).Elem() } -// Deprecated in favor of minRestoreTime property. -func (o RestorePolicyPropertiesResponsePtrOutput) LastEnabledTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *string { - if v == nil { - return nil - } - return &v.LastEnabledTime - }).(pulumi.StringPtrOutput) +func (o SkuResponseOutput) ToSkuResponseOutput() SkuResponseOutput { + return o } -// Returns the minimum date and time that the restore can be started. -func (o RestorePolicyPropertiesResponsePtrOutput) MinRestoreTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RestorePolicyPropertiesResponse) *string { - if v == nil { - return nil - } - return &v.MinRestoreTime - }).(pulumi.StringPtrOutput) +func (o SkuResponseOutput) ToSkuResponseOutputWithContext(ctx context.Context) SkuResponseOutput { + return o } -// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing -type RoutingPreference struct { - // A boolean flag which indicates whether internet routing storage endpoints are to be published - PublishInternetEndpoints *bool `pulumi:"publishInternetEndpoints"` - // A boolean flag which indicates whether microsoft routing storage endpoints are to be published - PublishMicrosoftEndpoints *bool `pulumi:"publishMicrosoftEndpoints"` - // Routing Choice defines the kind of network routing opted by the user. - RoutingChoice *string `pulumi:"routingChoice"` +// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. +func (o SkuResponseOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v SkuResponse) string { return v.Name }).(pulumi.StringOutput) } -// RoutingPreferenceInput is an input type that accepts RoutingPreferenceArgs and RoutingPreferenceOutput values. -// You can construct a concrete instance of `RoutingPreferenceInput` via: +// The SKU tier. This is based on the SKU name. +func (o SkuResponseOutput) Tier() pulumi.StringOutput { + return o.ApplyT(func(v SkuResponse) string { return v.Tier }).(pulumi.StringOutput) +} + +// Setting for SMB protocol +type SmbSetting struct { + // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. + AuthenticationMethods *string `pulumi:"authenticationMethods"` + // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. + ChannelEncryption *string `pulumi:"channelEncryption"` + // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' + KerberosTicketEncryption *string `pulumi:"kerberosTicketEncryption"` + // Multichannel setting. Applies to Premium FileStorage only. + Multichannel *Multichannel `pulumi:"multichannel"` + // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. + Versions *string `pulumi:"versions"` +} + +// SmbSettingInput is an input type that accepts SmbSettingArgs and SmbSettingOutput values. +// You can construct a concrete instance of `SmbSettingInput` via: // -// RoutingPreferenceArgs{...} -type RoutingPreferenceInput interface { +// SmbSettingArgs{...} +type SmbSettingInput interface { pulumi.Input - ToRoutingPreferenceOutput() RoutingPreferenceOutput - ToRoutingPreferenceOutputWithContext(context.Context) RoutingPreferenceOutput + ToSmbSettingOutput() SmbSettingOutput + ToSmbSettingOutputWithContext(context.Context) SmbSettingOutput } -// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing -type RoutingPreferenceArgs struct { - // A boolean flag which indicates whether internet routing storage endpoints are to be published - PublishInternetEndpoints pulumi.BoolPtrInput `pulumi:"publishInternetEndpoints"` - // A boolean flag which indicates whether microsoft routing storage endpoints are to be published - PublishMicrosoftEndpoints pulumi.BoolPtrInput `pulumi:"publishMicrosoftEndpoints"` - // Routing Choice defines the kind of network routing opted by the user. - RoutingChoice pulumi.StringPtrInput `pulumi:"routingChoice"` +// Setting for SMB protocol +type SmbSettingArgs struct { + // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. + AuthenticationMethods pulumi.StringPtrInput `pulumi:"authenticationMethods"` + // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. + ChannelEncryption pulumi.StringPtrInput `pulumi:"channelEncryption"` + // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' + KerberosTicketEncryption pulumi.StringPtrInput `pulumi:"kerberosTicketEncryption"` + // Multichannel setting. Applies to Premium FileStorage only. + Multichannel MultichannelPtrInput `pulumi:"multichannel"` + // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. + Versions pulumi.StringPtrInput `pulumi:"versions"` } -func (RoutingPreferenceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPreference)(nil)).Elem() +func (SmbSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SmbSetting)(nil)).Elem() } -func (i RoutingPreferenceArgs) ToRoutingPreferenceOutput() RoutingPreferenceOutput { - return i.ToRoutingPreferenceOutputWithContext(context.Background()) +func (i SmbSettingArgs) ToSmbSettingOutput() SmbSettingOutput { + return i.ToSmbSettingOutputWithContext(context.Background()) } -func (i RoutingPreferenceArgs) ToRoutingPreferenceOutputWithContext(ctx context.Context) RoutingPreferenceOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferenceOutput) +func (i SmbSettingArgs) ToSmbSettingOutputWithContext(ctx context.Context) SmbSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(SmbSettingOutput) } -func (i RoutingPreferenceArgs) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { - return i.ToRoutingPreferencePtrOutputWithContext(context.Background()) +func (i SmbSettingArgs) ToSmbSettingPtrOutput() SmbSettingPtrOutput { + return i.ToSmbSettingPtrOutputWithContext(context.Background()) } -func (i RoutingPreferenceArgs) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferenceOutput).ToRoutingPreferencePtrOutputWithContext(ctx) +func (i SmbSettingArgs) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SmbSettingOutput).ToSmbSettingPtrOutputWithContext(ctx) } -// RoutingPreferencePtrInput is an input type that accepts RoutingPreferenceArgs, RoutingPreferencePtr and RoutingPreferencePtrOutput values. -// You can construct a concrete instance of `RoutingPreferencePtrInput` via: +// SmbSettingPtrInput is an input type that accepts SmbSettingArgs, SmbSettingPtr and SmbSettingPtrOutput values. +// You can construct a concrete instance of `SmbSettingPtrInput` via: // -// RoutingPreferenceArgs{...} +// SmbSettingArgs{...} // // or: // // nil -type RoutingPreferencePtrInput interface { +type SmbSettingPtrInput interface { pulumi.Input - ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput - ToRoutingPreferencePtrOutputWithContext(context.Context) RoutingPreferencePtrOutput + ToSmbSettingPtrOutput() SmbSettingPtrOutput + ToSmbSettingPtrOutputWithContext(context.Context) SmbSettingPtrOutput } -type routingPreferencePtrType RoutingPreferenceArgs +type smbSettingPtrType SmbSettingArgs -func RoutingPreferencePtr(v *RoutingPreferenceArgs) RoutingPreferencePtrInput { - return (*routingPreferencePtrType)(v) +func SmbSettingPtr(v *SmbSettingArgs) SmbSettingPtrInput { + return (*smbSettingPtrType)(v) } -func (*routingPreferencePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingPreference)(nil)).Elem() +func (*smbSettingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SmbSetting)(nil)).Elem() } -func (i *routingPreferencePtrType) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { - return i.ToRoutingPreferencePtrOutputWithContext(context.Background()) +func (i *smbSettingPtrType) ToSmbSettingPtrOutput() SmbSettingPtrOutput { + return i.ToSmbSettingPtrOutputWithContext(context.Background()) } -func (i *routingPreferencePtrType) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RoutingPreferencePtrOutput) +func (i *smbSettingPtrType) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SmbSettingPtrOutput) } -// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing -type RoutingPreferenceOutput struct{ *pulumi.OutputState } +// Setting for SMB protocol +type SmbSettingOutput struct{ *pulumi.OutputState } -func (RoutingPreferenceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPreference)(nil)).Elem() +func (SmbSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SmbSetting)(nil)).Elem() } -func (o RoutingPreferenceOutput) ToRoutingPreferenceOutput() RoutingPreferenceOutput { +func (o SmbSettingOutput) ToSmbSettingOutput() SmbSettingOutput { return o } -func (o RoutingPreferenceOutput) ToRoutingPreferenceOutputWithContext(ctx context.Context) RoutingPreferenceOutput { +func (o SmbSettingOutput) ToSmbSettingOutputWithContext(ctx context.Context) SmbSettingOutput { return o } -func (o RoutingPreferenceOutput) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { - return o.ToRoutingPreferencePtrOutputWithContext(context.Background()) +func (o SmbSettingOutput) ToSmbSettingPtrOutput() SmbSettingPtrOutput { + return o.ToSmbSettingPtrOutputWithContext(context.Background()) } -func (o RoutingPreferenceOutput) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RoutingPreference) *RoutingPreference { +func (o SmbSettingOutput) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SmbSetting) *SmbSetting { return &v - }).(RoutingPreferencePtrOutput) + }).(SmbSettingPtrOutput) } -// A boolean flag which indicates whether internet routing storage endpoints are to be published -func (o RoutingPreferenceOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RoutingPreference) *bool { return v.PublishInternetEndpoints }).(pulumi.BoolPtrOutput) +// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. +func (o SmbSettingOutput) AuthenticationMethods() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSetting) *string { return v.AuthenticationMethods }).(pulumi.StringPtrOutput) } -// A boolean flag which indicates whether microsoft routing storage endpoints are to be published -func (o RoutingPreferenceOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RoutingPreference) *bool { return v.PublishMicrosoftEndpoints }).(pulumi.BoolPtrOutput) +// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. +func (o SmbSettingOutput) ChannelEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSetting) *string { return v.ChannelEncryption }).(pulumi.StringPtrOutput) } -// Routing Choice defines the kind of network routing opted by the user. -func (o RoutingPreferenceOutput) RoutingChoice() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingPreference) *string { return v.RoutingChoice }).(pulumi.StringPtrOutput) +// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' +func (o SmbSettingOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSetting) *string { return v.KerberosTicketEncryption }).(pulumi.StringPtrOutput) } -type RoutingPreferencePtrOutput struct{ *pulumi.OutputState } +// Multichannel setting. Applies to Premium FileStorage only. +func (o SmbSettingOutput) Multichannel() MultichannelPtrOutput { + return o.ApplyT(func(v SmbSetting) *Multichannel { return v.Multichannel }).(MultichannelPtrOutput) +} -func (RoutingPreferencePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingPreference)(nil)).Elem() +// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. +func (o SmbSettingOutput) Versions() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSetting) *string { return v.Versions }).(pulumi.StringPtrOutput) } -func (o RoutingPreferencePtrOutput) ToRoutingPreferencePtrOutput() RoutingPreferencePtrOutput { +type SmbSettingPtrOutput struct{ *pulumi.OutputState } + +func (SmbSettingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SmbSetting)(nil)).Elem() +} + +func (o SmbSettingPtrOutput) ToSmbSettingPtrOutput() SmbSettingPtrOutput { return o } -func (o RoutingPreferencePtrOutput) ToRoutingPreferencePtrOutputWithContext(ctx context.Context) RoutingPreferencePtrOutput { +func (o SmbSettingPtrOutput) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { return o } -func (o RoutingPreferencePtrOutput) Elem() RoutingPreferenceOutput { - return o.ApplyT(func(v *RoutingPreference) RoutingPreference { +func (o SmbSettingPtrOutput) Elem() SmbSettingOutput { + return o.ApplyT(func(v *SmbSetting) SmbSetting { if v != nil { return *v } - var ret RoutingPreference - return ret - }).(RoutingPreferenceOutput) + var ret SmbSetting + return ret + }).(SmbSettingOutput) +} + +// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. +func (o SmbSettingPtrOutput) AuthenticationMethods() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSetting) *string { + if v == nil { + return nil + } + return v.AuthenticationMethods + }).(pulumi.StringPtrOutput) +} + +// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. +func (o SmbSettingPtrOutput) ChannelEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSetting) *string { + if v == nil { + return nil + } + return v.ChannelEncryption + }).(pulumi.StringPtrOutput) } -// A boolean flag which indicates whether internet routing storage endpoints are to be published -func (o RoutingPreferencePtrOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RoutingPreference) *bool { +// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' +func (o SmbSettingPtrOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSetting) *string { if v == nil { return nil } - return v.PublishInternetEndpoints - }).(pulumi.BoolPtrOutput) + return v.KerberosTicketEncryption + }).(pulumi.StringPtrOutput) } -// A boolean flag which indicates whether microsoft routing storage endpoints are to be published -func (o RoutingPreferencePtrOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RoutingPreference) *bool { +// Multichannel setting. Applies to Premium FileStorage only. +func (o SmbSettingPtrOutput) Multichannel() MultichannelPtrOutput { + return o.ApplyT(func(v *SmbSetting) *Multichannel { if v == nil { return nil } - return v.PublishMicrosoftEndpoints - }).(pulumi.BoolPtrOutput) + return v.Multichannel + }).(MultichannelPtrOutput) } -// Routing Choice defines the kind of network routing opted by the user. -func (o RoutingPreferencePtrOutput) RoutingChoice() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingPreference) *string { +// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. +func (o SmbSettingPtrOutput) Versions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSetting) *string { if v == nil { return nil } - return v.RoutingChoice + return v.Versions }).(pulumi.StringPtrOutput) } -// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing -type RoutingPreferenceResponse struct { - // A boolean flag which indicates whether internet routing storage endpoints are to be published - PublishInternetEndpoints *bool `pulumi:"publishInternetEndpoints"` - // A boolean flag which indicates whether microsoft routing storage endpoints are to be published - PublishMicrosoftEndpoints *bool `pulumi:"publishMicrosoftEndpoints"` - // Routing Choice defines the kind of network routing opted by the user. - RoutingChoice *string `pulumi:"routingChoice"` +// Setting for SMB protocol +type SmbSettingResponse struct { + // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. + AuthenticationMethods *string `pulumi:"authenticationMethods"` + // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. + ChannelEncryption *string `pulumi:"channelEncryption"` + // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' + KerberosTicketEncryption *string `pulumi:"kerberosTicketEncryption"` + // Multichannel setting. Applies to Premium FileStorage only. + Multichannel *MultichannelResponse `pulumi:"multichannel"` + // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. + Versions *string `pulumi:"versions"` } -// Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing -type RoutingPreferenceResponseOutput struct{ *pulumi.OutputState } +// Setting for SMB protocol +type SmbSettingResponseOutput struct{ *pulumi.OutputState } -func (RoutingPreferenceResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RoutingPreferenceResponse)(nil)).Elem() +func (SmbSettingResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SmbSettingResponse)(nil)).Elem() } -func (o RoutingPreferenceResponseOutput) ToRoutingPreferenceResponseOutput() RoutingPreferenceResponseOutput { +func (o SmbSettingResponseOutput) ToSmbSettingResponseOutput() SmbSettingResponseOutput { return o } -func (o RoutingPreferenceResponseOutput) ToRoutingPreferenceResponseOutputWithContext(ctx context.Context) RoutingPreferenceResponseOutput { +func (o SmbSettingResponseOutput) ToSmbSettingResponseOutputWithContext(ctx context.Context) SmbSettingResponseOutput { return o } -// A boolean flag which indicates whether internet routing storage endpoints are to be published -func (o RoutingPreferenceResponseOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RoutingPreferenceResponse) *bool { return v.PublishInternetEndpoints }).(pulumi.BoolPtrOutput) +// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponseOutput) AuthenticationMethods() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSettingResponse) *string { return v.AuthenticationMethods }).(pulumi.StringPtrOutput) } -// A boolean flag which indicates whether microsoft routing storage endpoints are to be published -func (o RoutingPreferenceResponseOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RoutingPreferenceResponse) *bool { return v.PublishMicrosoftEndpoints }).(pulumi.BoolPtrOutput) +// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponseOutput) ChannelEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSettingResponse) *string { return v.ChannelEncryption }).(pulumi.StringPtrOutput) } -// Routing Choice defines the kind of network routing opted by the user. -func (o RoutingPreferenceResponseOutput) RoutingChoice() pulumi.StringPtrOutput { - return o.ApplyT(func(v RoutingPreferenceResponse) *string { return v.RoutingChoice }).(pulumi.StringPtrOutput) +// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' +func (o SmbSettingResponseOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSettingResponse) *string { return v.KerberosTicketEncryption }).(pulumi.StringPtrOutput) } -type RoutingPreferenceResponsePtrOutput struct{ *pulumi.OutputState } +// Multichannel setting. Applies to Premium FileStorage only. +func (o SmbSettingResponseOutput) Multichannel() MultichannelResponsePtrOutput { + return o.ApplyT(func(v SmbSettingResponse) *MultichannelResponse { return v.Multichannel }).(MultichannelResponsePtrOutput) +} -func (RoutingPreferenceResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RoutingPreferenceResponse)(nil)).Elem() +// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponseOutput) Versions() pulumi.StringPtrOutput { + return o.ApplyT(func(v SmbSettingResponse) *string { return v.Versions }).(pulumi.StringPtrOutput) } -func (o RoutingPreferenceResponsePtrOutput) ToRoutingPreferenceResponsePtrOutput() RoutingPreferenceResponsePtrOutput { +type SmbSettingResponsePtrOutput struct{ *pulumi.OutputState } + +func (SmbSettingResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SmbSettingResponse)(nil)).Elem() +} + +func (o SmbSettingResponsePtrOutput) ToSmbSettingResponsePtrOutput() SmbSettingResponsePtrOutput { return o } -func (o RoutingPreferenceResponsePtrOutput) ToRoutingPreferenceResponsePtrOutputWithContext(ctx context.Context) RoutingPreferenceResponsePtrOutput { +func (o SmbSettingResponsePtrOutput) ToSmbSettingResponsePtrOutputWithContext(ctx context.Context) SmbSettingResponsePtrOutput { return o } -func (o RoutingPreferenceResponsePtrOutput) Elem() RoutingPreferenceResponseOutput { - return o.ApplyT(func(v *RoutingPreferenceResponse) RoutingPreferenceResponse { +func (o SmbSettingResponsePtrOutput) Elem() SmbSettingResponseOutput { + return o.ApplyT(func(v *SmbSettingResponse) SmbSettingResponse { if v != nil { return *v } - var ret RoutingPreferenceResponse + var ret SmbSettingResponse return ret - }).(RoutingPreferenceResponseOutput) + }).(SmbSettingResponseOutput) } -// A boolean flag which indicates whether internet routing storage endpoints are to be published -func (o RoutingPreferenceResponsePtrOutput) PublishInternetEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RoutingPreferenceResponse) *bool { +// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponsePtrOutput) AuthenticationMethods() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSettingResponse) *string { if v == nil { return nil } - return v.PublishInternetEndpoints - }).(pulumi.BoolPtrOutput) + return v.AuthenticationMethods + }).(pulumi.StringPtrOutput) } -// A boolean flag which indicates whether microsoft routing storage endpoints are to be published -func (o RoutingPreferenceResponsePtrOutput) PublishMicrosoftEndpoints() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RoutingPreferenceResponse) *bool { +// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponsePtrOutput) ChannelEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSettingResponse) *string { if v == nil { return nil } - return v.PublishMicrosoftEndpoints - }).(pulumi.BoolPtrOutput) + return v.ChannelEncryption + }).(pulumi.StringPtrOutput) } -// Routing Choice defines the kind of network routing opted by the user. -func (o RoutingPreferenceResponsePtrOutput) RoutingChoice() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RoutingPreferenceResponse) *string { +// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' +func (o SmbSettingResponsePtrOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSettingResponse) *string { if v == nil { return nil } - return v.RoutingChoice + return v.KerberosTicketEncryption }).(pulumi.StringPtrOutput) } -// SasPolicy assigned to the storage account. -type SasPolicy struct { - // The SAS expiration action. Can only be Log. - ExpirationAction string `pulumi:"expirationAction"` - // The SAS expiration period, DD.HH:MM:SS. - SasExpirationPeriod string `pulumi:"sasExpirationPeriod"` +// Multichannel setting. Applies to Premium FileStorage only. +func (o SmbSettingResponsePtrOutput) Multichannel() MultichannelResponsePtrOutput { + return o.ApplyT(func(v *SmbSettingResponse) *MultichannelResponse { + if v == nil { + return nil + } + return v.Multichannel + }).(MultichannelResponsePtrOutput) } -// Defaults sets the appropriate defaults for SasPolicy -func (val *SasPolicy) Defaults() *SasPolicy { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.ExpirationAction) { - tmp.ExpirationAction = "Log" - } - return &tmp +// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. +func (o SmbSettingResponsePtrOutput) Versions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SmbSettingResponse) *string { + if v == nil { + return nil + } + return v.Versions + }).(pulumi.StringPtrOutput) } -// SasPolicyInput is an input type that accepts SasPolicyArgs and SasPolicyOutput values. -// You can construct a concrete instance of `SasPolicyInput` via: -// -// SasPolicyArgs{...} -type SasPolicyInput interface { - pulumi.Input - - ToSasPolicyOutput() SasPolicyOutput - ToSasPolicyOutputWithContext(context.Context) SasPolicyOutput +type SshPublicKey struct { + // Optional. It is used to store the function/usage of the key + Description *string `pulumi:"description"` + // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB + Key *string `pulumi:"key"` } -// SasPolicy assigned to the storage account. -type SasPolicyArgs struct { - // The SAS expiration action. Can only be Log. - ExpirationAction pulumi.StringInput `pulumi:"expirationAction"` - // The SAS expiration period, DD.HH:MM:SS. - SasExpirationPeriod pulumi.StringInput `pulumi:"sasExpirationPeriod"` -} +// SshPublicKeyInput is an input type that accepts SshPublicKeyArgs and SshPublicKeyOutput values. +// You can construct a concrete instance of `SshPublicKeyInput` via: +// +// SshPublicKeyArgs{...} +type SshPublicKeyInput interface { + pulumi.Input -// Defaults sets the appropriate defaults for SasPolicyArgs -func (val *SasPolicyArgs) Defaults() *SasPolicyArgs { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.ExpirationAction) { - tmp.ExpirationAction = pulumi.String("Log") - } - return &tmp -} -func (SasPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SasPolicy)(nil)).Elem() + ToSshPublicKeyOutput() SshPublicKeyOutput + ToSshPublicKeyOutputWithContext(context.Context) SshPublicKeyOutput } -func (i SasPolicyArgs) ToSasPolicyOutput() SasPolicyOutput { - return i.ToSasPolicyOutputWithContext(context.Background()) +type SshPublicKeyArgs struct { + // Optional. It is used to store the function/usage of the key + Description pulumi.StringPtrInput `pulumi:"description"` + // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB + Key pulumi.StringPtrInput `pulumi:"key"` } -func (i SasPolicyArgs) ToSasPolicyOutputWithContext(ctx context.Context) SasPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SasPolicyOutput) +func (SshPublicKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SshPublicKey)(nil)).Elem() } -func (i SasPolicyArgs) ToSasPolicyPtrOutput() SasPolicyPtrOutput { - return i.ToSasPolicyPtrOutputWithContext(context.Background()) +func (i SshPublicKeyArgs) ToSshPublicKeyOutput() SshPublicKeyOutput { + return i.ToSshPublicKeyOutputWithContext(context.Background()) } -func (i SasPolicyArgs) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SasPolicyOutput).ToSasPolicyPtrOutputWithContext(ctx) +func (i SshPublicKeyArgs) ToSshPublicKeyOutputWithContext(ctx context.Context) SshPublicKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SshPublicKeyOutput) } -// SasPolicyPtrInput is an input type that accepts SasPolicyArgs, SasPolicyPtr and SasPolicyPtrOutput values. -// You can construct a concrete instance of `SasPolicyPtrInput` via: -// -// SasPolicyArgs{...} -// -// or: +// SshPublicKeyArrayInput is an input type that accepts SshPublicKeyArray and SshPublicKeyArrayOutput values. +// You can construct a concrete instance of `SshPublicKeyArrayInput` via: // -// nil -type SasPolicyPtrInput interface { +// SshPublicKeyArray{ SshPublicKeyArgs{...} } +type SshPublicKeyArrayInput interface { pulumi.Input - ToSasPolicyPtrOutput() SasPolicyPtrOutput - ToSasPolicyPtrOutputWithContext(context.Context) SasPolicyPtrOutput + ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput + ToSshPublicKeyArrayOutputWithContext(context.Context) SshPublicKeyArrayOutput } -type sasPolicyPtrType SasPolicyArgs - -func SasPolicyPtr(v *SasPolicyArgs) SasPolicyPtrInput { - return (*sasPolicyPtrType)(v) -} +type SshPublicKeyArray []SshPublicKeyInput -func (*sasPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SasPolicy)(nil)).Elem() +func (SshPublicKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SshPublicKey)(nil)).Elem() } -func (i *sasPolicyPtrType) ToSasPolicyPtrOutput() SasPolicyPtrOutput { - return i.ToSasPolicyPtrOutputWithContext(context.Background()) +func (i SshPublicKeyArray) ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput { + return i.ToSshPublicKeyArrayOutputWithContext(context.Background()) } -func (i *sasPolicyPtrType) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SasPolicyPtrOutput) +func (i SshPublicKeyArray) ToSshPublicKeyArrayOutputWithContext(ctx context.Context) SshPublicKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SshPublicKeyArrayOutput) } -// SasPolicy assigned to the storage account. -type SasPolicyOutput struct{ *pulumi.OutputState } +type SshPublicKeyOutput struct{ *pulumi.OutputState } -func (SasPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SasPolicy)(nil)).Elem() +func (SshPublicKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SshPublicKey)(nil)).Elem() } -func (o SasPolicyOutput) ToSasPolicyOutput() SasPolicyOutput { +func (o SshPublicKeyOutput) ToSshPublicKeyOutput() SshPublicKeyOutput { return o } -func (o SasPolicyOutput) ToSasPolicyOutputWithContext(ctx context.Context) SasPolicyOutput { +func (o SshPublicKeyOutput) ToSshPublicKeyOutputWithContext(ctx context.Context) SshPublicKeyOutput { return o } -func (o SasPolicyOutput) ToSasPolicyPtrOutput() SasPolicyPtrOutput { - return o.ToSasPolicyPtrOutputWithContext(context.Background()) +// Optional. It is used to store the function/usage of the key +func (o SshPublicKeyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SshPublicKey) *string { return v.Description }).(pulumi.StringPtrOutput) } -func (o SasPolicyOutput) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SasPolicy) *SasPolicy { - return &v - }).(SasPolicyPtrOutput) +// Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB +func (o SshPublicKeyOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v SshPublicKey) *string { return v.Key }).(pulumi.StringPtrOutput) } -// The SAS expiration action. Can only be Log. -func (o SasPolicyOutput) ExpirationAction() pulumi.StringOutput { - return o.ApplyT(func(v SasPolicy) string { return v.ExpirationAction }).(pulumi.StringOutput) -} +type SshPublicKeyArrayOutput struct{ *pulumi.OutputState } -// The SAS expiration period, DD.HH:MM:SS. -func (o SasPolicyOutput) SasExpirationPeriod() pulumi.StringOutput { - return o.ApplyT(func(v SasPolicy) string { return v.SasExpirationPeriod }).(pulumi.StringOutput) +func (SshPublicKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SshPublicKey)(nil)).Elem() } -type SasPolicyPtrOutput struct{ *pulumi.OutputState } - -func (SasPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SasPolicy)(nil)).Elem() +func (o SshPublicKeyArrayOutput) ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput { + return o } -func (o SasPolicyPtrOutput) ToSasPolicyPtrOutput() SasPolicyPtrOutput { +func (o SshPublicKeyArrayOutput) ToSshPublicKeyArrayOutputWithContext(ctx context.Context) SshPublicKeyArrayOutput { return o } -func (o SasPolicyPtrOutput) ToSasPolicyPtrOutputWithContext(ctx context.Context) SasPolicyPtrOutput { - return o +func (o SshPublicKeyArrayOutput) Index(i pulumi.IntInput) SshPublicKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SshPublicKey { + return vs[0].([]SshPublicKey)[vs[1].(int)] + }).(SshPublicKeyOutput) } -func (o SasPolicyPtrOutput) Elem() SasPolicyOutput { - return o.ApplyT(func(v *SasPolicy) SasPolicy { - if v != nil { - return *v - } - var ret SasPolicy - return ret - }).(SasPolicyOutput) +type SshPublicKeyResponse struct { + // Optional. It is used to store the function/usage of the key + Description *string `pulumi:"description"` + // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB + Key *string `pulumi:"key"` } -// The SAS expiration action. Can only be Log. -func (o SasPolicyPtrOutput) ExpirationAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SasPolicy) *string { - if v == nil { - return nil - } - return &v.ExpirationAction - }).(pulumi.StringPtrOutput) +type SshPublicKeyResponseOutput struct{ *pulumi.OutputState } + +func (SshPublicKeyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SshPublicKeyResponse)(nil)).Elem() } -// The SAS expiration period, DD.HH:MM:SS. -func (o SasPolicyPtrOutput) SasExpirationPeriod() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SasPolicy) *string { - if v == nil { - return nil - } - return &v.SasExpirationPeriod - }).(pulumi.StringPtrOutput) +func (o SshPublicKeyResponseOutput) ToSshPublicKeyResponseOutput() SshPublicKeyResponseOutput { + return o } -// SasPolicy assigned to the storage account. -type SasPolicyResponse struct { - // The SAS expiration action. Can only be Log. - ExpirationAction string `pulumi:"expirationAction"` - // The SAS expiration period, DD.HH:MM:SS. - SasExpirationPeriod string `pulumi:"sasExpirationPeriod"` +func (o SshPublicKeyResponseOutput) ToSshPublicKeyResponseOutputWithContext(ctx context.Context) SshPublicKeyResponseOutput { + return o } -// Defaults sets the appropriate defaults for SasPolicyResponse -func (val *SasPolicyResponse) Defaults() *SasPolicyResponse { - if val == nil { - return nil - } - tmp := *val - if isZero(tmp.ExpirationAction) { - tmp.ExpirationAction = "Log" - } - return &tmp +// Optional. It is used to store the function/usage of the key +func (o SshPublicKeyResponseOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SshPublicKeyResponse) *string { return v.Description }).(pulumi.StringPtrOutput) } -// SasPolicy assigned to the storage account. -type SasPolicyResponseOutput struct{ *pulumi.OutputState } +// Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB +func (o SshPublicKeyResponseOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v SshPublicKeyResponse) *string { return v.Key }).(pulumi.StringPtrOutput) +} -func (SasPolicyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SasPolicyResponse)(nil)).Elem() +type SshPublicKeyResponseArrayOutput struct{ *pulumi.OutputState } + +func (SshPublicKeyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SshPublicKeyResponse)(nil)).Elem() } -func (o SasPolicyResponseOutput) ToSasPolicyResponseOutput() SasPolicyResponseOutput { +func (o SshPublicKeyResponseArrayOutput) ToSshPublicKeyResponseArrayOutput() SshPublicKeyResponseArrayOutput { return o } -func (o SasPolicyResponseOutput) ToSasPolicyResponseOutputWithContext(ctx context.Context) SasPolicyResponseOutput { +func (o SshPublicKeyResponseArrayOutput) ToSshPublicKeyResponseArrayOutputWithContext(ctx context.Context) SshPublicKeyResponseArrayOutput { return o } -// The SAS expiration action. Can only be Log. -func (o SasPolicyResponseOutput) ExpirationAction() pulumi.StringOutput { - return o.ApplyT(func(v SasPolicyResponse) string { return v.ExpirationAction }).(pulumi.StringOutput) +func (o SshPublicKeyResponseArrayOutput) Index(i pulumi.IntInput) SshPublicKeyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SshPublicKeyResponse { + return vs[0].([]SshPublicKeyResponse)[vs[1].(int)] + }).(SshPublicKeyResponseOutput) } -// The SAS expiration period, DD.HH:MM:SS. -func (o SasPolicyResponseOutput) SasExpirationPeriod() pulumi.StringOutput { - return o.ApplyT(func(v SasPolicyResponse) string { return v.SasExpirationPeriod }).(pulumi.StringOutput) +// The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint. +type StorageAccountInternetEndpointsResponse struct { + // Gets the blob endpoint. + Blob string `pulumi:"blob"` + // Gets the dfs endpoint. + Dfs string `pulumi:"dfs"` + // Gets the file endpoint. + File string `pulumi:"file"` + // Gets the web endpoint. + Web string `pulumi:"web"` } -// The SKU of the storage account. -type Sku struct { - // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. - Name string `pulumi:"name"` +// The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint. +type StorageAccountInternetEndpointsResponseOutput struct{ *pulumi.OutputState } + +func (StorageAccountInternetEndpointsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageAccountInternetEndpointsResponse)(nil)).Elem() } -// SkuInput is an input type that accepts SkuArgs and SkuOutput values. -// You can construct a concrete instance of `SkuInput` via: -// -// SkuArgs{...} -type SkuInput interface { - pulumi.Input +func (o StorageAccountInternetEndpointsResponseOutput) ToStorageAccountInternetEndpointsResponseOutput() StorageAccountInternetEndpointsResponseOutput { + return o +} - ToSkuOutput() SkuOutput - ToSkuOutputWithContext(context.Context) SkuOutput +func (o StorageAccountInternetEndpointsResponseOutput) ToStorageAccountInternetEndpointsResponseOutputWithContext(ctx context.Context) StorageAccountInternetEndpointsResponseOutput { + return o } -// The SKU of the storage account. -type SkuArgs struct { - // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. - Name pulumi.StringInput `pulumi:"name"` +// Gets the blob endpoint. +func (o StorageAccountInternetEndpointsResponseOutput) Blob() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) } -func (SkuArgs) ElementType() reflect.Type { - return reflect.TypeOf((*Sku)(nil)).Elem() +// Gets the dfs endpoint. +func (o StorageAccountInternetEndpointsResponseOutput) Dfs() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) } -func (i SkuArgs) ToSkuOutput() SkuOutput { - return i.ToSkuOutputWithContext(context.Background()) +// Gets the file endpoint. +func (o StorageAccountInternetEndpointsResponseOutput) File() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.File }).(pulumi.StringOutput) } -func (i SkuArgs) ToSkuOutputWithContext(ctx context.Context) SkuOutput { - return pulumi.ToOutputWithContext(ctx, i).(SkuOutput) +// Gets the web endpoint. +func (o StorageAccountInternetEndpointsResponseOutput) Web() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Web }).(pulumi.StringOutput) } -// The SKU of the storage account. -type SkuOutput struct{ *pulumi.OutputState } +type StorageAccountInternetEndpointsResponsePtrOutput struct{ *pulumi.OutputState } -func (SkuOutput) ElementType() reflect.Type { - return reflect.TypeOf((*Sku)(nil)).Elem() +func (StorageAccountInternetEndpointsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageAccountInternetEndpointsResponse)(nil)).Elem() } -func (o SkuOutput) ToSkuOutput() SkuOutput { +func (o StorageAccountInternetEndpointsResponsePtrOutput) ToStorageAccountInternetEndpointsResponsePtrOutput() StorageAccountInternetEndpointsResponsePtrOutput { return o } -func (o SkuOutput) ToSkuOutputWithContext(ctx context.Context) SkuOutput { +func (o StorageAccountInternetEndpointsResponsePtrOutput) ToStorageAccountInternetEndpointsResponsePtrOutputWithContext(ctx context.Context) StorageAccountInternetEndpointsResponsePtrOutput { return o } -// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. -func (o SkuOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v Sku) string { return v.Name }).(pulumi.StringOutput) -} - -// The SKU of the storage account. -type SkuResponse struct { - // The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. - Name string `pulumi:"name"` - // The SKU tier. This is based on the SKU name. - Tier string `pulumi:"tier"` -} - -// The SKU of the storage account. -type SkuResponseOutput struct{ *pulumi.OutputState } - -func (SkuResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SkuResponse)(nil)).Elem() +func (o StorageAccountInternetEndpointsResponsePtrOutput) Elem() StorageAccountInternetEndpointsResponseOutput { + return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) StorageAccountInternetEndpointsResponse { + if v != nil { + return *v + } + var ret StorageAccountInternetEndpointsResponse + return ret + }).(StorageAccountInternetEndpointsResponseOutput) } -func (o SkuResponseOutput) ToSkuResponseOutput() SkuResponseOutput { - return o +// Gets the blob endpoint. +func (o StorageAccountInternetEndpointsResponsePtrOutput) Blob() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { + if v == nil { + return nil + } + return &v.Blob + }).(pulumi.StringPtrOutput) } -func (o SkuResponseOutput) ToSkuResponseOutputWithContext(ctx context.Context) SkuResponseOutput { - return o +// Gets the dfs endpoint. +func (o StorageAccountInternetEndpointsResponsePtrOutput) Dfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { + if v == nil { + return nil + } + return &v.Dfs + }).(pulumi.StringPtrOutput) } - -// The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. -func (o SkuResponseOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v SkuResponse) string { return v.Name }).(pulumi.StringOutput) + +// Gets the file endpoint. +func (o StorageAccountInternetEndpointsResponsePtrOutput) File() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { + if v == nil { + return nil + } + return &v.File + }).(pulumi.StringPtrOutput) } -// The SKU tier. This is based on the SKU name. -func (o SkuResponseOutput) Tier() pulumi.StringOutput { - return o.ApplyT(func(v SkuResponse) string { return v.Tier }).(pulumi.StringOutput) +// Gets the web endpoint. +func (o StorageAccountInternetEndpointsResponsePtrOutput) Web() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { + if v == nil { + return nil + } + return &v.Web + }).(pulumi.StringPtrOutput) } -// Setting for SMB protocol -type SmbSetting struct { - // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. - AuthenticationMethods *string `pulumi:"authenticationMethods"` - // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. - ChannelEncryption *string `pulumi:"channelEncryption"` - // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' - KerberosTicketEncryption *string `pulumi:"kerberosTicketEncryption"` - // Multichannel setting. Applies to Premium FileStorage only. - Multichannel *Multichannel `pulumi:"multichannel"` - // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. - Versions *string `pulumi:"versions"` +// An access key for the storage account. +type StorageAccountKeyResponse struct { + // Creation time of the key, in round trip date format. + CreationTime string `pulumi:"creationTime"` + // Name of the key. + KeyName string `pulumi:"keyName"` + // Permissions for the key -- read-only or full permissions. + Permissions string `pulumi:"permissions"` + // Base 64-encoded value of the key. + Value string `pulumi:"value"` } -// SmbSettingInput is an input type that accepts SmbSettingArgs and SmbSettingOutput values. -// You can construct a concrete instance of `SmbSettingInput` via: -// -// SmbSettingArgs{...} -type SmbSettingInput interface { - pulumi.Input +// An access key for the storage account. +type StorageAccountKeyResponseOutput struct{ *pulumi.OutputState } - ToSmbSettingOutput() SmbSettingOutput - ToSmbSettingOutputWithContext(context.Context) SmbSettingOutput +func (StorageAccountKeyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageAccountKeyResponse)(nil)).Elem() } -// Setting for SMB protocol -type SmbSettingArgs struct { - // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. - AuthenticationMethods pulumi.StringPtrInput `pulumi:"authenticationMethods"` - // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. - ChannelEncryption pulumi.StringPtrInput `pulumi:"channelEncryption"` - // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' - KerberosTicketEncryption pulumi.StringPtrInput `pulumi:"kerberosTicketEncryption"` - // Multichannel setting. Applies to Premium FileStorage only. - Multichannel MultichannelPtrInput `pulumi:"multichannel"` - // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. - Versions pulumi.StringPtrInput `pulumi:"versions"` +func (o StorageAccountKeyResponseOutput) ToStorageAccountKeyResponseOutput() StorageAccountKeyResponseOutput { + return o } -func (SmbSettingArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SmbSetting)(nil)).Elem() +func (o StorageAccountKeyResponseOutput) ToStorageAccountKeyResponseOutputWithContext(ctx context.Context) StorageAccountKeyResponseOutput { + return o } -func (i SmbSettingArgs) ToSmbSettingOutput() SmbSettingOutput { - return i.ToSmbSettingOutputWithContext(context.Background()) +// Creation time of the key, in round trip date format. +func (o StorageAccountKeyResponseOutput) CreationTime() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.CreationTime }).(pulumi.StringOutput) } -func (i SmbSettingArgs) ToSmbSettingOutputWithContext(ctx context.Context) SmbSettingOutput { - return pulumi.ToOutputWithContext(ctx, i).(SmbSettingOutput) +// Name of the key. +func (o StorageAccountKeyResponseOutput) KeyName() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.KeyName }).(pulumi.StringOutput) } -func (i SmbSettingArgs) ToSmbSettingPtrOutput() SmbSettingPtrOutput { - return i.ToSmbSettingPtrOutputWithContext(context.Background()) +// Permissions for the key -- read-only or full permissions. +func (o StorageAccountKeyResponseOutput) Permissions() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.Permissions }).(pulumi.StringOutput) } -func (i SmbSettingArgs) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SmbSettingOutput).ToSmbSettingPtrOutputWithContext(ctx) +// Base 64-encoded value of the key. +func (o StorageAccountKeyResponseOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.Value }).(pulumi.StringOutput) } -// SmbSettingPtrInput is an input type that accepts SmbSettingArgs, SmbSettingPtr and SmbSettingPtrOutput values. -// You can construct a concrete instance of `SmbSettingPtrInput` via: -// -// SmbSettingArgs{...} -// -// or: -// -// nil -type SmbSettingPtrInput interface { - pulumi.Input +type StorageAccountKeyResponseArrayOutput struct{ *pulumi.OutputState } - ToSmbSettingPtrOutput() SmbSettingPtrOutput - ToSmbSettingPtrOutputWithContext(context.Context) SmbSettingPtrOutput +func (StorageAccountKeyResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]StorageAccountKeyResponse)(nil)).Elem() } -type smbSettingPtrType SmbSettingArgs - -func SmbSettingPtr(v *SmbSettingArgs) SmbSettingPtrInput { - return (*smbSettingPtrType)(v) +func (o StorageAccountKeyResponseArrayOutput) ToStorageAccountKeyResponseArrayOutput() StorageAccountKeyResponseArrayOutput { + return o } -func (*smbSettingPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SmbSetting)(nil)).Elem() +func (o StorageAccountKeyResponseArrayOutput) ToStorageAccountKeyResponseArrayOutputWithContext(ctx context.Context) StorageAccountKeyResponseArrayOutput { + return o } -func (i *smbSettingPtrType) ToSmbSettingPtrOutput() SmbSettingPtrOutput { - return i.ToSmbSettingPtrOutputWithContext(context.Background()) +func (o StorageAccountKeyResponseArrayOutput) Index(i pulumi.IntInput) StorageAccountKeyResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) StorageAccountKeyResponse { + return vs[0].([]StorageAccountKeyResponse)[vs[1].(int)] + }).(StorageAccountKeyResponseOutput) } -func (i *smbSettingPtrType) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SmbSettingPtrOutput) +// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint. +type StorageAccountMicrosoftEndpointsResponse struct { + // Gets the blob endpoint. + Blob string `pulumi:"blob"` + // Gets the dfs endpoint. + Dfs string `pulumi:"dfs"` + // Gets the file endpoint. + File string `pulumi:"file"` + // Gets the queue endpoint. + Queue string `pulumi:"queue"` + // Gets the table endpoint. + Table string `pulumi:"table"` + // Gets the web endpoint. + Web string `pulumi:"web"` } -// Setting for SMB protocol -type SmbSettingOutput struct{ *pulumi.OutputState } +// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint. +type StorageAccountMicrosoftEndpointsResponseOutput struct{ *pulumi.OutputState } -func (SmbSettingOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SmbSetting)(nil)).Elem() +func (StorageAccountMicrosoftEndpointsResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageAccountMicrosoftEndpointsResponse)(nil)).Elem() } -func (o SmbSettingOutput) ToSmbSettingOutput() SmbSettingOutput { +func (o StorageAccountMicrosoftEndpointsResponseOutput) ToStorageAccountMicrosoftEndpointsResponseOutput() StorageAccountMicrosoftEndpointsResponseOutput { return o } -func (o SmbSettingOutput) ToSmbSettingOutputWithContext(ctx context.Context) SmbSettingOutput { +func (o StorageAccountMicrosoftEndpointsResponseOutput) ToStorageAccountMicrosoftEndpointsResponseOutputWithContext(ctx context.Context) StorageAccountMicrosoftEndpointsResponseOutput { return o } -func (o SmbSettingOutput) ToSmbSettingPtrOutput() SmbSettingPtrOutput { - return o.ToSmbSettingPtrOutputWithContext(context.Background()) -} - -func (o SmbSettingOutput) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SmbSetting) *SmbSetting { - return &v - }).(SmbSettingPtrOutput) +// Gets the blob endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) Blob() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) } -// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. -func (o SmbSettingOutput) AuthenticationMethods() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSetting) *string { return v.AuthenticationMethods }).(pulumi.StringPtrOutput) +// Gets the dfs endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) Dfs() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) } -// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. -func (o SmbSettingOutput) ChannelEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSetting) *string { return v.ChannelEncryption }).(pulumi.StringPtrOutput) +// Gets the file endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) File() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.File }).(pulumi.StringOutput) } -// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' -func (o SmbSettingOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSetting) *string { return v.KerberosTicketEncryption }).(pulumi.StringPtrOutput) +// Gets the queue endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) Queue() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Queue }).(pulumi.StringOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -func (o SmbSettingOutput) Multichannel() MultichannelPtrOutput { - return o.ApplyT(func(v SmbSetting) *Multichannel { return v.Multichannel }).(MultichannelPtrOutput) +// Gets the table endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) Table() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Table }).(pulumi.StringOutput) } -// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. -func (o SmbSettingOutput) Versions() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSetting) *string { return v.Versions }).(pulumi.StringPtrOutput) +// Gets the web endpoint. +func (o StorageAccountMicrosoftEndpointsResponseOutput) Web() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Web }).(pulumi.StringOutput) } -type SmbSettingPtrOutput struct{ *pulumi.OutputState } +type StorageAccountMicrosoftEndpointsResponsePtrOutput struct{ *pulumi.OutputState } -func (SmbSettingPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SmbSetting)(nil)).Elem() +func (StorageAccountMicrosoftEndpointsResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageAccountMicrosoftEndpointsResponse)(nil)).Elem() } -func (o SmbSettingPtrOutput) ToSmbSettingPtrOutput() SmbSettingPtrOutput { +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) ToStorageAccountMicrosoftEndpointsResponsePtrOutput() StorageAccountMicrosoftEndpointsResponsePtrOutput { return o } -func (o SmbSettingPtrOutput) ToSmbSettingPtrOutputWithContext(ctx context.Context) SmbSettingPtrOutput { +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) ToStorageAccountMicrosoftEndpointsResponsePtrOutputWithContext(ctx context.Context) StorageAccountMicrosoftEndpointsResponsePtrOutput { return o } -func (o SmbSettingPtrOutput) Elem() SmbSettingOutput { - return o.ApplyT(func(v *SmbSetting) SmbSetting { +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Elem() StorageAccountMicrosoftEndpointsResponseOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) StorageAccountMicrosoftEndpointsResponse { if v != nil { return *v } - var ret SmbSetting + var ret StorageAccountMicrosoftEndpointsResponse return ret - }).(SmbSettingOutput) + }).(StorageAccountMicrosoftEndpointsResponseOutput) } -// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. -func (o SmbSettingPtrOutput) AuthenticationMethods() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSetting) *string { +// Gets the blob endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Blob() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { if v == nil { return nil } - return v.AuthenticationMethods + return &v.Blob }).(pulumi.StringPtrOutput) } -// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. -func (o SmbSettingPtrOutput) ChannelEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSetting) *string { +// Gets the dfs endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Dfs() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { if v == nil { return nil } - return v.ChannelEncryption + return &v.Dfs }).(pulumi.StringPtrOutput) } -// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' -func (o SmbSettingPtrOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSetting) *string { +// Gets the file endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) File() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { if v == nil { return nil } - return v.KerberosTicketEncryption + return &v.File }).(pulumi.StringPtrOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -func (o SmbSettingPtrOutput) Multichannel() MultichannelPtrOutput { - return o.ApplyT(func(v *SmbSetting) *Multichannel { +// Gets the queue endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Queue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { if v == nil { return nil } - return v.Multichannel - }).(MultichannelPtrOutput) + return &v.Queue + }).(pulumi.StringPtrOutput) } -// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. -func (o SmbSettingPtrOutput) Versions() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSetting) *string { +// Gets the table endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Table() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { + if v == nil { + return nil + } + return &v.Table + }).(pulumi.StringPtrOutput) +} + +// Gets the web endpoint. +func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Web() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { if v == nil { return nil } - return v.Versions + return &v.Web }).(pulumi.StringPtrOutput) } -// Setting for SMB protocol -type SmbSettingResponse struct { - // SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. - AuthenticationMethods *string `pulumi:"authenticationMethods"` - // SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. - ChannelEncryption *string `pulumi:"channelEncryption"` - // Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' - KerberosTicketEncryption *string `pulumi:"kerberosTicketEncryption"` - // Multichannel setting. Applies to Premium FileStorage only. - Multichannel *MultichannelResponse `pulumi:"multichannel"` - // SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. - Versions *string `pulumi:"versions"` +// This defines the sku conversion status object for asynchronous sku conversions. +type StorageAccountSkuConversionStatusResponse struct { + // This property represents the sku conversion end time. + EndTime string `pulumi:"endTime"` + // This property indicates the current sku conversion status. + SkuConversionStatus string `pulumi:"skuConversionStatus"` + // This property represents the sku conversion start time. + StartTime string `pulumi:"startTime"` + // This property represents the target sku name to which the account sku is being converted asynchronously. + TargetSkuName *string `pulumi:"targetSkuName"` } -// Setting for SMB protocol -type SmbSettingResponseOutput struct{ *pulumi.OutputState } +// This defines the sku conversion status object for asynchronous sku conversions. +type StorageAccountSkuConversionStatusResponseOutput struct{ *pulumi.OutputState } -func (SmbSettingResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SmbSettingResponse)(nil)).Elem() +func (StorageAccountSkuConversionStatusResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StorageAccountSkuConversionStatusResponse)(nil)).Elem() } -func (o SmbSettingResponseOutput) ToSmbSettingResponseOutput() SmbSettingResponseOutput { +func (o StorageAccountSkuConversionStatusResponseOutput) ToStorageAccountSkuConversionStatusResponseOutput() StorageAccountSkuConversionStatusResponseOutput { return o } -func (o SmbSettingResponseOutput) ToSmbSettingResponseOutputWithContext(ctx context.Context) SmbSettingResponseOutput { +func (o StorageAccountSkuConversionStatusResponseOutput) ToStorageAccountSkuConversionStatusResponseOutputWithContext(ctx context.Context) StorageAccountSkuConversionStatusResponseOutput { return o } -// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponseOutput) AuthenticationMethods() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSettingResponse) *string { return v.AuthenticationMethods }).(pulumi.StringPtrOutput) -} - -// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponseOutput) ChannelEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSettingResponse) *string { return v.ChannelEncryption }).(pulumi.StringPtrOutput) +// This property represents the sku conversion end time. +func (o StorageAccountSkuConversionStatusResponseOutput) EndTime() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountSkuConversionStatusResponse) string { return v.EndTime }).(pulumi.StringOutput) } -// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' -func (o SmbSettingResponseOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSettingResponse) *string { return v.KerberosTicketEncryption }).(pulumi.StringPtrOutput) +// This property indicates the current sku conversion status. +func (o StorageAccountSkuConversionStatusResponseOutput) SkuConversionStatus() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountSkuConversionStatusResponse) string { return v.SkuConversionStatus }).(pulumi.StringOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -func (o SmbSettingResponseOutput) Multichannel() MultichannelResponsePtrOutput { - return o.ApplyT(func(v SmbSettingResponse) *MultichannelResponse { return v.Multichannel }).(MultichannelResponsePtrOutput) +// This property represents the sku conversion start time. +func (o StorageAccountSkuConversionStatusResponseOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v StorageAccountSkuConversionStatusResponse) string { return v.StartTime }).(pulumi.StringOutput) } -// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponseOutput) Versions() pulumi.StringPtrOutput { - return o.ApplyT(func(v SmbSettingResponse) *string { return v.Versions }).(pulumi.StringPtrOutput) +// This property represents the target sku name to which the account sku is being converted asynchronously. +func (o StorageAccountSkuConversionStatusResponseOutput) TargetSkuName() pulumi.StringPtrOutput { + return o.ApplyT(func(v StorageAccountSkuConversionStatusResponse) *string { return v.TargetSkuName }).(pulumi.StringPtrOutput) } -type SmbSettingResponsePtrOutput struct{ *pulumi.OutputState } +type StorageAccountSkuConversionStatusResponsePtrOutput struct{ *pulumi.OutputState } -func (SmbSettingResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SmbSettingResponse)(nil)).Elem() +func (StorageAccountSkuConversionStatusResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StorageAccountSkuConversionStatusResponse)(nil)).Elem() } -func (o SmbSettingResponsePtrOutput) ToSmbSettingResponsePtrOutput() SmbSettingResponsePtrOutput { +func (o StorageAccountSkuConversionStatusResponsePtrOutput) ToStorageAccountSkuConversionStatusResponsePtrOutput() StorageAccountSkuConversionStatusResponsePtrOutput { return o } -func (o SmbSettingResponsePtrOutput) ToSmbSettingResponsePtrOutputWithContext(ctx context.Context) SmbSettingResponsePtrOutput { +func (o StorageAccountSkuConversionStatusResponsePtrOutput) ToStorageAccountSkuConversionStatusResponsePtrOutputWithContext(ctx context.Context) StorageAccountSkuConversionStatusResponsePtrOutput { return o } -func (o SmbSettingResponsePtrOutput) Elem() SmbSettingResponseOutput { - return o.ApplyT(func(v *SmbSettingResponse) SmbSettingResponse { +func (o StorageAccountSkuConversionStatusResponsePtrOutput) Elem() StorageAccountSkuConversionStatusResponseOutput { + return o.ApplyT(func(v *StorageAccountSkuConversionStatusResponse) StorageAccountSkuConversionStatusResponse { if v != nil { return *v } - var ret SmbSettingResponse + var ret StorageAccountSkuConversionStatusResponse return ret - }).(SmbSettingResponseOutput) + }).(StorageAccountSkuConversionStatusResponseOutput) } -// SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponsePtrOutput) AuthenticationMethods() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSettingResponse) *string { +// This property represents the sku conversion end time. +func (o StorageAccountSkuConversionStatusResponsePtrOutput) EndTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountSkuConversionStatusResponse) *string { if v == nil { return nil } - return v.AuthenticationMethods + return &v.EndTime }).(pulumi.StringPtrOutput) } -// SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponsePtrOutput) ChannelEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSettingResponse) *string { +// This property indicates the current sku conversion status. +func (o StorageAccountSkuConversionStatusResponsePtrOutput) SkuConversionStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountSkuConversionStatusResponse) *string { if v == nil { return nil } - return v.ChannelEncryption + return &v.SkuConversionStatus }).(pulumi.StringPtrOutput) } -// Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' -func (o SmbSettingResponsePtrOutput) KerberosTicketEncryption() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSettingResponse) *string { +// This property represents the sku conversion start time. +func (o StorageAccountSkuConversionStatusResponsePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountSkuConversionStatusResponse) *string { if v == nil { return nil } - return v.KerberosTicketEncryption + return &v.StartTime }).(pulumi.StringPtrOutput) } -// Multichannel setting. Applies to Premium FileStorage only. -func (o SmbSettingResponsePtrOutput) Multichannel() MultichannelResponsePtrOutput { - return o.ApplyT(func(v *SmbSettingResponse) *MultichannelResponse { - if v == nil { - return nil - } - return v.Multichannel - }).(MultichannelResponsePtrOutput) -} - -// SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. -func (o SmbSettingResponsePtrOutput) Versions() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SmbSettingResponse) *string { +// This property represents the target sku name to which the account sku is being converted asynchronously. +func (o StorageAccountSkuConversionStatusResponsePtrOutput) TargetSkuName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccountSkuConversionStatusResponse) *string { if v == nil { return nil } - return v.Versions + return v.TargetSkuName }).(pulumi.StringPtrOutput) } -type SshPublicKey struct { - // Optional. It is used to store the function/usage of the key - Description *string `pulumi:"description"` - // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB - Key *string `pulumi:"key"` -} - -// SshPublicKeyInput is an input type that accepts SshPublicKeyArgs and SshPublicKeyOutput values. -// You can construct a concrete instance of `SshPublicKeyInput` via: -// -// SshPublicKeyArgs{...} -type SshPublicKeyInput interface { - pulumi.Input - - ToSshPublicKeyOutput() SshPublicKeyOutput - ToSshPublicKeyOutputWithContext(context.Context) SshPublicKeyOutput +// Metadata pertaining to creation and last modification of the resource. +type SystemDataResponse struct { + // The timestamp of resource creation (UTC). + CreatedAt *string `pulumi:"createdAt"` + // The identity that created the resource. + CreatedBy *string `pulumi:"createdBy"` + // The type of identity that created the resource. + CreatedByType *string `pulumi:"createdByType"` + // The timestamp of resource last modification (UTC) + LastModifiedAt *string `pulumi:"lastModifiedAt"` + // The identity that last modified the resource. + LastModifiedBy *string `pulumi:"lastModifiedBy"` + // The type of identity that last modified the resource. + LastModifiedByType *string `pulumi:"lastModifiedByType"` } -type SshPublicKeyArgs struct { - // Optional. It is used to store the function/usage of the key - Description pulumi.StringPtrInput `pulumi:"description"` - // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB - Key pulumi.StringPtrInput `pulumi:"key"` -} +// Metadata pertaining to creation and last modification of the resource. +type SystemDataResponseOutput struct{ *pulumi.OutputState } -func (SshPublicKeyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SshPublicKey)(nil)).Elem() +func (SystemDataResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SystemDataResponse)(nil)).Elem() } -func (i SshPublicKeyArgs) ToSshPublicKeyOutput() SshPublicKeyOutput { - return i.ToSshPublicKeyOutputWithContext(context.Background()) +func (o SystemDataResponseOutput) ToSystemDataResponseOutput() SystemDataResponseOutput { + return o } -func (i SshPublicKeyArgs) ToSshPublicKeyOutputWithContext(ctx context.Context) SshPublicKeyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SshPublicKeyOutput) +func (o SystemDataResponseOutput) ToSystemDataResponseOutputWithContext(ctx context.Context) SystemDataResponseOutput { + return o } -// SshPublicKeyArrayInput is an input type that accepts SshPublicKeyArray and SshPublicKeyArrayOutput values. -// You can construct a concrete instance of `SshPublicKeyArrayInput` via: -// -// SshPublicKeyArray{ SshPublicKeyArgs{...} } -type SshPublicKeyArrayInput interface { - pulumi.Input - - ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput - ToSshPublicKeyArrayOutputWithContext(context.Context) SshPublicKeyArrayOutput +// The timestamp of resource creation (UTC). +func (o SystemDataResponseOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) } -type SshPublicKeyArray []SshPublicKeyInput - -func (SshPublicKeyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SshPublicKey)(nil)).Elem() +// The identity that created the resource. +func (o SystemDataResponseOutput) CreatedBy() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedBy }).(pulumi.StringPtrOutput) } -func (i SshPublicKeyArray) ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput { - return i.ToSshPublicKeyArrayOutputWithContext(context.Background()) +// The type of identity that created the resource. +func (o SystemDataResponseOutput) CreatedByType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedByType }).(pulumi.StringPtrOutput) } -func (i SshPublicKeyArray) ToSshPublicKeyArrayOutputWithContext(ctx context.Context) SshPublicKeyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SshPublicKeyArrayOutput) +// The timestamp of resource last modification (UTC) +func (o SystemDataResponseOutput) LastModifiedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedAt }).(pulumi.StringPtrOutput) } -type SshPublicKeyOutput struct{ *pulumi.OutputState } - -func (SshPublicKeyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SshPublicKey)(nil)).Elem() +// The identity that last modified the resource. +func (o SystemDataResponseOutput) LastModifiedBy() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedBy }).(pulumi.StringPtrOutput) } -func (o SshPublicKeyOutput) ToSshPublicKeyOutput() SshPublicKeyOutput { - return o +// The type of identity that last modified the resource. +func (o SystemDataResponseOutput) LastModifiedByType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedByType }).(pulumi.StringPtrOutput) } -func (o SshPublicKeyOutput) ToSshPublicKeyOutputWithContext(ctx context.Context) SshPublicKeyOutput { - return o +// Table Access Policy Properties Object. +type TableAccessPolicy struct { + // Expiry time of the access policy + ExpiryTime *string `pulumi:"expiryTime"` + // Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' + Permission string `pulumi:"permission"` + // Start time of the access policy + StartTime *string `pulumi:"startTime"` } -// Optional. It is used to store the function/usage of the key -func (o SshPublicKeyOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SshPublicKey) *string { return v.Description }).(pulumi.StringPtrOutput) -} +// TableAccessPolicyInput is an input type that accepts TableAccessPolicyArgs and TableAccessPolicyOutput values. +// You can construct a concrete instance of `TableAccessPolicyInput` via: +// +// TableAccessPolicyArgs{...} +type TableAccessPolicyInput interface { + pulumi.Input -// Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB -func (o SshPublicKeyOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v SshPublicKey) *string { return v.Key }).(pulumi.StringPtrOutput) + ToTableAccessPolicyOutput() TableAccessPolicyOutput + ToTableAccessPolicyOutputWithContext(context.Context) TableAccessPolicyOutput } -type SshPublicKeyArrayOutput struct{ *pulumi.OutputState } - -func (SshPublicKeyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SshPublicKey)(nil)).Elem() +// Table Access Policy Properties Object. +type TableAccessPolicyArgs struct { + // Expiry time of the access policy + ExpiryTime pulumi.StringPtrInput `pulumi:"expiryTime"` + // Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' + Permission pulumi.StringInput `pulumi:"permission"` + // Start time of the access policy + StartTime pulumi.StringPtrInput `pulumi:"startTime"` } -func (o SshPublicKeyArrayOutput) ToSshPublicKeyArrayOutput() SshPublicKeyArrayOutput { - return o +func (TableAccessPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TableAccessPolicy)(nil)).Elem() } -func (o SshPublicKeyArrayOutput) ToSshPublicKeyArrayOutputWithContext(ctx context.Context) SshPublicKeyArrayOutput { - return o +func (i TableAccessPolicyArgs) ToTableAccessPolicyOutput() TableAccessPolicyOutput { + return i.ToTableAccessPolicyOutputWithContext(context.Background()) } -func (o SshPublicKeyArrayOutput) Index(i pulumi.IntInput) SshPublicKeyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SshPublicKey { - return vs[0].([]SshPublicKey)[vs[1].(int)] - }).(SshPublicKeyOutput) +func (i TableAccessPolicyArgs) ToTableAccessPolicyOutputWithContext(ctx context.Context) TableAccessPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableAccessPolicyOutput) } -type SshPublicKeyResponse struct { - // Optional. It is used to store the function/usage of the key - Description *string `pulumi:"description"` - // Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB - Key *string `pulumi:"key"` +func (i TableAccessPolicyArgs) ToTableAccessPolicyPtrOutput() TableAccessPolicyPtrOutput { + return i.ToTableAccessPolicyPtrOutputWithContext(context.Background()) } -type SshPublicKeyResponseOutput struct{ *pulumi.OutputState } - -func (SshPublicKeyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SshPublicKeyResponse)(nil)).Elem() +func (i TableAccessPolicyArgs) ToTableAccessPolicyPtrOutputWithContext(ctx context.Context) TableAccessPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableAccessPolicyOutput).ToTableAccessPolicyPtrOutputWithContext(ctx) } -func (o SshPublicKeyResponseOutput) ToSshPublicKeyResponseOutput() SshPublicKeyResponseOutput { - return o -} +// TableAccessPolicyPtrInput is an input type that accepts TableAccessPolicyArgs, TableAccessPolicyPtr and TableAccessPolicyPtrOutput values. +// You can construct a concrete instance of `TableAccessPolicyPtrInput` via: +// +// TableAccessPolicyArgs{...} +// +// or: +// +// nil +type TableAccessPolicyPtrInput interface { + pulumi.Input -func (o SshPublicKeyResponseOutput) ToSshPublicKeyResponseOutputWithContext(ctx context.Context) SshPublicKeyResponseOutput { - return o + ToTableAccessPolicyPtrOutput() TableAccessPolicyPtrOutput + ToTableAccessPolicyPtrOutputWithContext(context.Context) TableAccessPolicyPtrOutput } -// Optional. It is used to store the function/usage of the key -func (o SshPublicKeyResponseOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SshPublicKeyResponse) *string { return v.Description }).(pulumi.StringPtrOutput) -} +type tableAccessPolicyPtrType TableAccessPolicyArgs -// Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB -func (o SshPublicKeyResponseOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v SshPublicKeyResponse) *string { return v.Key }).(pulumi.StringPtrOutput) +func TableAccessPolicyPtr(v *TableAccessPolicyArgs) TableAccessPolicyPtrInput { + return (*tableAccessPolicyPtrType)(v) } -type SshPublicKeyResponseArrayOutput struct{ *pulumi.OutputState } - -func (SshPublicKeyResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SshPublicKeyResponse)(nil)).Elem() +func (*tableAccessPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TableAccessPolicy)(nil)).Elem() } -func (o SshPublicKeyResponseArrayOutput) ToSshPublicKeyResponseArrayOutput() SshPublicKeyResponseArrayOutput { - return o +func (i *tableAccessPolicyPtrType) ToTableAccessPolicyPtrOutput() TableAccessPolicyPtrOutput { + return i.ToTableAccessPolicyPtrOutputWithContext(context.Background()) } -func (o SshPublicKeyResponseArrayOutput) ToSshPublicKeyResponseArrayOutputWithContext(ctx context.Context) SshPublicKeyResponseArrayOutput { - return o +func (i *tableAccessPolicyPtrType) ToTableAccessPolicyPtrOutputWithContext(ctx context.Context) TableAccessPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableAccessPolicyPtrOutput) } -func (o SshPublicKeyResponseArrayOutput) Index(i pulumi.IntInput) SshPublicKeyResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SshPublicKeyResponse { - return vs[0].([]SshPublicKeyResponse)[vs[1].(int)] - }).(SshPublicKeyResponseOutput) -} +// Table Access Policy Properties Object. +type TableAccessPolicyOutput struct{ *pulumi.OutputState } -// The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint. -type StorageAccountInternetEndpointsResponse struct { - // Gets the blob endpoint. - Blob string `pulumi:"blob"` - // Gets the dfs endpoint. - Dfs string `pulumi:"dfs"` - // Gets the file endpoint. - File string `pulumi:"file"` - // Gets the web endpoint. - Web string `pulumi:"web"` +func (TableAccessPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableAccessPolicy)(nil)).Elem() } -// The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint. -type StorageAccountInternetEndpointsResponseOutput struct{ *pulumi.OutputState } - -func (StorageAccountInternetEndpointsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StorageAccountInternetEndpointsResponse)(nil)).Elem() +func (o TableAccessPolicyOutput) ToTableAccessPolicyOutput() TableAccessPolicyOutput { + return o } -func (o StorageAccountInternetEndpointsResponseOutput) ToStorageAccountInternetEndpointsResponseOutput() StorageAccountInternetEndpointsResponseOutput { +func (o TableAccessPolicyOutput) ToTableAccessPolicyOutputWithContext(ctx context.Context) TableAccessPolicyOutput { return o } -func (o StorageAccountInternetEndpointsResponseOutput) ToStorageAccountInternetEndpointsResponseOutputWithContext(ctx context.Context) StorageAccountInternetEndpointsResponseOutput { - return o +func (o TableAccessPolicyOutput) ToTableAccessPolicyPtrOutput() TableAccessPolicyPtrOutput { + return o.ToTableAccessPolicyPtrOutputWithContext(context.Background()) } -// Gets the blob endpoint. -func (o StorageAccountInternetEndpointsResponseOutput) Blob() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) +func (o TableAccessPolicyOutput) ToTableAccessPolicyPtrOutputWithContext(ctx context.Context) TableAccessPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TableAccessPolicy) *TableAccessPolicy { + return &v + }).(TableAccessPolicyPtrOutput) } -// Gets the dfs endpoint. -func (o StorageAccountInternetEndpointsResponseOutput) Dfs() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) +// Expiry time of the access policy +func (o TableAccessPolicyOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v TableAccessPolicy) *string { return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Gets the file endpoint. -func (o StorageAccountInternetEndpointsResponseOutput) File() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.File }).(pulumi.StringOutput) +// Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' +func (o TableAccessPolicyOutput) Permission() pulumi.StringOutput { + return o.ApplyT(func(v TableAccessPolicy) string { return v.Permission }).(pulumi.StringOutput) } -// Gets the web endpoint. -func (o StorageAccountInternetEndpointsResponseOutput) Web() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountInternetEndpointsResponse) string { return v.Web }).(pulumi.StringOutput) +// Start time of the access policy +func (o TableAccessPolicyOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v TableAccessPolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -type StorageAccountInternetEndpointsResponsePtrOutput struct{ *pulumi.OutputState } +type TableAccessPolicyPtrOutput struct{ *pulumi.OutputState } -func (StorageAccountInternetEndpointsResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StorageAccountInternetEndpointsResponse)(nil)).Elem() +func (TableAccessPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TableAccessPolicy)(nil)).Elem() } -func (o StorageAccountInternetEndpointsResponsePtrOutput) ToStorageAccountInternetEndpointsResponsePtrOutput() StorageAccountInternetEndpointsResponsePtrOutput { +func (o TableAccessPolicyPtrOutput) ToTableAccessPolicyPtrOutput() TableAccessPolicyPtrOutput { return o } -func (o StorageAccountInternetEndpointsResponsePtrOutput) ToStorageAccountInternetEndpointsResponsePtrOutputWithContext(ctx context.Context) StorageAccountInternetEndpointsResponsePtrOutput { +func (o TableAccessPolicyPtrOutput) ToTableAccessPolicyPtrOutputWithContext(ctx context.Context) TableAccessPolicyPtrOutput { return o } -func (o StorageAccountInternetEndpointsResponsePtrOutput) Elem() StorageAccountInternetEndpointsResponseOutput { - return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) StorageAccountInternetEndpointsResponse { +func (o TableAccessPolicyPtrOutput) Elem() TableAccessPolicyOutput { + return o.ApplyT(func(v *TableAccessPolicy) TableAccessPolicy { if v != nil { return *v } - var ret StorageAccountInternetEndpointsResponse + var ret TableAccessPolicy return ret - }).(StorageAccountInternetEndpointsResponseOutput) -} - -// Gets the blob endpoint. -func (o StorageAccountInternetEndpointsResponsePtrOutput) Blob() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Blob - }).(pulumi.StringPtrOutput) + }).(TableAccessPolicyOutput) } -// Gets the dfs endpoint. -func (o StorageAccountInternetEndpointsResponsePtrOutput) Dfs() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { +// Expiry time of the access policy +func (o TableAccessPolicyPtrOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicy) *string { if v == nil { return nil } - return &v.Dfs + return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Gets the file endpoint. -func (o StorageAccountInternetEndpointsResponsePtrOutput) File() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { +// Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' +func (o TableAccessPolicyPtrOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicy) *string { if v == nil { return nil } - return &v.File + return &v.Permission }).(pulumi.StringPtrOutput) } -// Gets the web endpoint. -func (o StorageAccountInternetEndpointsResponsePtrOutput) Web() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountInternetEndpointsResponse) *string { +// Start time of the access policy +func (o TableAccessPolicyPtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicy) *string { if v == nil { return nil } - return &v.Web + return v.StartTime }).(pulumi.StringPtrOutput) } -// An access key for the storage account. -type StorageAccountKeyResponse struct { - // Creation time of the key, in round trip date format. - CreationTime string `pulumi:"creationTime"` - // Name of the key. - KeyName string `pulumi:"keyName"` - // Permissions for the key -- read-only or full permissions. - Permissions string `pulumi:"permissions"` - // Base 64-encoded value of the key. - Value string `pulumi:"value"` +// Table Access Policy Properties Object. +type TableAccessPolicyResponse struct { + // Expiry time of the access policy + ExpiryTime *string `pulumi:"expiryTime"` + // Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' + Permission string `pulumi:"permission"` + // Start time of the access policy + StartTime *string `pulumi:"startTime"` } -// An access key for the storage account. -type StorageAccountKeyResponseOutput struct{ *pulumi.OutputState } +// Table Access Policy Properties Object. +type TableAccessPolicyResponseOutput struct{ *pulumi.OutputState } -func (StorageAccountKeyResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StorageAccountKeyResponse)(nil)).Elem() +func (TableAccessPolicyResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableAccessPolicyResponse)(nil)).Elem() } -func (o StorageAccountKeyResponseOutput) ToStorageAccountKeyResponseOutput() StorageAccountKeyResponseOutput { +func (o TableAccessPolicyResponseOutput) ToTableAccessPolicyResponseOutput() TableAccessPolicyResponseOutput { return o } -func (o StorageAccountKeyResponseOutput) ToStorageAccountKeyResponseOutputWithContext(ctx context.Context) StorageAccountKeyResponseOutput { +func (o TableAccessPolicyResponseOutput) ToTableAccessPolicyResponseOutputWithContext(ctx context.Context) TableAccessPolicyResponseOutput { return o } -// Creation time of the key, in round trip date format. -func (o StorageAccountKeyResponseOutput) CreationTime() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.CreationTime }).(pulumi.StringOutput) -} - -// Name of the key. -func (o StorageAccountKeyResponseOutput) KeyName() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.KeyName }).(pulumi.StringOutput) +// Expiry time of the access policy +func (o TableAccessPolicyResponseOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v TableAccessPolicyResponse) *string { return v.ExpiryTime }).(pulumi.StringPtrOutput) } -// Permissions for the key -- read-only or full permissions. -func (o StorageAccountKeyResponseOutput) Permissions() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.Permissions }).(pulumi.StringOutput) +// Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' +func (o TableAccessPolicyResponseOutput) Permission() pulumi.StringOutput { + return o.ApplyT(func(v TableAccessPolicyResponse) string { return v.Permission }).(pulumi.StringOutput) } -// Base 64-encoded value of the key. -func (o StorageAccountKeyResponseOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountKeyResponse) string { return v.Value }).(pulumi.StringOutput) +// Start time of the access policy +func (o TableAccessPolicyResponseOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v TableAccessPolicyResponse) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -type StorageAccountKeyResponseArrayOutput struct{ *pulumi.OutputState } +type TableAccessPolicyResponsePtrOutput struct{ *pulumi.OutputState } -func (StorageAccountKeyResponseArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]StorageAccountKeyResponse)(nil)).Elem() +func (TableAccessPolicyResponsePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TableAccessPolicyResponse)(nil)).Elem() } -func (o StorageAccountKeyResponseArrayOutput) ToStorageAccountKeyResponseArrayOutput() StorageAccountKeyResponseArrayOutput { +func (o TableAccessPolicyResponsePtrOutput) ToTableAccessPolicyResponsePtrOutput() TableAccessPolicyResponsePtrOutput { return o } -func (o StorageAccountKeyResponseArrayOutput) ToStorageAccountKeyResponseArrayOutputWithContext(ctx context.Context) StorageAccountKeyResponseArrayOutput { +func (o TableAccessPolicyResponsePtrOutput) ToTableAccessPolicyResponsePtrOutputWithContext(ctx context.Context) TableAccessPolicyResponsePtrOutput { return o } -func (o StorageAccountKeyResponseArrayOutput) Index(i pulumi.IntInput) StorageAccountKeyResponseOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) StorageAccountKeyResponse { - return vs[0].([]StorageAccountKeyResponse)[vs[1].(int)] - }).(StorageAccountKeyResponseOutput) +func (o TableAccessPolicyResponsePtrOutput) Elem() TableAccessPolicyResponseOutput { + return o.ApplyT(func(v *TableAccessPolicyResponse) TableAccessPolicyResponse { + if v != nil { + return *v + } + var ret TableAccessPolicyResponse + return ret + }).(TableAccessPolicyResponseOutput) } -// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint. -type StorageAccountMicrosoftEndpointsResponse struct { - // Gets the blob endpoint. - Blob string `pulumi:"blob"` - // Gets the dfs endpoint. - Dfs string `pulumi:"dfs"` - // Gets the file endpoint. - File string `pulumi:"file"` - // Gets the queue endpoint. - Queue string `pulumi:"queue"` - // Gets the table endpoint. - Table string `pulumi:"table"` - // Gets the web endpoint. - Web string `pulumi:"web"` +// Expiry time of the access policy +func (o TableAccessPolicyResponsePtrOutput) ExpiryTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicyResponse) *string { + if v == nil { + return nil + } + return v.ExpiryTime + }).(pulumi.StringPtrOutput) } -// The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint. -type StorageAccountMicrosoftEndpointsResponseOutput struct{ *pulumi.OutputState } +// Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' +func (o TableAccessPolicyResponsePtrOutput) Permission() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicyResponse) *string { + if v == nil { + return nil + } + return &v.Permission + }).(pulumi.StringPtrOutput) +} -func (StorageAccountMicrosoftEndpointsResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*StorageAccountMicrosoftEndpointsResponse)(nil)).Elem() +// Start time of the access policy +func (o TableAccessPolicyResponsePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TableAccessPolicyResponse) *string { + if v == nil { + return nil + } + return v.StartTime + }).(pulumi.StringPtrOutput) } -func (o StorageAccountMicrosoftEndpointsResponseOutput) ToStorageAccountMicrosoftEndpointsResponseOutput() StorageAccountMicrosoftEndpointsResponseOutput { - return o +// Object to set Table Access Policy. +type TableSignedIdentifier struct { + // Access policy + AccessPolicy *TableAccessPolicy `pulumi:"accessPolicy"` + // unique-64-character-value of the stored access policy. + Id string `pulumi:"id"` } -func (o StorageAccountMicrosoftEndpointsResponseOutput) ToStorageAccountMicrosoftEndpointsResponseOutputWithContext(ctx context.Context) StorageAccountMicrosoftEndpointsResponseOutput { - return o +// TableSignedIdentifierInput is an input type that accepts TableSignedIdentifierArgs and TableSignedIdentifierOutput values. +// You can construct a concrete instance of `TableSignedIdentifierInput` via: +// +// TableSignedIdentifierArgs{...} +type TableSignedIdentifierInput interface { + pulumi.Input + + ToTableSignedIdentifierOutput() TableSignedIdentifierOutput + ToTableSignedIdentifierOutputWithContext(context.Context) TableSignedIdentifierOutput } -// Gets the blob endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) Blob() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Blob }).(pulumi.StringOutput) +// Object to set Table Access Policy. +type TableSignedIdentifierArgs struct { + // Access policy + AccessPolicy TableAccessPolicyPtrInput `pulumi:"accessPolicy"` + // unique-64-character-value of the stored access policy. + Id pulumi.StringInput `pulumi:"id"` } -// Gets the dfs endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) Dfs() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Dfs }).(pulumi.StringOutput) +func (TableSignedIdentifierArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TableSignedIdentifier)(nil)).Elem() } -// Gets the file endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) File() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.File }).(pulumi.StringOutput) +func (i TableSignedIdentifierArgs) ToTableSignedIdentifierOutput() TableSignedIdentifierOutput { + return i.ToTableSignedIdentifierOutputWithContext(context.Background()) } -// Gets the queue endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) Queue() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Queue }).(pulumi.StringOutput) +func (i TableSignedIdentifierArgs) ToTableSignedIdentifierOutputWithContext(ctx context.Context) TableSignedIdentifierOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableSignedIdentifierOutput) } -// Gets the table endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) Table() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Table }).(pulumi.StringOutput) +// TableSignedIdentifierArrayInput is an input type that accepts TableSignedIdentifierArray and TableSignedIdentifierArrayOutput values. +// You can construct a concrete instance of `TableSignedIdentifierArrayInput` via: +// +// TableSignedIdentifierArray{ TableSignedIdentifierArgs{...} } +type TableSignedIdentifierArrayInput interface { + pulumi.Input + + ToTableSignedIdentifierArrayOutput() TableSignedIdentifierArrayOutput + ToTableSignedIdentifierArrayOutputWithContext(context.Context) TableSignedIdentifierArrayOutput } -// Gets the web endpoint. -func (o StorageAccountMicrosoftEndpointsResponseOutput) Web() pulumi.StringOutput { - return o.ApplyT(func(v StorageAccountMicrosoftEndpointsResponse) string { return v.Web }).(pulumi.StringOutput) +type TableSignedIdentifierArray []TableSignedIdentifierInput + +func (TableSignedIdentifierArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TableSignedIdentifier)(nil)).Elem() } -type StorageAccountMicrosoftEndpointsResponsePtrOutput struct{ *pulumi.OutputState } +func (i TableSignedIdentifierArray) ToTableSignedIdentifierArrayOutput() TableSignedIdentifierArrayOutput { + return i.ToTableSignedIdentifierArrayOutputWithContext(context.Background()) +} -func (StorageAccountMicrosoftEndpointsResponsePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**StorageAccountMicrosoftEndpointsResponse)(nil)).Elem() +func (i TableSignedIdentifierArray) ToTableSignedIdentifierArrayOutputWithContext(ctx context.Context) TableSignedIdentifierArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableSignedIdentifierArrayOutput) } -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) ToStorageAccountMicrosoftEndpointsResponsePtrOutput() StorageAccountMicrosoftEndpointsResponsePtrOutput { - return o +// Object to set Table Access Policy. +type TableSignedIdentifierOutput struct{ *pulumi.OutputState } + +func (TableSignedIdentifierOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableSignedIdentifier)(nil)).Elem() } -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) ToStorageAccountMicrosoftEndpointsResponsePtrOutputWithContext(ctx context.Context) StorageAccountMicrosoftEndpointsResponsePtrOutput { +func (o TableSignedIdentifierOutput) ToTableSignedIdentifierOutput() TableSignedIdentifierOutput { return o } -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Elem() StorageAccountMicrosoftEndpointsResponseOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) StorageAccountMicrosoftEndpointsResponse { - if v != nil { - return *v - } - var ret StorageAccountMicrosoftEndpointsResponse - return ret - }).(StorageAccountMicrosoftEndpointsResponseOutput) +func (o TableSignedIdentifierOutput) ToTableSignedIdentifierOutputWithContext(ctx context.Context) TableSignedIdentifierOutput { + return o } -// Gets the blob endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Blob() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Blob - }).(pulumi.StringPtrOutput) +// Access policy +func (o TableSignedIdentifierOutput) AccessPolicy() TableAccessPolicyPtrOutput { + return o.ApplyT(func(v TableSignedIdentifier) *TableAccessPolicy { return v.AccessPolicy }).(TableAccessPolicyPtrOutput) } -// Gets the dfs endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Dfs() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Dfs - }).(pulumi.StringPtrOutput) +// unique-64-character-value of the stored access policy. +func (o TableSignedIdentifierOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v TableSignedIdentifier) string { return v.Id }).(pulumi.StringOutput) } -// Gets the file endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) File() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.File - }).(pulumi.StringPtrOutput) +type TableSignedIdentifierArrayOutput struct{ *pulumi.OutputState } + +func (TableSignedIdentifierArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TableSignedIdentifier)(nil)).Elem() } -// Gets the queue endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Queue() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Queue - }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierArrayOutput) ToTableSignedIdentifierArrayOutput() TableSignedIdentifierArrayOutput { + return o } -// Gets the table endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Table() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Table - }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierArrayOutput) ToTableSignedIdentifierArrayOutputWithContext(ctx context.Context) TableSignedIdentifierArrayOutput { + return o } -// Gets the web endpoint. -func (o StorageAccountMicrosoftEndpointsResponsePtrOutput) Web() pulumi.StringPtrOutput { - return o.ApplyT(func(v *StorageAccountMicrosoftEndpointsResponse) *string { - if v == nil { - return nil - } - return &v.Web - }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierArrayOutput) Index(i pulumi.IntInput) TableSignedIdentifierOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TableSignedIdentifier { + return vs[0].([]TableSignedIdentifier)[vs[1].(int)] + }).(TableSignedIdentifierOutput) } -// Metadata pertaining to creation and last modification of the resource. -type SystemDataResponse struct { - // The timestamp of resource creation (UTC). - CreatedAt *string `pulumi:"createdAt"` - // The identity that created the resource. - CreatedBy *string `pulumi:"createdBy"` - // The type of identity that created the resource. - CreatedByType *string `pulumi:"createdByType"` - // The timestamp of resource last modification (UTC) - LastModifiedAt *string `pulumi:"lastModifiedAt"` - // The identity that last modified the resource. - LastModifiedBy *string `pulumi:"lastModifiedBy"` - // The type of identity that last modified the resource. - LastModifiedByType *string `pulumi:"lastModifiedByType"` +// Object to set Table Access Policy. +type TableSignedIdentifierResponse struct { + // Access policy + AccessPolicy *TableAccessPolicyResponse `pulumi:"accessPolicy"` + // unique-64-character-value of the stored access policy. + Id string `pulumi:"id"` } -// Metadata pertaining to creation and last modification of the resource. -type SystemDataResponseOutput struct{ *pulumi.OutputState } +// Object to set Table Access Policy. +type TableSignedIdentifierResponseOutput struct{ *pulumi.OutputState } -func (SystemDataResponseOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SystemDataResponse)(nil)).Elem() +func (TableSignedIdentifierResponseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableSignedIdentifierResponse)(nil)).Elem() } -func (o SystemDataResponseOutput) ToSystemDataResponseOutput() SystemDataResponseOutput { +func (o TableSignedIdentifierResponseOutput) ToTableSignedIdentifierResponseOutput() TableSignedIdentifierResponseOutput { return o } -func (o SystemDataResponseOutput) ToSystemDataResponseOutputWithContext(ctx context.Context) SystemDataResponseOutput { +func (o TableSignedIdentifierResponseOutput) ToTableSignedIdentifierResponseOutputWithContext(ctx context.Context) TableSignedIdentifierResponseOutput { return o } -// The timestamp of resource creation (UTC). -func (o SystemDataResponseOutput) CreatedAt() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +// Access policy +func (o TableSignedIdentifierResponseOutput) AccessPolicy() TableAccessPolicyResponsePtrOutput { + return o.ApplyT(func(v TableSignedIdentifierResponse) *TableAccessPolicyResponse { return v.AccessPolicy }).(TableAccessPolicyResponsePtrOutput) } -// The identity that created the resource. -func (o SystemDataResponseOutput) CreatedBy() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedBy }).(pulumi.StringPtrOutput) +// unique-64-character-value of the stored access policy. +func (o TableSignedIdentifierResponseOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v TableSignedIdentifierResponse) string { return v.Id }).(pulumi.StringOutput) } -// The type of identity that created the resource. -func (o SystemDataResponseOutput) CreatedByType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.CreatedByType }).(pulumi.StringPtrOutput) +type TableSignedIdentifierResponseArrayOutput struct{ *pulumi.OutputState } + +func (TableSignedIdentifierResponseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TableSignedIdentifierResponse)(nil)).Elem() } -// The timestamp of resource last modification (UTC) -func (o SystemDataResponseOutput) LastModifiedAt() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedAt }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierResponseArrayOutput) ToTableSignedIdentifierResponseArrayOutput() TableSignedIdentifierResponseArrayOutput { + return o } -// The identity that last modified the resource. -func (o SystemDataResponseOutput) LastModifiedBy() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedBy }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierResponseArrayOutput) ToTableSignedIdentifierResponseArrayOutputWithContext(ctx context.Context) TableSignedIdentifierResponseArrayOutput { + return o } -// The type of identity that last modified the resource. -func (o SystemDataResponseOutput) LastModifiedByType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SystemDataResponse) *string { return v.LastModifiedByType }).(pulumi.StringPtrOutput) +func (o TableSignedIdentifierResponseArrayOutput) Index(i pulumi.IntInput) TableSignedIdentifierResponseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TableSignedIdentifierResponse { + return vs[0].([]TableSignedIdentifierResponse)[vs[1].(int)] + }).(TableSignedIdentifierResponseOutput) } // Blob index tag based filtering for blob objects @@ -11148,6 +13804,10 @@ func (o TagPropertyResponseArrayOutput) Index(i pulumi.IntInput) TagPropertyResp // An update history of the ImmutabilityPolicy of a blob container. type UpdateHistoryPropertyResponse struct { + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. + AllowProtectedAppendWrites *bool `pulumi:"allowProtectedAppendWrites"` + // This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + AllowProtectedAppendWritesAll *bool `pulumi:"allowProtectedAppendWritesAll"` // The immutability period for the blobs in the container since the policy creation, in days. ImmutabilityPeriodSinceCreationInDays int `pulumi:"immutabilityPeriodSinceCreationInDays"` // Returns the Object ID of the user who updated the ImmutabilityPolicy. @@ -11177,6 +13837,16 @@ func (o UpdateHistoryPropertyResponseOutput) ToUpdateHistoryPropertyResponseOutp return o } +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. +func (o UpdateHistoryPropertyResponseOutput) AllowProtectedAppendWrites() pulumi.BoolPtrOutput { + return o.ApplyT(func(v UpdateHistoryPropertyResponse) *bool { return v.AllowProtectedAppendWrites }).(pulumi.BoolPtrOutput) +} + +// This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. +func (o UpdateHistoryPropertyResponseOutput) AllowProtectedAppendWritesAll() pulumi.BoolPtrOutput { + return o.ApplyT(func(v UpdateHistoryPropertyResponse) *bool { return v.AllowProtectedAppendWritesAll }).(pulumi.BoolPtrOutput) +} + // The immutability period for the blobs in the container since the policy creation, in days. func (o UpdateHistoryPropertyResponseOutput) ImmutabilityPeriodSinceCreationInDays() pulumi.IntOutput { return o.ApplyT(func(v UpdateHistoryPropertyResponse) int { return v.ImmutabilityPeriodSinceCreationInDays }).(pulumi.IntOutput) @@ -11296,7 +13966,7 @@ func (val *VirtualNetworkRule) Defaults() *VirtualNetworkRule { return nil } tmp := *val - if isZero(tmp.Action) { + if tmp.Action == nil { action_ := Action("Allow") tmp.Action = &action_ } @@ -11330,7 +14000,7 @@ func (val *VirtualNetworkRuleArgs) Defaults() *VirtualNetworkRuleArgs { return nil } tmp := *val - if isZero(tmp.Action) { + if tmp.Action == nil { tmp.Action = Action("Allow") } return &tmp @@ -11438,7 +14108,7 @@ func (val *VirtualNetworkRuleResponse) Defaults() *VirtualNetworkRuleResponse { return nil } tmp := *val - if isZero(tmp.Action) { + if tmp.Action == nil { action_ := "Allow" tmp.Action = &action_ } @@ -11496,6 +14166,14 @@ func (o VirtualNetworkRuleResponseArrayOutput) Index(i pulumi.IntInput) VirtualN } func init() { + pulumi.RegisterOutputType(AccessPolicyOutput{}) + pulumi.RegisterOutputType(AccessPolicyPtrOutput{}) + pulumi.RegisterOutputType(AccessPolicyResponseOutput{}) + pulumi.RegisterOutputType(AccessPolicyResponsePtrOutput{}) + pulumi.RegisterOutputType(AccountImmutabilityPolicyPropertiesOutput{}) + pulumi.RegisterOutputType(AccountImmutabilityPolicyPropertiesPtrOutput{}) + pulumi.RegisterOutputType(AccountImmutabilityPolicyPropertiesResponseOutput{}) + pulumi.RegisterOutputType(AccountImmutabilityPolicyPropertiesResponsePtrOutput{}) pulumi.RegisterOutputType(ActiveDirectoryPropertiesOutput{}) pulumi.RegisterOutputType(ActiveDirectoryPropertiesPtrOutput{}) pulumi.RegisterOutputType(ActiveDirectoryPropertiesResponseOutput{}) @@ -11507,7 +14185,9 @@ func init() { pulumi.RegisterOutputType(BlobInventoryPolicyDefinitionOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyDefinitionResponseOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyFilterOutput{}) + pulumi.RegisterOutputType(BlobInventoryPolicyFilterPtrOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyFilterResponseOutput{}) + pulumi.RegisterOutputType(BlobInventoryPolicyFilterResponsePtrOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleArrayOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleResponseOutput{}) @@ -11579,6 +14259,14 @@ func init() { pulumi.RegisterOutputType(IdentityResponseOutput{}) pulumi.RegisterOutputType(IdentityResponsePtrOutput{}) pulumi.RegisterOutputType(ImmutabilityPolicyPropertiesResponseOutput{}) + pulumi.RegisterOutputType(ImmutableStorageAccountOutput{}) + pulumi.RegisterOutputType(ImmutableStorageAccountPtrOutput{}) + pulumi.RegisterOutputType(ImmutableStorageAccountResponseOutput{}) + pulumi.RegisterOutputType(ImmutableStorageAccountResponsePtrOutput{}) + pulumi.RegisterOutputType(ImmutableStorageWithVersioningOutput{}) + pulumi.RegisterOutputType(ImmutableStorageWithVersioningPtrOutput{}) + pulumi.RegisterOutputType(ImmutableStorageWithVersioningResponseOutput{}) + pulumi.RegisterOutputType(ImmutableStorageWithVersioningResponsePtrOutput{}) pulumi.RegisterOutputType(KeyCreationTimeResponseOutput{}) pulumi.RegisterOutputType(KeyPolicyOutput{}) pulumi.RegisterOutputType(KeyPolicyPtrOutput{}) @@ -11643,6 +14331,8 @@ func init() { pulumi.RegisterOutputType(PrivateEndpointResponsePtrOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateOutput{}) pulumi.RegisterOutputType(PrivateLinkServiceConnectionStateResponseOutput{}) + pulumi.RegisterOutputType(ProtectedAppendWritesHistoryResponseOutput{}) + pulumi.RegisterOutputType(ProtectedAppendWritesHistoryResponsePtrOutput{}) pulumi.RegisterOutputType(ProtocolSettingsOutput{}) pulumi.RegisterOutputType(ProtocolSettingsPtrOutput{}) pulumi.RegisterOutputType(ProtocolSettingsResponseOutput{}) @@ -11662,6 +14352,10 @@ func init() { pulumi.RegisterOutputType(SasPolicyOutput{}) pulumi.RegisterOutputType(SasPolicyPtrOutput{}) pulumi.RegisterOutputType(SasPolicyResponseOutput{}) + pulumi.RegisterOutputType(SignedIdentifierOutput{}) + pulumi.RegisterOutputType(SignedIdentifierArrayOutput{}) + pulumi.RegisterOutputType(SignedIdentifierResponseOutput{}) + pulumi.RegisterOutputType(SignedIdentifierResponseArrayOutput{}) pulumi.RegisterOutputType(SkuOutput{}) pulumi.RegisterOutputType(SkuResponseOutput{}) pulumi.RegisterOutputType(SmbSettingOutput{}) @@ -11678,7 +14372,17 @@ func init() { pulumi.RegisterOutputType(StorageAccountKeyResponseArrayOutput{}) pulumi.RegisterOutputType(StorageAccountMicrosoftEndpointsResponseOutput{}) pulumi.RegisterOutputType(StorageAccountMicrosoftEndpointsResponsePtrOutput{}) + pulumi.RegisterOutputType(StorageAccountSkuConversionStatusResponseOutput{}) + pulumi.RegisterOutputType(StorageAccountSkuConversionStatusResponsePtrOutput{}) pulumi.RegisterOutputType(SystemDataResponseOutput{}) + pulumi.RegisterOutputType(TableAccessPolicyOutput{}) + pulumi.RegisterOutputType(TableAccessPolicyPtrOutput{}) + pulumi.RegisterOutputType(TableAccessPolicyResponseOutput{}) + pulumi.RegisterOutputType(TableAccessPolicyResponsePtrOutput{}) + pulumi.RegisterOutputType(TableSignedIdentifierOutput{}) + pulumi.RegisterOutputType(TableSignedIdentifierArrayOutput{}) + pulumi.RegisterOutputType(TableSignedIdentifierResponseOutput{}) + pulumi.RegisterOutputType(TableSignedIdentifierResponseArrayOutput{}) pulumi.RegisterOutputType(TagFilterOutput{}) pulumi.RegisterOutputType(TagFilterArrayOutput{}) pulumi.RegisterOutputType(TagFilterResponseOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queue.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queue.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queue.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queue.go index b4d4665d..a0088e3b 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queue.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queue.go @@ -7,11 +7,12 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type Queue struct { pulumi.CustomResourceState @@ -69,8 +70,12 @@ func NewQueue(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:Queue"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:Queue"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Queue err := ctx.RegisterResource("azure-native:storage:Queue", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queueServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queueServiceProperties.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queueServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queueServiceProperties.go index 7803c711..cf93e65f 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/queueServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/queueServiceProperties.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The properties of a storage account’s Queue service. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type QueueServiceProperties struct { pulumi.CustomResourceState @@ -68,8 +69,12 @@ func NewQueueServiceProperties(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:QueueServiceProperties"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:QueueServiceProperties"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource QueueServiceProperties err := ctx.RegisterResource("azure-native:storage:QueueServiceProperties", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccount.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccount.go similarity index 75% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccount.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccount.go index fa36c496..86ff0b23 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccount.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccount.go @@ -7,21 +7,26 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The storage account. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type StorageAccount struct { pulumi.CustomResourceState - // Required for storage accounts where kind = BlobStorage. The access tier used for billing. + // Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. AccessTier pulumi.StringOutput `pulumi:"accessTier"` // Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property. AllowBlobPublicAccess pulumi.BoolPtrOutput `pulumi:"allowBlobPublicAccess"` + // Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. + AllowCrossTenantReplication pulumi.BoolPtrOutput `pulumi:"allowCrossTenantReplication"` // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. AllowSharedKeyAccess pulumi.BoolPtrOutput `pulumi:"allowSharedKeyAccess"` + // Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + AllowedCopyScope pulumi.StringPtrOutput `pulumi:"allowedCopyScope"` // Provides the identity based authentication settings for Azure Files. AzureFilesIdentityBasedAuthentication AzureFilesIdentityBasedAuthenticationResponsePtrOutput `pulumi:"azureFilesIdentityBasedAuthentication"` // Blob restore status @@ -30,11 +35,15 @@ type StorageAccount struct { CreationTime pulumi.StringOutput `pulumi:"creationTime"` // Gets the custom domain the user assigned to this storage account. CustomDomain CustomDomainResponseOutput `pulumi:"customDomain"` + // A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + DefaultToOAuthAuthentication pulumi.BoolPtrOutput `pulumi:"defaultToOAuthAuthentication"` + // Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + DnsEndpointType pulumi.StringPtrOutput `pulumi:"dnsEndpointType"` // Allows https traffic only to storage service if sets to true. EnableHttpsTrafficOnly pulumi.BoolPtrOutput `pulumi:"enableHttpsTrafficOnly"` // NFS 3.0 protocol support enabled if set to true. EnableNfsV3 pulumi.BoolPtrOutput `pulumi:"enableNfsV3"` - // Gets the encryption settings on the account. If unspecified, the account is unencrypted. + // Encryption settings to be used for server-side encryption for the storage account. Encryption EncryptionResponseOutput `pulumi:"encryption"` // The extendedLocation of the resource. ExtendedLocation ExtendedLocationResponsePtrOutput `pulumi:"extendedLocation"` @@ -44,8 +53,14 @@ type StorageAccount struct { GeoReplicationStats GeoReplicationStatsResponseOutput `pulumi:"geoReplicationStats"` // The identity of the resource. Identity IdentityResponsePtrOutput `pulumi:"identity"` + // The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. + ImmutableStorageWithVersioning ImmutableStorageAccountResponsePtrOutput `pulumi:"immutableStorageWithVersioning"` // Account HierarchicalNamespace enabled if sets to true. IsHnsEnabled pulumi.BoolPtrOutput `pulumi:"isHnsEnabled"` + // Enables local users feature, if set to true + IsLocalUserEnabled pulumi.BoolPtrOutput `pulumi:"isLocalUserEnabled"` + // Enables Secure File Transfer Protocol, if set to true + IsSftpEnabled pulumi.BoolPtrOutput `pulumi:"isSftpEnabled"` // Storage account keys creation time. KeyCreationTime KeyCreationTimeResponseOutput `pulumi:"keyCreationTime"` // KeyPolicy assigned to the storage account. @@ -72,6 +87,8 @@ type StorageAccount struct { PrivateEndpointConnections PrivateEndpointConnectionResponseArrayOutput `pulumi:"privateEndpointConnections"` // Gets the status of the storage account at the time the operation was called. ProvisioningState pulumi.StringOutput `pulumi:"provisioningState"` + // Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. + PublicNetworkAccess pulumi.StringPtrOutput `pulumi:"publicNetworkAccess"` // Maintains information about the network routing choice opted by the user for data transfer RoutingPreference RoutingPreferenceResponsePtrOutput `pulumi:"routingPreference"` // SasPolicy assigned to the storage account. @@ -86,6 +103,8 @@ type StorageAccount struct { StatusOfPrimary pulumi.StringOutput `pulumi:"statusOfPrimary"` // Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS. StatusOfSecondary pulumi.StringOutput `pulumi:"statusOfSecondary"` + // This property is readOnly and is set by server during asynchronous storage account sku conversion operations. + StorageAccountSkuConversionStatus StorageAccountSkuConversionStatusResponsePtrOutput `pulumi:"storageAccountSkuConversionStatus"` // Resource tags. Tags pulumi.StringMapOutput `pulumi:"tags"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -184,8 +203,12 @@ func NewStorageAccount(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:StorageAccount"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:StorageAccount"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource StorageAccount err := ctx.RegisterResource("azure-native:storage:StorageAccount", name, args, &resource, opts...) if err != nil { @@ -218,30 +241,44 @@ func (StorageAccountState) ElementType() reflect.Type { } type storageAccountArgs struct { - // Required for storage accounts where kind = BlobStorage. The access tier used for billing. + // Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. AccessTier *AccessTier `pulumi:"accessTier"` // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName *string `pulumi:"accountName"` // Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property. AllowBlobPublicAccess *bool `pulumi:"allowBlobPublicAccess"` + // Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. + AllowCrossTenantReplication *bool `pulumi:"allowCrossTenantReplication"` // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. AllowSharedKeyAccess *bool `pulumi:"allowSharedKeyAccess"` + // Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + AllowedCopyScope *string `pulumi:"allowedCopyScope"` // Provides the identity based authentication settings for Azure Files. AzureFilesIdentityBasedAuthentication *AzureFilesIdentityBasedAuthentication `pulumi:"azureFilesIdentityBasedAuthentication"` // User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property. CustomDomain *CustomDomain `pulumi:"customDomain"` + // A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + DefaultToOAuthAuthentication *bool `pulumi:"defaultToOAuthAuthentication"` + // Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + DnsEndpointType *string `pulumi:"dnsEndpointType"` // Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01. EnableHttpsTrafficOnly *bool `pulumi:"enableHttpsTrafficOnly"` // NFS 3.0 protocol support enabled if set to true. EnableNfsV3 *bool `pulumi:"enableNfsV3"` - // Not applicable. Azure Storage encryption is enabled for all storage accounts and cannot be disabled. + // Encryption settings to be used for server-side encryption for the storage account. Encryption *Encryption `pulumi:"encryption"` // Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location ExtendedLocation *ExtendedLocation `pulumi:"extendedLocation"` // The identity of the resource. Identity *Identity `pulumi:"identity"` + // The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default. + ImmutableStorageWithVersioning *ImmutableStorageAccount `pulumi:"immutableStorageWithVersioning"` // Account HierarchicalNamespace enabled if sets to true. IsHnsEnabled *bool `pulumi:"isHnsEnabled"` + // Enables local users feature, if set to true + IsLocalUserEnabled *bool `pulumi:"isLocalUserEnabled"` + // Enables Secure File Transfer Protocol, if set to true + IsSftpEnabled *bool `pulumi:"isSftpEnabled"` // KeyPolicy assigned to the storage account. KeyPolicy *KeyPolicy `pulumi:"keyPolicy"` // Required. Indicates the type of storage account. @@ -254,6 +291,8 @@ type storageAccountArgs struct { MinimumTlsVersion *string `pulumi:"minimumTlsVersion"` // Network rule set NetworkRuleSet *NetworkRuleSet `pulumi:"networkRuleSet"` + // Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` // Maintains information about the network routing choice opted by the user for data transfer @@ -268,30 +307,44 @@ type storageAccountArgs struct { // The set of arguments for constructing a StorageAccount resource. type StorageAccountArgs struct { - // Required for storage accounts where kind = BlobStorage. The access tier used for billing. + // Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. AccessTier AccessTierPtrInput // The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. AccountName pulumi.StringPtrInput // Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property. AllowBlobPublicAccess pulumi.BoolPtrInput + // Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. + AllowCrossTenantReplication pulumi.BoolPtrInput // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. AllowSharedKeyAccess pulumi.BoolPtrInput + // Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + AllowedCopyScope pulumi.StringPtrInput // Provides the identity based authentication settings for Azure Files. AzureFilesIdentityBasedAuthentication AzureFilesIdentityBasedAuthenticationPtrInput // User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property. CustomDomain CustomDomainPtrInput + // A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + DefaultToOAuthAuthentication pulumi.BoolPtrInput + // Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + DnsEndpointType pulumi.StringPtrInput // Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01. EnableHttpsTrafficOnly pulumi.BoolPtrInput // NFS 3.0 protocol support enabled if set to true. EnableNfsV3 pulumi.BoolPtrInput - // Not applicable. Azure Storage encryption is enabled for all storage accounts and cannot be disabled. + // Encryption settings to be used for server-side encryption for the storage account. Encryption EncryptionPtrInput // Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location ExtendedLocation ExtendedLocationPtrInput // The identity of the resource. Identity IdentityPtrInput + // The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default. + ImmutableStorageWithVersioning ImmutableStorageAccountPtrInput // Account HierarchicalNamespace enabled if sets to true. IsHnsEnabled pulumi.BoolPtrInput + // Enables local users feature, if set to true + IsLocalUserEnabled pulumi.BoolPtrInput + // Enables Secure File Transfer Protocol, if set to true + IsSftpEnabled pulumi.BoolPtrInput // KeyPolicy assigned to the storage account. KeyPolicy KeyPolicyPtrInput // Required. Indicates the type of storage account. @@ -304,6 +357,8 @@ type StorageAccountArgs struct { MinimumTlsVersion pulumi.StringPtrInput // Network rule set NetworkRuleSet NetworkRuleSetPtrInput + // Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. + PublicNetworkAccess pulumi.StringPtrInput // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName pulumi.StringInput // Maintains information about the network routing choice opted by the user for data transfer @@ -353,7 +408,7 @@ func (o StorageAccountOutput) ToStorageAccountOutputWithContext(ctx context.Cont return o } -// Required for storage accounts where kind = BlobStorage. The access tier used for billing. +// Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. func (o StorageAccountOutput) AccessTier() pulumi.StringOutput { return o.ApplyT(func(v *StorageAccount) pulumi.StringOutput { return v.AccessTier }).(pulumi.StringOutput) } @@ -363,11 +418,21 @@ func (o StorageAccountOutput) AllowBlobPublicAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.AllowBlobPublicAccess }).(pulumi.BoolPtrOutput) } +// Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. +func (o StorageAccountOutput) AllowCrossTenantReplication() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.AllowCrossTenantReplication }).(pulumi.BoolPtrOutput) +} + // Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. func (o StorageAccountOutput) AllowSharedKeyAccess() pulumi.BoolPtrOutput { return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.AllowSharedKeyAccess }).(pulumi.BoolPtrOutput) } +// Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. +func (o StorageAccountOutput) AllowedCopyScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.StringPtrOutput { return v.AllowedCopyScope }).(pulumi.StringPtrOutput) +} + // Provides the identity based authentication settings for Azure Files. func (o StorageAccountOutput) AzureFilesIdentityBasedAuthentication() AzureFilesIdentityBasedAuthenticationResponsePtrOutput { return o.ApplyT(func(v *StorageAccount) AzureFilesIdentityBasedAuthenticationResponsePtrOutput { @@ -390,6 +455,16 @@ func (o StorageAccountOutput) CustomDomain() CustomDomainResponseOutput { return o.ApplyT(func(v *StorageAccount) CustomDomainResponseOutput { return v.CustomDomain }).(CustomDomainResponseOutput) } +// A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. +func (o StorageAccountOutput) DefaultToOAuthAuthentication() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.DefaultToOAuthAuthentication }).(pulumi.BoolPtrOutput) +} + +// Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. +func (o StorageAccountOutput) DnsEndpointType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.StringPtrOutput { return v.DnsEndpointType }).(pulumi.StringPtrOutput) +} + // Allows https traffic only to storage service if sets to true. func (o StorageAccountOutput) EnableHttpsTrafficOnly() pulumi.BoolPtrOutput { return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.EnableHttpsTrafficOnly }).(pulumi.BoolPtrOutput) @@ -400,7 +475,7 @@ func (o StorageAccountOutput) EnableNfsV3() pulumi.BoolPtrOutput { return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.EnableNfsV3 }).(pulumi.BoolPtrOutput) } -// Gets the encryption settings on the account. If unspecified, the account is unencrypted. +// Encryption settings to be used for server-side encryption for the storage account. func (o StorageAccountOutput) Encryption() EncryptionResponseOutput { return o.ApplyT(func(v *StorageAccount) EncryptionResponseOutput { return v.Encryption }).(EncryptionResponseOutput) } @@ -425,11 +500,28 @@ func (o StorageAccountOutput) Identity() IdentityResponsePtrOutput { return o.ApplyT(func(v *StorageAccount) IdentityResponsePtrOutput { return v.Identity }).(IdentityResponsePtrOutput) } +// The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. +func (o StorageAccountOutput) ImmutableStorageWithVersioning() ImmutableStorageAccountResponsePtrOutput { + return o.ApplyT(func(v *StorageAccount) ImmutableStorageAccountResponsePtrOutput { + return v.ImmutableStorageWithVersioning + }).(ImmutableStorageAccountResponsePtrOutput) +} + // Account HierarchicalNamespace enabled if sets to true. func (o StorageAccountOutput) IsHnsEnabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.IsHnsEnabled }).(pulumi.BoolPtrOutput) } +// Enables local users feature, if set to true +func (o StorageAccountOutput) IsLocalUserEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.IsLocalUserEnabled }).(pulumi.BoolPtrOutput) +} + +// Enables Secure File Transfer Protocol, if set to true +func (o StorageAccountOutput) IsSftpEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.BoolPtrOutput { return v.IsSftpEnabled }).(pulumi.BoolPtrOutput) +} + // Storage account keys creation time. func (o StorageAccountOutput) KeyCreationTime() KeyCreationTimeResponseOutput { return o.ApplyT(func(v *StorageAccount) KeyCreationTimeResponseOutput { return v.KeyCreationTime }).(KeyCreationTimeResponseOutput) @@ -497,6 +589,11 @@ func (o StorageAccountOutput) ProvisioningState() pulumi.StringOutput { return o.ApplyT(func(v *StorageAccount) pulumi.StringOutput { return v.ProvisioningState }).(pulumi.StringOutput) } +// Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. +func (o StorageAccountOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v *StorageAccount) pulumi.StringPtrOutput { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + // Maintains information about the network routing choice opted by the user for data transfer func (o StorageAccountOutput) RoutingPreference() RoutingPreferenceResponsePtrOutput { return o.ApplyT(func(v *StorageAccount) RoutingPreferenceResponsePtrOutput { return v.RoutingPreference }).(RoutingPreferenceResponsePtrOutput) @@ -532,6 +629,13 @@ func (o StorageAccountOutput) StatusOfSecondary() pulumi.StringOutput { return o.ApplyT(func(v *StorageAccount) pulumi.StringOutput { return v.StatusOfSecondary }).(pulumi.StringOutput) } +// This property is readOnly and is set by server during asynchronous storage account sku conversion operations. +func (o StorageAccountOutput) StorageAccountSkuConversionStatus() StorageAccountSkuConversionStatusResponsePtrOutput { + return o.ApplyT(func(v *StorageAccount) StorageAccountSkuConversionStatusResponsePtrOutput { + return v.StorageAccountSkuConversionStatus + }).(StorageAccountSkuConversionStatusResponsePtrOutput) +} + // Resource tags. func (o StorageAccountOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *StorageAccount) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccountStaticWebsite.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccountStaticWebsite.go similarity index 98% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccountStaticWebsite.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccountStaticWebsite.go index e88f0703..549166be 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/storageAccountStaticWebsite.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/storageAccountStaticWebsite.go @@ -7,7 +7,8 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -36,6 +37,7 @@ func NewStorageAccountStaticWebsite(ctx *pulumi.Context, if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } + opts = utilities.PkgResourceDefaultOpts(opts) var resource StorageAccountStaticWebsite err := ctx.RegisterResource("azure-native:storage:StorageAccountStaticWebsite", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/table.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/table.go similarity index 85% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/table.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/table.go index 5c8eed74..a3b52bca 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/table.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/table.go @@ -7,17 +7,20 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // Properties of the table, including Id, resource name, resource type. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type Table struct { pulumi.CustomResourceState // The name of the resource Name pulumi.StringOutput `pulumi:"name"` + // List of stored access policies specified on the table. + SignedIdentifiers TableSignedIdentifierResponseArrayOutput `pulumi:"signedIdentifiers"` // Table name under the specified account TableName pulumi.StringOutput `pulumi:"tableName"` // The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" @@ -68,8 +71,12 @@ func NewTable(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:Table"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:Table"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource Table err := ctx.RegisterResource("azure-native:storage:Table", name, args, &resource, opts...) if err != nil { @@ -106,6 +113,8 @@ type tableArgs struct { AccountName string `pulumi:"accountName"` // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName string `pulumi:"resourceGroupName"` + // List of stored access policies specified on the table. + SignedIdentifiers []TableSignedIdentifier `pulumi:"signedIdentifiers"` // A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character. TableName *string `pulumi:"tableName"` } @@ -116,6 +125,8 @@ type TableArgs struct { AccountName pulumi.StringInput // The name of the resource group within the user's subscription. The name is case insensitive. ResourceGroupName pulumi.StringInput + // List of stored access policies specified on the table. + SignedIdentifiers TableSignedIdentifierArrayInput // A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character. TableName pulumi.StringPtrInput } @@ -162,6 +173,11 @@ func (o TableOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Table) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// List of stored access policies specified on the table. +func (o TableOutput) SignedIdentifiers() TableSignedIdentifierResponseArrayOutput { + return o.ApplyT(func(v *Table) TableSignedIdentifierResponseArrayOutput { return v.SignedIdentifiers }).(TableSignedIdentifierResponseArrayOutput) +} + // Table name under the specified account func (o TableOutput) TableName() pulumi.StringOutput { return o.ApplyT(func(v *Table) pulumi.StringOutput { return v.TableName }).(pulumi.StringOutput) diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/tableServiceProperties.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/tableServiceProperties.go similarity index 96% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/tableServiceProperties.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/tableServiceProperties.go index 9447c7ed..f46a7752 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/tableServiceProperties.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/v2/tableServiceProperties.go @@ -7,12 +7,13 @@ import ( "context" "reflect" - "github.com/pkg/errors" + "errors" + "github.com/pulumi/pulumi-azure-native-sdk/v2/utilities" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // The properties of a storage account’s Table service. -// API Version: 2021-02-01. +// Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2021-02-01 type TableServiceProperties struct { pulumi.CustomResourceState @@ -68,8 +69,12 @@ func NewTableServiceProperties(ctx *pulumi.Context, { Type: pulumi.String("azure-native:storage/v20220901:TableServiceProperties"), }, + { + Type: pulumi.String("azure-native:storage/v20230101:TableServiceProperties"), + }, }) opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) var resource TableServiceProperties err := ctx.RegisterResource("azure-native:storage:TableServiceProperties", name, args, &resource, opts...) if err != nil { diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/LICENSE b/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/LICENSE similarity index 100% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/storage/LICENSE rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/LICENSE diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiUtilities.go similarity index 56% rename from vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiUtilities.go rename to vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiUtilities.go index 3896d2f6..6433afa4 100644 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/resources/pulumiUtilities.go +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiUtilities.go @@ -1,7 +1,7 @@ // Code generated by the Pulumi SDK Generator DO NOT EDIT. // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** -package resources +package utilities import ( "fmt" @@ -17,7 +17,7 @@ import ( type envParser func(v string) interface{} -func parseEnvBool(v string) interface{} { +func ParseEnvBool(v string) interface{} { b, err := strconv.ParseBool(v) if err != nil { return nil @@ -25,7 +25,7 @@ func parseEnvBool(v string) interface{} { return b } -func parseEnvInt(v string) interface{} { +func ParseEnvInt(v string) interface{} { i, err := strconv.ParseInt(v, 0, 0) if err != nil { return nil @@ -33,7 +33,7 @@ func parseEnvInt(v string) interface{} { return int(i) } -func parseEnvFloat(v string) interface{} { +func ParseEnvFloat(v string) interface{} { f, err := strconv.ParseFloat(v, 64) if err != nil { return nil @@ -41,7 +41,7 @@ func parseEnvFloat(v string) interface{} { return f } -func parseEnvStringArray(v string) interface{} { +func ParseEnvStringArray(v string) interface{} { var result pulumi.StringArray for _, item := range strings.Split(v, ";") { result = append(result, pulumi.String(item)) @@ -49,9 +49,9 @@ func parseEnvStringArray(v string) interface{} { return result } -func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { +func GetEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { for _, v := range vars { - if value := os.Getenv(v); value != "" { + if value, ok := os.LookupEnv(v); ok { if parser != nil { return parser(value) } @@ -65,9 +65,13 @@ func getEnvOrDefault(def interface{}, parser envParser, vars ...string) interfac // If a version cannot be determined, v1 will be assumed. The second return // value is always nil. func PkgVersion() (semver.Version, error) { + // emptyVersion defaults to v0.0.0 + if !SdkVersion.Equals(semver.Version{}) { + return SdkVersion, nil + } type sentinal struct{} pkgPath := reflect.TypeOf(sentinal{}).PkgPath() - re := regexp.MustCompile("^.*/pulumi-azure-native/sdk(/v\\d+)?") + re := regexp.MustCompile("^github.com/pulumi/pulumi-azure-native-sdk/v2(/v\\d+)?") if match := re.FindStringSubmatch(pkgPath); match != nil { vStr := match[1] if len(vStr) == 0 { // If the version capture group was empty, default to v1. @@ -79,9 +83,31 @@ func PkgVersion() (semver.Version, error) { } // isZero is a null safe check for if a value is it's types zero value. -func isZero(v interface{}) bool { +func IsZero(v interface{}) bool { if v == nil { return true } return reflect.ValueOf(v).IsZero() } + +// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource. +func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { + defaults := []pulumi.ResourceOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} + +// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke. +func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { + defaults := []pulumi.InvokeOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiVersion.go b/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiVersion.go new file mode 100644 index 00000000..ce632b6f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-azure-native-sdk/v2/utilities/pulumiVersion.go @@ -0,0 +1,11 @@ +// Code generated by the Pulumi SDK Generator DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package utilities + +import ( + "github.com/blang/semver" +) + +var SdkVersion semver.Version = semver.Version{} +var pluginDownloadURL string = "" diff --git a/vendor/github.com/pulumi/pulumi-azure-native-sdk/version.txt b/vendor/github.com/pulumi/pulumi-azure-native-sdk/version.txt deleted file mode 100644 index f4eb7edb..00000000 --- a/vendor/github.com/pulumi/pulumi-azure-native-sdk/version.txt +++ /dev/null @@ -1 +0,0 @@ -v1.99.1 \ No newline at end of file diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go index 7b5b78cb..2671217d 100644 --- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go +++ b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_generic.go @@ -245,7 +245,7 @@ func feSquareGeneric(v, a *Element) { v.carryPropagate() } -// carryPropagate brings the limbs below 52 bits by applying the reduction +// carryPropagateGeneric brings the limbs below 52 bits by applying the reduction // identity (a * 2²⁵⁵ + b = a * 19 + b) to the l4 carry. TODO inline func (v *Element) carryPropagateGeneric() *Element { c0 := v.l0 >> 51 diff --git a/vendor/golang.org/x/crypto/pkcs12/bmp-string.go b/vendor/golang.org/x/crypto/pkcs12/bmp-string.go new file mode 100644 index 00000000..233b8b62 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/bmp-string.go @@ -0,0 +1,50 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "errors" + "unicode/utf16" +) + +// bmpString returns s encoded in UCS-2 with a zero terminator. +func bmpString(s string) ([]byte, error) { + // References: + // https://tools.ietf.org/html/rfc7292#appendix-B.1 + // https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane + // - non-BMP characters are encoded in UTF 16 by using a surrogate pair of 16-bit codes + // EncodeRune returns 0xfffd if the rune does not need special encoding + // - the above RFC provides the info that BMPStrings are NULL terminated. + + ret := make([]byte, 0, 2*len(s)+2) + + for _, r := range s { + if t, _ := utf16.EncodeRune(r); t != 0xfffd { + return nil, errors.New("pkcs12: string contains characters that cannot be encoded in UCS-2") + } + ret = append(ret, byte(r/256), byte(r%256)) + } + + return append(ret, 0, 0), nil +} + +func decodeBMPString(bmpString []byte) (string, error) { + if len(bmpString)%2 != 0 { + return "", errors.New("pkcs12: odd-length BMP string") + } + + // strip terminator if present + if l := len(bmpString); l >= 2 && bmpString[l-1] == 0 && bmpString[l-2] == 0 { + bmpString = bmpString[:l-2] + } + + s := make([]uint16, 0, len(bmpString)/2) + for len(bmpString) > 0 { + s = append(s, uint16(bmpString[0])<<8+uint16(bmpString[1])) + bmpString = bmpString[2:] + } + + return string(utf16.Decode(s)), nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/crypto.go b/vendor/golang.org/x/crypto/pkcs12/crypto.go new file mode 100644 index 00000000..96f4a1a5 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/crypto.go @@ -0,0 +1,131 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "crypto/cipher" + "crypto/des" + "crypto/x509/pkix" + "encoding/asn1" + "errors" + + "golang.org/x/crypto/pkcs12/internal/rc2" +) + +var ( + oidPBEWithSHAAnd3KeyTripleDESCBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 3}) + oidPBEWithSHAAnd40BitRC2CBC = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 1, 6}) +) + +// pbeCipher is an abstraction of a PKCS#12 cipher. +type pbeCipher interface { + // create returns a cipher.Block given a key. + create(key []byte) (cipher.Block, error) + // deriveKey returns a key derived from the given password and salt. + deriveKey(salt, password []byte, iterations int) []byte + // deriveKey returns an IV derived from the given password and salt. + deriveIV(salt, password []byte, iterations int) []byte +} + +type shaWithTripleDESCBC struct{} + +func (shaWithTripleDESCBC) create(key []byte) (cipher.Block, error) { + return des.NewTripleDESCipher(key) +} + +func (shaWithTripleDESCBC) deriveKey(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 24) +} + +func (shaWithTripleDESCBC) deriveIV(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) +} + +type shaWith40BitRC2CBC struct{} + +func (shaWith40BitRC2CBC) create(key []byte) (cipher.Block, error) { + return rc2.New(key, len(key)*8) +} + +func (shaWith40BitRC2CBC) deriveKey(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 1, 5) +} + +func (shaWith40BitRC2CBC) deriveIV(salt, password []byte, iterations int) []byte { + return pbkdf(sha1Sum, 20, 64, salt, password, iterations, 2, 8) +} + +type pbeParams struct { + Salt []byte + Iterations int +} + +func pbDecrypterFor(algorithm pkix.AlgorithmIdentifier, password []byte) (cipher.BlockMode, int, error) { + var cipherType pbeCipher + + switch { + case algorithm.Algorithm.Equal(oidPBEWithSHAAnd3KeyTripleDESCBC): + cipherType = shaWithTripleDESCBC{} + case algorithm.Algorithm.Equal(oidPBEWithSHAAnd40BitRC2CBC): + cipherType = shaWith40BitRC2CBC{} + default: + return nil, 0, NotImplementedError("algorithm " + algorithm.Algorithm.String() + " is not supported") + } + + var params pbeParams + if err := unmarshal(algorithm.Parameters.FullBytes, ¶ms); err != nil { + return nil, 0, err + } + + key := cipherType.deriveKey(params.Salt, password, params.Iterations) + iv := cipherType.deriveIV(params.Salt, password, params.Iterations) + + block, err := cipherType.create(key) + if err != nil { + return nil, 0, err + } + + return cipher.NewCBCDecrypter(block, iv), block.BlockSize(), nil +} + +func pbDecrypt(info decryptable, password []byte) (decrypted []byte, err error) { + cbc, blockSize, err := pbDecrypterFor(info.Algorithm(), password) + if err != nil { + return nil, err + } + + encrypted := info.Data() + if len(encrypted) == 0 { + return nil, errors.New("pkcs12: empty encrypted data") + } + if len(encrypted)%blockSize != 0 { + return nil, errors.New("pkcs12: input is not a multiple of the block size") + } + decrypted = make([]byte, len(encrypted)) + cbc.CryptBlocks(decrypted, encrypted) + + psLen := int(decrypted[len(decrypted)-1]) + if psLen == 0 || psLen > blockSize { + return nil, ErrDecryption + } + + if len(decrypted) < psLen { + return nil, ErrDecryption + } + ps := decrypted[len(decrypted)-psLen:] + decrypted = decrypted[:len(decrypted)-psLen] + if !bytes.Equal(ps, bytes.Repeat([]byte{byte(psLen)}, psLen)) { + return nil, ErrDecryption + } + + return +} + +// decryptable abstracts an object that contains ciphertext. +type decryptable interface { + Algorithm() pkix.AlgorithmIdentifier + Data() []byte +} diff --git a/vendor/golang.org/x/crypto/pkcs12/errors.go b/vendor/golang.org/x/crypto/pkcs12/errors.go new file mode 100644 index 00000000..7377ce6f --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/errors.go @@ -0,0 +1,23 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import "errors" + +var ( + // ErrDecryption represents a failure to decrypt the input. + ErrDecryption = errors.New("pkcs12: decryption error, incorrect padding") + + // ErrIncorrectPassword is returned when an incorrect password is detected. + // Usually, P12/PFX data is signed to be able to verify the password. + ErrIncorrectPassword = errors.New("pkcs12: decryption password incorrect") +) + +// NotImplementedError indicates that the input is not currently supported. +type NotImplementedError string + +func (e NotImplementedError) Error() string { + return "pkcs12: " + string(e) +} diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go new file mode 100644 index 00000000..05de9cc2 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/rc2.go @@ -0,0 +1,268 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package rc2 implements the RC2 cipher +/* +https://www.ietf.org/rfc/rfc2268.txt +http://people.csail.mit.edu/rivest/pubs/KRRR98.pdf + +This code is licensed under the MIT license. +*/ +package rc2 + +import ( + "crypto/cipher" + "encoding/binary" + "math/bits" +) + +// The rc2 block size in bytes +const BlockSize = 8 + +type rc2Cipher struct { + k [64]uint16 +} + +// New returns a new rc2 cipher with the given key and effective key length t1 +func New(key []byte, t1 int) (cipher.Block, error) { + // TODO(dgryski): error checking for key length + return &rc2Cipher{ + k: expandKey(key, t1), + }, nil +} + +func (*rc2Cipher) BlockSize() int { return BlockSize } + +var piTable = [256]byte{ + 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79, 0x4a, 0xa0, 0xd8, 0x9d, + 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e, 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, + 0x17, 0x9a, 0x59, 0xf5, 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32, + 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22, 0x5c, 0x6b, 0x4e, 0x82, + 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c, 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, + 0x12, 0x75, 0xca, 0x1f, 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26, + 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b, 0xbc, 0x94, 0x43, 0x03, + 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7, 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, + 0x08, 0xe8, 0xea, 0xde, 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a, + 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e, 0x04, 0x18, 0xa4, 0xec, + 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc, 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, + 0x99, 0x7c, 0x3a, 0x85, 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31, + 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10, 0x67, 0x6c, 0xba, 0xc9, + 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c, 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9, + 0x0d, 0x38, 0x34, 0x1b, 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e, + 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68, 0xfe, 0x7f, 0xc1, 0xad, +} + +func expandKey(key []byte, t1 int) [64]uint16 { + + l := make([]byte, 128) + copy(l, key) + + var t = len(key) + var t8 = (t1 + 7) / 8 + var tm = byte(255 % uint(1<<(8+uint(t1)-8*uint(t8)))) + + for i := len(key); i < 128; i++ { + l[i] = piTable[l[i-1]+l[uint8(i-t)]] + } + + l[128-t8] = piTable[l[128-t8]&tm] + + for i := 127 - t8; i >= 0; i-- { + l[i] = piTable[l[i+1]^l[i+t8]] + } + + var k [64]uint16 + + for i := range k { + k[i] = uint16(l[2*i]) + uint16(l[2*i+1])*256 + } + + return k +} + +func (c *rc2Cipher) Encrypt(dst, src []byte) { + + r0 := binary.LittleEndian.Uint16(src[0:]) + r1 := binary.LittleEndian.Uint16(src[2:]) + r2 := binary.LittleEndian.Uint16(src[4:]) + r3 := binary.LittleEndian.Uint16(src[6:]) + + var j int + + for j <= 16 { + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = bits.RotateLeft16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = bits.RotateLeft16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = bits.RotateLeft16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = bits.RotateLeft16(r3, 5) + j++ + + } + + r0 = r0 + c.k[r3&63] + r1 = r1 + c.k[r0&63] + r2 = r2 + c.k[r1&63] + r3 = r3 + c.k[r2&63] + + for j <= 40 { + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = bits.RotateLeft16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = bits.RotateLeft16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = bits.RotateLeft16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = bits.RotateLeft16(r3, 5) + j++ + + } + + r0 = r0 + c.k[r3&63] + r1 = r1 + c.k[r0&63] + r2 = r2 + c.k[r1&63] + r3 = r3 + c.k[r2&63] + + for j <= 60 { + // mix r0 + r0 = r0 + c.k[j] + (r3 & r2) + ((^r3) & r1) + r0 = bits.RotateLeft16(r0, 1) + j++ + + // mix r1 + r1 = r1 + c.k[j] + (r0 & r3) + ((^r0) & r2) + r1 = bits.RotateLeft16(r1, 2) + j++ + + // mix r2 + r2 = r2 + c.k[j] + (r1 & r0) + ((^r1) & r3) + r2 = bits.RotateLeft16(r2, 3) + j++ + + // mix r3 + r3 = r3 + c.k[j] + (r2 & r1) + ((^r2) & r0) + r3 = bits.RotateLeft16(r3, 5) + j++ + } + + binary.LittleEndian.PutUint16(dst[0:], r0) + binary.LittleEndian.PutUint16(dst[2:], r1) + binary.LittleEndian.PutUint16(dst[4:], r2) + binary.LittleEndian.PutUint16(dst[6:], r3) +} + +func (c *rc2Cipher) Decrypt(dst, src []byte) { + + r0 := binary.LittleEndian.Uint16(src[0:]) + r1 := binary.LittleEndian.Uint16(src[2:]) + r2 := binary.LittleEndian.Uint16(src[4:]) + r3 := binary.LittleEndian.Uint16(src[6:]) + + j := 63 + + for j >= 44 { + // unmix r3 + r3 = bits.RotateLeft16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = bits.RotateLeft16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = bits.RotateLeft16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = bits.RotateLeft16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + } + + r3 = r3 - c.k[r2&63] + r2 = r2 - c.k[r1&63] + r1 = r1 - c.k[r0&63] + r0 = r0 - c.k[r3&63] + + for j >= 20 { + // unmix r3 + r3 = bits.RotateLeft16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = bits.RotateLeft16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = bits.RotateLeft16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = bits.RotateLeft16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + + } + + r3 = r3 - c.k[r2&63] + r2 = r2 - c.k[r1&63] + r1 = r1 - c.k[r0&63] + r0 = r0 - c.k[r3&63] + + for j >= 0 { + // unmix r3 + r3 = bits.RotateLeft16(r3, 16-5) + r3 = r3 - c.k[j] - (r2 & r1) - ((^r2) & r0) + j-- + + // unmix r2 + r2 = bits.RotateLeft16(r2, 16-3) + r2 = r2 - c.k[j] - (r1 & r0) - ((^r1) & r3) + j-- + + // unmix r1 + r1 = bits.RotateLeft16(r1, 16-2) + r1 = r1 - c.k[j] - (r0 & r3) - ((^r0) & r2) + j-- + + // unmix r0 + r0 = bits.RotateLeft16(r0, 16-1) + r0 = r0 - c.k[j] - (r3 & r2) - ((^r3) & r1) + j-- + + } + + binary.LittleEndian.PutUint16(dst[0:], r0) + binary.LittleEndian.PutUint16(dst[2:], r1) + binary.LittleEndian.PutUint16(dst[4:], r2) + binary.LittleEndian.PutUint16(dst[6:], r3) +} diff --git a/vendor/golang.org/x/crypto/pkcs12/mac.go b/vendor/golang.org/x/crypto/pkcs12/mac.go new file mode 100644 index 00000000..5f38aa7d --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/mac.go @@ -0,0 +1,45 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "crypto/hmac" + "crypto/sha1" + "crypto/x509/pkix" + "encoding/asn1" +) + +type macData struct { + Mac digestInfo + MacSalt []byte + Iterations int `asn1:"optional,default:1"` +} + +// from PKCS#7: +type digestInfo struct { + Algorithm pkix.AlgorithmIdentifier + Digest []byte +} + +var ( + oidSHA1 = asn1.ObjectIdentifier([]int{1, 3, 14, 3, 2, 26}) +) + +func verifyMac(macData *macData, message, password []byte) error { + if !macData.Mac.Algorithm.Algorithm.Equal(oidSHA1) { + return NotImplementedError("unknown digest algorithm: " + macData.Mac.Algorithm.Algorithm.String()) + } + + key := pbkdf(sha1Sum, 20, 64, macData.MacSalt, password, macData.Iterations, 3, 20) + + mac := hmac.New(sha1.New, key) + mac.Write(message) + expectedMAC := mac.Sum(nil) + + if !hmac.Equal(macData.Mac.Digest, expectedMAC) { + return ErrIncorrectPassword + } + return nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pbkdf.go b/vendor/golang.org/x/crypto/pkcs12/pbkdf.go new file mode 100644 index 00000000..5c419d41 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pbkdf.go @@ -0,0 +1,170 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "bytes" + "crypto/sha1" + "math/big" +) + +var ( + one = big.NewInt(1) +) + +// sha1Sum returns the SHA-1 hash of in. +func sha1Sum(in []byte) []byte { + sum := sha1.Sum(in) + return sum[:] +} + +// fillWithRepeats returns v*ceiling(len(pattern) / v) bytes consisting of +// repeats of pattern. +func fillWithRepeats(pattern []byte, v int) []byte { + if len(pattern) == 0 { + return nil + } + outputLen := v * ((len(pattern) + v - 1) / v) + return bytes.Repeat(pattern, (outputLen+len(pattern)-1)/len(pattern))[:outputLen] +} + +func pbkdf(hash func([]byte) []byte, u, v int, salt, password []byte, r int, ID byte, size int) (key []byte) { + // implementation of https://tools.ietf.org/html/rfc7292#appendix-B.2 , RFC text verbatim in comments + + // Let H be a hash function built around a compression function f: + + // Z_2^u x Z_2^v -> Z_2^u + + // (that is, H has a chaining variable and output of length u bits, and + // the message input to the compression function of H is v bits). The + // values for u and v are as follows: + + // HASH FUNCTION VALUE u VALUE v + // MD2, MD5 128 512 + // SHA-1 160 512 + // SHA-224 224 512 + // SHA-256 256 512 + // SHA-384 384 1024 + // SHA-512 512 1024 + // SHA-512/224 224 1024 + // SHA-512/256 256 1024 + + // Furthermore, let r be the iteration count. + + // We assume here that u and v are both multiples of 8, as are the + // lengths of the password and salt strings (which we denote by p and s, + // respectively) and the number n of pseudorandom bits required. In + // addition, u and v are of course non-zero. + + // For information on security considerations for MD5 [19], see [25] and + // [1], and on those for MD2, see [18]. + + // The following procedure can be used to produce pseudorandom bits for + // a particular "purpose" that is identified by a byte called "ID". + // This standard specifies 3 different values for the ID byte: + + // 1. If ID=1, then the pseudorandom bits being produced are to be used + // as key material for performing encryption or decryption. + + // 2. If ID=2, then the pseudorandom bits being produced are to be used + // as an IV (Initial Value) for encryption or decryption. + + // 3. If ID=3, then the pseudorandom bits being produced are to be used + // as an integrity key for MACing. + + // 1. Construct a string, D (the "diversifier"), by concatenating v/8 + // copies of ID. + var D []byte + for i := 0; i < v; i++ { + D = append(D, ID) + } + + // 2. Concatenate copies of the salt together to create a string S of + // length v(ceiling(s/v)) bits (the final copy of the salt may be + // truncated to create S). Note that if the salt is the empty + // string, then so is S. + + S := fillWithRepeats(salt, v) + + // 3. Concatenate copies of the password together to create a string P + // of length v(ceiling(p/v)) bits (the final copy of the password + // may be truncated to create P). Note that if the password is the + // empty string, then so is P. + + P := fillWithRepeats(password, v) + + // 4. Set I=S||P to be the concatenation of S and P. + I := append(S, P...) + + // 5. Set c=ceiling(n/u). + c := (size + u - 1) / u + + // 6. For i=1, 2, ..., c, do the following: + A := make([]byte, c*20) + var IjBuf []byte + for i := 0; i < c; i++ { + // A. Set A2=H^r(D||I). (i.e., the r-th hash of D||1, + // H(H(H(... H(D||I)))) + Ai := hash(append(D, I...)) + for j := 1; j < r; j++ { + Ai = hash(Ai) + } + copy(A[i*20:], Ai[:]) + + if i < c-1 { // skip on last iteration + // B. Concatenate copies of Ai to create a string B of length v + // bits (the final copy of Ai may be truncated to create B). + var B []byte + for len(B) < v { + B = append(B, Ai[:]...) + } + B = B[:v] + + // C. Treating I as a concatenation I_0, I_1, ..., I_(k-1) of v-bit + // blocks, where k=ceiling(s/v)+ceiling(p/v), modify I by + // setting I_j=(I_j+B+1) mod 2^v for each j. + { + Bbi := new(big.Int).SetBytes(B) + Ij := new(big.Int) + + for j := 0; j < len(I)/v; j++ { + Ij.SetBytes(I[j*v : (j+1)*v]) + Ij.Add(Ij, Bbi) + Ij.Add(Ij, one) + Ijb := Ij.Bytes() + // We expect Ijb to be exactly v bytes, + // if it is longer or shorter we must + // adjust it accordingly. + if len(Ijb) > v { + Ijb = Ijb[len(Ijb)-v:] + } + if len(Ijb) < v { + if IjBuf == nil { + IjBuf = make([]byte, v) + } + bytesShort := v - len(Ijb) + for i := 0; i < bytesShort; i++ { + IjBuf[i] = 0 + } + copy(IjBuf[bytesShort:], Ijb) + Ijb = IjBuf + } + copy(I[j*v:(j+1)*v], Ijb) + } + } + } + } + // 7. Concatenate A_1, A_2, ..., A_c together to form a pseudorandom + // bit string, A. + + // 8. Use the first n bits of A as the output of this entire process. + return A[:size] + + // If the above process is being used to generate a DES key, the process + // should be used to create 64 random bits, and the key's parity bits + // should be set after the 64 bits have been produced. Similar concerns + // hold for 2-key and 3-key triple-DES keys, for CDMF keys, and for any + // similar keys with parity bits "built into them". +} diff --git a/vendor/golang.org/x/crypto/pkcs12/pkcs12.go b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go new file mode 100644 index 00000000..3a89bdb3 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/pkcs12.go @@ -0,0 +1,360 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package pkcs12 implements some of PKCS#12. +// +// This implementation is distilled from https://tools.ietf.org/html/rfc7292 +// and referenced documents. It is intended for decoding P12/PFX-stored +// certificates and keys for use with the crypto/tls package. +// +// This package is frozen. If it's missing functionality you need, consider +// an alternative like software.sslmate.com/src/go-pkcs12. +package pkcs12 + +import ( + "crypto/ecdsa" + "crypto/rsa" + "crypto/x509" + "crypto/x509/pkix" + "encoding/asn1" + "encoding/hex" + "encoding/pem" + "errors" +) + +var ( + oidDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 1}) + oidEncryptedDataContentType = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 7, 6}) + + oidFriendlyName = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 20}) + oidLocalKeyID = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 21}) + oidMicrosoftCSPName = asn1.ObjectIdentifier([]int{1, 3, 6, 1, 4, 1, 311, 17, 1}) + + errUnknownAttributeOID = errors.New("pkcs12: unknown attribute OID") +) + +type pfxPdu struct { + Version int + AuthSafe contentInfo + MacData macData `asn1:"optional"` +} + +type contentInfo struct { + ContentType asn1.ObjectIdentifier + Content asn1.RawValue `asn1:"tag:0,explicit,optional"` +} + +type encryptedData struct { + Version int + EncryptedContentInfo encryptedContentInfo +} + +type encryptedContentInfo struct { + ContentType asn1.ObjectIdentifier + ContentEncryptionAlgorithm pkix.AlgorithmIdentifier + EncryptedContent []byte `asn1:"tag:0,optional"` +} + +func (i encryptedContentInfo) Algorithm() pkix.AlgorithmIdentifier { + return i.ContentEncryptionAlgorithm +} + +func (i encryptedContentInfo) Data() []byte { return i.EncryptedContent } + +type safeBag struct { + Id asn1.ObjectIdentifier + Value asn1.RawValue `asn1:"tag:0,explicit"` + Attributes []pkcs12Attribute `asn1:"set,optional"` +} + +type pkcs12Attribute struct { + Id asn1.ObjectIdentifier + Value asn1.RawValue `asn1:"set"` +} + +type encryptedPrivateKeyInfo struct { + AlgorithmIdentifier pkix.AlgorithmIdentifier + EncryptedData []byte +} + +func (i encryptedPrivateKeyInfo) Algorithm() pkix.AlgorithmIdentifier { + return i.AlgorithmIdentifier +} + +func (i encryptedPrivateKeyInfo) Data() []byte { + return i.EncryptedData +} + +// PEM block types +const ( + certificateType = "CERTIFICATE" + privateKeyType = "PRIVATE KEY" +) + +// unmarshal calls asn1.Unmarshal, but also returns an error if there is any +// trailing data after unmarshaling. +func unmarshal(in []byte, out interface{}) error { + trailing, err := asn1.Unmarshal(in, out) + if err != nil { + return err + } + if len(trailing) != 0 { + return errors.New("pkcs12: trailing data found") + } + return nil +} + +// ToPEM converts all "safe bags" contained in pfxData to PEM blocks. +// Unknown attributes are discarded. +// +// Note that although the returned PEM blocks for private keys have type +// "PRIVATE KEY", the bytes are not encoded according to PKCS #8, but according +// to PKCS #1 for RSA keys and SEC 1 for ECDSA keys. +func ToPEM(pfxData []byte, password string) ([]*pem.Block, error) { + encodedPassword, err := bmpString(password) + if err != nil { + return nil, ErrIncorrectPassword + } + + bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) + + if err != nil { + return nil, err + } + + blocks := make([]*pem.Block, 0, len(bags)) + for _, bag := range bags { + block, err := convertBag(&bag, encodedPassword) + if err != nil { + return nil, err + } + blocks = append(blocks, block) + } + + return blocks, nil +} + +func convertBag(bag *safeBag, password []byte) (*pem.Block, error) { + block := &pem.Block{ + Headers: make(map[string]string), + } + + for _, attribute := range bag.Attributes { + k, v, err := convertAttribute(&attribute) + if err == errUnknownAttributeOID { + continue + } + if err != nil { + return nil, err + } + block.Headers[k] = v + } + + switch { + case bag.Id.Equal(oidCertBag): + block.Type = certificateType + certsData, err := decodeCertBag(bag.Value.Bytes) + if err != nil { + return nil, err + } + block.Bytes = certsData + case bag.Id.Equal(oidPKCS8ShroundedKeyBag): + block.Type = privateKeyType + + key, err := decodePkcs8ShroudedKeyBag(bag.Value.Bytes, password) + if err != nil { + return nil, err + } + + switch key := key.(type) { + case *rsa.PrivateKey: + block.Bytes = x509.MarshalPKCS1PrivateKey(key) + case *ecdsa.PrivateKey: + block.Bytes, err = x509.MarshalECPrivateKey(key) + if err != nil { + return nil, err + } + default: + return nil, errors.New("found unknown private key type in PKCS#8 wrapping") + } + default: + return nil, errors.New("don't know how to convert a safe bag of type " + bag.Id.String()) + } + return block, nil +} + +func convertAttribute(attribute *pkcs12Attribute) (key, value string, err error) { + isString := false + + switch { + case attribute.Id.Equal(oidFriendlyName): + key = "friendlyName" + isString = true + case attribute.Id.Equal(oidLocalKeyID): + key = "localKeyId" + case attribute.Id.Equal(oidMicrosoftCSPName): + // This key is chosen to match OpenSSL. + key = "Microsoft CSP Name" + isString = true + default: + return "", "", errUnknownAttributeOID + } + + if isString { + if err := unmarshal(attribute.Value.Bytes, &attribute.Value); err != nil { + return "", "", err + } + if value, err = decodeBMPString(attribute.Value.Bytes); err != nil { + return "", "", err + } + } else { + var id []byte + if err := unmarshal(attribute.Value.Bytes, &id); err != nil { + return "", "", err + } + value = hex.EncodeToString(id) + } + + return key, value, nil +} + +// Decode extracts a certificate and private key from pfxData. This function +// assumes that there is only one certificate and only one private key in the +// pfxData; if there are more use ToPEM instead. +func Decode(pfxData []byte, password string) (privateKey interface{}, certificate *x509.Certificate, err error) { + encodedPassword, err := bmpString(password) + if err != nil { + return nil, nil, err + } + + bags, encodedPassword, err := getSafeContents(pfxData, encodedPassword) + if err != nil { + return nil, nil, err + } + + if len(bags) != 2 { + err = errors.New("pkcs12: expected exactly two safe bags in the PFX PDU") + return + } + + for _, bag := range bags { + switch { + case bag.Id.Equal(oidCertBag): + if certificate != nil { + err = errors.New("pkcs12: expected exactly one certificate bag") + } + + certsData, err := decodeCertBag(bag.Value.Bytes) + if err != nil { + return nil, nil, err + } + certs, err := x509.ParseCertificates(certsData) + if err != nil { + return nil, nil, err + } + if len(certs) != 1 { + err = errors.New("pkcs12: expected exactly one certificate in the certBag") + return nil, nil, err + } + certificate = certs[0] + + case bag.Id.Equal(oidPKCS8ShroundedKeyBag): + if privateKey != nil { + err = errors.New("pkcs12: expected exactly one key bag") + return nil, nil, err + } + + if privateKey, err = decodePkcs8ShroudedKeyBag(bag.Value.Bytes, encodedPassword); err != nil { + return nil, nil, err + } + } + } + + if certificate == nil { + return nil, nil, errors.New("pkcs12: certificate missing") + } + if privateKey == nil { + return nil, nil, errors.New("pkcs12: private key missing") + } + + return +} + +func getSafeContents(p12Data, password []byte) (bags []safeBag, updatedPassword []byte, err error) { + pfx := new(pfxPdu) + if err := unmarshal(p12Data, pfx); err != nil { + return nil, nil, errors.New("pkcs12: error reading P12 data: " + err.Error()) + } + + if pfx.Version != 3 { + return nil, nil, NotImplementedError("can only decode v3 PFX PDU's") + } + + if !pfx.AuthSafe.ContentType.Equal(oidDataContentType) { + return nil, nil, NotImplementedError("only password-protected PFX is implemented") + } + + // unmarshal the explicit bytes in the content for type 'data' + if err := unmarshal(pfx.AuthSafe.Content.Bytes, &pfx.AuthSafe.Content); err != nil { + return nil, nil, err + } + + if len(pfx.MacData.Mac.Algorithm.Algorithm) == 0 { + return nil, nil, errors.New("pkcs12: no MAC in data") + } + + if err := verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password); err != nil { + if err == ErrIncorrectPassword && len(password) == 2 && password[0] == 0 && password[1] == 0 { + // some implementations use an empty byte array + // for the empty string password try one more + // time with empty-empty password + password = nil + err = verifyMac(&pfx.MacData, pfx.AuthSafe.Content.Bytes, password) + } + if err != nil { + return nil, nil, err + } + } + + var authenticatedSafe []contentInfo + if err := unmarshal(pfx.AuthSafe.Content.Bytes, &authenticatedSafe); err != nil { + return nil, nil, err + } + + if len(authenticatedSafe) != 2 { + return nil, nil, NotImplementedError("expected exactly two items in the authenticated safe") + } + + for _, ci := range authenticatedSafe { + var data []byte + + switch { + case ci.ContentType.Equal(oidDataContentType): + if err := unmarshal(ci.Content.Bytes, &data); err != nil { + return nil, nil, err + } + case ci.ContentType.Equal(oidEncryptedDataContentType): + var encryptedData encryptedData + if err := unmarshal(ci.Content.Bytes, &encryptedData); err != nil { + return nil, nil, err + } + if encryptedData.Version != 0 { + return nil, nil, NotImplementedError("only version 0 of EncryptedData is supported") + } + if data, err = pbDecrypt(encryptedData.EncryptedContentInfo, password); err != nil { + return nil, nil, err + } + default: + return nil, nil, NotImplementedError("only data and encryptedData content types are supported in authenticated safe") + } + + var safeContents []safeBag + if err := unmarshal(data, &safeContents); err != nil { + return nil, nil, err + } + bags = append(bags, safeContents...) + } + + return bags, password, nil +} diff --git a/vendor/golang.org/x/crypto/pkcs12/safebags.go b/vendor/golang.org/x/crypto/pkcs12/safebags.go new file mode 100644 index 00000000..def1f7b9 --- /dev/null +++ b/vendor/golang.org/x/crypto/pkcs12/safebags.go @@ -0,0 +1,57 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkcs12 + +import ( + "crypto/x509" + "encoding/asn1" + "errors" +) + +var ( + // see https://tools.ietf.org/html/rfc7292#appendix-D + oidCertTypeX509Certificate = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 9, 22, 1}) + oidPKCS8ShroundedKeyBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 2}) + oidCertBag = asn1.ObjectIdentifier([]int{1, 2, 840, 113549, 1, 12, 10, 1, 3}) +) + +type certBag struct { + Id asn1.ObjectIdentifier + Data []byte `asn1:"tag:0,explicit"` +} + +func decodePkcs8ShroudedKeyBag(asn1Data, password []byte) (privateKey interface{}, err error) { + pkinfo := new(encryptedPrivateKeyInfo) + if err = unmarshal(asn1Data, pkinfo); err != nil { + return nil, errors.New("pkcs12: error decoding PKCS#8 shrouded key bag: " + err.Error()) + } + + pkData, err := pbDecrypt(pkinfo, password) + if err != nil { + return nil, errors.New("pkcs12: error decrypting PKCS#8 shrouded key bag: " + err.Error()) + } + + ret := new(asn1.RawValue) + if err = unmarshal(pkData, ret); err != nil { + return nil, errors.New("pkcs12: error unmarshaling decrypted private key: " + err.Error()) + } + + if privateKey, err = x509.ParsePKCS8PrivateKey(pkData); err != nil { + return nil, errors.New("pkcs12: error parsing PKCS#8 private key: " + err.Error()) + } + + return privateKey, nil +} + +func decodeCertBag(asn1Data []byte) (x509Certificates []byte, err error) { + bag := new(certBag) + if err := unmarshal(asn1Data, bag); err != nil { + return nil, errors.New("pkcs12: error decoding cert bag: " + err.Error()) + } + if !bag.Id.Equal(oidCertTypeX509Certificate) { + return nil, NotImplementedError("only X509 certificates are supported") + } + return bag.Data, nil +} diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index 2b84c357..07a1843e 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -58,11 +58,13 @@ type handshakeTransport struct { incoming chan []byte readError error - mu sync.Mutex - writeError error - sentInitPacket []byte - sentInitMsg *kexInitMsg - pendingPackets [][]byte // Used when a key exchange is in progress. + mu sync.Mutex + writeError error + sentInitPacket []byte + sentInitMsg *kexInitMsg + pendingPackets [][]byte // Used when a key exchange is in progress. + writePacketsLeft uint32 + writeBytesLeft int64 // If the read loop wants to schedule a kex, it pings this // channel, and the write loop will send out a kex @@ -71,7 +73,8 @@ type handshakeTransport struct { // If the other side requests or confirms a kex, its kexInit // packet is sent here for the write loop to find it. - startKex chan *pendingKex + startKex chan *pendingKex + kexLoopDone chan struct{} // closed (with writeError non-nil) when kexLoop exits // data for host key checking hostKeyCallback HostKeyCallback @@ -86,12 +89,10 @@ type handshakeTransport struct { // Algorithms agreed in the last key exchange. algorithms *algorithms + // Counters exclusively owned by readLoop. readPacketsLeft uint32 readBytesLeft int64 - writePacketsLeft uint32 - writeBytesLeft int64 - // The session ID or nil if first kex did not complete yet. sessionID []byte } @@ -108,7 +109,8 @@ func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, clientVersion: clientVersion, incoming: make(chan []byte, chanSize), requestKex: make(chan struct{}, 1), - startKex: make(chan *pendingKex, 1), + startKex: make(chan *pendingKex), + kexLoopDone: make(chan struct{}), config: config, } @@ -340,16 +342,17 @@ write: t.mu.Unlock() } + // Unblock reader. + t.conn.Close() + // drain startKex channel. We don't service t.requestKex // because nobody does blocking sends there. - go func() { - for init := range t.startKex { - init.done <- t.writeError - } - }() + for request := range t.startKex { + request.done <- t.getWriteError() + } - // Unblock reader. - t.conn.Close() + // Mark that the loop is done so that Close can return. + close(t.kexLoopDone) } // The protocol uses uint32 for packet counters, so we can't let them @@ -545,7 +548,16 @@ func (t *handshakeTransport) writePacket(p []byte) error { } func (t *handshakeTransport) Close() error { - return t.conn.Close() + // Close the connection. This should cause the readLoop goroutine to wake up + // and close t.startKex, which will shut down kexLoop if running. + err := t.conn.Close() + + // Wait for the kexLoop goroutine to complete. + // At that point we know that the readLoop goroutine is complete too, + // because kexLoop itself waits for readLoop to close the startKex channel. + <-t.kexLoopDone + + return err } func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { diff --git a/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go index 260cfe58..7376a8df 100644 --- a/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go +++ b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go @@ -142,7 +142,7 @@ func keyEq(a, b ssh.PublicKey) bool { return bytes.Equal(a.Marshal(), b.Marshal()) } -// IsAuthorityForHost can be used as a callback in ssh.CertChecker +// IsHostAuthority can be used as a callback in ssh.CertChecker func (db *hostKeyDB) IsHostAuthority(remote ssh.PublicKey, address string) bool { h, p, err := net.SplitHostPort(address) if err != nil { diff --git a/vendor/golang.org/x/net/http2/flow.go b/vendor/golang.org/x/net/http2/flow.go index 750ac52f..b7dbd186 100644 --- a/vendor/golang.org/x/net/http2/flow.go +++ b/vendor/golang.org/x/net/http2/flow.go @@ -18,7 +18,7 @@ type inflow struct { unsent int32 } -// set sets the initial window. +// init sets the initial window. func (f *inflow) init(n int32) { f.avail = n } diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index 184ac45f..c1f6b90d 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -662,6 +662,15 @@ func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error { // It is the caller's responsibility not to violate the maximum frame size // and to not call other Write methods concurrently. func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { + if err := f.startWriteDataPadded(streamID, endStream, data, pad); err != nil { + return err + } + return f.endWrite() +} + +// startWriteDataPadded is WriteDataPadded, but only writes the frame to the Framer's internal buffer. +// The caller should call endWrite to flush the frame to the underlying writer. +func (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { if !validStreamID(streamID) && !f.AllowIllegalWrites { return errStreamID } @@ -691,7 +700,7 @@ func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []by } f.wbuf = append(f.wbuf, data...) f.wbuf = append(f.wbuf, pad...) - return f.endWrite() + return nil } // A SettingsFrame conveys configuration parameters that affect how diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go index ebdfbee9..7a1d9766 100644 --- a/vendor/golang.org/x/net/http2/hpack/hpack.go +++ b/vendor/golang.org/x/net/http2/hpack/hpack.go @@ -211,7 +211,7 @@ func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) { return dt.ents[dt.len()-(int(i)-staticTable.len())], true } -// Decode decodes an entire block. +// DecodeFull decodes an entire block. // // TODO: remove this method and make it incremental later? This is // easier for debugging now. @@ -359,6 +359,7 @@ func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { var hf HeaderField wantStr := d.emitEnabled || it.indexed() + var undecodedName undecodedString if nameIdx > 0 { ihf, ok := d.at(nameIdx) if !ok { @@ -366,15 +367,27 @@ func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { } hf.Name = ihf.Name } else { - hf.Name, buf, err = d.readString(buf, wantStr) + undecodedName, buf, err = d.readString(buf) if err != nil { return err } } - hf.Value, buf, err = d.readString(buf, wantStr) + undecodedValue, buf, err := d.readString(buf) if err != nil { return err } + if wantStr { + if nameIdx <= 0 { + hf.Name, err = d.decodeString(undecodedName) + if err != nil { + return err + } + } + hf.Value, err = d.decodeString(undecodedValue) + if err != nil { + return err + } + } d.buf = buf if it.indexed() { d.dynTab.add(hf) @@ -459,46 +472,52 @@ func readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) { return 0, origP, errNeedMore } -// readString decodes an hpack string from p. +// readString reads an hpack string from p. // -// wantStr is whether s will be used. If false, decompression and -// []byte->string garbage are skipped if s will be ignored -// anyway. This does mean that huffman decoding errors for non-indexed -// strings past the MAX_HEADER_LIST_SIZE are ignored, but the server -// is returning an error anyway, and because they're not indexed, the error -// won't affect the decoding state. -func (d *Decoder) readString(p []byte, wantStr bool) (s string, remain []byte, err error) { +// It returns a reference to the encoded string data to permit deferring decode costs +// until after the caller verifies all data is present. +func (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err error) { if len(p) == 0 { - return "", p, errNeedMore + return u, p, errNeedMore } isHuff := p[0]&128 != 0 strLen, p, err := readVarInt(7, p) if err != nil { - return "", p, err + return u, p, err } if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) { - return "", nil, ErrStringLength + // Returning an error here means Huffman decoding errors + // for non-indexed strings past the maximum string length + // are ignored, but the server is returning an error anyway + // and because the string is not indexed the error will not + // affect the decoding state. + return u, nil, ErrStringLength } if uint64(len(p)) < strLen { - return "", p, errNeedMore - } - if !isHuff { - if wantStr { - s = string(p[:strLen]) - } - return s, p[strLen:], nil + return u, p, errNeedMore } + u.isHuff = isHuff + u.b = p[:strLen] + return u, p[strLen:], nil +} - if wantStr { - buf := bufPool.Get().(*bytes.Buffer) - buf.Reset() // don't trust others - defer bufPool.Put(buf) - if err := huffmanDecode(buf, d.maxStrLen, p[:strLen]); err != nil { - buf.Reset() - return "", nil, err - } +type undecodedString struct { + isHuff bool + b []byte +} + +func (d *Decoder) decodeString(u undecodedString) (string, error) { + if !u.isHuff { + return string(u.b), nil + } + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() // don't trust others + var s string + err := huffmanDecode(buf, d.maxStrLen, u.b) + if err == nil { s = buf.String() - buf.Reset() // be nice to GC } - return s, p[strLen:], nil + buf.Reset() // be nice to GC + bufPool.Put(buf) + return s, err } diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index b624dc0a..8cb14f3c 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -843,8 +843,13 @@ type frameWriteResult struct { // and then reports when it's done. // At most one goroutine can be running writeFrameAsync at a time per // serverConn. -func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) { - err := wr.write.writeFrame(sc) +func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { + var err error + if wd == nil { + err = wr.write.writeFrame(sc) + } else { + err = sc.framer.endWrite() + } sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err} } @@ -1251,9 +1256,16 @@ func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) { sc.writingFrameAsync = false err := wr.write.writeFrame(sc) sc.wroteFrame(frameWriteResult{wr: wr, err: err}) + } else if wd, ok := wr.write.(*writeData); ok { + // Encode the frame in the serve goroutine, to ensure we don't have + // any lingering asynchronous references to data passed to Write. + // See https://go.dev/issue/58446. + sc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, nil) + sc.writingFrameAsync = true + go sc.writeFrameAsync(wr, wd) } else { sc.writingFrameAsync = true - go sc.writeFrameAsync(wr) + go sc.writeFrameAsync(wr, nil) } } @@ -2192,7 +2204,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r tlsState = sc.tlsState } - needsContinue := rp.header.Get("Expect") == "100-continue" + needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") if needsContinue { rp.header.Del("Expect") } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index b43ec10c..05ba23d3 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -1569,7 +1569,7 @@ func (cs *clientStream) cleanupWriteRequest(err error) { close(cs.donec) } -// awaitOpenSlotForStream waits until len(streams) < maxConcurrentStreams. +// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams. // Must hold cc.mu. func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { for { diff --git a/vendor/golang.org/x/net/trace/histogram.go b/vendor/golang.org/x/net/trace/histogram.go index 9bf4286c..d6c71101 100644 --- a/vendor/golang.org/x/net/trace/histogram.go +++ b/vendor/golang.org/x/net/trace/histogram.go @@ -32,7 +32,7 @@ type histogram struct { valueCount int64 // number of values recorded for single value } -// AddMeasurement records a value measurement observation to the histogram. +// addMeasurement records a value measurement observation to the histogram. func (h *histogram) addMeasurement(value int64) { // TODO: assert invariant h.sum += value diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go index d69ccb4f..487335d1 100644 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -13,7 +13,7 @@ import "encoding/binary" // a rune to a uint16. The values take two forms. For v >= 0x8000: // bits // 15: 1 (inverse of NFD_QC bit of qcInfo) -// 13..7: qcInfo (see below). isYesD is always true (no decompostion). +// 13..7: qcInfo (see below). isYesD is always true (no decomposition). // 6..0: ccc (compressed CCC value). // For v < 0x8000, the respective rune has a decomposition and v is an index // into a byte array of UTF-8 decomposition sequences and additional info and diff --git a/vendor/modules.txt b/vendor/modules.txt index acb72ce1..26ede80e 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,3 +1,64 @@ +# github.com/Azure/azure-sdk-for-go/sdk/azcore v1.8.0-beta.1 +## explicit; go 1.18 +github.com/Azure/azure-sdk-for-go/sdk/azcore +github.com/Azure/azure-sdk-for-go/sdk/azcore/arm +github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/internal/resource +github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/policy +github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime +github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/log +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/async +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/body +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/fake +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/loc +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/pollers/op +github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared +github.com/Azure/azure-sdk-for-go/sdk/azcore/log +github.com/Azure/azure-sdk-for-go/sdk/azcore/policy +github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime +github.com/Azure/azure-sdk-for-go/sdk/azcore/streaming +github.com/Azure/azure-sdk-for-go/sdk/azcore/to +github.com/Azure/azure-sdk-for-go/sdk/azcore/tracing +# github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.2 +## explicit; go 1.18 +github.com/Azure/azure-sdk-for-go/sdk/azidentity +# github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 +## explicit; go 1.18 +github.com/Azure/azure-sdk-for-go/sdk/internal/diag +github.com/Azure/azure-sdk-for-go/sdk/internal/errorinfo +github.com/Azure/azure-sdk-for-go/sdk/internal/exported +github.com/Azure/azure-sdk-for-go/sdk/internal/log +github.com/Azure/azure-sdk-for-go/sdk/internal/poller +github.com/Azure/azure-sdk-for-go/sdk/internal/temporal +github.com/Azure/azure-sdk-for-go/sdk/internal/uuid +# github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.1 +## explicit; go 1.18 +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph +# github.com/AzureAD/microsoft-authentication-library-for-go v0.9.0 +## explicit; go 1.18 +github.com/AzureAD/microsoft-authentication-library-for-go/apps/cache +github.com/AzureAD/microsoft-authentication-library-for-go/apps/confidential +github.com/AzureAD/microsoft-authentication-library-for-go/apps/errors +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/base/internal/storage +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/exported +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/json/types/time +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/local +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/accesstokens +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/authority +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/comm +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/internal/grant +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/oauth/ops/wstrust/defs +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/options +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/shared +github.com/AzureAD/microsoft-authentication-library-for-go/apps/internal/version +github.com/AzureAD/microsoft-authentication-library-for-go/apps/public # github.com/Microsoft/go-winio v0.5.2 ## explicit; go 1.13 github.com/Microsoft/go-winio @@ -181,6 +242,9 @@ github.com/gofrs/uuid ## explicit; go 1.15 github.com/gogo/protobuf/io github.com/gogo/protobuf/proto +# github.com/golang-jwt/jwt/v4 v4.5.0 +## explicit; go 1.16 +github.com/golang-jwt/jwt/v4 # github.com/golang/glog v1.0.0 ## explicit; go 1.11 github.com/golang/glog @@ -194,6 +258,9 @@ github.com/golang/protobuf/ptypes/duration github.com/golang/protobuf/ptypes/empty github.com/golang/protobuf/ptypes/struct github.com/golang/protobuf/ptypes/timestamp +# github.com/google/uuid v1.3.0 +## explicit +github.com/google/uuid # github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 ## explicit github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc @@ -230,6 +297,10 @@ github.com/jmespath/go-jmespath # github.com/kevinburke/ssh_config v1.2.0 ## explicit github.com/kevinburke/ssh_config +# github.com/kylelemons/godebug v1.1.0 +## explicit; go 1.11 +github.com/kylelemons/godebug/diff +github.com/kylelemons/godebug/pretty # github.com/magiconair/properties v1.8.6 ## explicit; go 1.13 github.com/magiconair/properties @@ -272,6 +343,9 @@ github.com/pelletier/go-toml/v2/internal/tracker github.com/pjbgf/sha1cd github.com/pjbgf/sha1cd/cgo github.com/pjbgf/sha1cd/ubc +# github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 +## explicit; go 1.14 +github.com/pkg/browser # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors @@ -284,21 +358,21 @@ github.com/pulumi/pulumi-aws/sdk/v5/go/aws github.com/pulumi/pulumi-aws/sdk/v5/go/aws/autoscaling github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2 github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lb -# github.com/pulumi/pulumi-azure-native-sdk v1.99.1 +# github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.6.0 ## explicit; go 1.17 -github.com/pulumi/pulumi-azure-native-sdk -# github.com/pulumi/pulumi-azure-native-sdk/compute v1.98.1 +github.com/pulumi/pulumi-azure-native-sdk/compute/v2 +# github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.6.0 ## explicit; go 1.17 -github.com/pulumi/pulumi-azure-native-sdk/compute -# github.com/pulumi/pulumi-azure-native-sdk/network v1.98.1 +github.com/pulumi/pulumi-azure-native-sdk/network/v2 +# github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.6.0 ## explicit; go 1.17 -github.com/pulumi/pulumi-azure-native-sdk/network -# github.com/pulumi/pulumi-azure-native-sdk/resources v1.98.1 +github.com/pulumi/pulumi-azure-native-sdk/resources/v2 +# github.com/pulumi/pulumi-azure-native-sdk/storage/v2 v2.6.0 ## explicit; go 1.17 -github.com/pulumi/pulumi-azure-native-sdk/resources -# github.com/pulumi/pulumi-azure-native-sdk/storage v1.99.1 +github.com/pulumi/pulumi-azure-native-sdk/storage/v2 +# github.com/pulumi/pulumi-azure-native-sdk/v2 v2.6.0 ## explicit; go 1.17 -github.com/pulumi/pulumi-azure-native-sdk/storage +github.com/pulumi/pulumi-azure-native-sdk/v2/utilities # github.com/pulumi/pulumi-command/sdk v0.7.1 ## explicit; go 1.19 github.com/pulumi/pulumi-command/sdk/go/command @@ -439,7 +513,7 @@ github.com/xanzy/ssh-agent # go.uber.org/atomic v1.9.0 ## explicit; go 1.13 go.uber.org/atomic -# golang.org/x/crypto v0.3.0 +# golang.org/x/crypto v0.6.0 ## explicit; go 1.17 golang.org/x/crypto/blowfish golang.org/x/crypto/cast5 @@ -450,6 +524,8 @@ golang.org/x/crypto/ed25519 golang.org/x/crypto/internal/alias golang.org/x/crypto/internal/poly1305 golang.org/x/crypto/pbkdf2 +golang.org/x/crypto/pkcs12 +golang.org/x/crypto/pkcs12/internal/rc2 golang.org/x/crypto/ssh golang.org/x/crypto/ssh/agent golang.org/x/crypto/ssh/internal/bcrypt_pbkdf @@ -458,7 +534,7 @@ golang.org/x/crypto/ssh/knownhosts ## explicit; go 1.18 golang.org/x/exp/constraints golang.org/x/exp/slices -# golang.org/x/net v0.5.0 +# golang.org/x/net v0.8.0 ## explicit; go 1.17 golang.org/x/net/context golang.org/x/net/http/httpguts @@ -478,10 +554,10 @@ golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/term v0.4.0 +# golang.org/x/term v0.6.0 ## explicit; go 1.17 golang.org/x/term -# golang.org/x/text v0.6.0 +# golang.org/x/text v0.8.0 ## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform